"깊이"가 다른 게임개발자 허민영

유저에서 게임까지, 철학에서 코딩까지, 본질을 보는 게임개발

소프트웨어 공학/코딩

TCP와 UDP비교

허민영 2025. 4. 25. 18:50

TCP와 UDP는 모두 전송 계층(Transport Layer)에 속하는 프로토콜이며, 네트워크 상에서 데이터를 송수신할 때 각각의 목적과 특성에 따라 선택적으로 사용됩니다. 이 둘은 설계 철학이 매우 다르며, 안정성과 속도를 놓고 절충하는 구조입니다.


1. 기본 개념

항목 TCP (Transmission Control Protocol) UDP (User Datagram Protocol)
연결 방식 연결지향(Connection-Oriented) 비연결지향(Connectionless)
신뢰성 보장됨 (패킷 손실시 재전송) 보장 안됨 (손실 무시)
순서 보장 O (전송 순서 유지) X (순서 보장 안함)
흐름 제어 있음 없음
오류 검사 있음 있음 (간단함)
속도 상대적으로 느림 매우 빠름
용도 파일 전송, 웹, 이메일 등 실시간 스트리밍, 게임, DNS 등

2. TCP의 주요 특징

TCP는 데이터의 정확성과 순서를 중시합니다. 주요 동작은 다음과 같습니다:

  • 3-Way Handshake: 연결을 시작하기 위해 송신자와 수신자가 세 단계의 과정을 통해 연결을 확립합니다.
  • 패킷 순서 보장: 패킷에 순서 번호(Sequence Number)를 부여하여 순서대로 재조립합니다.
  • 패킷 손실 처리: 수신자가 ACK(수신 확인)를 하지 않으면 재전송합니다.
  • 흐름 제어: 수신자의 버퍼 상태를 고려하여 전송 속도를 조절합니다.
  • 혼잡 제어: 네트워크의 혼잡 상황을 감지하고 스스로 트래픽을 줄이는 알고리즘(Congestion Control)을 포함합니다.

→ 결과적으로, 신뢰성이 높은 대신 지연이 발생할 수 있습니다.


3. UDP의 주요 특징

UDP는 빠른 전송을 우선시하는 프로토콜입니다:

  • 연결 없음: 송신자는 수신자의 준비 여부를 확인하지 않고 바로 전송합니다.
  • 오버헤드 없음: 연결 설정/유지 절차가 없으므로 빠릅니다.
  • 손실 무시: 패킷이 손실되어도 재전송하지 않으며, 순서도 보장하지 않습니다.

→ 결과적으로, 실시간성은 높지만 신뢰성이 떨어지는 구조입니다.


4. 사용 예시

  • TCP 사용 사례
    • 웹 브라우징(HTTP, HTTPS)
    • 이메일 전송(SMTP, IMAP, POP3)
    • 파일 다운로드(FTP)
  • UDP 사용 사례
    • 온라인 게임
    • 음성/영상 스트리밍(VoIP, IPTV)
    • DNS 요청

5. 결론 및 선택 기준

  • 데이터의 신뢰성과 순서가 중요할 때: TCP
    • 예: “은행 거래, 웹페이지 불러오기, 로그인 요청”
  • 실시간성과 속도가 더 중요할 때: UDP
    • 예: “총소리가 밀리면 안 되는 FPS 게임, 화상 회의”

TCP는 정확성을, UDP는 속도를 최우선으로 합니다. 따라서 네트워크 설계 시 사용 목적에 따라 신중한 선택이 필요합니다.