Computer Science/Computer Network

TCP vs UDP

DongHo 2023. 5. 20. 07:51

TCP vs UDP

 

TCP(Transmission Control Protocol)

1. Connection-oriented Service

- 실제 메시지를 보내기 전에 연결 준비과정 존재(Handshaking Procedure)합니다.
- Handshaking Phase 이후에 소켓을 통해 Full-duplex Connection진행합니다.
- Application이 메시지 전송을 완료하면 Connection을 끊습니다.

 

2. Reliable Data Transfer Service

- Tx에서 보낸 패킷이 Rx에 도착할 때까지의 안정성을 보장하는 서비스(에러 X, 올바른 순서로 전송)

 

3. Congestion Control

패킷 전송 속도 변화의 핵심원인 : 네트워크 복잡도
네트워크 컨디션을 체크하면서 Tx 패킷 전송 속도(Transmission Data Rate)를 조절하는 서비스입니다.

 

4. Flow Control

패킷 전송 속도 변화의 핵심원인 : Rx의 읽기 속도, 버퍼 상황
Tx에서 보낸 패킷이 Rx의 Transport Layer에 도착했을 때, Transport Layer는 패킷을 Application Layer로 바로 전송하지 않고 Transport Layer와 Application Layer 사이에 있는 버퍼에 패킷을 사용합니다. 이후, Application Layer가 해당 버퍼에서 패킷을 읽어갑니다.
이때, 버퍼가 가득차면 Rx의 Transport Layer가 Tx의 Tranport Layer로 천천히 보내라는 메시지를 전송합니다.
Tx의 Tranport Layer가 Transmission Data Rate를 낮춥니다.
이것을 Tx & Rx Speed Matching이라고 하는데, Rx에서의 처리능력이 빠르면 Tx에서의 패킷 전송속도도 빨라진다는 의미입니다.

 

Flow Control vs Congestion Control

  Flow Control Congestion Control
공통점 Tx의 Data Rate를 조절합니다.
차이점 Rx의 읽기 속도와 버퍼 상황에 따라 Data Rate를 조절됩니다. 네트워크 복잡도에 따라 Data Rate를 조절합니다.

 

UDP(User Datagram Protocol)

1. Connectionless Service

- No Handshaking proecdure

 

2. Unreliable Data Transfer Service

- 에러가 없다는 보장을 할 수 없습니다.

 

3. No Congestion Control

- 복잡도가 증가하면 일부 패킷은 그냥 Drop됩니다.
  (복잡도에 영향받지 않습니다.)

 

 

 

TCP vs UDP

  TCP UDP
방식 Connection- oriented Connectionless
Guaranted(Reliable)
delivery 여부
O X
Congestion Control 여부 O X
Flow Control 여부 O X

 

 

'Computer Science > Computer Network' 카테고리의 다른 글

DNS(Domain Name System)  (0) 2023.05.20
FTP(File Transfer Protocol)  (0) 2023.05.20
쿠키(Cookie)  (0) 2023.05.20
OSI 7 Layer  (0) 2023.05.19
인터넷과 프로토콜  (0) 2023.05.19