UDP는 "User Datagram Protocol"의 약자로, 컴퓨터 네트워크에서 데이터를 전송하기 위한 프로토콜 중 하나다. OSI 모델에서 4번쨰 계층이며 다른 프로토콜로는 TCP가 있다.
UDP는 데이터그램 기반의 프로토콜로, 신뢰성 있는 데이터 전송을 보장하지 않는다. 이는 데이터를 전송하기 전에 연결을 설정하거나, 전송된 데이터의 확인을 받지 않는다. 그 결과, UDP는 데이터를 빠르게 전송할 수 있지만, 데이터의 손실이나 순서가 뒤바뀌는 등의 문제가 발생할 수 있다.
UDP는 실시간 통신이 필요한 응용 프로그램에서 주로 사용된다. 예를 들어, 음성 또는 영상 스트리밍, 온라인 게임 등이 UDP를 사용하여 빠른 데이터 전송을 위해 선택될 수 있다. 데이터의 손실이나 순서가 중요하지 않은 경우에는 UDP가 적합한 선택일 수 있다.
UDP헤더는 다음을 포함하고 있다.
시작지포트(Source port)
송신자의 포트 번호를 나타낸다.
도착지포트(Destination port)
수신자의 포트번호를 나타낸다.
길이(Length)
UDP 패킷의 전체 길이를 나타낸다.
오류검출(CheckSum)
UDP 패킷의 무결성을 검사하기 위한 값을 나타낸다.
해당 값은 헤더에 있는 일부 값들을 가져와서 정해진 계산방식을 사용해 값을 추출한다.
수신자 역시 패킷을 받게되면 값들을 계산해서 송신자가 보낸 CheckSum이랑 맞는지 확인하는 절차를 거친다.
이렇게 4개의 필드로 구성되어 있으며 각각 2바이트의 크기를 갖는다. 그렇게 되면 총 8바이트의 크기를 가지게되는것이다.
반대로 TCP의 경우 최소한의 패킷의 크기는 20바이트다. 그렇기때문에 TCP에 비해서 오버헤드가 적은것이다.