다중화, 역다중화

JSG·2024년 3월 20일
0

Socket(소켓)

  • App layer에서 TCP로 Message를 전달할 때, Socket을 통해 전달한다.
    • App과 Trans는 서로 알 필요가 없음
      -> 프로그램 간소화
  • UDP 소켓
    • 목적지 IP와 목적지 포트번호로 식별된다.
      -> 출발지가 달라도 목적지가 같으면 하나의 소켓을 통해 전달됨.
  • TCP 소켓
    • 출발지의 IP와 포트번호, 목적지의 IP와 포트번호로 식별된다.
      -> 출발지와 목적지가 모두 같은 Segment만 하나의 소켓을 통해 전달된다.

Multiplexing(다중화)

  • app에서 socket에게 Message를 줄 때 묶는 것

Demultiplexing(역다중화)

  • Trans가 socket에게 Segment를 줄 때 언박싱하는 것

Multiplexing, Demultiplexing 기본 과정

  • host1 -> host2
    • P3의 data를 Multiplexing하여 socket에게 전달함
    • host2의 socket이 받은 data를 Demultiplexing 하여 P1에게 전달함
  • host3 -> host2
    • P4의 data를 Multiplexing하여 socket에게 전달함
    • host2의 socket이 받은 data를 Demultiplexing 하여 P2에게 전달함

UDP의 다중화, 역다중화 과정

  • UDP는 목적지IP와 목적지 포트번호만으로 패킷을 식별하기 때문에, A와 B에서 보낸 패킷들이 하나의 소켓으로 전달된다.

TCP의 다중화, 역다중화 과정

  • TCP는 송수신자의 IP와 송수신자의 포트번호 총 4가지 정보로 패킷을 식별하기 때문에, 목적지가 같아도 출발지가 다르면 각각 다른 소켓으로 전달된다.
  • 이런 특징으로 인해 프로세스의 개수가 많아져 메모리 낭비가 심해진다.
    • 이를 방지하기 위해 멀티쓰레드 개념이 생겼다.

0개의 댓글

관련 채용 정보