네트워크 | UDP

Faithful Dev·2025년 1월 29일

컴퓨터 공학

목록 보기
71/81

UDP(User Datagram Protocol)란?

UDP(User Datagram Protocol)는 연결을 설정하지 않고 데이터를 빠르게 전송하는 프로토콜로, TCP와 함께 인터넷에서 가장 많이 사용되는 전송 계층(Transport Layer) 프로토콜 중 하나이다.

UDP의 주요 특징

  • 비연결형(Connectionless) 프로토콜
    • 송신 측과 수신 측이 사전에 연결을 설정하지 않음.
    • 데이터를 보내고 끝나는 방식으로, 별도의 연결 관리 과정이 없음.
  • 신뢰성이 낮음
    • 패킷이 손실될 가능성이 있으며, 재전송 기능이 없음.
    • 패킷의 순서를 보장하지 않음.
    • 오류 검출 기능(CRC)은 있지만, 오류 발생 시 단순히 폐기됨.
  • 빠른 전송 속도
    • 연결을 설정하는 과정(TCP의 3-way handshake)이 없어 지연 시간이 적음.
    • 데이터 전송 시 오버헤드(추가적인 제어 정보)가 적어 성능이 향상됨.
  • 단순한 헤더 구조
    • TCP보다 작은 8바이트 크기의 헤더를 사용하여 전송 속도를 높임.

UDP 헤더 구조

UDP 헤더는 4개의 필드(각 2바이트, 총 8바이트)로 이루어져 있다.

필드 이름크기설명
Source Port2 bytes송신 측 포트 번호
Destination Port2 bytes수신 측 포트 번호
Length2 bytesUDP 헤더 + 데이터의 총 길이
Checksum2 bytes오류 검출을 위한 체크섬

TCP 헤더(최소 20바이트)와 비교하면 매우 간결하며, 빠른 처리를 가능하게 한다.


UDP와 TCP 비교

특성UDPTCP
연결 방식비연결형연결형 (3-way handshake)
신뢰성없음 (패킷 손실 가능)신뢰성 높음 (재전송, 순서 보장)
데이터 전송 방식순서 보장 없음, 개별 패킷 전송순서 보장, 스트림 전송
오버헤드낮음 (헤더 8바이트)높음 (헤더 최소 20바이트)
속도빠름상대적으로 느림
사용 사례실시간 스트리밍, VolP, 온라인 게임, DNS웹 브라우징, 이메일, 파일 전송

UDP가 사용되는 대표적인 사례

  1. **실시간 스트리밍(비디오, 오디오)
    • 예: YouTube 라이브, Netflix 스트리밍, 인터넷 라디오
    • 속도가 중요하며, 약간의 패킷 손실이 발생해도 서비스에 큰 영향을 주지 않음.
  2. VolP(인터넷 전화) & 온라인 게임
    • 예: Skype, Discord, Zoom, FPS 게임, MOBA 게임(LOL, DOTA 등)
    • 짧은 지연 시간(낮은 레이턴시)이 중요하며, 패킷 손실이 발생해도 계속 데이터를 전송하는 것이 중요함.
  3. DNS(Domain Name System)
    • 웹사이트에 접속할 때 IP 주소를 조회하는 서비스.
    • 빠른 응답이 중요하며, 손실 시 클라이언트가 재요청하면 되므로 UDP 사용.
  4. DHCP(Dynamic Host Configuration Protocol)
    • 네트워크에서 IP 주소를 자동으로 할당하는 프로토콜.
    • 단순한 요청/응답 구조이므로 UDP가 적합함.

UDP의 단점과 보완 방법

UDP는 빠른 속도를 제공하지만 신뢰성이 낮다는 단점이 있다. 이를 보완하기 위해 다음과 같은 기법이 사용된다.

  1. 애플리케이션 계층에서 신뢰성 구현
    • 일부 애플리케이션(TFTP, QUIC 등)은 자체적으로 패킷 재전송 및 오류 검출 기능을 추가함.
  2. FEC(Forward Error Correction, 전방 오류 수정)
    • 송신 측에서 오류를 복구할 수 있는 추가 데이터(중복 정보)를 함께 전송하여, 수신 측에서 손실된 데이터를 복구할 수 있도록 함.
  3. 혼합 방식 (UDP + TCP 개념 차용)
    • 예: QUIC(Quick UDP Internet Connections)
      • 구글에서 개발한 UDP 기반의 새로운 전송 프로토콜.
      • TCP처럼 신뢰성을 보장하면서도 속도는 UDP만큼 빠르게 동작함.
      • HTTP/3에서 기본적으로 사용됨.

정리

UDP는 빠른 데이터 전송이 필요한 환경에서 널리 사용되는 프로토콜로, 신뢰성보다는 속도가 중요한 응용에서 강점을 가진다. 하지만 신뢰성이 필요한 경우 애플리케이션 계층에서 별도로 보완해야 한다.

profile
Turning Vision into Reality.

0개의 댓글