logo

UDP 프로토콜

컴퓨터 네트워킹에서 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 프로토콜

UDP에서는 헤더 크기가 8바이트이고 패킷 크기는 최대 65,535바이트입니다. 그러나 데이터가 IP 데이터그램에 캡슐화되어야 하고 IP 패킷의 경우 헤더 크기가 20바이트일 수 있으므로 이 패킷 크기는 불가능합니다. 따라서 UDP의 최대 크기는 65,535 - 20입니다. UDP 패킷이 전달할 수 있는 데이터의 크기는 UDP 패킷 헤더의 경우 8바이트, IP 헤더의 경우 20바이트로 65,535 - 28입니다.

UDP 헤더에는 다음 네 가지 필드가 포함되어 있습니다.

    소스 포트 번호:어느 포트가 패킷을 보내지 않을 것인지 식별하는 16비트 정보입니다.대상 포트 번호:이는 어떤 포트가 정보를 받아들일지 식별합니다. 대상 시스템에서 애플리케이션 수준 서비스를 식별하는 데 사용되는 16비트 정보입니다.길이:헤더도 포함하는 UDP 패킷의 전체 길이를 지정하는 16비트 필드입니다. 헤더 크기가 8바이트이므로 최소값은 8바이트입니다.체크섬:16비트 필드이며 선택적 필드입니다. 이 체크섬 필드는 전송 중 정보가 손상될 가능성이 있으므로 해당 정보가 정확한지 여부를 확인합니다. 이는 선택적인 필드입니다. 즉, 체크섬을 작성할지 여부는 응용 프로그램에 따라 달라집니다. 체크섬을 기록하지 않으려면 16비트가 모두 0입니다. 그렇지 않으면 체크섬을 씁니다. UDP에서는 체크섬 필드가 패킷 전체, 즉 헤더와 데이터 부분에 적용되는 반면, IP에서는 체크섬 필드가 헤더 필드에만 적용됩니다.

UDP 프로토콜의 큐잉 개념

UDP 프로토콜

UDP 프로토콜에서는 숫자를 사용하여 서버와 클라이언트의 서로 다른 프로세스를 구별합니다. 우리는 UDP가 통신을 처리하는 프로세스를 제공한다는 것을 알고 있습니다. 클라이언트는 서비스가 필요한 프로세스를 생성하고, 서버는 서비스를 제공하는 프로세스를 생성합니다. 대기열은 두 프로세스 모두에 사용할 수 있습니다. 즉, 각 프로세스에 대해 두 개의 대기열을 사용할 수 있습니다. 첫 번째 큐는 메시지를 받는 들어오는 큐이고, 두 번째 큐는 메시지를 보내는 나가는 큐입니다. 대기열은 프로세스가 실행 중일 때 작동합니다. 프로세스가 종료되면 큐도 삭제됩니다.

UDP는 다음 구성 요소의 도움으로 UDP 패킷의 전송 및 수신을 처리합니다.

    입력 대기열:UDP 패킷은 각 프로세스에 대해 일련의 대기열을 사용합니다.입력 모듈:이 모듈은 IP에서 사용자 데이터그램을 가져온 다음 동일한 포트의 제어 블록 테이블에서 정보를 찾습니다. 사용자 데이터그램과 동일한 포트를 가진 제어 블록 테이블의 항목을 찾으면 데이터를 대기열에 넣습니다.제어 블록 모듈:제어 블록 테이블을 관리합니다.제어 블록 테이블:제어 블록 테이블에는 열린 포트 항목이 포함됩니다.출력 모듈:출력 모듈은 사용자 데이터그램을 생성하고 보냅니다.

여러 프로세스가 UDP 서비스를 사용하려고 합니다. UDP는 여러 프로세스가 단일 호스트에서 실행될 수 있도록 프로세스를 다중화 및 역다중화합니다.

제한 사항

  • 신뢰할 수 없는 연결 전달 서비스를 제공합니다. 프로세스 간 통신을 제공하는 것을 제외하고는 IP 서비스를 제공하지 않습니다.
  • UDP 메시지는 손실, 지연, 복제되거나 순서가 잘못될 수 있습니다.
  • 안정적인 운송 배송 서비스를 제공하지 않습니다. 승인이나 흐름 제어 메커니즘을 제공하지 않습니다. 그러나 어느 정도 오류 제어 기능을 제공합니다.

장점

  • 최소한의 오버헤드가 발생합니다.