Protokoły transportowe - TCP i UDP
W warstwie transportowej modelu sieciowego odbywa się zarządzanie komunikacją między aplikacjami działającymi na różnych urządzeniach. Najważniejszymi protokołami tej warstwy są TCP i UDP. Oba pozwalają na przesyłanie danych przez sieć, ale robią to w zupełnie inny sposób – z różnymi zaletami i kompromisami.

Schemat warstw komunikacji sieciowej.
Źródło obrazka: geeksforgeeks.com
TCP – Transmission Control Protocol
TCP to protokół połączeniowy i niezawodny. Zanim rozpocznie się transmisja danych, TCP ustanawia połączenie między nadawcą a odbiorcą – tzw. handshake (trójfazowe uzgadnianie połączenia). Dzięki temu ma pewność, że obie strony są gotowe do komunikacji.
Ważne cechy TCP:
- Gwarancja dostarczenia danych – jeśli pakiet zaginie, zostanie automatycznie wysłany ponownie.
- Kolejność danych – dane docierają w takiej samej kolejności, w jakiej zostały wysłane.
- Kontrola błędów – TCP wykrywa i koryguje błędy transmisji.
- Kontrola przeciążenia – dostosowuje prędkość wysyłania danych do warunków sieciowych.
Ze względu na swoją niezawodność, TCP jest wykorzystywany w aplikacjach, gdzie utrata danych jest niedopuszczalna lub niepożądana. Przykłady:
- HTTP i HTTPS (strony internetowe)
- FTP (transfer plików)
- SMTP, IMAP, POP3 (poczta elektroniczna)
- SSH (zdalny dostęp do serwerów)
UDP – User Datagram Protocol
UDP to protokół bezpołączeniowy. Nie nawiązuje on uprzedniego połączenia, tylko od razu wysyła dane – jak pocztówka bez potwierdzenia odbioru. Dzięki temu jest znacznie szybszy niż TCP, ale mniej niezawodny.
Ważne cechy UDP:
- Brak gwarancji dostarczenia – pakiety mogą zaginąć i nie zostaną ponownie wysłane.
- Brak kontroli kolejności – dane mogą dotrzeć w losowej kolejności.
- Brak kontroli przeciążenia i błędów
- Bardzo niskie opóźnienia – idealne do transmisji w czasie rzeczywistym.
Dzięki swojej lekkości i szybkości, UDP jest wykorzystywany tam, gdzie szybkość ma większe znaczenie niż niezawodność. Przykłady:
- VoIP (rozmowy przez internet, np. Zoom, Skype)
- Gry online (np. FPS)
- Transmisje na żywo (np. sportowe wydarzenia)
- DNS (zapytania o adresy domen)
- WebRTC (komunikacja wideo/audio w przeglądarce)
Podsumowanie
Cecha | TCP | UDP |
---|---|---|
Typ połączenia | Połączeniowy (z handshake) | Bezpołączeniowy |
Niezawodność | Wysoka (potwierdzenia i retransmisja) | Niska (brak potwierdzeń) |
Prędkość | Wolniejszy | Szybszy |
Przykłady użycia | HTTP, FTP, SMTP | VoIP, gry, DNS |