logo

사용자 데이터그램 프로토콜(UDP)

사용자 데이터그램 프로토콜(UDP) 전송 계층 프로토콜입니다. UDP는 UDP/IP 제품군이라고 하는 인터넷 프로토콜 제품군의 일부입니다. TCP와는 달리 신뢰할 수 없고 연결이 없는 프로토콜. 따라서 데이터를 전송하기 전에 연결을 설정할 필요가 없습니다. UDP는 네트워크를 통해 대기 시간이 짧고 손실을 허용하는 연결을 설정하는 데 도움이 됩니다. UDP는 프로세스 간 통신을 가능하게 합니다.

사용자 데이터그램 프로토콜이란 무엇입니까?

TCP(Transmission Control Protocol)는 대부분의 인터넷 서비스에서 사용되는 주요 전송 계층 프로토콜이지만; 확실한 전달, 안정성 등을 제공하지만 이러한 모든 서비스에는 추가적인 오버헤드와 대기 시간이 소요됩니다. 여기서 UDP가 등장합니다. 컴퓨터 게임, 음성 또는 영상 통신, 실시간 회의와 같은 실시간 서비스의 경우 UDP가 필요합니다. 고성능이 필요하기 때문에 UDP는 지연된 패킷을 처리하는 대신 패킷이 삭제되도록 허용합니다. UDP에서는 오류 검사가 없으므로 대역폭도 절약됩니다.

UDP-gif



UDP 헤더

UDP 헤더는 8바이트 고정 및 단순 헤더인 반면 TCP의 경우 20바이트에서 60바이트까지 다양할 수 있습니다. 처음 8바이트에는 필요한 모든 헤더 정보가 포함되어 있으며 나머지 부분은 데이터로 구성됩니다. UDP 포트 번호 필드는 각각 16비트 길이이므로 포트 번호의 범위는 0부터 65535까지 정의됩니다. 포트 번호 0은 예약되어 있습니다. 포트 번호는 다양한 사용자 요청이나 프로세스를 구별하는 데 도움이 됩니다.

UDP 헤더

UDP 헤더

  1. 소스 포트: 소스 포트는 소스의 포트 번호를 식별하는 데 사용되는 2바이트 길이의 필드입니다.
  2. 대상 포트: 목적지 패킷의 포트를 식별하는 데 사용되는 2바이트 길이의 필드입니다.
  3. 길이: 길이는 헤더와 데이터를 포함한 UDP의 길이입니다. 16비트 필드입니다.
  4. 체크섬: 체크섬은 2바이트 길이의 필드입니다. 이는 UDP 헤더의 1의 보수 합계, IP 헤더 정보의 의사 헤더 및 데이터의 16비트 1의 보수이며, 2의 배수를 만들기 위해 끝에 0 옥텟을 추가합니다(필요한 경우). 옥텟.

노트 - TCP와 달리 UDP에서는 체크섬 계산이 필수가 아닙니다. UDP는 오류 제어나 흐름 제어를 제공하지 않습니다. 따라서 UDP는 오류 보고를 위해 IP와 ICMP에 의존합니다. 또한 UDP는 사용자 요청을 구별할 수 있도록 포트 번호를 제공합니다.

