Multiplexing & Demultiplexing

박제구·2021년 2월 18일
0

Network

목록 보기
5/6
post-thumbnail

🧩 Multiplexing 이란?

  • Application layer 에서 패킷이 소켓에 의해 Transport layer 로 전달 될 때, 여러 소켓의 패킷을 수집하여 하나의 세그먼트에 캡슐화하여 Network layer로 전달하는 과정
즉, 멀티 플렉싱은 트랜스포트 레이어에서 여러 소켓의 데이터들을 처리하는 과정 ( 트랜스포트 헤더에 추가 )
이라고 볼 수 있다.

🧩 Demultiplexing 이란?

  • Transport layer 에서 세그먼트가 Application layer 로 전달 될 때, 올바른 소켓으로 전달 하는 과정
  • 어떻게 올바른 소켓으로 전달 할까? → 세그먼트의 헤더정보를 통해 전달

🧩 Demultiplexing의 동작

  • 데이터 그램(Network layer의 패킷)에는 source IP, destination IP 주소를 갖고 있다.
  • 데이터 그램은 하나의 세그먼트(Transport layer의 패킷)을 포함 한다.
  • 세그먼트에는 위 이미지와 같이 source port#, destination port# 를 갖고 있다.

→ host는 IP address & port numbers 를 통해 세그먼트를 적절한 소켓에 전송한다.

🧩 Connectionless demux

  • 비연결형 demultiplexing 으로 UDP 에서 발생한다.

  • Source IP address 또는 Source port number 가 달라도 destination port number 만 같으면 같은 소켓으로 전달 된다.

    → 즉, 출처와 상관없이 Destination IP address, Destination Port number만 고려한다.

🧩 Connection-oriented demux

  • 연결형 demultiplexing 으로 TCP 에서 발생한다.

  • Web server는 동시에 많은 TCP socket을 지원하고, 각 연결된 클라이언트마다 서로 다른 소켓을 갖는다.
  • TCP socket은 4-tuple 로 식별된다.
    • Source IP address
    • Source port number
    • Destination IP address
    • Destination port number

References


Transport Layer Multiplexing and Demultiplexing

Computer Networking: A Top-Down Approach (6th Edition)

profile
안녕하세요!

1개의 댓글

comment-user-thumbnail
2021년 3월 23일

좋은 글 감사합니다 팥제구씨

답글 달기