UDP 2.doc

(65 KB) Pobierz
UDP (ang

UDP (ang. User Datagram Protocol - Datagramowy Protokół Użytkownika) – jeden z podstawowych protokołów internetowych. Umieszcza się go w warstwie czwartej modelu OSI.

Jest to protokół bezpołączeniowy, więc nie ma narzutu na nawiązywanie połączenia i śledzenie sesji. Nie ma też mechanizmów kontroli przepływu i retransmisji. Korzyścią płynącą z takiego uproszczenia budowy jest większa szybkość transmisji 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ć protokół DNS lub VoIP.

UDP udostępnia mechanizm identyfikacji różnych punktów końcowych na jednym hoście dzięki portom. UDP zajmuje się dostarczaniem pojedynczych pakietów, udostępnionych przez IP, na którym się opiera. W UDP występuje możliwość transmisji do kilku adresów docelowych na raz.

Pakiety UDP 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.

Porty UDP zapisywane są na dwóch bajtach (szesnastu bitach), więc każdy adres IP może mieć przypisanych 65536 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

+

Bity 0 - 15

16 - 31

0

Port nadawcy

Port odbiorcy

32

Długość

Suma kontrolna

64

 
Dane
 

 

Port nadawcy

Identyfikuje port, z którego została wysłana wiadomość, kiedy znaczący to wskazuje port wysyłającego procesu i może zostać przyjęty jako port, do którego powinna zostać zwrócona wiadomość zwrotna w przypadku braku innej informacji. Port nadawcy jest polem opcjonalnym. Gdy pole to nie jest używane przyjmuje wartość zero.

Port odbiorcy

Identyfikuje port odbiorcy i jest polem wymaganym.

Długość

16-bitowe pola specyfikują długość w bajtach całego datagramu: nagłówek i dane. Minimalna długość to 8 bajtów i jest to długość nagłówka. Wielkość pola ustala teoretyczny limit 65,527 bajtów, dla danych przenoszonych przez pojedynczy datagram UDP.

Suma kontrolna

16 bitowe pole, które jest użyte do sprawdzania poprawności nagłówka oraz danych. Pole jest opcjonalne. Ponieważ IP nie wylicza sumy kontrolnej dla danych, suma kontrolna UDP jest jedyną gwarancją, że dane nie zostały uszkodzone.

 

Transfer UDP po IPv4

Kiedy UDP działa na IPv4 metoda używana do obliczania sumy kontrolnej określana jest w RFC 768.

Całe 16-bitowe słowa są sumowane razem używając uzupełnienia. Końcowa wartość jest wstawiana do pola sumy kontrolnej.

Różnica jest w danych używanych do tworzenia sumy kontrolnej.

+

Bity 0 - 7

8 - 15

16 - 23

24 - 31

0

Adres źródłowy

32

Adres docelowy

64

Zera

Protokół

Długość UDP

96

Port źródłowy

Port docelowy

128

Długość

Suma kontrolna

160

 
Dane
 

Ź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 jest wyliczana, jako zero to powinno zostać wysłane jako negacja zera. Jeśli suma kontrolna nie jest użyta to powinno zostać wysłane jako zero.

 

Transfer UDP po IPv6

Kiedy UDP działa na IPv6, suma kontrolna nie jest już opcjonalna i metoda obliczania sumy kontrolnej jest zmieniona, na 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.

+

Bity 0 - 7

8 - 15

16 - 23

24 - 31

0

Adres źródłowy

32

64

96

128

Adres docelowy

160

192

224

256

Długość UDP

288

Zera

Następny nagłówek

320

Port źródłowy

Port docelowy

352

Długość

Suma kontrolna

384

 
Dane

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 Routing’u, to adresem docelowy będzie adres zawarty w nagłówku IPv6, inaczej, w powstającym punkcie węzłowym, będzie to adres ostatniego elementu nagłówka Routing’u, 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.

Interfejs użytkownika

Interfejs użytkownika powinien pozwolić:

- tworzyć nowe porty przyjmujące dane

- przyjmować operacje na tych portach, zwracać obiekty danych oraz wskazywać port źródła i adres źródła danych

- na operacje, które pozwalają datagramowi wysłać, dane, porty źródłowe i docelowe lub ich adresy.

 

Interfejs IP

Moduł UDP musi być w stanie ...

Zgłoś jeśli naruszono regulamin