TCP와 UDP
전송 프로토콜 비교
TCP는 데이터를 보내고 수신 확인(ACK)을 받아 정확성을 보장하고, UDP는 확인 없이 보내서 빠르다. 웹/파일 전송은 TCP, 영상 스트리밍/게임은 UDP를 쓴다.
Basics
개념
TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 둘 다 IP 위에서 동작하는 전송 계층 프로토콜이다. 차이는 "데이터가 제대로 도착했는지 확인하느냐"에서 갈린다. TCP는 확인을 하고 UDP는 하지 않는다. 이 단순한 차이가 속도·용도·신뢰성의 차이로 이어진다.
왜 둘이 필요한가
어떤 통신은 정확성이 더 중요하고(웹페이지, 파일 전송), 어떤 통신은 실시간성이 더 중요하다(게임, 음성 통화). 모든 통신에 확인-재전송을 강제하면 실시간 통신이 버벅이고, 아무것도 확인하지 않으면 파일 전송은 깨진다. 그래서 두 가지를 나눠 쓰는 것.
TCP
- 데이터를 보내고 "잘 받았어?"(ACK) 확인하는 프로토콜
- 확인 못 받으면 재전송
- 카톡의 읽음 확인 같은 것
- 정확성이 중요할 때 사용 (파일 전송, 웹페이지)
- 연결 수립이 필요 (3-way handshake)
UDP
- 그냥 보내고 끝, 확인 안 함
- 패킷이 분실되거나 순서가 바뀌어도 신경 안 씀
- 빠른 게 중요할 때 사용 (유튜브 스트리밍, 게임, VoIP)
- 연결 수립 없음 (컨넥션리스)
TCP vs UDP
| TCP | UDP | |
|---|---|---|
| 확인 | ACK로 수신 확인 | 확인 안 함 |
| 재전송 | 분실 시 재전송 | 재전송 안 함 |
| 순서 보장 | O | X |
| 속도 | 느림 (확인 비용) | 빠름 |
| 연결 | 3-way handshake | 없음 |
| 사용 예 | HTTP, SSH, 파일 전송 | DNS, 스트리밍, 게임 |
더 보기
- DNS — DNS는 기본적으로 UDP를 쓰지만 응답이 크면 TCP로 fallback
- Upstream-Downstream-Hop — 패킷이 네트워크를 지나는 흐름 용어