TCP vs UDP
- TCP와 UDP는 모두 TCP/IP 모델의 '전송 계층'에 속하는 프로토콜입니다.
이 두 프로토콜은 서로 상반된 특징을 가지므로, 같이 비교해서 알아두면 좋습니다.
- TCP와 UDP를 비교하면 다음과 같습니다.
TCP | UDP | |
특징 | 연결 지향, 신뢰 지향 | 비연결 지향, 비신뢰 지향 |
제어 | 흐름 제어, 오류 제어, 혼잡 제어 | 제어 없음 |
속도 | 느림 | 빠름 |
데이터 이름 | 세그먼트 | 데이터그램 |
활용 | 문서 다운로드 | 실시간 스트리밍 |
사용 프로토콜 | HTTP 1.1, HTTP 2, HTTPs, FTP | HTTP 3, DNS, DHCP |
- 각각의 항목에 대해 좀 더 자세히 설명드리겠습니다.
1) 특징
- TCP는 연결 지향, 신뢰 지향 프로토콜이고, UDP는 비연결 지향, 비신뢰 지향 프로토콜입니다.
이는 TCP와 UDP의 차이를 만들어내는 가장 주요한 특징입니다.
TCP는 연결 지향을 위해 TCP 3-way handshake를 통해서 미리 TCP 커넥션을 수립한 후에, 네트워크 통신을 합니다.
반면, UDP는 따로 커넥션을 수립하는 사전 작업 없이 네트워크 통신을 합니다.
2) 제어
- TCP는 오류 제어, 흐름 제어, 혼잡 제어를 제공합니다. 오류 제어란 훼손된 세그먼트를 감지 및 재전송하거나, 손실된 세그먼트를 재전송하는 것을 의미합니다. 흐름 제어란 송신 측과 수신 측의 속도를 맞추는 것을 의미합니다.
반면, UDP는 오류 제어, 흐름 제어, 혼잡 제어를 제공하지 않는 단순한 프로토콜입니다.
3) 속도
- TCP는 네트워크 통신 이전에 TCP 3-way handshake와 같은 사전 작업을 하므로, 속도가 느립니다.
반면, UDP는 TCP와는 다르게 사전 작업 없이 네트워크 통신을 하므로 속도가 더 빠릅니다.
4) 데이터 이름
- TCP는 전송할 데이터에 TCP 헤더를 캡슐화하는데, TCP 헤더가 캡슐화된 데이터를 '세그먼트'라고 합니다.
반면, UDP는 전송할 데이터에 UDP 헤더를 캡슐화하는데, UDP 헤더가 캡슐화된 데이터를 '데이터그램'이라고 합니다.
5) 활용
- TCP는 문서 다운로드와 같이 데이터의 신뢰성이 중요한 경우에 활용되면 좋습니다.
반면, UDP는 실시간 스트리밍과 같이 데이터의 전송 속도가 중요한 경우에 활용되면 좋습니다.
6) 사용 프로토콜
- TCP는 HTTP 1.1, HTTP 2, HTTPs, FTP 등에서 주로 사용되고,
UDP는 HTTP 3, DNS, DHCP 등에서 주로 사용됩니다.
참고
기출로 대비하는 개발자 전공 면접
모두의 네트워크