logo

Protokół UDP

W sieciach komputerowych UDP oznacza protokół datagramów użytkownika. David P. Reed opracował protokół UDP w 1980 roku. Jest on zdefiniowany w RFC 768 i stanowi część protokołu TCP/IP, a więc jest standardowym protokołem w Internecie. Protokół UDP umożliwia aplikacjom komputerowym wysyłanie wiadomości w formie datagramów z jednego komputera na drugi za pośrednictwem sieci protokołu internetowego (IP). UDP jest alternatywnym protokołem komunikacyjnym do protokołu TCP (protokół kontroli transmisji). Podobnie jak protokół TCP, UDP zapewnia zestaw reguł regulujących sposób wymiany danych w Internecie. Protokół UDP działa poprzez enkapsulację danych w pakiecie i dostarczanie do pakietu własnych informacji nagłówkowych. Następnie ten pakiet UDP jest kapsułkowany w pakiecie IP i wysyłany do miejsca docelowego. Oboje TCP i UDP protokoły przesyłają dane przez sieć protokołu internetowego, dlatego jest ona również nazywana TCP/IP i UDP/IP. Istnieje wiele różnic pomiędzy tymi dwoma protokołami. UDP umożliwia procesowi przetwarzanie komunikacji, podczas gdy TCP zapewnia komunikację między hostami. Ponieważ UDP wysyła komunikaty w formie datagramów, uważa się, że jest to najbardziej efektywny sposób komunikacji. TCP wysyła pojedyncze pakiety, jest więc niezawodnym medium transportowym. Inną różnicą jest to, że TCP jest protokołem zorientowanym na połączenie, podczas gdy UDP jest protokołem bezpołączeniowym, ponieważ nie wymaga żadnego obwodu wirtualnego do przesyłania danych.

UDP zapewnia również inny numer portu w celu rozróżnienia różnych żądań użytkowników, a także zapewnia możliwość sprawdzenia sumy kontrolnej w celu sprawdzenia, czy dotarły kompletne dane, czy nie; warstwa IP nie zapewnia tych dwóch usług.

Cechy protokołu UDP

Poniżej przedstawiono cechy protokołu UDP:

    Protokół warstwy transportowej

UDP to najprostszy protokół komunikacyjny warstwy transportowej. Zawiera minimalną ilość mechanizmów komunikacyjnych. Uważany jest za protokół zawodny i opiera się na usługach dostarczania typu best-effort. UDP nie zapewnia mechanizmu potwierdzania, co oznacza, że ​​odbiorca nie wysyła potwierdzenia odebranego pakietu, a nadawca również nie czeka na potwierdzenie wysłanego pakietu.

    Bez połączenia

UDP jest protokołem bezpołączeniowym, ponieważ nie tworzy wirtualnej ścieżki do przesyłania danych. Nie korzysta ze ścieżki wirtualnej, więc pakiety są wysyłane różnymi ścieżkami pomiędzy nadawcą a odbiorcą, co prowadzi do utraty pakietów lub odbierania ich w niewłaściwej kolejności.

Zamówiona dostawa danych nie jest gwarantowana.

W przypadku protokołu UDP datagramy wysyłane w określonej kolejności zostaną odebrane w tej samej kolejności, co nie jest gwarantowane, ponieważ datagramy nie są numerowane.

    Porty

Protokół UDP wykorzystuje różne numery portów, dzięki czemu dane mogą zostać przesłane do właściwego miejsca docelowego. Numery portów są definiowane w przedziale od 0 do 1023.

    Szybsza transmisja

UDP umożliwia szybszą transmisję, ponieważ jest protokołem bezpołączeniowym, co oznacza, że ​​do przesyłania danych nie jest wymagana żadna wirtualna ścieżka. Istnieje jednak ryzyko utraty pojedynczego pakietu, co wpływa na jakość transmisji. Z drugiej strony, jeśli pakiet zostanie utracony w połączeniu TCP, pakiet ten zostanie wysłany ponownie, co gwarantuje dostarczenie pakietów danych.

    Mechanizm uznania

UDP ma dowolny mechanizm potwierdzania, tj. nie ma uzgadniania między nadawcą UDP a odbiorcą UDP. Jeżeli wiadomość jest wysyłana w protokole TCP to odbiorca potwierdza, że ​​jestem gotowy, po czym nadawca wysyła dane. W przypadku protokołu TCP uzgadnianie następuje pomiędzy nadawcą a odbiorcą, podczas gdy w przypadku protokołu UDP nie ma uzgadniania pomiędzy nadawcą a odbiorcą.

    Segmenty są obsługiwane niezależnie.

Każdy segment UDP jest obsługiwany indywidualnie, ponieważ każdy segment podąża inną ścieżką do miejsca docelowego. Segmenty UDP mogą zostać utracone lub dostarczone w niewłaściwej kolejności, aby dotrzeć do miejsca docelowego, ponieważ nie ma skonfigurowanego połączenia między nadawcą a odbiorcą.

    Bezpaństwowiec