UDP의 응용

  • 데이터의 크기가 작아서 흐름 및 오류 제어에 대한 관심이 덜할 때 간단한 요청-응답 통신에 사용됩니다.
  • UDP는 패킷 교환을 지원하므로 멀티캐스팅에 적합한 프로토콜입니다.
  • UDP는 RIP(Routing Information Protocol)와 같은 일부 라우팅 업데이트 프로토콜에 사용됩니다.
  • 일반적으로 수신된 메시지 섹션 간의 균일하지 않은 지연을 허용할 수 없는 실시간 애플리케이션에 사용됩니다.
  • UDP는 좋은 게임 경험을 위해 낮은 대기 시간과 고속 통신이 필수적인 온라인 게임에 널리 사용됩니다. 게임 서버는 클라이언트에 작고 빈번한 데이터 패킷을 보내는 경우가 많으며 UDP는 빠르고 가볍기 때문에 이러한 유형의 통신에 매우 적합합니다.
  • IPTV, 온라인 라디오, 화상 회의 등 스트리밍 미디어 애플리케이션은 UDP를 사용하여 실시간 오디오 및 비디오 데이터를 전송합니다. 데이터가 지속적으로 흐르고 재전송이 필요하지 않기 때문에 일부 패킷의 손실은 이러한 애플리케이션에서 허용될 수 있습니다.
  • Skype, WhatsApp 등 VoIP(Voice over Internet Protocol) 서비스는 실시간 음성 통신에 UDP를 사용합니다. 혼잡 제어로 인해 패킷이 지연되면 음성 통신의 지연이 눈에 띄게 될 수 있으므로 빠르고 효율적인 데이터 전송을 보장하기 위해 UDP를 사용합니다.
  • DNS(Domain Name System)도 쿼리/응답 메시지에 UDP를 사용합니다. DNS 쿼리는 일반적으로 규모가 작고 빠른 응답 시간이 필요하므로 UDP가 이 애플리케이션에 적합한 프로토콜입니다.
  • DHCP(동적 호스트 구성 프로토콜)는 UDP를 사용하여 네트워크의 장치에 IP 주소를 동적으로 할당합니다. DHCP 메시지는 일반적으로 크기가 작으며 패킷 손실이나 재전송으로 인한 지연은 일반적으로 이 애플리케이션에 중요하지 않습니다.
  • 다음 구현에서는 UDP를 전송 계층 프로토콜로 사용합니다.
    • NTP(네트워크 시간 프로토콜)
    • DNS(도메인 이름 서비스)
    • 부팅, DHCP.
    • NNP(네트워크 뉴스 프로토콜)
    • 오늘의 프로토콜 인용문
    • TFTP, RTSP, RIP.
  • 애플리케이션 계층은 UDP를 통해 일부 작업을 수행할 수 있습니다.
    • 경로 추적
    • 경로 기록
    • 타임스탬프
  • UDP는 네트워크 계층에서 데이터그램을 가져와서 헤더를 첨부하여 사용자에게 보냅니다. 따라서 빠르게 작동합니다.
  • 실제로 체크섬 필드를 제거하면 UDP는 널 프로토콜입니다.
    1. 컴퓨터 리소스 요구 사항을 줄입니다.
    2. 멀티캐스트나 브로드캐스트를 사용하여 전송할 때.
    3. 주로 멀티미디어 애플리케이션에서 실시간 패킷 전송입니다.

UDP의 장점

  • 속도: UDP는 연결을 설정하고 안정적인 데이터 전달을 보장하는 오버헤드가 없기 때문에 TCP보다 빠릅니다.
  • 낮은 대기 시간: 연결 설정이 없으므로 대기 시간이 짧고 응답 시간이 빠릅니다.
  • 간단: UDP는 TCP보다 프로토콜 설계가 단순하여 구현 및 관리가 더 쉽습니다.
  • 방송 지원: UDP는 여러 수신자에게 브로드캐스팅을 지원하므로 비디오 스트리밍 및 온라인 게임과 같은 애플리케이션에 유용합니다.
  • 더 작은 패킷 크기: UDP는 UDP보다 작은 패킷 크기를 사용합니다. TCP, 이는 네트워크 정체를 줄이고 전반적인 네트워크 성능을 향상시킬 수 있습니다.
  • UDP(사용자 데이터그램 프로토콜)는 대기 시간과 대역폭 측면에서 더 효율적입니다.

UDP의 단점

  • 신뢰성 없음: UDP는 패킷 전달이나 전달 순서를 보장하지 않으므로 데이터가 누락되거나 중복될 수 있습니다.
  • 혼잡 제어 없음: UDP에는 정체 제어 기능이 없습니다. 즉, 네트워크 정체를 유발할 수 있는 속도로 패킷을 보낼 수 있습니다.
  • 흐름 제어 없음: UDP에는 흐름 제어 기능이 없습니다. 즉, 처리할 수 없는 패킷으로 수신자를 압도할 수 있습니다.
  • 공격에 취약함: UDP는 서비스 거부 공격에 취약합니다. 공격자가 UDP 패킷으로 네트워크를 넘치게 하여 네트워크를 압도하고 충돌을 일으킬 수 있습니다.
  • 제한된 사용 사례: UDP는 이메일이나 파일 전송과 같이 안정적인 데이터 전달이 필요한 애플리케이션에는 적합하지 않으며 비디오 스트리밍이나 온라인 게임과 같이 일부 데이터 손실을 허용할 수 있는 애플리케이션에 더 적합합니다.

