본문 바로가기
네트워크

[네트워크] 3.2 다중화와 역다중화

by Lizardee 2023. 10. 12.

▶ 트랜스포트 계층의 다중화(MUX), 역다중화(DEMUX)

트랜스포트 계층의 다중화(MUX), 역다중화(DEMUX)

: 네트워크 계층이 제공하는 호스트 대 호스트 전달 서비스에서, 호스트에서 동작하는 애플리케이션에 대한 프로세스 대 프로세스 전달 서비스로 확장하는 것

  1. 송신 측: 애플리케이션 --> 트랜스포트 --> 네트워크 --> 데이터 링크 --> 물리 ----- 다중화(multiplexing)
  2. 수신 측: 물리 --> 데이터 링크 --> 네트워크 --> 트랜스포트 --> 애플리케이션 ----- 역다중화(demultiplexing)
  3. 수신 측: 애플리케이션 --> 트랜스포트 --> 네트워크 --> 데이터 링크 --> 물리
  4. 송신 측: 물리 --> 데이터 링크 --> 네트워크 --> 트랜스포트 --> 애플리케이션
  • 다중화(multiplexing): 송신 측 트랜스포트 계층에서 소켓을 이용해 데이터를 모으고 이에 대한 세그먼트를 생성하기 위해, 각 데이터의 헤더 정보로 캡슐화하고, 그 세그먼트들을 네트워크 계층으로 전달하는 작업
  • 역다중화(demultiplexing): 수신 측 트랜스포트 계층 세그먼트 데이터를 올바른 소켓(애플리케이션 계층)으로 전달하는 작업

 

트랜스포트 계층 역다중화(demultiplexing; 트랜스포트 --> 애플리케이션)에는 다음 두 가지 요구사항이 있다.

  • 소켓은 유일한 식별자를 갖는다. 
  • 각 세그먼트는 세그먼트가 전달될 적절한 소켓을 가리키는 필드를 갖는다.
    : 출발지 포트 번호 필드(source port number filed), 목적지 포트 번호 필드(destination port number filed)
  1. 호스트의 각 소켓은 포트 번호를 할당받는다.
  2. 그리고 세그먼트가 호스트에 도착하면, 트랜스포트 계층은 세그먼트 안의 목적지 포트 번호를 검사하고, 상응하는 소켓으로 세그먼트를 보내게 된다.
    --> 세그먼트의 데이터는 소켓을 통해 해당되는 프로세스로 전달된다.

트랜스포트 계층 세그먼트에서의 출발지와 목적지 포트 번호 필드

 

1) 비연결형 다중화와 역다중화 (UDP)
  • UDP 소켓이 생성될 때, 트랜스포트 계층은 포트 번호를 소켓에게 자동으로 할당한다.

1) 비연결형 다중화와 역다중화 (UDP)

UDP 소켓 9157을 가진 호스트 A의 프로세스가 호스트 B의 UDP 소켓 6428을 가진 프로세스에게 애플리케이션 데이터 전송을 원한다고 가정하자.

  1. 호스트 A의 트랜스포트 계층은 애플리케이션 데이터, 출발지 포트 번호(9157), 목적지 포트 번호(6428), 그리고 2개의 다른 값을 포함하는 트랜스포트 계층 세그먼트를 생성한다.
  2. 트랜스포트 계층은 만들어진 세그먼트를 네트워크 계층으로 전달한다.
  3. 네트워크 계층은 세그먼트를 IP 데이터그램으로 캡슐화하고, 최선형 전달 서비스로 세그먼트를 수신 호스트로 전달한다.
  4. 이제 이 세그먼트가 수신 호스트 B에 도착하면, 수신 호스트는 세그먼트 안의 목적지 포트 번호(6428)을 검사하고, 그 세그먼트를 포트 6428로 식별되는 소켓에 전달한다.
    **호스트 B에 여러 프로세스가 수행될 수 있다는 것에 유의하라. 여러 프로세스들은 각각 UDP 소켓과 그와 연관된 포트 번호를 갖는다. 네트워크로부터 트랜스포트 계층으로 UDP 세그먼트들이 도착하면, 호스트 B는 세그먼트의 목적지 포트를 검사하여 세그먼트를 적절한 소켓으로 보낸다. (역다중화)

 

  • UDP 소켓은 목적지 IP 주소, 목적지 포트 번호로 구성된 집합에 의해 식별된다.
    이러한 결과로, 만약 2개의 UDP 세그먼트가 같은 목적지 IP 주소, 목적지 포트 번호를 가지면, 2개의 세그먼트는 같은 목적지 소켓을 통해 같은 프로세스로 향할 것이다.

 

2) 연결지향형 다중화와 역다중화 (TCP)
  • TCP 소켓은 4개의 요소의 집합 즉, (출발지 IP 주소, 출발지 포트 번호, 목적지 IP 주소, 목적지 포트 번호)에 의해 식별된다.
    따라서 네트워크로부터 호스트에 TCP 세그먼트가 도착하면, 호스트는 해당되는 소켓으로 세그먼트를 전달(역다중화)하기 위해 4개의 값을 모두 사용한다. 특히, UDP와는 달리, 다른 출발지 주소 또는 다른 출발지 포트 번호를 가지고 도착하는 2개의 TCP 세그먼트는 2개의 다른 소켓으로 향하게 된다.

 

 

웹 서버와 TCP