Protokół UDP (User Datagram Protocol)
Protokół UDP jest standardem TCP/IP zdefiniowanym w specyfikacji RFC 768 „User Datagram Protocol
(UDP)”. Protokół UDP jest używany przez niektóre programy zamiast protokołu TCP do szybkiego,
uproszczonego, mniej niezawodnego przesyłania danych między hostami TCP/IP.
Protokół UDP jest usługą wymiany datagramów bez ustanowionego połączenia, która zapewnia najlepszą
jakość dostarczania, co oznacza, że protokół UDP nie gwarantuje dostarczenia i sprawdzania sekwencji
datagramów. Host źródłowy wymagający niezawodnych połączeń powinien korzystać z protokołu TCP lub
programu, który posiada wbudowane własne usługi sprawdzania sekwencji i potwierdzania.
Komunikaty UDP są hermetyzowane i wysyłane w datagramach IP w sposób pokazany na rysunku.
Obraz
Porty UDP
Porty UDP służą do wysyłania i odbierania komunikatów UDP. Port UDP funkcjonuje jako pojedyncza
kolejka komunikatów, która służy do odbierania wszystkich datagramów przez program określony za
pomocą numeru portu protokołu. Oznacza to, że programy UDP mogą jednocześnie odbierać kilka
komunikatów.
Strona serwera każdego programu wykorzystującego port UDP oczekuje na komunikaty przychodzące do
dobrze znanego numeru portu. Wszystkie numery portów serwerów UDP o wartościach niższych od 1024
(i niektóre wyższe numery) są zarezerwowane i zarejestrowane przez organizację IANA (Internet
Assigned Numbers Authority).
Każdy port serwera UDP jest identyfikowany za pomocą zarezerwowanego lub dobrze znanego numeru
portu. W tabeli przedstawiono część listy dobrze znanych numerów portów serwerów UDP
wykorzystywanych przez standardowe programy UDP.
Numer portu UDP
Opis
53
Kwerendy nazw DNS
69
Protokół TFTP (Trivial File Transfer Protocol)
137
Usługa nazw NetBIOS
138
Usługa datagramów NetBIOS
161
Protokół SNMP (Simple Network Management Protocol)
520
Protokół RIP (Routing Information Protocol)
Protokoły UDP i TCP
Ogólne różnice w sposobie dostarczania danych między protokołem UDP a protokołem TCP są podobne
do różnicy między używaniem telefonu a kartki pocztowej. Protokół TCP działa jak telefon, sprawdzając,
czy miejsce docelowe jest dostępne i gotowe do ustanowienia połączenia. Protokół UDP działa jak kartka
pocztowa — komunikaty są niewielkie, a ich dostarczenie prawdopodobne, ale nie zawsze pewne.
Protokół UDP jest zwykle wykorzystywany przez programy, które służą do jednorazowego przesyłania
małych ilości danych lub mają wymagania dotyczące czasu rzeczywistego. W takich przypadkach niskie
wymagania organizacyjne i funkcje obsługi multiemisji protokołu UDP (na przykład jeden datagram,
wielu odbiorców) są bardziej przydatne niż funkcje protokołu TCP.
Protokół UDP różni się wyraźnie pod względem usług i funkcji od protokołu TCP. W poniższej tabeli
przedstawiono porównanie połączeń TCP/IP w zależności od tego, czy do transportowania danych jest
używany protokół UDP, czy protokół TCP.
UDP
TCP
Usługa bez ustanowionego połączenia; między hostami nie
jest ustanawiana sesja.
Usługa zorientowana na połączenie; między
hostami jest ustanawiana sesja.
Protokół UDP nie gwarantuje dostarczenia przesyłki, a
także potwierdzania i szeregowania danych.
Protokół TCP gwarantuje dostarczenie
przesyłki dzięki użyciu potwierdzania i
szeregowania dostarczania danych.
Programy wykorzystujące protokół UDP odpowiadają za
prawidłowe transportowanie danych.
Programy wykorzystujące protokół TCP mają
zapewniony niezawodny transport danych.
Protokół UDP jest szybki, ma niskie wymagania
organizacyjne i obsługuje połączenia bezpośrednie i
połączenia jednego punktu z wieloma punktami.
Protokół TCP jest wolniejszy, ma wyższe
wymagania organizacyjne i obsługuje tylko
połączenia bezpośrednie.
Protokoły UDP i TCP rozpoznają połączenia poszczególnych programów TCP/IP na podstawie portów,
których te programy używają.
Protokół sterowania transmisj
ą
(TCP, Transmission Control
Protocol)
Protokół sterowania transmisją (TCP, Transmission Control Protocol)
Protokół TCP jest wymaganym standardem połączenia TCP/IP zdefiniowanym w specyfikacji RFC 793
„Transmission Control Protocol (TCP)”, który zapewnia niezawodne i szybkie dostarczanie pakietów.
Protokół TCP:
Zapewnia dostarczanie datagramów IP.
Wykonuje dzielenie na segmenty i ponownie łączy duże bloki danych przesłanych przez programy.
Zapewnia poprawne szeregowanie i uporządkowane dostarczanie podzielonych danych.
Sprawdza integralność przesyłanych danych, obliczając sumy kontrolne.
Wysyła komunikaty potwierdzające odebranie danych. Dzięki funkcji potwierdzania selektywnego są
także przesyłane komunikaty o niedostarczeniu danych.
Umożliwia wybór preferowanej metody transportu programom, takim jak bazy danych w środowisku
klient/serwer i programy poczty e-mail, które muszą używać niezawodnej transmisji danych w sesjach.
Jak działa protokół TCP
Protokół TCP jest oparty na bezpośredniej komunikacji między dwoma hostami sieciowymi. Protokół TCP
otrzymuje dane z innych programów i przetwarza je jako strumień bajtów. Bajty są grupowane w
segmenty, które są następnie numerowane i szeregowane do wysyłki przez protokół TCP.
Zanim będzie możliwa wymiana danych między dwoma hostami TCP, musi zostać ustanowiona sesja
między nimi. Sesja TCP jest inicjowana za pomocą procesu zwanego uzgadnianiem trójstopniowym.
Proces ten synchronizuje numery sekwencji i zapewnia kontrolę nad informacjami, co jest warunkiem
niezbędnym do ustanowienia połączenia wirtualnego między dwoma hostami.
Po ukończeniu uzgadniania trójstopniowego segmenty są wysyłane i zatwierdzane sekwencyjnie między
hostami. Podobny proces uzgadniania jest wykonywany przez protokół TCP przed zamknięciem
połączenia w celu sprawdzenia, czy oba hosty zakończyły wysyłanie i odbieranie danych.
Segmenty TCP są hermetyzowane i wysyłane w datagramach IP w sposób pokazany na rysunku.
Obraz
Porty TCP
Porty TCP wykorzystują określone porty programów do dostarczania danych wysłanych za pomocą
protokołu TCP. Porty TCP są bardziej złożone i działają inaczej niż porty UDP.
Port UDP działa jako jedna kolejka komunikatów i punkt końcowy dla połączeń UDP. Punktem końcowym
całej komunikacji TCP jest unikatowe połączenie. Każde połączenie TCP jest unikatowo identyfikowane
dzięki dwóm punktom końcowym.
Każdy port serwera TCP umożliwia dostęp do wielu połączeń, ponieważ wszystkie połączenia TCP są
unikatowo identyfikowane za pomocą dwóch par adresu IP i portu TCP (jedna para adres/port dla
każdego podłączonego hosta).
Programy TCP korzystają z zarezerwowanych lub dobrze znanych numerów portów, co pokazano na
rysunku.
Obraz
Strona serwera każdego programu wykorzystującego port TCP oczekuje na komunikaty przychodzące do
dobrze znanego numeru portu. Wszystkie numery portów serwerów TCP o wartościach niższych od 1024
(i niektóre wyższe numery) są zarezerwowane i zarejestrowane przez organizację IANA (Internet
Assigned Numbers Authority).
W tabeli przedstawiono część listy dobrze znanych numerów portów serwerów TCP wykorzystywanych
przez standardowe programy TCP.
Numer portu TCP
Opis
20
Serwer FTP (kanał danych)
21
Serwer FTP (kanał kontrolny)
23
Serwer Telnet
53
Transfery stref DNS
80
Serwer sieci Web (HTTP)
139
Usługa sesji NetBIOS