logo

Protokół datagramów użytkownika (UDP)

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ść.



UDP-gif

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



Nagłówek UDP

  1. 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.
  2. Port docelowy: Jest to pole o długości 2 bajtów, używane do identyfikacji portu docelowego pakietu.
  3. Długość: Długość to długość protokołu UDP, łącznie z nagłówkiem i danymi. Jest to pole 16-bitowe.
  4. 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.
    1. Zmniejsz zapotrzebowanie na zasoby komputera.
    2. Podczas korzystania z transmisji Multicast lub Broadcast.
    3. 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ń

  1. GATE CS 2013, Pytanie 12
  2. GATE CS 2012, Pytanie 65
  3. GATE CS 2007, pytanie 20
  4. GATE CS 2005, pytanie 23
  5. GATE IT 2008, pytanie 66
  6. 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.