본문 바로가기

Computer Network/Ch3) Transport layer

Ch3-2) Multiplexing and Demultiplexing

 

  • Multiplexing and demultiplexing
    • Multiplexing in sender
      • transport header을 추가해 multiple socket에 data를 전달하는 과정
    • Demultiplexing in reciever
      • transport header info를 참고해 올바른 socket에 segment를 전달하는 과정
      •  

 

 

 

 

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가 다르기 때문 !