🧩 Multiplexing 이란?
- Application layer 에서 패킷이 소켓에 의해 Transport layer 로 전달 될 때, 여러 소켓의 패킷을 수집하여 하나의 세그먼트에 캡슐화하여 Network layer로 전달하는 과정
즉, 멀티 플렉싱은 트랜스포트 레이어에서 여러 소켓의 데이터들을 처리하는 과정 ( 트랜스포트 헤더에 추가 )
이라고 볼 수 있다.
🧩 Demultiplexing 이란?
- Transport layer 에서 세그먼트가 Application layer 로 전달 될 때, 올바른 소켓으로 전달 하는 과정
- 어떻게 올바른 소켓으로 전달 할까? → 세그먼트의 헤더정보를 통해 전달
🧩 Demultiplexing의 동작
- 데이터 그램(Network layer의 패킷)에는 source IP, destination IP 주소를 갖고 있다.
- 데이터 그램은 하나의 세그먼트(Transport layer의 패킷)을 포함 한다.
- 세그먼트에는 위 이미지와 같이 source port#, destination port# 를 갖고 있다.
→ host는 IP address & port numbers 를 통해 세그먼트를 적절한 소켓에 전송한다.
🧩 Connectionless demux
- 비연결형 demultiplexing 으로 UDP 에서 발생한다.
-
Source IP address 또는 Source port number 가 달라도 destination port number 만 같으면 같은 소켓으로 전달 된다.
→ 즉, 출처와 상관없이 Destination IP address
, Destination Port number
만 고려한다.
🧩 Connection-oriented demux
- 연결형 demultiplexing 으로 TCP 에서 발생한다.
- Web server는 동시에 많은 TCP socket을 지원하고, 각 연결된 클라이언트마다 서로 다른 소켓을 갖는다.
- TCP socket은 4-tuple 로 식별된다.
- Source IP address
- Source port number
- Destination IP address
- Destination port number
References
Transport Layer Multiplexing and Demultiplexing
Computer Networking: A Top-Down Approach (6th Edition)
좋은 글 감사합니다 팥제구씨