Transport layer가 제공하는 서비스
logical communication(논리적 통신)을 제공한다. 이는 서로 다른 두 호스트는 실질적으로 네트워크 레이어를 통해 연결되지만 application에 있는 프로세스가 서로 연결되어 있다고 느끼게 해준다. (process to process 통신을 제공한다.)
Transport Protocol(이하 TP)에서 Sender는 application messages를 세그먼트로 나누어 네트워크 레이어로 전달하면, Receiver는 세그먼트를 message로 다시 재조립해 application layer로 전달하는 방식으로 작동한다.
TCP와 UDP 두 가지 방식이 있다.
작동 방식을 조금 더 자세히 보자.
Sender에서 application layer에서 message를 전달받으면 먼저 세그먼트 헤더 필드의 값을 결정한다. 세그먼트 헤더 필드에는 목적지 포트 번호 등이 들어간다.(multiplexing) 메시지에 헤더필드를 붙여 세그먼트를 만들고, 이를 Network layer(IP)로 보낸다.
Receiver에서 Network layer(IP)로부터 세그먼트를 받으면, 헤더 필드를 확인하여 포트 번호에 맞는 적절한 소켓을 찾고 메시지를 추출하여 해당 소켓을 통해 application layer로 전달한다.(demultiplexing)
위에서 transport layer의 작동 방식에 크게 TCP, UDP 두 가지가 있다고 하였는데 각각의 특성은 다음과 같다.
TCP
1. Reliable delivery(신뢰성 있는 전송)
데이터 손실, 손상, 중복 전송을 방지하고 정확히 한 번만 순서에 맞게 전송되도록 한다. (ACK, Seq, 재전송, 체크섬 등)
2. 혼잡 제어
전송 속도를 조절하여 네트워크 혼잡을 방지하고 과부하로 인한 패킷 손실을 막는다. (Conjestion window, slow start, conjestion avoidance)
3. 흐름 제어
데이터의 전송 속도를 조절해 수신자의 윈도우 버퍼(buffer)가 오버플로우 되지 않도록 한다. (Window size)
4. Connection setup
3-way handshake를 통해 미리 연결되어 있어야 한다. (SYN-ACK 패킷)
5. byte stream service
데이터를 블록 단위가 아닌 연속적인 흐름으로 처리(on-line)
UDP(User Datagram Protocol)
신뢰성을 보장하지 않고, 네트워크 계층의 IP와 서비스 모델이 동일하다.(3계층의 데이터그램에서 포트번호만 추가됨)
그래서 세그먼트가 아닌 데이터그램으로 부르기도 한다.
공통점
둘 모두 최대 딜레이 시간이나 일정 대역폭 이상의 전송량이 보장되지 않는다.
'cs > 데이터통신' 카테고리의 다른 글
IP Datagram format (0) | 2024.11.30 |
---|---|
Network layer (1) (0) | 2024.11.30 |
Congestion control (0) | 2024.11.30 |
TCP State transition diagram (0) | 2024.11.30 |
TCP RTT(Round Trip Time)과 3-way handshake (0) | 2024.11.30 |