04. 통신의 과거와 현재 정리(회선 -> 패킷)
과거 통신
- 패킷 통신 등장 이전에는 회선 교환(Circuit Swithching) 방식을 사용했다. 회선 교환 방식은 통신하고자 하는 두 호스트가 데이터를 전송하기 전에 미리 데이터 이동 경로를 하나 설정해두는 방식이다. 미리 설정해둔 경로는 두 호스트를 위한 전용 경로가 되고, 전용 경로를 통해 통신의 처음부터 끝까지 데이터가 이동한다.
아래의 사진을 예로 보면, A와 D가 통신하기 위해서 설정한 경로는 1-4-7이 된다.
위의 방식은 회선을 붙잡고 있으니 낭비가 될 뿐더러 효율적이지 못하다. 또한 연결이 끊어지면 이동 경로를 다시 설정해줘야 하는 등의 비효율성이 발생한다. 이를 보완하기 위해 패킷 통신이 등장한다.
패킷 통신
- 패킷 교환(Packet switching) 방식은 미리 경로를 정하지 않고, 데이터를 패킷 단위로 나누어 다중 노드로 구성된 네트워크를 통해 전송하는 개념이다. 전송전에 데이터가 패킷으로 쪼개지고 각 패킷의 고유 번호를 통해 최종 수신지에서 번호 순서대로 결합되게 된다.
각 패킷은 전송 당시 가장 효율적인 경로를 설정하여 최종 목적지까지 이동한다. 여기서 중간 노드가 패킷의 최종 목적지를 확인하고 가장 최적이라 판단되는 경로를 따라 패킷을 이동시키는 라우팅을 해줘야 한다. 여기서 말하는 중간 노드가 라우터이다.
패킷이 수선대로 수신됐다는 보장은 전혀 없으므로, 수신 호스트에서 송신 호스트 패킷이 모두 전송되었다는 것을 인식할 때 패킷 헤더들을 읽고 패킷 순서를 정리해 원래 데이터로 만들어준다.
노드를 독점하지 않는 점과 노드 마다 최적의 선택을 하기에 효율이 높다. 현 시대는 거의 모든 통신이 패킷 전송방식을 사용한다.
TCP/IP
- 패킷 통신의 통신 규약 중 하나가 TCP/IP 이다. TCP 프로토콜은 신뢰성이 있고, 무결성을 보장하는 연결을 통해 데이터를 안전하게 전달해주는 프로토콜이다. IP 프로토콜은 패킷들을 가장 효율적인 방법으로 최종 목적지까지 전송하기 위해 필요한 프로토콜이다. 데이터를 프로토콜에 의거하여 패킷으로 만드는 작업(캡슐화)한다는 것의 프로토콜 중 하나가 TCP/IP이다. 다른 많은 프로토콜들이 있지만 TCP/IP가 가장 효율적이어서 인지 거의 표준화되었다.
TCP/IP는 총 4개의 계층으로 이루어져 있다.
1. 4계층 : 응용 계층(Application)
2. 3계층 : 전송 계층(Transport)
3. 2계층 : 인터넷 계층(Internet)
4. 1계층 : 네트워크 인터페이스 계층(Network Interface)
송신 쪽에서는 4계층부터 1계층 까지 내려가 최종적으로 네트워크에 전기적 신호로 패킷을 전송하게 되고, 수신 쪽에서는 1계층부터 4계층을 통해 데이터를 역캡슐화하게 된다. (4계층에서 1계층을 갈 때 헤더가 하나씩 붙게 된다.)
* TCP를 사용했을 경우 전송 계층에서 응용 계층으로 보내기전에 누락 부분을 확인하여 누락된 것이 있다면 재요청하게 된다. 모든 패킷이 잘왔다면 여기서 정리하여 응용 계층으로 보내준다.