통신/네트워크 프로토콜

UDP

문상휘파람 2024. 9. 29. 02:19

개요

UDP(User Datagram Protocol)는 전송 계층에서 사용되는 비연결형 프로토콜로, 가벼운 헤더와 빠른 처리를 제공한다. 신뢰성 있는 데이터 전송(TCP)보다는 성능을 우선시하며, 멀티미디어 스트리밍, DNS, SNMP와 같은 응용에 적합하다.

UDP 서비스

  • 비연결형 서비스: 연결 설정이나 종료 과정을 거치지 않고, 각 사용자 데이터그램을 독립적으로 처리한다.
  • 프로세스 간 통신: 소켓을 통해 IP 주소와 포트 번호를 사용해 데이터를 전송하며, 데이터를 적절한 프로세스에 전달한다.
  • 오류 제어: 검사합(Checksum)을 통해 오류를 검출할 수 있지만, 복구 메커니즘이 없어 오류가 발생한 데이터는 폐기된다.
  • 흐름 제어: 흐름 제어를 지원하지 않으며, 윈도우 메커니즘도 없다.
  • 혼잡 제어: 혼잡 제어 기능이 없다. 따라서 네트워크 혼잡 상태를 고려하지 않고 데이터를 전송할 수 있다.

사용자 데이터그램

User Datagram

  • 사용자 데이터그램은 8바이트 고정 크기 헤더를 가진다.
    • 발신지 포트 번호(Source Port Number): 발신지 호스트에서 사용되는 포트 번호(16비트).
    • 목적지 포트 번호(Destination Port Number): 목적지 호스트에서 사용되는 포트 번호(16비트).
    • 길이(Length): UDP 헤더와 데이터를 포함한 전체 데이터그램의 길이(16비트).
    • 검사합(Checksum): 헤더와 데이터를 포함한 데이터그램 전체에 대해 오류를 탐지하기 위한 값(16비트).

UDP의 특징

  • UDP는 오버헤드가 적은 간단한 프로토콜로, 연결 설정 및 종료 과정이 없다. 작은 메시지를 빠르게 처리할 수 있으며, 주로 간단한 요청-응답 통신에 사용된다.
  • 검사합을 통해 오류를 감지할 수 있지만, 신뢰성 없는 전송을 제공하기 때문에 오류가 발생하면 데이터를 복구하지 않는다. 데이터가 손실되거나 중복되더라도 이를 인지하지 못한다.

UDP 사용 사례

UDP는 다음과 같은 상황에서 사용된다.

  • 멀티미디어 스트리밍: 일부 데이터가 손실되더라도 전체 서비스에 큰 영향을 주지 않는 멀티미디어 통신에 적합하다.
  • DNS: DNS 요청 및 응답은 보통 작은 크기의 데이터이므로 UDP가 사용된다.
  • SNMP(Simple Network Management Protocol): 간단한 네트워크 관리 프로토콜로, 요청-응답 방식에 적합하다.
  • RIP(Routing Information Protocol): 경로 갱신 프로토콜로, UDP를 사용하여 라우팅 정보를 갱신한다.

UDP와 TCP 비교

  • UDP는 비연결형 프로토콜로, 신뢰성 없는 데이터 전송을 제공하며, 작은 데이터나 빠른 응답이 필요한 응용에 적합하다.
  • TCP는 신뢰성 있는 데이터 전송을 보장하며, 흐름 제어 및 오류 제어 기능을 제공한다. 대량의 데이터를 전송하거나 데이터의 신뢰성이 중요한 경우 TCP가 적합하다.

검사합(Checksum)과 의사 헤더(Pseudoheader)

세세한 정리

  • 검사합은 UDP 패킷 내에서 오류를 감지하기 위해 사용된다. 패킷의 내용과 헤더 필드를 16비트로 나누어 더한 후, 1의 보수를 취해 오류를 검출한다.
  • 의사 헤더(Pseudoheader)는 실제 데이터 패킷에 포함되지 않는 가상 헤더로, IP 계층의 정보를 기반으로 만들어지며 UDP 체크섬 계산에 사용된다.

캡슐화와 역캡슐화

캡슐화 - 역캡슐화

  • 캡슐화: UDP는 상위 계층의 데이터를 받아 UDP 헤더를 추가한 후, IP 계층에 전달한다. IP 계층은 이를 IP 헤더로 감싸서 네트워크에 전송한다.
  • 역캡슐화: 수신 측에서는 물리 계층에서부터 상위 계층으로 데이터를 전달하면서 각 계층의 헤더를 제거한다. 최종적으로 UDP는 헤더를 제거하고 데이터를 적절한 응용 프로그램에 전달한다.

'통신 > 네트워크 프로토콜' 카테고리의 다른 글

TCP(2) - 연결과 해제  (0) 2024.09.29
TCP(1) - 구조와 특징  (0) 2024.09.29
TransportLayer  (0) 2024.09.29
Routing Algorithms  (0) 2024.09.29
IP(2) - 데이터 그램 구조와 단편화 및 검사합  (0) 2024.09.29