[Network] UDP 란

OOO·2023년 8월 28일

UDP

UDP(User Datagram Protocol) 는 데이터를 신속하게 전송하는 비 연결성 프로토콜이다.

TCP 와 함께 네트워크 통신에서 가장 많이 사용되는 두 가지 전송 프로토콜 중 하나로 다음과 같은 특징이 존재한다.

  1. 비연결성 프로토콜
    • UDP 는 연결 설정 및 해제 과정이 없는 비연결성 프로토콜로, 데이터를 전송하기 전에 연결을 설정하지 않고 수신 측에서 데이터를 받아들이기 위한 연결을 수립하지 않는다는 것을 의미한다. 따라서 UDP는 TCP와 달리 빠르게 데이터를 보내고 받는 것이 가능하다.
  2. 부족한 신뢰성
    • UDP는 데이터의 신뢰성을 보장하지 않는다. 데이터 패킷은 문제(손실, 중복, 순서변경, 오류 등)가 발생할 수 있는데, 이런 문제를 어플리케이션 레벨에서 처리해야 한다.
    • UDP의 부족한 신뢰성은 응용 프로그램 레벨에서 다양한 방식으로 처리 가
      • 재전송 (Retransmission
      • 체크섬 (Checksum)
      • 순서 제어 (Sequence Control)
      • 보정 데이터 (Error Correction)
      • 응답 시간 제한 (Timeouts)
      • 흐름 제어 (Flow Control)
  3. 헤더의 크기가 작음
    • UDP 헤더는 상대적으로 작기 때문에, UDP 패킷은 작은 오버헤드를 가지며 작은 데이터를 효율적으로 전송하는데 유리하다.
  4. 멀티캐스트와 브로드캐스트
    • 여러 대상에 동시에 데이터를 전송하거나 네트워크 상의 모든 호스트에 데이터를 정송하는데 사용된다.

UDP Header

UDP 헤더의 구조는 다음과 같다.

  1. Source Port (출발지 포트) : UDP 패킷을 생성한 송신자 프로세스 또는 어플리케이션을 식별

  2. Destination Port (목적지 포트) : UDP 패킷이 전송될 목적지의 프로세스 또는 어플리케이션을 지

  3. Length(길이) : UDP 데이터그램의 전체 길이를 바이트 단위로 나타낸다.

    UDP 헤더길이 (8바이트) + UDP 데이터 길이

  4. Checksum(체크섬) : 데이터의 무결성을 확인하고 오류를 탐지하는데 사용되는 오류 검사 방법으로

    체크섬 생성 → 데이터 전송 → 체크섬 검증 → 결과 확인 순으로 이루어 진다.

UDP 사용 사례

UDP는 TCP 보다 데이터의 전송 속도 측면에서 우수하나 신뢰성을 보장받을 수 없기 때문에 ‘속도가 중요하지만 통신의 완전성이 크게 중요하지 않은’ 상황에서 주로 사용된다.

  1. 음성/비디오 스트리밍 : 온라인 스트리밍 서비스는 UDP를 사용하여 실시간 음성 및 비디오 데이터를 전송한다. 이러한 응용 프로그램에서는 일부 패킷이 손상되더라도 실시간 성능이 더 중요가히 때문에 UDP가 활용된다.

  2. DNS (Domain Name System) : DNS 쿼리 와 응답은 UDP를 사용하여 전송된다.

    TCP를 사용할 경우 데이터를 송신할 때 세션 확립하고,데이터의 신뢰성을 점검하는 과정이 필요하기 때문에 프로토콜 오버헤드가 UDP에 비해 크다.

0개의 댓글