TCP vs UDP

신뢰성은 공짜가 아니다

TCP는 손실 복구와 순서 보장을 전송 계층에서 맡지만, 연결 상태와 재전송 지연이 생깁니다. UDP는 최소 기능만 제공하고 필요한 보장은 애플리케이션이 직접 설계합니다.

TCP: 연결 기반, 순서 있는 바이트 스트림
UDP: 연결 없는 데이터그램, 메시지 경계 유지
핵심 질문: 늦게 완전한 데이터가 나은가, 빠른 최신 데이터가 나은가?
TCP

전송 계층이 보장

연결

3-way handshake와 연결 상태 유지

신뢰성

ACK, 재전송, 중복 제거

순서

바이트 스트림을 순서대로 애플리케이션에 전달

제어

흐름 제어와 혼잡 제어 포함

비용: RTT, 버퍼, 상태, 재전송 지연
UDP

애플리케이션이 선택

연결

핸드셰이크 없이 바로 데이터그램 전송

신뢰성

전달·순서·중복 보장은 기본 제공하지 않음

경계

보낸 데이터그램 단위가 수신 단위로 남음

설계

ACK, 재전송, 최신 값 우선 정책을 필요한 만큼 구현

비용: 앱 설계 복잡도, 손실/순서 처리 책임