Dwa protokoły warstwy transportowej – niezawodne TCP z potwierdzeniami i szybkie UDP bez nich, oraz kiedy stosuje się który.
TCP i UDP pracują w tej samej warstwie transportowej i rozwiązują ten sam problem – dostarczenie danych do właściwej aplikacji – ale robią to zupełnie inaczej.
TCP jest połączeniowy i niezawodny. Przed wysłaniem danych nawiązuje połączenie, numeruje segmenty, czeka na potwierdzenia i powtarza to, co zaginęło. Gwarantuje, że dane dotrą w komplecie i we właściwej kolejności – kosztem czasu i dodatkowego ruchu.
UDP jest bezpołączeniowy. Wysyła dane i nie sprawdza, czy dotarły. Nie ma potwierdzeń, retransmisji ani porządkowania. Jest przez to znacznie szybszy i lżejszy, ale nie daje żadnych gwarancji.
Wybór zależy od tego, co jest gorsze: utrata fragmentu czy opóźnienie. Przy pobieraniu pliku brak jednego bajta psuje całość, więc wygrywa TCP. Przy rozmowie wideo pojedyncza zgubiona klatka jest niezauważalna, a czekanie na nią zatrzymałoby obraz – więc wygrywa UDP.
| Cecha | TCP | UDP |
|---|---|---|
| Nawiązanie połączenia | tak, trójstopniowe | nie |
| Potwierdzenia odbioru | tak | nie |
| Kolejność danych | gwarantowana | niegwarantowana |
| Retransmisja utraconych danych | tak | nie |
| Szybkość | mniejsza | większa |
| Rozmiar nagłówka | większy | mniejszy |
| Typowe zastosowania | WWW, poczta, pliki | wideo, gry, DNS |
Klasyczne pytanie to przyporządkowanie zastosowania do protokołu albo wskazanie cechy, która je odróżnia. Odpowiedź „UDP jest szybszy" bywa niewystarczająca – trzeba dodać, dlaczego: bo nie potwierdza odbioru.
Warto zapamiętać, że DNS korzysta zwykle z UDP. To częsty punkt w pytaniach, bo intuicja podpowiada TCP.
Klient wysyła prośbę o połączenie, serwer ją potwierdza i odsyła własną, a klient potwierdza tę drugą. Dopiero po tych trzech krokach zaczyna się przesyłanie danych.
Bo zapytanie i odpowiedź są krótkie, a nawiązywanie połączenia trwałoby dłużej niż sama wymiana. Jeśli odpowiedź nie dotrze, klient po prostu pyta ponownie.
Nie – w dobrej sieci docierają niemal wszystkie. UDP po prostu nie sprawdza tego i nie naprawia, gdy coś przepadnie.
Zagadnienia z tego samego obszaru matury – warto je powtórzyć razem: