IT 지식/네트워크(Network)

컴퓨터 네트워크 - Transport Layer

나아가는중 2021. 12. 1. 18:34
반응형

Transport Layer

Transport layer의 서비스와 프로토콜은 송수신 호스트상의 응용프로세스간의 논리적인 연결을 제공한다. Tranport 프로토콜은 송수신 종단 단말(end-system)에서만 수행된다. 중간의 라우터 스위치와 같은 네트워크 장비에는 physical, data link, network layer까지 구현될 수 있으나, tranport와 application layer는 종단 단말에서만 수행된다.

 

송신측: application layer에서 전달되어진 메시지를 세그먼트(segments) 단위로 나누어 네트워크층으로 전달한다.

수신측: 전달받은 세그먼트들을 메시지로 재결합하고 application layer로 전달한다.

 

인터넷에서 주로 사용하는 대표적인 transport protocol로는 TCP와 UDP가 있다. TCP와 UDP에서 여러 기능을 제공하지만, 둘 모두 지연(delay)와 대역폭(bandwith) 기능은 제공하지 않는다.

 

Multiplexing / Demultiplexing

Transport layer에서는 multiplexing과 demultiplexing 기능을 제공한다.

 

Multiplexing

송신측 호스트의 transport layer가 소켓으로부터 데이터를 받아 헤더를 붙여 세그먼트를 만들어 network layer로 보낸다. Application layer에 여러 프로세스와 그에 대응하는 여러 개의 소켓이 존재할 수 있는데 여러 소켓을 지원한다.

 

Demutilplexing

수신측 호스트의 transport layer에서 수신된 세그멘트들을 올바른 소켓으로 전달해주는 행위이다.

 

Transport layer에서 Network layer에서 전송한 IP datagrams을 수신 받는다. 각 datagram은 송신 IP 주소와 목적지 IP 주소를 가진다. 각 datagram은 1개의 transport layer 세그먼트를 가지고 있으며 세그먼트는 송신 포트 번호와 목적지 포트 번호를 가지고 있다. 수신측 호스트는 IP 주소와 포트 번호를 이용하여 적절한 소켓이 이 세그먼트를 전달한다.

 

아래에는 TCP와 UPD에서의 demultiplexing이다. 소켓 프로그래밍과 TCP와 UDP 소켓 프로그래밍에 대해 기본지식이 없으면 이해하기가 어렵다.

https://dlee0129.tistory.com/193

 

컴퓨터 네트워크 - Socket program - TCP(Web) & UDP

Socket 프로세스 간에 메시지 송수신시에 소켓을 통해 전달한다. 소켓은 애플리케이션 프로세스와 종단 Transport protocol(TCP or UDP)의 데이터 전달 통로의 역할을 한다. 프로세스는 소켓을 통해 Transpor

dlee0129.tistory.com

 

Demultiplexing - UDP

UDP에서 클라이언트가 소켓을 생성할때에 명시적으로 포트번호를 주어 생성할 수 있으며, 일반적인 경우 transport layer에서 포트 번호를 자동 생성하게 한다. 반면 서버는 소켓을 생성할때에 명시적으로 포트 번호를 주어야 한다. 소켓은 목적지 IP 주소와 포트 번호 두 개의 tuple만을 가지고 있다.

 

UDP에서는 서버는 포트번호 한 개에는 단 하개의 소켓만이 존재하여, UDP 세그먼트가 서로 다른 송신 IP 주소 그리고/혹은 포트 번호를 가지고 있어도 목적지의 IP주소와 포트 번호가 같으면 동일한 프로세스로 전달된다. 송신 IP 주소와 포트 번호는 datagram을 리턴할 때의 리턴 주소 역할만을 하는 식별자이다.

 

Demultiplexing - TCP

수신 호스트(서버)는 TCP 연결마다 소켓이 생성되어 동일한 포트번호를 가진 복수개의 소켓이 존재할 수 있다. 그렇기 때문에 TCP에서는 소켓 구분을 위해 송신 IP 주소, 포트 번호, 목적지 IP 주소, 포트 번호 4개의 tuple이 필요로 한다. 송신 포트번호가 같아도 송신 IP 주소가 다르거나 송신 IP 주소가 같아도 송신 포트 번호가 다르면 다른 소켓으로 전달된다.

반응형