패킷을 전송하는 send side는 message를 segment로 나누어 네트워크 계층으로 보내며 패킷을 받는 rcv side는 segment를 message로 조립하여 응용계층으로 보낸다.
다중화란 여러 곳에서 전송되는 데이터를 하나로 모으는 것이다. 전송(transport) 계층에서 어플리케이션 계층에 있는 소켓에서 전송되는 데이터를 모은 다중화 데이터를 세그먼트(segment)라고 한다. 세그먼트는 헤더와 데이터로 나누어진다.
호스트가 ip 데이터그램(IP계층의 가변길이 패킷)을 받는다. 호스트는 ip 주소와 포트 넘버를 사용해 세그먼트를 적절한 소켓에 전달한다. TCP와 UDP는 역다중화하는 방법이 다르다.
들어온 패킷이 UDP 프로토콜인 경우이다. UDP는 신뢰성 낮은 프로토콜인만큼 TCP에 비해 단순하다. 서버는 하나의 소켓만으로 통신한다.
헤더에 있는 dst IP, dst port로 데이터를 전송할 소켓을 구분한다. 즉, 어떤 source IP주소, source port를 갖고 있던 간에 목적지 IP와 포트만 같다면 같은 소켓으로 보낸다.
TCP 프로토콜인 경우이다. 신뢰성이 필요한 프로토콜이기에, 다음 4-tuple 데이터가 필요하다.