Protokół datagramów użytkownika (UDP) jest protokołem warstwy transportowej. UDP jest częścią pakietu protokołów internetowych, zwanego pakietem UDP/IP. W przeciwieństwie do protokołu TCP jest to protokół protokół zawodny i bezpołączeniowy. Nie ma więc potrzeby nawiązywania połączenia przed przesyłaniem danych. Protokół UDP pomaga w ustanawianiu połączeń sieciowych o niskim opóźnieniu i odpornych na straty. Protokół UDP umożliwia komunikację między procesami.
Co to jest protokół datagramów użytkownika?
Chociaż protokół kontroli transmisji (TCP) jest dominującym protokołem warstwy transportowej używanym w większości usług internetowych; zapewnia gwarantowaną dostawę, niezawodność i wiele więcej, ale wszystkie te usługi kosztują nas dodatkowe koszty ogólne i opóźnienia. Tutaj na scenę wchodzi UDP. W przypadku usług w czasie rzeczywistym, takich jak gry komputerowe, komunikacja głosowa lub wideo oraz konferencje na żywo; potrzebujemy UDP. Ponieważ wymagana jest wysoka wydajność, protokół UDP umożliwia odrzucanie pakietów zamiast przetwarzania opóźnionych pakietów. W UDP nie ma sprawdzania błędów, więc oszczędza to również przepustowość.
Nagłówek UDP
Nagłówek UDP to plik 8-bajtowy stały i prosty nagłówek, natomiast dla protokołu TCP może on mieć wielkość od 20 do 60 bajtów. Pierwsze 8 bajtów zawiera wszystkie niezbędne informacje nagłówka, a pozostała część składa się z danych. Każde pole numeru portu UDP ma długość 16 bitów, dlatego zakres numerów portów jest zdefiniowany od 0 do 65535; numer portu 0 jest zarezerwowany. Numery portów pomagają rozróżnić różne żądania lub procesy użytkowników.
Nagłówek UDP
- Port źródłowy: Port źródłowy to pole o długości 2 bajtów używane do identyfikacji numeru portu źródła.
- Port docelowy: Jest to pole o długości 2 bajtów, używane do identyfikacji portu docelowego pakietu.
- Długość: Długość to długość protokołu UDP, łącznie z nagłówkiem i danymi. Jest to pole 16-bitowe.
- Suma kontrolna: Pole sumy kontrolnej ma długość 2 bajtów. Jest to 16-bitowe uzupełnienie sumy uzupełnienia jedności nagłówka UDP, pseudonagłówka informacji z nagłówka IP i danych, dopełnionych na końcu oktetami zerowymi (jeśli to konieczne) w celu uzyskania wielokrotności dwóch oktety.
Notatki – W przeciwieństwie do protokołu TCP obliczenie sumy kontrolnej nie jest obowiązkowe w UDP. Protokół UDP nie zapewnia kontroli błędów ani kontroli przepływu. Dlatego UDP zależy od protokołu IP i ICMP przy raportowaniu błędów. Również protokół UDP udostępnia numery portów, dzięki czemu można rozróżniać żądania użytkowników.
Zastosowania UDP
- Używany do prostej komunikacji żądanie-odpowiedź, gdy rozmiar danych jest mniejszy, a zatem istnieje mniejsze zainteresowanie kontrolą przepływu i błędów.
- Jest to odpowiedni protokół do multiemisji, ponieważ UDP obsługuje przełączanie pakietów.
- UDP jest używany w niektórych protokołach aktualizacji routingu, takich jak RIP (protokół informacji o routingu).
- Zwykle używany w aplikacjach czasu rzeczywistego, które nie tolerują nierównych opóźnień pomiędzy sekcjami odebranej wiadomości.
- UDP jest szeroko stosowany w grach online, gdzie małe opóźnienia i szybka komunikacja są niezbędne dla dobrych wrażeń z gry. Serwery gier często wysyłają do klientów małe, ale częste pakiety danych, a UDP dobrze nadaje się do tego typu komunikacji, ponieważ jest szybki i lekki.
- Aplikacje do przesyłania strumieniowego multimediów, takie jak IPTV, radio internetowe i wideokonferencje, wykorzystują protokół UDP do przesyłania danych audio i wideo w czasie rzeczywistym. W tych zastosowaniach można tolerować utratę niektórych pakietów, ponieważ dane przepływają w sposób ciągły i nie wymagają ponownej transmisji.
- Usługi VoIP (Voice over Internet Protocol), takie jak Skype i WhatsApp, korzystają z protokołu UDP do komunikacji głosowej w czasie rzeczywistym. Opóźnienie w komunikacji głosowej może być zauważalne, jeśli pakiety są opóźniane ze względu na kontrolę przeciążenia, dlatego w celu zapewnienia szybkiej i wydajnej transmisji danych używany jest protokół UDP.
- DNS (Domain Name System) również używa protokołu UDP do wysyłania zapytań/odpowiedzi. Zapytania DNS są zazwyczaj małe i wymagają szybkiego czasu odpowiedzi, co sprawia, że UDP jest odpowiednim protokołem dla tej aplikacji.
- DHCP (protokół dynamicznej konfiguracji hosta) wykorzystuje protokół UDP do dynamicznego przypisywania adresów IP urządzeniom w sieci. Komunikaty DHCP są zazwyczaj małe, a opóźnienie spowodowane utratą pakietu lub retransmisją zazwyczaj nie jest krytyczne dla tej aplikacji.
- Następujące implementacje wykorzystują UDP jako protokół warstwy transportowej:
- NTP (protokół czasu sieciowego)
- DNS (usługa nazw domen)
- BOOTP, DHCP.
- NNP (protokół wiadomości sieciowych)
- Cytat protokołu dnia
- TFTP, RTSP, RIP.
- Warstwa aplikacji może wykonywać niektóre zadania poprzez protokół UDP-
- Trasa śledzenia
- Nagraj trasę
- Znak czasu
- UDP pobiera datagram z warstwy sieciowej, dołącza jego nagłówek i wysyła go do użytkownika. Więc działa szybko.
- W rzeczywistości UDP jest protokołem zerowym, jeśli usuniesz pole sumy kontrolnej.
- Zmniejsz zapotrzebowanie na zasoby komputera.
- Podczas korzystania z transmisji Multicast lub Broadcast.
- Transmisja pakietów w czasie rzeczywistym, głównie w zastosowaniach multimedialnych.
Zalety UDP
- Prędkość: UDP jest szybszy niż TCP, ponieważ nie wymaga narzutu związanego z ustanawianiem połączenia i zapewnianiem niezawodnego dostarczania danych.
- Mniejsze opóźnienie: Ponieważ nie ma nawiązania połączenia, opóźnienie jest mniejsze i czas reakcji jest krótszy.
- Prostota: UDP ma prostszą konstrukcję protokołu niż TCP, co ułatwia jego wdrażanie i zarządzanie.
- Obsługa transmisji: UDP obsługuje transmisję do wielu odbiorców, dzięki czemu jest przydatny w zastosowaniach takich jak strumieniowe przesyłanie wideo i gry online.
- Mniejszy rozmiar pakietu: UDP używa mniejszych rozmiarów pakietów niż TCP, co może zmniejszyć przeciążenie sieci i poprawić ogólną wydajność sieci.
- User Datagram Protocol (UDP) jest bardziej wydajny zarówno pod względem opóźnień, jak i przepustowości.
Wady protokołu UDP
- Brak niezawodności: UDP nie gwarantuje dostarczania pakietów ani kolejności dostarczania, co może prowadzić do braków lub duplikacji danych.
- Brak kontroli zatorów: UDP nie kontroluje przeciążenia, co oznacza, że może wysyłać pakiety z szybkością, która może powodować przeciążenie sieci.
- Brak kontroli przepływu: UDP nie posiada kontroli przepływu, co oznacza, że może przytłoczyć odbiorcę pakietami, których nie jest w stanie obsłużyć.
- Podatny na ataki: UDP jest podatny na ataki typu „odmowa usługi”, podczas których osoba atakująca może zalać sieć pakietami UDP, przytłaczając sieć i powodując jej awarię.
- Ograniczone przypadki użycia: UDP nie nadaje się do aplikacji wymagających niezawodnego dostarczania danych, takich jak przesyłanie wiadomości e-mail lub plików, ale lepiej nadaje się do aplikacji, które tolerują utratę niektórych danych, takich jak strumieniowe przesyłanie wideo lub gry online.
Pseudonagłówek UDP
- Celem użycia pseudonagłówka jest sprawdzenie, czy pakiet UDP dotarł do właściwego miejsca docelowego
- Prawidłowe miejsce docelowe składa się z określonej maszyny i określonego numeru portu protokołu w tej maszynie

