Shine's dev log

Transport Layer 개요 (Multiplexing, Demultiplexing) 본문

컴퓨터 네트워크

Transport Layer 개요 (Multiplexing, Demultiplexing)

dong1 2021. 2. 4. 15:40

0. Transport Layer

 

앞서 살펴본 TCP/IP 프로토콜 스택에서 Application Layer 바로 아래에 위치하는 Transport Layer에 대해 알아보자. 

 

Transport Layer

 

 

 

1. Transport Layer의 역할

 

Transport Layer의 역할은 크게 두가지가 있다.

 

1) Source(출발지) 부터 Destination(도착지) 까지 패킷이 제대로 전송될 수 있도록 함

2) Application Layer에서 만든 데이터를 일정한 크기로 자름

 

이처럼 Transport Layer는 실질적으로 패킷들이 출발지에서 도착지까지 제대로 전송될 수 있도록 하는 프로토콜을 제공하며, 데이터를 패킷단위로 자르는 역할 또한 수행한다.

 

 

 

2. Transport Layer 프로토콜 종류

 

물론 세부적으로 들어가면 Transport Layer에도 여러가지 프로토콜들이 존재하지만, 대표적으로 두가지 프로토콜이 있다.

 

  • TCP (Transmission Control Protocol)

- Reliable, in-order delivery : 신뢰성 있게, 순서대로 전송한다.

- Connection Setup : 데이터를 보내기 전에 상대방의 상태를 확인하고 보낸다.

- Congestion control : 네트워크 상에서 패킷들이 몰려 발생하는 혼잡을 피하기 위해 보내는 패킷 양을 조절

- Flow control : 라우터와 받는 수신자의 상황을 봐서 보내는 패킷 양을 조절

- Delay나 Bandwidth를 건드리지는 못한다.

 

  • UDP (User Datagram Protocol)

- 패킷을 어떤 수신자의 어떤 서비스가 받아야 하는지(IP주소, Port 번호), 패킷이 중간에 망가지지는 않았는지만 처리한다.

- 나머지 기능은 제공 X

 

 

 

3. Multiplexing, Demultiplexing

 

어플리케이션들이 Transport Layer의 프로토콜을 이용하기 위해서는 프로세스마다 Socket을 이용해야 한다고 했다.하지만, 컴퓨터에는 여러개의 어플리케이션들이 돌아가고, 각각의 어플리케이션들은 하나 이상의 Socket을 생성할 수 있다. 따라서 Transport layer 입장에서는 여러개의 Socket에서 데이터들이 쏟아지는 형태가 된다.이렇게 여러 어플리케이션의 Socket들이 데이터를 송/수신하므로 필요한 개념이 바로 Multiplexing과 Demultiplexing이다.

 

1) Multiplexing

여러 어플리케이션의 Socket들로부터 들어오는 데이터를 수집하여, 패킷으로 만들어 하위 레이어로 전송하는 것

 

Multiplexing

 

2) Demultiplexing

하위 레이어로부터 수신된 패킷을 올바른 Socket으로 전송하여 올바른 어플리케이션에게 전송하는 것.

이때 정확한 어플리케이션의 Socket으로 전달해주기 위해 포트넘버를 활용한다.

 

Demultiplexing

 

내용을 정리해보면,

 

1. Transport Layer는 패킷이 제대로 전송될 수 있도록 하는 프로토콜들의 집합으로, 데이터를 일정 크기로 자르는 역할도 수행한다.

2. 여러 소켓에서 나온 데이터를 전송할때는 Multiplexing을, 받은 패킷을 적절한 소켓으로 보내줄때는 Demultiplexing을 적용한다.

 

위 내용은 공부하며 작성한 것으로, 오류가 있을 수 있습니다.