다중화와 역다중화는 모든 컴퓨터 네트워크에서 필요하다. 이번 절에서는 트랜스포트 계층 multiplexing(다중화)와 demultiplexing(역다중화)를 알아본다.
한 호스트에서 동작중인 여러개의 네트워크 프로세스가 있을 때, 데이터를 수신한다고 하면 어떤 프로세스로 수신해야할 지 결정해야한다. 데이터를 수신할 프로세스를 찾아주는 것이 트랜스포트 계층의 책임중 하나다.
트랜스포트 계층 다중화는 소켓을 통해 이루어진다. 한 프로세스에 여러 소켓이 존재할 수 있고, 소켓은 각각 식별자를 가진다. 식별자의 포맷은 TCP 소켓인지, UDP소켓인지에 따라 달라진다.
각각의 트랜스포트 계층 세그먼트는 프로세스를 식별하기 위해 필드 집합을 가지고있다.
수신측의 트랜스포트 계층은 수신 소켓을 식별하기 위해 이 필드를 검사한다. 검사한 세그먼트를 적절한 소켓으로 올려보내는데, 이것을 demultiplexing이라 한다.
송신측에서 세그먼트를 생성하기 위해 각 데이터에 헤더 정보로 캡슐화 하고, 그 세그먼트들을 네트워크 계층으로 전달하는 작업을 multiplexing이라 한다.
multiplexing, demultiplexing은 한 프로토콜이 그 상위 계층의 여러 프로토콜에 의해 사용될 때마다 관련된다.
정리하자면, 트랜스포트 다중화에는 다음 두 가지 요구사항을 가지고 있다.
1. 소켓은 유일한 식별자를 가진다.
2. 세그먼트는 소켓을 식별할 필드를 가진다. (출발지 포트, 목적지 포트)
비연결형 프로토콜(UDP)의 역다중화는 목적지 IP와 포트가 있으면 된다. 소켓이 하나만 존재할 것이기 때문에 프로세스와 소켓을 식별하는 과정에서 출발지의 IP와 포트 번호가 필요하진 않다. 그러나 목적지에서 다시 출발지로 보내고 싶을 때에는, 출발지의 IP와 포트 번호를 사용해야 할 것이다.
연결형 프로토콜(TCP)의 역다중화는 출발지 IP, 출발지 포트, 목적지 IP, 목적지 포트 4개가 전부 필요하다.
맨처음 목적지의 welcome 소켓이 요청을 받으면 출발지와 목적지가 연결된 새로운 소켓이 만들어진다.
연결된 소켓은 4가지 필드를 식별자로 만들어진다. 따라서 IP는 같지만 포트번호가 다른 경우(다른 프로세스인 경우) 또는 반대의 경우 각자 다른 소켓이 연결되어야 하기 때문에 4가지 세그먼트가 역다중화에 필요하다.
'네트워크 하향식 접근' 카테고리의 다른 글
[컴퓨터 네트워크 하향식 접근] 3.3 비연결형 트랜스포트: UDP (0) | 2023.03.31 |
---|---|
[컴퓨터 네트워킹 하향식 접근] 3.1 트랜스포트 계층 서비스 및 개요 (0) | 2023.03.21 |
[컴퓨터 네트워킹 하향식 접근] 2.6 비디오 스트리밍과 컨텐츠 분배 네트워크 (0) | 2023.03.18 |
[컴퓨터 네트워킹 하향식 접근] 2.4 DNS-인터넷의 디렉터리 서비스 (0) | 2023.03.15 |
[컴퓨터 네트워킹 하향식 접근] 2.3 인터넷 전자메일 (0) | 2023.03.15 |