pseudonagłówek UDP
Szczegóły pseudonagłówka UDP
- Sam nagłówek UDP określa tylko numer portu protokołu. Zatem w celu sprawdzenia docelowego UDP na maszynie wysyłającej oblicza sumę kontrolną obejmującą docelowy adres IP, a także pakiet UDP.
- W ostatecznym miejscu docelowym oprogramowanie UDP weryfikuje sumę kontrolną przy użyciu docelowego adresu IP uzyskanego z nagłówka pakietu IP zawierającego wiadomość UDP.
- Jeżeli suma kontrolna jest zgodna, pakiet musi dotrzeć do zamierzonego hosta docelowego oraz do prawidłowego portu protokołu w tym hoście.
Interfejs użytkownika
Interfejs użytkownika powinien umożliwiać tworzenie nowych portów odbiorczych, operacje odbierające na portach odbiorczych, które zwracają oktety danych oraz wskazanie portu źródłowego i adresu źródłowego, a także operację umożliwiającą wysłanie datagramu, określając dane, źródło i porty docelowe i adres do wysłania.
Interfejs IP
- Moduł UDP musi być w stanie określić źródłowy i docelowy adres internetowy oraz pole protokołu na podstawie nagłówka internetowego
- Jeden z możliwych interfejsów UDP/IP zwróciłby w odpowiedzi na operację odbioru cały datagram internetowy, w tym cały nagłówek internetowy
- Taki interfejs umożliwiłby również UDP przekazywanie pełnego datagramu internetowego wraz z nagłówkiem do adresu IP w celu wysłania. adres IP sprawdzałby pewne pola pod kątem spójności i obliczał sumę kontrolną nagłówka internetowego.
- Interfejs IP umożliwia modułowi UDP interakcję z warstwą sieciową stosu protokołów, która jest odpowiedzialna za routing i dostarczanie danych w sieci.
- Interfejs IP zapewnia modułowi UDP mechanizm umożliwiający komunikację z innymi hostami w sieci, zapewniając dostęp do podstawowego protokołu IP.
- Interfejs IP może być wykorzystywany przez moduł UDP do wysyłania i odbierania pakietów danych w sieci za pomocą mechanizmów routingu IP i adresowania.
- Interfejs IP zapewnia poziom abstrakcji, który umożliwia modułowi UDP interakcję z warstwą sieciową bez konieczności bezpośredniego zajmowania się złożonością routingu i adresowania IP.
- Interfejs IP obsługuje również fragmentację i ponowne składanie pakietów IP, co jest ważne w przypadku dużych transmisji danych, które mogą przekraczać maksymalny rozmiar pakietu dozwolony w sieci.
- Interfejs IP może także zapewniać dodatkowe usługi, takie jak obsługa parametrów Quality of Service (QoS) i mechanizmów bezpieczeństwa, takich jak IPsec.
- Interfejs IP jest kluczowym elementem pakietu Internet Protocol Suite, ponieważ umożliwia komunikację pomiędzy hostami w Internecie i umożliwia płynną transmisję pakietów danych w sieci.
GATE Pytania do ćwiczeń
- GATE CS 2013, Pytanie 12
- GATE CS 2012, Pytanie 65
- GATE CS 2007, pytanie 20
- GATE CS 2005, pytanie 23
- GATE IT 2008, pytanie 66
- GATE Mock 2015, Pytanie 5
Często zadawane pytania dotyczące protokołu UDP – często zadawane pytania
1. Wymień protokoły korzystające z UDP?
Protokoły korzystające z modelu UDP to:
2. Co jest szybsze: TCP czy UDP?
UDP jest szybszy niż TCP.