Apllication layer에서 패킷(Message)들이 여러 socket을 통해 Transport layer로 전달 될 때 각 패킷(Message)에 헤더를 추가하고 세그먼트로 캡슐화하여 Network layer로 전달하는 과정을 Multiplexing이라고 한다.
Transport layer에 의해서 세그먼트가 Application layer의 올바른 소켓으로 전달되는 과정을 Demultiplexing이라고 한다.
세그먼트의 헤더에 있는 dest port
정보를 가지고 demultiplexing을 한다.
UDP에서의 Demultiplexing은 dest ip
, dest port
만을 가지고 이루어진다.
즉, source ip
또는 source port
가 달라도 dest ip
, dest port
만 같으면 같은 소켓으로 전달 된다.
TCP에서 Demultiplexing은 4-tuple로 이뤄진다.
위 4개의 값을 모두 사용하여 적절한 소켓으로 패킷을 전달한다. 하나만 달라도 다른 소켓으로 전달된다.
Web server는 동시에 많은 TCP 소켓을 지원하고, 각 연결된 클라이언트마다 서로 다른 소켓을 갖는다. 즉, 소켓이 1:1로 대응된다.