TCP와 UDP에서 패킷 처리 방식 차이점





TCP vs UDP 패킷 처리 방식 차이 : 신뢰성 vs 속도

TCP와 UDP의 패킷 처리 방식 심층 비교: 신뢰성과 속도의 트레이드오프

현대 네트워크의 근간을 이루는 TCP와 UDP가 각각 패킷을 어떻게 다루는지, 그 기술적 차이와 서비스별 선택 전략을 분석합니다.

1. TCP vs UDP: 데이터 전송의 철학적 차이

TCP(Transmission Control Protocol): 신뢰를 최우선하는 통신

TCP는 데이터가 목적지에 정확하게, 순서대로 도착하는 것을 보장합니다. 이를 위해 전송 전 연결을 설정하고, 전송 중에는 패킷이 잘 도착했는지 일일이 확인하며, 손실된 패킷은 다시 보냅니다. 마치 등기 우편과 같습니다.

UDP(User Datagram Protocol): 속도를 최우선하는 통신

UDP는 ‘보냈으면 끝’이라는 방식을 취합니다. 상대방이 받을 준비가 되었는지, 패킷이 중간에 사라졌는지 관심을 두지 않습니다. 오직 최소한의 확인(Checksum)만 거친 뒤 최대한 빠르게 패킷을 던집니다. 이는 마치 일반 전단지를 뿌리는 것과 비슷합니다.

2. 패킷 처리 방식의 3가지 결정적 차이점

연결 설정 방식 (3-Way Handshake vs No Handshake)

TCP는 데이터를 보내기 전, 클라이언트와 서버가 서로 통신이 가능한지 확인하는 3-Way Handshake 과정을 거칩니다. 반면 UDP는 이러한 절차 없이 즉시 패킷을 전송하므로 초기 지연 시간(Latency)이 거의 없습니다.

데이터의 순서 및 무결성 보장 메커니즘

TCP는 각 패킷에 Sequence Number를 부여합니다. 패킷이 뒤섞여 도착하더라도 수신측에서 이 번호를 보고 원래 순서대로 재조합합니다. 또한, 수신측은 잘 받았다는 신호인 ACK(Acknowledgment)를 보냅니다. 만약 정해진 시간 내에 ACK가 오지 않으면 TCP는 해당 패킷을 즉시 재전송합니다. UDP에는 이런 기능이 전혀 없어 순서가 바뀌거나 유실되어도 애플리케이션 계층에서 별도로 처리하지 않는 한 그대로 손실됩니다.

흐름 제어(Flow Control)와 혼잡 제어(Congestion Control)

TCP는 똑똑합니다. 수신측의 처리 속도가 늦으면 전송 속도를 줄이고(흐름 제어), 네트워크망 자체가 혼잡하면 데이터 양을 조절(혼잡 제어)하여 전체 시스템의 붕괴를 막습니다. UDP는 네트워크 상황에 상관없이 일정한 속도로 데이터를 밀어넣기 때문에 혼잡 상황을 악화시킬 수 있지만, 실시간성을 유지하는 데는 유리합니다.

3. 프로토콜별 패킷 헤더 구조 비교

헤더의 복잡도는 곧 오버헤드로 이어집니다. TCP는 신뢰성을 위해 많은 정보를 담고 있는 반면, UDP는 매우 간결합니다.

항목 TCP Header UDP Header
기본 크기 20 ~ 60 Bytes 8 Bytes (고정)
주요 필드 Seq/Ack Number, Window Size, Flags Source/Dest Port, Length, Checksum
전송 오버헤드 높음 (데이터 대비 헤더 비중 큼) 낮음 (가볍고 빠름)

4. 실무 적용: 서비스 특성에 따른 선택 기준

TCP가 필수인 사례

데이터의 단 1비트 손실도 허용되지 않는 서비스에 사용됩니다.

  • HTTP/HTTPS: 웹 페이지의 텍스트나 이미지가 깨지면 안 됨
  • FTP/파일 전송: 파일의 무결성이 깨지면 실행 불가
  • 이메일(SMTP/POP3): 메시지 내용의 정확한 전달 필요

UDP가 유리한 사례

약간의 데이터 손실보다 실시간 속도와 연속성이 중요한 서비스에 사용됩니다.

  • 스트리밍(VOD/Live): 중간에 한 프레임이 깨져도 다음 장면이 나오는 게 중요함
  • 온라인 게임: 0.1초의 지연(Lag)이 승패를 결정하므로 빠른 전송이 최우선
  • VoIP/화상통화: 음성이 조금 끊겨도 실시간 대화가 유지되어야 함

5. 결론: 완벽한 프로토콜은 없다, 최적의 선택만 있을 뿐

TCP와 UDP는 상호 보완적인 존재입니다. 신뢰성 있는 데이터 전달이 목적이라면 TCP를, 성능과 실시간성이 생명이라면 UDP를 선택하는 것이 네트워크 설계의 정석입니다. 최근에는 UDP의 속도를 유지하면서도 TCP의 신뢰성을 일부 결합한 QUIC(HTTP/3) 프로토콜이 등장하는 등, 두 방식의 장점을 모두 취하려는 기술적 진보가 계속되고 있습니다.