UDP

    W zestawie protokołów TCP/IP protokół datagramów użytkownika UDP (ang. User Datagram Protocol), zapewnia porty protokołów używane do rozróżniania poszczególnych programów wykonywanych na pojedynczej maszynie.

    Oprócz wysyłanych danych, każdy komunikat UDP zawiera numer portu odbiorcy i numer portu nadawcy, dzięki czemu oprogramowanie UDP odbiorcy może dostarczyć komunikat do właściwego adresata oraz umożliwia wysłanie odpowiedzi.

    Do przesyłania komunikatów między maszynami UDP używa podstawowego protokołu IP i ma tę samą niepewną, bezpołączeniową semantykę dostarczania datagramów co IP - nie używa potwierdzeń w celu upewnienia się, o dotarciu komunikatów, nie porządkuje przychodzących komunikatów i nie zapewnia mechanizmu kontroli szybkości przesyłania danych między maszynami. Z tego powodu komunikaty UDP mogą być gubione, duplikowane lub przychodzić w innej kolejności niż były wysłane, ponadto pakiety mogą przychodzić szybciej niż odbiorca może je przetworzyć.

    Program użytkowy korzystający z UDP musi na siebie wziąć odpowiedzialność za rozwiązanie problemów niezawodności, w szczególności za gubienie komunikatów, ich duplikowanie, opóźnienia, dostarczenie w niewłaściwej kolejności i utratę łączności z adresatem.

    Ponieważ sieci lokalne dają dużą niezawodność i małe opóźnienia wiele programów opartych na UDP dobrze pracuje w sieciach lokalnych, ale może zawodzić w większych intersieciach TCP/IP.

    Format Komunikatów UDP

    Każdy komunikat UDP nazywa się datagramem użytkownika. Datagram taki można podzielić na dwie części: nagłówek UDP i obszar danych UDP.

 

 

    Nagłówek datagramu użytkownika składa się z czterech 16-bitowych pól.

    Pola PORT NADAWCY i PORT ODBIORCY zawierają 16-bitowe numery portów UDP używane do odnajdywania procesów oczekujących na dany datagram. Pole PORT NADAWCY jest opcjonalne.

    Pole DŁUGOŚĆ zawiera wartość odpowiadającą liczbie bajtów datagramu UDP wliczając nagłówek i dane. Minimalna więc wartość tego pola wynosi więc 8, czyli jest długością samego nagłówka.

    Pole SUMA KONTROLNA jest opcjonalne. Ponieważ jednak IP nie wylicza sum kontrolnych dla danych, suma kontrolna UDP jest jedyną gwarancją, że dane nie zostały uszkodzone.

    Kapsułkowanie UDP

    UDP jest pierwszym omówionym przez nas przykładem protokołu transportowego. W modelu warstw protokół UDP znajduje się powyżej warstwy protokołu intersieci.

 

 

    Umieszczenie datagramu UDP powyżej warstwy IP oznacza, że przed wysłaniem kompletny komunikat UDP wraz z nagłówkiem UDP i danymi jest w znany nam już sposób kapsułkowany w datagram IP.

    U odbiorcy pakiet dociera do najniższej warstwy oprogramowania sieciowego i wędruje ku coraz wyższym warstwom. Każda warstwa usuwa jeden nagłówek przed przekazaniem komunikatu dalej, w efekcie przed przekazaniem komunikatu przez ostatnią warstwę oczekującemu procesowi zostają usunięte wszystkie nagłówki. Analizując proces dodawania i usuwania nagłówków pamiętajmy o zasadzie podziału na warstwy. W szczególności zwróćmy uwagę, że datagram UDP otrzymany od IP na maszynie docelowej jest identyczny z tym który UDP przekazało do IP na maszynie źródłowej, co więcej dane przekazywane przez UDP procesowi użytkownika na maszynie docelowej są dokładnie takie, jakie użytkownik przekazał do UDP na maszynie źródłowej.

    Tak więc warstwa IP jest odpowiedzialna wyłącznie za przesłanie danych między parą komputerów, zaś protokół UDP określa porty nadawcy i odbiorcy w obrębie jednej maszyny.


| Wprowadzenie | Sieć komputerowa | Protokoły | Model OSI (Open Systems Interconnection) | TCP/IP a model OSI | Adresowanie fizyczne | Adresy IP |

| Protokół Odwzorowania Adresów (ARP) | Protokół Odwrotnego Odwzorowania Adresów (RARP) | Internet Protocol (IP) | Kapsułkowanie | Fragmentacja |

| Koleje Życia Datagramu | ICMP | Określanie Ostatecznego Adresata | UDP | Multipleksowanie I Demultipleksowanie | Transmission Control Protocol (TCP) |

| Idea przesuwających się okien | Segment TCP | Porty i połączenia | Konfiguracja TCP/IP w systemie Unix | Przyszłość TCP/IP | Bibliografia |