Jest to protokół bezstanowy, co oznacza, że ​​nadawca nie otrzymuje potwierdzenia wysłania pakietu.

Dlaczego potrzebujemy protokołu UDP?

Jak wiemy, UDP jest protokołem zawodnym, ale w niektórych przypadkach nadal potrzebujemy protokołu UDP. Protokół UDP jest wdrażany tam, gdzie pakiety wymagają dużej przepustowości wraz z rzeczywistymi danymi. Na przykład podczas przesyłania strumieniowego wideo potwierdzanie tysięcy pakietów jest kłopotliwe i powoduje marnowanie dużej przepustowości. W przypadku strumieniowego przesyłania wideo utrata niektórych pakietów nie może stanowić problemu, ale można ją również zignorować.

Format nagłówka UDP

Protokół UDP

W UDP rozmiar nagłówka wynosi 8 bajtów, a rozmiar pakietu wynosi do 65 535 bajtów. Jednak taki rozmiar pakietu nie jest możliwy, ponieważ dane muszą być enkapsulowane w datagramie IP, a w pakiecie IP rozmiar nagłówka może wynosić 20 bajtów; dlatego maksymalna wartość UDP wyniesie 65 535 minus 20. Rozmiar danych, jakie może przenieść pakiet UDP, wyniesie 65 535 minus 28, co oznacza 8 bajtów nagłówka pakietu UDP i 20 bajtów nagłówka IP.

Nagłówek UDP zawiera cztery pola:

    Numer portu źródłowego:Jest to 16-bitowa informacja określająca, który port wyśle ​​pakiet.Numer portu docelowego:Określa, który port przyjmie informację. Jest to 16-bitowa informacja używana do identyfikacji usług na poziomie aplikacji na komputerze docelowym.Długość:Jest to 16-bitowe pole określające całą długość pakietu UDP, łącznie z nagłówkiem. Minimalna wartość będzie wynosić 8 bajtów, ponieważ rozmiar nagłówka wynosi 8 bajtów.Suma kontrolna:Jest to pole 16-bitowe i jest polem opcjonalnym. To pole sumy kontrolnej sprawdza, czy informacja jest dokładna, ponieważ istnieje możliwość uszkodzenia informacji podczas transmisji. Jest to pole opcjonalne, co oznacza, że ​​od aplikacji zależy, czy chce zapisać sumę kontrolną, czy nie. Jeśli nie chce zapisywać sumy kontrolnej, wówczas wszystkie 16 bitów ma wartość zerową; w przeciwnym razie zapisuje sumę kontrolną. W UDP pole sumy kontrolnej odnosi się do całego pakietu, tj. nagłówka i części danych, podczas gdy w IP pole sumy kontrolnej odnosi się tylko do pola nagłówka.

Koncepcja kolejkowania w protokole UDP

Protokół UDP

W protokole UDP liczby służą do rozróżnienia różnych procesów na serwerze i kliencie. Wiemy, że UDP zapewnia proces przetwarzania komunikacji. Klient generuje procesy wymagające usług, podczas gdy serwer generuje procesy świadczące usługi. Kolejki są dostępne dla obu procesów, tj. po dwie kolejki dla każdego procesu. Pierwsza kolejka to kolejka przychodząca, która odbiera komunikaty, a druga to kolejka wychodząca, która wysyła komunikaty. Kolejka działa, gdy proces jest uruchomiony. Jeśli proces zostanie zakończony, kolejka również zostanie zniszczona.

UDP obsługuje wysyłanie i odbieranie pakietów UDP za pomocą następujących komponentów:

    Kolejka wejściowa:Pakiety UDP wykorzystują zestaw kolejek dla każdego procesu.Moduł wejściowy:Moduł ten pobiera datagram użytkownika z adresu IP, a następnie wyszukuje informacje z tablicy bloków sterujących tego samego portu. Jeśli znajdzie wpis w tabeli bloków sterujących z tym samym portem co datagram użytkownika, umieszcza dane w kolejce.Moduł bloku sterującego:Zarządza tabelą bloków kontrolnych.Tabela bloków kontrolnych:Tabela bloków kontrolnych zawiera wpisy o otwartych portach.Moduł wyjściowy:Moduł wyjściowy tworzy i wysyła datagram użytkownika.

Kilka procesów chce korzystać z usług UDP. Protokół UDP multipleksuje i demultipleksuje procesy, dzięki czemu wiele procesów może działać na jednym hoście.

Ograniczenia

  • Zapewnia zawodną usługę dostarczania połączenia. Nie świadczy żadnych usług protokołu IP z wyjątkiem komunikacji między procesami.
  • Wiadomość UDP może zostać utracona, opóźniona, zduplikowana lub może być nieprawidłowa.
  • Nie zapewnia niezawodnej usługi dostawy transportu. Nie zapewnia żadnego mechanizmu potwierdzania ani kontroli przepływu. Jednak w pewnym stopniu zapewnia kontrolę błędów.

Zalety

  • Generuje minimalną liczbę kosztów ogólnych.