멀티플렉싱은 주로 sender에서 일어나고 디멀티플렉싱은 주로 receiver에서 일어남
프로세스 1번과 2번이 transport layer를 통해서 나갈 때 포트넘버를 갖고 갈라져서 나감
그 포트넘버 정보를 network lyaer와 physical layer에 담아서 보내는 게 multiplexing, 주로 sender에서 일어남
ip주소를 보고 목적지 디바이스에 도착하고 그 디바이스 내의 transport layer에서 포트넘버를 확인하고 프로세스에 넘겨주는데 demultiplexing, 주로 receiver에서 일어남
* demultiplexing
어떻게 잘 전달하는지를 보겠다
그림은 tcp와 udp에서 쓰는 segment format이다.
32비트 즉 4바이트를 사용하는데, 앞쪽 두개 바이트는 보내는 쪽 뒤에 두개는 받는 쪽 정보를 담음
network layer에서 ip주소가 맞으면 transport로 올라가고
거기에 달린 segment를 보고 어떤 프로세스에 전달해야하는 지를 판단
디멀티플렉싱은 두가지 방식이 있음 connectionless와 connection-oriented
*connetionless demultiplexing
udp : 해당 ip주소와 포트넘버만 갖고 전송
호스트에서 udp segment를 받으면 네트워크 레이어에서 ip주소를 판별하고 전송계층으로 올라감
전송계층에서 포트넘버를 보고 포워딩을 하게 됨
해당 receiver의 ip주소와 목적지가 똑같으면 다양하게 들어올 수 가 있음
*connetion-oriented
tcp는 소스 ip주소, 소스 포트넘버, 목적지 ip주소, 목적지 포트넘버
이 커넥션에 고유 넘버가 할당이 된다고 함,,
소스에 ip랑 포트넘버는 다를 수 있는데 목적지에 ip랑 포트넘버는 같게 들어가게 될 거고
서로 분리되는 다른 소켓이 할당되면서 통신을 하게 된다고 함