User Datagram Protocol (UDP) to protokół warstwy transportowej w pakiecie protokołów internetowych. Zapewnia prostą i bezpołączeniową usługę komunikacji pomiędzy hostami w sieci. UDP wysyła pakiety danych, zwane datagramami, bez ustanawiania połączenia ani potwierdzania dostarczenia, co czyni go lekkim i wydajnym protokołem do przesyłania danych, w którym szybkość i minimalny narzut są ważniejsze od niezawodności.
UDP to protokół umożliwiający aplikacjom wysyłanie krótkich wiadomości, zwanych datagramami, do innych hostów w sieci IP bez konieczności wcześniejszej komunikacji w celu skonfigurowania specjalnych kanałów transmisji lub ścieżek danych.
Przykładem użycia protokołu UDP są zapytania DNS (Domain Name System). Kiedy komputer musi przetłumaczyć nazwę domeny (np. www.example.com) na adres IP, wysyła zapytanie UDP do serwera DNS. Serwer odpowiada pakietem UDP zawierającym odpowiedni adres IP. Proces ten jest szybki i wydajny, idealny do rozpoznawania DNS, gdzie prędkość ma kluczowe znaczenie i akceptowalna jest sporadyczna utrata pakietów.
UDP ma kilka kluczowych cech:
- Bez połączenia: UDP nie nawiązuje połączenia przed wysłaniem danych i nie gwarantuje dostarczenia ani uporządkowania pakietów.
- Niski narzut: ma minimalny narzut nagłówka w porównaniu do protokołu TCP, dzięki czemu jest szybszy i bardziej wydajny w przesyłaniu małych ilości danych.
- Brak kontroli przeciążenia: UDP nie kontroluje przeciążenia, co w niektórych scenariuszach może prowadzić do potencjalnego przeciążenia sieci.
- Nierzetelne: nie gwarantuje dostarczenia, potwierdzenia ani usunięcia błędu. Aplikacje korzystające z protokołu UDP muszą w razie potrzeby obsługiwać te aspekty w warstwie aplikacji.
Numer protokołu UDP w nagłówku IPv4 wynosi 17, a w IPv6 jest taki sam. Numer ten identyfikuje UDP w nagłówku pakietu IP i jest używany przez host odbierający do określenia protokołu, do którego ma przekazać odebrane dane po przetworzeniu ich przez warstwę IP.