- Multiplexing and demultiplexing
- Multiplexing in sender
- transport header을 추가해 multiple socket에 data를 전달하는 과정
- Demultiplexing in reciever
- transport header info를 참고해 올바른 socket에 segment를 전달하는 과정
- Multiplexing in sender
How multiplexing work : Conectionless multiplexing
- 우선, Host는 IP datagram을 받음
- 각 Datagram은 source IP address와, destination IP address를 보유하고 있음
- 각 Datagram은 개당 하나의 segment carry
- 이때 각 segment가 source port #와 destination port #를 가지고있음
- Host는 이 IP address롸 port #를 통해서 올바른 socket에 data 전달
EX) Socket programming
예를들어,
socket programming에서, socket을 만들 떄 반드시 포트번호를 명시하게 되어있음
- 만약 UDP로 데이터를 전달하기 위해 Datagram을 만든다면, source IP address/port#는 작성 x
- destination IP address 명시
- destination port # 명시
→ 따라서, 만약 2개의 UDP segment가 같은 IP address와 port#를 가진다면, 이 2개의 segment는 같은 socket을 통해서 같은 process에 전달될 것이다.
- 그렇다면 위의 사진에 있었던 source port # field는 어따 쓰나여?
→ 바로 ‘회신 주소’로 사용! (응답할 필요가 있는 경우엔)
예를들어, B가 A에게 데이터를 전송하고 싶을 때 B에서 A로 가는 segment의 destination port #은
A에서 B로 가는 segment의 source port #로부터 가져온다.
Connection-oriented demultiplexing
- TCP socket은 다음과 같은 4가지 field를 식별한다
- source IP address
- source port #
- destination IP address
- destination port #
⇒ Reciever은 이 4가지 field를 모두 참고해 적절한 socket에 data를 전달한다.
- server은 동시에 여러가지 TCP socket support 가능
- 각각의 socket은 다른 client와 연결
Ex) Connection-oriented demultiplexing
위 그림에는 B라는 Ip address가 3개나 존재하는데, 다 다른 socket으로 나뉘어짐
→ 모두 같은 IP address와 destination port #를 갖고 있지만, source IP address가 다르기 때문 !
'Computer Network > Ch3) Transport layer' 카테고리의 다른 글
Ch3-5) Connection-oriented transport: TCP (1) | 2024.10.27 |
---|---|
Ch3-4) Principles of reliable data transfer (0) | 2024.10.27 |
Ch3-3) Connectionless Transport: UDP (0) | 2024.10.27 |
CH3-1) Transport Layer Service (0) | 2024.10.27 |