Wróć do: Teoria
średni sieciTCPUDPmatura rozszerzona z informatyki

TCP vs UDP

Dwa protokoły warstwy transportowej – niezawodne TCP z potwierdzeniami i szybkie UDP bez nich, oraz kiedy stosuje się który.

01

Opis

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.

02

Porównanie

CechaTCPUDP
Nawiązanie połączeniatak, trójstopniowenie
Potwierdzenia odbiorutaknie
Kolejność danychgwarantowananiegwarantowana
Retransmisja utraconych danychtaknie
Szybkośćmniejszawiększa
Rozmiar nagłówkawiększymniejszy
Typowe zastosowaniaWWW, poczta, plikiwideo, gry, DNS

Na maturze

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.

04

Zapamiętaj

  • TCP: połączenie, potwierdzenia, kolejność, retransmisja – niezawodnie, ale wolniej.
  • UDP: brak połączenia i potwierdzeń – szybko, ale bez gwarancji.
  • TCP do stron, poczty i plików; UDP do transmisji na żywo, gier i DNS.
  • Oba działają w warstwie transportowej, czyli czwartej modelu OSI.
05

Najczęściej zadawane pytania

Na czym polega trójstopniowe nawiązanie połączenia?

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.

Dlaczego DNS używa UDP?

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.

Czy przez UDP dane zawsze giną?

Nie – w dobrej sieci docierają niemal wszystkie. UDP po prostu nie sprawdza tego i nie naprawia, gdy coś przepadnie.

Powiązane zagadnienia