Jak działa protokół datagramów użytkownika?

UDP (User Datagram Protocol) zapewnia bezpołączeniowy i zawodny mechanizm transportu do transmisji danych w sieciach IP. Oto jak działa UDP:

UDP działa w warstwie transportowej stosu protokołów TCP/IP i jest używany przez aplikacje, które nie wymagają gwarantowanego dostarczenia danych ani ścisłej kolejności pakietów. Gdy aplikacja chce wysłać dane przy użyciu protokołu UDP, hermetyzuje dane w datagramie UDP. Każdy datagram UDP zawiera nagłówki z numerami portów źródłowych i docelowych, a także sumę kontrolną umożliwiającą wykrycie błędów (chociaż nie jest zapewniona korekcja błędów).

Po utworzeniu datagram UDP jest przekazywany do warstwy sieciowej (warstwy IP), gdzie staje się częścią pakietu IP. Pakiet IP zawiera dodatkowe nagłówki ze źródłowym i docelowym adresem IP, umożliwiając routerom przekazywanie go przez różne sieci w kierunku miejsca docelowego.

Po dotarciu do hosta docelowego pakiet IP jest przekazywany do warstwy transportowej, gdzie jest przetwarzany przez protokół UDP. UDP wyodrębnia ładunek danych z pakietu IP na podstawie numeru portu docelowego określonego w nagłówku UDP. W przeciwieństwie do protokołu TCP protokół UDP nie nawiązuje połączenia przed przesłaniem danych, nie utrzymuje stanu sesji ani nie zapewnia niezawodnego dostarczania. Zamiast tego UDP po prostu dostarcza dane do określonej aplikacji lub usługi działającej na hoście docelowym.

Datagram oznacza niezależną, samodzielną jednostkę danych przesyłanych w sieci.
UDP, datagram składa się z nagłówka UDP, po którym następuje ładunek danych. Każdy datagram jest traktowany jako odrębna całość i jest przesyłany niezależnie od innych datagramów. Oznacza to, że datagramy UDP mogą zostać dostarczone w nieprawidłowej kolejności lub zostać utracone, jeśli UDP nie zapewni mechanizmów retransmisji lub sekwencjonowania. Aplikacje korzystające z protokołu UDP muszą obsługiwać te warunki, jeśli jest to wymagane w ich konkretnym przypadku użycia.

Przykładem protokołu opartego na UDP jest DNS (Domain Name System). DNS wykorzystuje UDP do szybkiej i lekkiej transmisji zapytań DNS i odpowiedzi pomiędzy klientami (resolwerami) a serwerami DNS. Zapytania DNS, które proszą o mapowanie nazw domen na adresy IP, są zazwyczaj małe i korzystają z niskiego obciążenia i szybkiej transmisji UDP. Odpowiedzi DNS zawierające żądane mapowania są również przesyłane za pośrednictwem protokołu UDP. Serwery DNS nasłuchują na porcie UDP 53 przychodzących zapytań i odpowiadają datagramami UDP zawierającymi żądane informacje. DNS wykorzystuje protokół UDP przede wszystkim ze względu na jego skuteczność w rozpoznawaniu nazw domen i adresów IP bez narzutu związanego z ustanawianiem i utrzymywaniem połączeń.