TCP와 UDP는 인터넷의 두 핵심 전송 계층 프로토콜입니다. TCP는 연결 지향·신뢰성·순서 보장을 제공하고, UDP는 비연결·최소 오버헤드로 빠르게 전송합니다.
TCP는 '정확하지만 무겁고', UDP는 '가볍지만 보장이 없다'는 트레이드오프로 요약됩니다.
TCP는 3-way 핸드셰이크로 연결을 맺고, 순서 번호·확인응답(ACK)·재전송으로 데이터가 손실·순서 뒤바뀜 없이 도착하도록 보장하며, 혼잡 제어로 네트워크 상황에 맞춰 속도를 조절합니다. 대신 이 신뢰성 장치들이 지연과 오버헤드를 만들고, 순서 보장 특성이 Head-of-Line 블로킹의 원인이 됩니다. 웹(HTTP/1.1·2), 이메일, 파일 전송처럼 정확성이 중요한 곳에 씁니다.
UDP는 핸드셰이크 없이 데이터그램을 던지듯 보냅니다. 손실·중복·순서 뒤바뀜을 프로토콜이 책임지지 않는 대신 지연이 낮고 가볍습니다. 실시간 스트리밍, 게임, VoIP, DNS 조회처럼 '조금 잃더라도 빠른 것'이 나은 경우에 적합합니다. 흥미롭게도 QUIC은 UDP의 가벼움 위에 신뢰성·순서·암호화를 스트림 단위로 새로 구현해, TCP의 장점을 취하면서 그 한계(HoL 블로킹, 느린 진화)를 우회했습니다.