컴퓨터 네트워킹에서 UDP는 사용자 데이터그램 프로토콜을 나타냅니다. UDP 프로토콜은 David P. Reed가 1980년에 개발했습니다. RFC 768에 정의되어 있으며 TCP/IP 프로토콜의 일부이므로 인터넷상의 표준 프로토콜입니다. UDP 프로토콜을 사용하면 컴퓨터 응용 프로그램이 인터넷 프로토콜(IP) 네트워크를 통해 한 컴퓨터에서 다른 컴퓨터로 데이터그램 형태로 메시지를 보낼 수 있습니다. UDP는 TCP 프로토콜(전송 제어 프로토콜)에 대한 대체 통신 프로토콜입니다. TCP와 마찬가지로 UDP는 인터넷을 통해 데이터를 교환하는 방법을 제어하는 일련의 규칙을 제공합니다. UDP는 데이터를 패킷에 캡슐화하고 자체 헤더 정보를 패킷에 제공하는 방식으로 작동합니다. 그런 다음 이 UDP 패킷은 IP 패킷으로 캡슐화되어 대상으로 전송됩니다. 둘 다 TCP와 UDP 프로토콜은 인터넷 프로토콜 네트워크를 통해 데이터를 전송하므로라고도 합니다. TCP/IP 그리고 UDP/IP. 이 두 프로토콜에는 많은 차이점이 있습니다. UDP는 프로세스가 통신을 처리할 수 있도록 하는 반면, TCP는 호스트 간 통신을 제공합니다. UDP는 데이터그램 형식으로 메시지를 보내기 때문에 최선의 통신 모드로 간주됩니다. TCP 개별 패킷을 전송하므로 안정적인 전송 매체입니다. 또 다른 차이점은 TCP는 연결 지향 프로토콜인 반면 UDP는 데이터를 전송하는 데 가상 회로가 필요하지 않기 때문에 연결 없는 프로토콜이라는 것입니다.
UDP는 또한 다양한 사용자 요청을 구별하기 위해 다양한 포트 번호를 제공하고 전체 데이터가 도착했는지 여부를 확인하는 체크섬 기능도 제공합니다. IP 계층은 이 두 가지 서비스를 제공하지 않습니다.
UDP 프로토콜의 특징
UDP 프로토콜의 특징은 다음과 같습니다.
UDP는 가장 간단한 전송 계층 통신 프로토콜입니다. 여기에는 최소한의 통신 메커니즘이 포함되어 있습니다. 이는 신뢰할 수 없는 프로토콜로 간주되며 최선의 전달 서비스를 기반으로 합니다. UDP는 확인 메커니즘을 제공하지 않습니다. 즉, 수신자는 수신된 패킷에 대한 확인을 보내지 않으며, 보낸 사람도 자신이 보낸 패킷에 대한 확인을 기다리지 않습니다.
UDP는 데이터 전송을 위한 가상 경로를 생성하지 않기 때문에 비연결 프로토콜입니다. 가상 경로를 사용하지 않기 때문에 송신자와 수신자 사이의 서로 다른 경로로 패킷이 전송되므로 패킷이 손실되거나 순서대로 수신되지 않습니다.
순서에 따른 데이터 전달은 보장되지 않습니다.
UDP의 경우, 데이터그램은 어떤 순서로 전송되지만 데이터그램에 번호가 매겨져 있지 않기 때문에 동일한 순서로 수신된다는 보장은 없습니다.
UDP 프로토콜은 데이터가 올바른 대상으로 전송될 수 있도록 다른 포트 번호를 사용합니다. 포트 번호는 0에서 1023 사이로 정의됩니다.
UDP는 비연결 프로토콜이므로 데이터를 전송하는 데 가상 경로가 필요하지 않으므로 더 빠른 전송이 가능합니다. 그러나 개별 패킷이 손실될 가능성이 있으며 이는 전송 품질에 영향을 미칩니다. 반면, TCP 연결에서 패킷이 손실되면 해당 패킷이 다시 전송되므로 데이터 패킷 전달이 보장됩니다.
UDP에는 승인 메커니즘이 있습니다. 즉, UDP 발신자와 UDP 수신자 간에 핸드셰이킹이 없습니다. 메시지가 TCP로 전송되면 수신자는 내가 준비되었음을 확인한 다음 발신자가 데이터를 보냅니다. TCP의 경우 송신자와 수신자 간에 핸드셰이크가 발생하는 반면, UDP에서는 송신자와 수신자 간에 핸드셰이크가 발생하지 않습니다.
각 UDP 세그먼트는 각 세그먼트가 대상에 도달하기 위해 서로 다른 경로를 사용하므로 서로 개별적으로 처리됩니다. 송신자와 수신자 사이에 연결 설정이 없기 때문에 UDP 세그먼트가 손실되거나 대상에 도달하지 못한 채 전달될 수 있습니다.
이는 송신자가 전송된 패킷에 대한 승인을 받지 못함을 의미하는 상태 비저장 프로토콜입니다.
UDP 프로토콜이 필요한 이유는 무엇입니까?
UDP는 신뢰할 수 없는 프로토콜이라는 것을 알고 있지만 어떤 경우에는 여전히 UDP 프로토콜이 필요합니다. UDP는 패킷이 실제 데이터와 함께 많은 양의 대역폭을 필요로 하는 곳에 배포됩니다. 예를 들어, 비디오 스트리밍에서 수천 개의 패킷을 승인하는 것은 번거롭고 많은 대역폭을 낭비합니다. 비디오 스트리밍의 경우 일부 패킷의 손실은 문제를 일으킬 수 없으며 무시할 수도 있습니다.
자바 정렬 목록
UDP 헤더 형식
UDP에서는 헤더 크기가 8바이트이고 패킷 크기는 최대 65,535바이트입니다. 그러나 데이터가 IP 데이터그램에 캡슐화되어야 하고 IP 패킷의 경우 헤더 크기가 20바이트일 수 있으므로 이 패킷 크기는 불가능합니다. 따라서 UDP의 최대 크기는 65,535 - 20입니다. UDP 패킷이 전달할 수 있는 데이터의 크기는 UDP 패킷 헤더의 경우 8바이트, IP 헤더의 경우 20바이트로 65,535 - 28입니다.
UDP 헤더에는 다음 네 가지 필드가 포함되어 있습니다.
UDP 프로토콜의 큐잉 개념
UDP 프로토콜에서는 숫자를 사용하여 서버와 클라이언트의 서로 다른 프로세스를 구별합니다. 우리는 UDP가 통신을 처리하는 프로세스를 제공한다는 것을 알고 있습니다. 클라이언트는 서비스가 필요한 프로세스를 생성하고, 서버는 서비스를 제공하는 프로세스를 생성합니다. 대기열은 두 프로세스 모두에 사용할 수 있습니다. 즉, 각 프로세스에 대해 두 개의 대기열을 사용할 수 있습니다. 첫 번째 큐는 메시지를 받는 들어오는 큐이고, 두 번째 큐는 메시지를 보내는 나가는 큐입니다. 대기열은 프로세스가 실행 중일 때 작동합니다. 프로세스가 종료되면 큐도 삭제됩니다.
UDP는 다음 구성 요소의 도움으로 UDP 패킷의 전송 및 수신을 처리합니다.
여러 프로세스가 UDP 서비스를 사용하려고 합니다. UDP는 여러 프로세스가 단일 호스트에서 실행될 수 있도록 프로세스를 다중화 및 역다중화합니다.
제한 사항
- 신뢰할 수 없는 연결 전달 서비스를 제공합니다. 프로세스 간 통신을 제공하는 것을 제외하고는 IP 서비스를 제공하지 않습니다.
- UDP 메시지는 손실, 지연, 복제되거나 순서가 잘못될 수 있습니다.
- 안정적인 운송 배송 서비스를 제공하지 않습니다. 승인이나 흐름 제어 메커니즘을 제공하지 않습니다. 그러나 어느 정도 오류 제어 기능을 제공합니다.
장점
- 최소한의 오버헤드가 발생합니다.