컴퓨터 네트워크

컴퓨터 네트워크 3장- 다중화와 역다중화

으엉어엉 2024. 4. 12. 18:29
728x90

3.2 다중화와 역다중화

트랜스포트 계층 다중화(multiplexing)와 역다중화(demultiplexing)

 

프로세스는 소켓을 갖구있다.

이로 인해 네트워크에서 프로세스로 데이터를 전달하고, 프로세스로부터 네트워크 데이터를 전달하는 출입구 역할을 한다.

 

수신측 Host의 트랜스포트 계층은 실제로 데이터를 직접 프로세스로 전달하지 않는다. 이것을 소켓에게 전달한다. 식별자 포맷은 UDP인지 TCP인지에 따라 달라진다. 유일한 식별자를 가진다(포트 번호).

 

1.목적지 호스트에서의 트랜스포트 계층은 바로 아래의 네트워크 계층으로부터 세그먼트를 수신한다.

트랜스포트 계층은 호스트에서 동작하는 해당 애플리케이션 프로세스에게 이 세그먼트의 데이터를 전달하는 의무를 가진다.

2. 트랜스포트 계층은 세그먼트(데이터)를 중간 매개자인 소켓(socket)에게 전달한다.

  • 프로세스는 네트워크 애플리케이션의 한 부분으로서 소켓을 가지고 있다.
  • 이는 네트워크에서 프로세스로, 한 프로세스로부터 네트워크로 데이터를 전달하는 출입구 역할을 한다.
  • 각각의 소켓은 하나의 유일한 식별자, 포트 번호(port number)를 가진다.

 

역다중화(demultiplexing)

트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업을 말한다.

ex)집에 우편이 왔을때 이름 보고 본인에게 전달해주는 것.

 

다중화(multiplexing)

  1. 출발지 호스트에서 소켓으로 부터 데이터를 모은다.
  2. 이에 대한 세그먼트를 생성하기 위해 각 데이터에 헤더 정보로 캡슐화(encapsulation) 한다.
  3. 그 세그먼트들을 네트워크 계층으로 전달한다.

트랜스포트 계층 다중화의 두 가지 요구사항이 있다.

  1. 소켓은 유일한 식별자를 가진다.
  2. 각 세그먼트는 세그먼트가 전달될 적잘한 소켓을 가리키는 특별한 필드를 갖는다.
  • 출발지 포트 번호 필드(source port number field)
  • 목적지 포트 번호 필드(destination port number field)
  • 각각 포트번호는 16비트 정수이다.

 

 

 

역다중화 서비스의 순서

  1. 호스트의 각 소켓은 포트 번호를 할당받는다.
  2. 세그먼트가 호스트에 도착하면, 트랜스포트 계층은 세그먼트 안의 목적지 포트 번호를 검사하고, 그에 상응하는 소켓으로 세그먼트를 보낸다.
  3. 세그먼트의 데이터는 소켓을 통해 해당되는 프로세스로 전달된다.

이는 UDP의 기본적인 동작 방식과 같다.

그러나 역다중화/다중화는 TCP에서는 좀 더 많은 의미가 있다.

 

비연결형 다중화와 역다중화

UDP 소켓은 목적지 IP 주소와 목적지 포트 번호로 구성된 두 요소로 된 집합에 의해 식별된다.

따라서 만약 2개의 UDP 세그먼트가 같은 목적지 IP 주소목적지 포트 번호를 가진다면,
이 2개의 세그먼트는 같은 목적지 소켓을 통해 같은 프로세스로 향할 것이다.

 

포트번호는 무슨 목적으로 사용될까?

출발지 포트 번호는 회신 주소의 한 부분으로 사용된다.

아래 그림처럼 B가 세그먼트를 다시 A로 보내기를 원할때, B에서 A로 가는 세그먼트의 목적지 포트 번호는 A로부터 B로 가는 세그먼트의 출발지 포트 번호로부터 가져온다.

 

 

연결지향형 다중화와 역다중화

TCP 소켓

TCP 소켓은 4개 요소의 집합(four-tuple)에 의해 식별된다.

  • 출발지 IP 주소 source IP address
  • 출발지 포트 번호 source port number
  • 목적지 IP 주소 dest IP address
  • 목적지 포트 번호 dest port number

하나라도 다르면 다른 프로세서 처리한다.

 

728x90