User Datagram ProtocolUDP (ang. User Datagram Protocol – protokół pakietów użytkownika) – jeden z protokołów internetowych o numerze porządkowym 17 . UDP stosowany jest w warstwie transportowej modelu OSI. Nie gwarantuje dostarczenia datagramu. Jest to protokół bezpołączeniowy, więc nie ma narzutu na nawiązywanie połączenia i śledzenie sesji (w przeciwieństwie do TCP). Nie ma też mechanizmów kontroli przepływu i retransmisji. Korzyścią płynącą z takiego uproszczenia budowy jest szybsza transmisja danych i brak dodatkowych zadań, którymi musi zajmować się host posługujący się tym protokołem. Z tych względów UDP jest często używany w takich zastosowaniach jak wideokonferencje, strumienie dźwięku w Internecie i gry sieciowe, gdzie dane muszą być przesyłane możliwie szybko, a poprawianiem błędów zajmują się inne warstwy modelu OSI. Przykładem może być VoIP lub protokół DNS. UDP udostępnia mechanizm identyfikacji różnych punktów końcowych (np. pracujących aplikacji, usług czy serwisów) na jednym hoście dzięki portom (porównaj: gniazdo). UDP zajmuje się dostarczaniem pojedynczych pakietów, udostępnionych przez IP, na którym się opiera. Kolejną cechą odróżniającą UDP od TCP jest możliwość transmisji do kilku adresów docelowych naraz (tzw. multicast). Pakiety UDP, zwane też datagramami, zawierają oprócz nagłówków niższego poziomu nagłówek UDP. Składa się on z pól zawierających sumę kontrolną, długość pakietu oraz porty: źródłowy i docelowy. Podobnie jak w TCP, porty UDP zapisywane są na dwóch bajtach (szesnastu bitach), więc każdy adres IP może mieć przypisanych 65535 różnych zakończeń. Z przyczyn historycznych, porty 0-1023 zarezerwowane są dla dobrze znanych usług sieciowych – dla aplikacji użytkownika przydziela się porty od 1024. Struktura nagłówka UDP
Transfer UDP po IPv4
Źródłowe i docelowe adresy znajdują się w nagłówku IPv4. Na długość pola UDP składa się jego nagłówek oraz dane. Jeśli suma kontrolna zostanie wyliczona i wyniesie 0, to powinna zostać wysłana jako alternatywna reprezentacja zera w kodzie uzupełnień do jedności (same „1”). Jeśli suma kontrolna nie jest użyta, to powinna zostać wysłana jako „zwykłe” zero (same „0”), co wskazuje odbiorcy, że nie jest wykorzystywana. Transfer UDP po IPv6Kiedy UDP działa na IPv6, suma kontrolna nie jest już opcjonalna. Metoda obliczania sumy kontrolnej została opisana w RFC 2460 ↓. Wszelki transport albo inna wyższa warstwa protokołu, która zawiera adresy z nagłówka IP w swojej sumie kontrolnej, musi zostać zmodyfikowana by można jej było użyć. IPv6 musi zawierać 128-bitowe adresy zamiast 32-bitowych używanych w IPv4.
W nagłówku IPv6 znajduje się jeden adres źródła danych. Adres docelowy jest końcowym adresem; jeśli pakiet IPv6 nie zawiera nagłówka trasowania, to adresem docelowym będzie adres zawarty w nagłówku IPv6, inaczej, w powstającym punkcie węzłowym, będzie to adres ostatniego elementu nagłówka trasowania, a w odbierającym punkcie węzłowym, będzie to adres docelowy z nagłówka IPv6. Następna wartość nagłówka jest wartością dla protokołu UDP. Na długość pola UDP składa się jego nagłówek oraz dane. Patrz art. źródłowy Datagram Protocol. Interfejs użytkownikaInterfejs użytkownika powinien pozwolić:
Interfejs IPModuł UDP musi być w stanie określić źródłowe i docelowe adresy internetowe, oraz rozróżniać pole protokołu od nagłówka. Jeden możliwy interfejs UDP/IP zwracałby cały datagram włącznie z nagłówkiem internetu jako odpowiedź na odebraną operacje. Interfejs UDP pozwoliłby także przesłać kompletny datagram wraz z nagłówkiem poprzez protokół IP. IP sprawdzałby dla zgodności niektóre pola oraz obliczał sumę kontrolną nagłówka. RFC 768 ↓ Kapsułkowanie UDPMiejsce UDP w podziale na warstwy TCP/IP pokazuje rysunek.
Kapsułkowanie polega na umieszczeniu danych warstwy wyższej wewnątrz wiadomości warstwy niższej. Zanim wiadomość po stronie nadawczej zostanie wysłana, przekazywana jest w dół stosu warstwy; każda kolejna warstwa po otrzymaniu tej wiadomości od warstwy wyżej, dodaje do niej własny nagłówek i stopkę. Datagram UDP przed wysłaniem w sieć jest w taki sposób kapsułkowany w datagram IP. Nagłówek IP identyfikuje maszynę źródłową i docelową, UDP – identyfikuje porty nadawcy i odbiorcy. U odbiorcy zachodzi proces odwrotny. Wiadomość przekazywana jest w górę stosu warstw i każda kolejna warstwa interpretuje, a następnie usuwa nagłówek dodany poprzednio przez tę samą warstwę u nadawcy. Więc u odbiorcy pakiet dociera do najniższej warstwy oprogramowania sieciowego i wędruje ku coraz wyższym warstwom. Każda z nich usuwa jeden nagłówek, oczekujący proces otrzymuje komunikat bez nagłówków. Datagram UDP otrzymany od IP na maszynie docelowej jest identyczny z tym, który UDP przekazało do IP na maszynie źródłowej[1]. Zobacz teżPrzypisy
Linki zewnętrzne
|