3.2 다중화와 역다중화

트랜스포트 계층 다중화와 역다중화 ⇒ 네트워크 계층이 제공하는 호스트 대 호스트 전달 서비스에서 호스트에서 동작하는 애플리케이션에 대한 프로세스 대 프로세스 전달 서비스로 확장하는 것을 살펴봄.

다중화와 역다중화는 모든 컴퓨터 네트워크에서 필요함.

목적지 호스트에서의 트랜스포트 계층은 네트워크 계층으로부터 세그먼트를 수신함.

트랜스포트 계층은 호스트에서 도작하는 해당 애플리케이션 프로세스에게 이 세그먼트의 데이터를 전달하는 의무를 짐.

(ex. 하나의 FTP 세션, 2개의 텔넷 세션을 실행하면서 웹 페이지를 다운로드하고 있다고 가정하면, 우리는 동작 중인 4개의 네트워크 애플리케이션 프로세스를 갖음. → 텔넷 프로세스 2개, FTP 프로세스 1개, HTTP 프로세스 1개)

우리의 컴퓨터의 트랜스포트 계층이 하위의 네트워크 계층으로부터 데이터를 수신할 때, 트랜스포트 계층은 이 4개의 프로세스 중 하나에게 수신한 데이터를 전달할 필요가 있음.

Untitled

네트워크 애플리케이션의 한 부분으로서 프로세스가 소켓을 갖고 있음. 이를 통해 네트워크에서 프로세스로 데이터를 전달하고, 프로세스로부터 네트워크로 데이터를 전달하는 출입구 역할을 함.

그러므로 위의 그림과같이 수신 측 호스트의 트랜스포트 계층은 실제로 데이터를 직접 프로세스로 전달하지 않고 중간 매개자인 소켓에게 전달함.

주어진 시간에 수신 측 호스트에 하나 이상의 소켓이 있을 수 있으므로, 각각의 소켓은 하나의 유일한 식별자를 갖게 되는데, 이 식별자의 포맷은 소켓이 UDP인지 TCP인지에 따라 달라짐.

수신 측 호스트가 수신한 트랜스포트 계층 세그먼트를 어떻게 적절한 소켓으로 향하게 하는지를 알아보자.

각 트랜스포트 계층 세그먼트는 이러한 목적을 위해 세그먼트에 필드 집합을 갖고 있음. 수신 측의 트랜스포트 계층은 수신 소켓을 식별하기 위해 필드를 검사하게됨. 그리고 이 세그먼트를 해당 소켓으로 보냄.

트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업역다중화라고 함.

출발지 호스트에서 소켓으로부터 데이터를 모으고, 이에 대한 세그먼트를 생성하기 위해 각 데이터에 헤더 정보로 캡슐화하고, 그 세그먼트들을 네트워크 계층으로 전달하는 작업다중화라고 함.

위의 그림에서 중간 호스트의 트랜스포트 계층은 네트워크 계층 아래로부터 수신한 세그먼트를 위쪽의 프로세스 P1 or P2로 반드시 역다중화해야 함. 이것은 도착한 세그먼트의 데이터가 이에 상응하는 프로세스의 소켓으로 전달되도록 해서 이루어짐.