UDP 의사 헤더

  • 의사 헤더를 사용하는 목적은 UDP 패킷이 올바른 목적지에 도달했는지 확인하는 것입니다.
  • 올바른 대상은 특정 시스템과 해당 시스템 내의 특정 프로토콜 포트 번호로 구성됩니다.

UDP 의사 헤더

UDP 의사 헤더 세부정보

  • UDP 헤더 자체는 프로토콜 포트 번호만 지정합니다. 따라서 송신 시스템의 대상 UDP를 확인하기 위해 UDP 패킷뿐만 아니라 대상 IP 주소를 포함하는 체크섬을 계산합니다.
  • 최종 목적지에서 UDP 소프트웨어는 UDP 메시지를 전달한 IP 패킷의 헤더에서 얻은 목적지 IP 주소를 사용하여 체크섬을 확인합니다.
  • 체크섬이 일치하면 패킷이 의도한 대상 호스트와 해당 호스트 내의 올바른 프로토콜 포트에 도달했다는 것이 사실이어야 합니다.

사용자 인터페이스

사용자 인터페이스는 새로운 수신 포트 생성, 데이터 옥텟과 소스 포트 및 소스 주소 표시를 반환하는 수신 포트에서의 수신 작업, 데이터, 소스 및 주소를 지정하여 데이터그램 전송을 허용하는 작업을 허용해야 합니다. 전송할 대상 포트 및 주소.

IP 인터페이스

  • UDP 모듈은 인터넷 헤더의 소스 및 대상 인터넷 주소와 프로토콜 필드를 확인할 수 있어야 합니다.
  • 가능한 UDP/IP 인터페이스 중 하나는 수신 작업에 대한 응답으로 전체 인터넷 헤더를 포함한 전체 인터넷 데이터그램을 반환하는 것입니다.
  • 이러한 인터페이스를 사용하면 UDP가 헤더가 포함된 전체 인터넷 데이터그램을 보낼 IP에 전달할 수도 있습니다. IP는 특정 필드의 일관성을 확인하고 인터넷 헤더 체크섬을 계산합니다.
  • IP 인터페이스를 통해 UDP 모듈은 네트워크를 통해 데이터 라우팅 및 전달을 담당하는 프로토콜 스택의 네트워크 계층과 상호 작용할 수 있습니다.
  • IP 인터페이스는 UDP 모듈이 기본 IP 프로토콜에 대한 액세스를 제공하여 네트워크의 다른 호스트와 통신할 수 있는 메커니즘을 제공합니다.
  • IP 인터페이스는 UDP 모듈에서 IP 라우팅 및 주소 지정 메커니즘을 통해 네트워크를 통해 데이터 패킷을 보내고 받는 데 사용할 수 있습니다.
  • IP 인터페이스는 IP 라우팅 및 주소 지정의 복잡성을 직접 처리하지 않고도 UDP 모듈이 네트워크 계층과 상호 작용할 수 있도록 하는 추상화 수준을 제공합니다.
  • IP 인터페이스는 또한 IP 패킷의 조각화 및 재조립을 처리합니다. 이는 네트워크에서 허용하는 최대 패킷 크기를 초과할 수 있는 대규모 데이터 전송에 중요합니다.
  • IP 인터페이스는 QoS(Quality of Service) 매개변수 및 IPsec과 같은 보안 메커니즘에 대한 지원과 같은 추가 서비스를 제공할 수도 있습니다.
  • IP 인터페이스는 인터넷상의 호스트 간 통신을 가능하게 하고 네트워크를 통해 데이터 패킷의 원활한 전송을 허용하므로 인터넷 프로토콜 제품군의 중요한 구성 요소입니다.

연습용 GATE 문제

  1. GATE CS 2013, 질문 12
  2. GATE CS 2012, 질문 65
  3. GATE CS 2007, 질문 20
  4. GATE CS 2005, 질문 23
  5. GATE IT 2008, 질문 66
  6. GATE 모의 2015, 질문 5

UDP에 대해 자주 묻는 질문 – FAQ

1. UDP를 사용하는 프로토콜의 이름을 지정하세요.

UDP 모델을 사용하는 프로토콜은 다음과 같습니다.

2. TCP와 UDP 중 어느 것이 더 빠릅니까?

UDP는 TCP보다 빠릅니다.