[Network] Transport Layer
CS/Network

[Network] Transport Layer

Transport Layer 특징

  • process - process transfer 프로세스 대 프로세스 전송
  • multiplexing, demultiplexing - socket
  • reliable data transfer 신뢰성 있는 데이터 전송
  • flow control 흐름 제어
  • congestion control 혼잡 제어


process - process 통신

Network layer의 IP는 호스트까지 전달 가능하지만

호스트 안의 각 프로세스 까지 전달하기 위해 Transport layer 프로토콜이 필요합니다.


multiplexing, demultiplexing

통신에서 쓰이는 용어들로

multiplexing이란 두개 이상의 저수준의 채널들을 하나의 고수준의 채널로 통합하는 과정입니다.

demiltiplexing은 역다중화로 원래의 채널 정보들을 추출할 수 있게 합니다.

Connectionless demultiplexing (UDP)

신뢰성이 없는, 연결을 하지않은 전송 방식의 demux 과정입니다.

socket이 1개인 것이 특징입니다.

어떤 port가 와도 같은 socket을 타고 올라갑니다.

Connection-oriented demultiplexing (TCP)

연결을 지향하는 전송 방식의 demux 과정입니다.

한 프로세스 당 하나의 socket이 별도로 열리며 1대1 통신 파이프라인이 형성됩니다.

이때, 파이프라인을 지키기 위해 port번호와 IP주소를 다 알고 전송해야 합니다.

 

여기서 프로세스를 1개로 하되 여러 socket들을 만들어 관리하는 것을

threaded server라고 합니다.

웹 서버를 만들어 통신하려 할 때

login 로직을 구현한다면, 해당 토큰을 가진 사람만 다음 페이지로 넘어가서 수행할 수 있는 권한을 부여하게 해야합니다.

이를 위해서는 TCP로 설계하여 1대1 신뢰성 통신을 만든 후 진행할 수 있습니다.


reliable data transfer

종단 간 신뢰성 있는 데이터 통신을 지원합니다.

이에 대해서는 TCP와 UDP의 포스팅을 참고해주세요


flow control

network layer에서 라우팅 알고리즘에 의해

패킷들이 서로 다른 경로를 타고 오는 경우가 있습니다.

이때 Destination에서는 패킷을 받는 순서가 달라지는데

이를 원래대로 복구시키는 기능을 가지고 있습니다.


congestion control

라우터의 storage(queue)가 꽉 찼을 경우

이후에 오는 패킷을 drop 시킵니다.


참조

대학교 네트워크프로토콜 강의

'CS > Network' 카테고리의 다른 글

[Network] RDT protocol와 Pipelined Protocol(Go-Back-N, Selective Repeat)  (0) 2022.11.24
[Network] UDP  (0) 2022.10.26
[Network] ICMP  (0) 2022.10.21
[Network] 단위 정리  (0) 2022.10.18
[Network] NAT, Port-Forwarding  (0) 2022.10.18