TCP i UDP – czym są i czym się różnią?

This post is also available in:
English
TCP (Transmission Control Protocol) oraz UDP (User Datagram Porotcol) to podstawowe protokoły wykorzystywane do transferu informacji i danych między użytkownikiem a serwerem. Jeden z nich zapewni Ci większą niezawodność, natomiast drugi zagwarantuje szybszą transmisję danych. Poznaj protokołu TCP i UDP!
Czym jest i jak działa TCP?
Protokół TCP jest najczęściej stosowanym protokołem w całym Internecie. Jest to związane z tym, że zapewnia odpowiednią wydajność oraz znacząco ułatwia zachowanie bezpieczeństwa transmisji. Dzięki wykorzystaniu protokołu TCP serwer jest mniej podatny na ataki DDoS.
Przesyłanie danych w ramach protokołu TCP inicjowane jest przez nadanie pakietowi danych unikatowego identyfikatora. Dzięki temu dane mogą być rozpoznane i przesyłane w odpowiedniej kolejności do odbiorcy.
Po odebraniu pakietu danych i poświadczeniu zgodności ich kolejności serwer wysyła potwierdzenie do nadawcy. Gdy nadawca odeśle potwierdzenie, serwer zainicjuje przesył kolejnego pakietu danych.
Jeśli wystąpi problem w trakcie przesyłu – np. informacje zostaną utracone lub dane zostaną przesłane w złej kolejności, wówczas serwer pozostanie bierny i konieczne będzie ponowienie przesłania całego pakietu danych.
Protokół TCP wykorzystywany jest zwykle do transmisji danych między serwerem a aplikacjami klienckimi, wysyłania e-maili czy różnych plików danych.
Czym jest i jak działa UDP?
A jak działa protokół UDP? Cóż, trochę prościej, a przez to o wiele szybciej. UDP nie stosuje unikatowych identyfikatorów ani nie nadaje numerów sekwencyjnych przesyłanym danym. Dane są strumieniowane naraz, w sposób ciągły i bez podziału na sekwencje. Poza tym odbiorca nie musi potwierdzać ich odbioru ani zgodności. Jeśli część pakietu danych zostanie utracona w trakcie przesyłu, protokół UDP – pisząc kolokwialnie – nic sobie z tego nie robi, tylko kontynuuje transmisję.
Efekt tego możemy zaobserwować np. w grach wideo. Jeśli transmisja danych z jakichś powodów się zatnie, wówczas gra nie wyłączy się, tylko po chwili postać sterowana przez gracza przeteleportuje się w inne miejsce.
TCP a UDP – czym się różnią?
Choć obydwa protokoły wykorzystywane są do przesyłania pakietów danych między serwerem a odbiorcą, to sposób ich działania diametralnie się różni.
Protokół TCP przesyła dane w pojedynczych i usystematyzowanych pakietach, wymagając potwierdzenia zwrotnego od odbiorcy. Połączenie między odbiorcą a nadawcą pozostaje cały czas otwarte lub otwierane i zamykane w trakcie przesyłania danych. Sposób działania protokołu TCP zapewnia o wiele większą niezawodność transmisji, niemniej okupione jest to mniejszym tempem transferu danych.
Protokół UDP nie wymaga potwierdzeń zwrotnych, a dane wysyłane są masowo. Dzięki temu protokół ten zapewnia większą prędkość transmisji. Niemniej strumieniowe przesyłanie danych oraz brak mechanizmu wykrywania i korygowania błędów czy brak kontroli powstawania zatorów sprawiają, że protokół UDP jest bardziej zawodny od TCP.
Podsumowanie: który protokół wybrać?
Protokół UDP jest stosowany tam, gdzie konieczne jest szybkie, wydajne przesyłanie danych i niewymagane jest potwierdzanie ich otrzymania oraz tolerowane są utraty części danych. Protokół świetnie zdaje egzamin przy dwustronnych transmisjach 1:1. W przypadku wysyłki dużej ilości danych zdecydowanie lepsze osiągi daje protokół TCP-IP. Opóźnienia są większe, jednak sam protokół zapewnia nieporównywalnie większą stabilność w sieciach komputerowych.
Storm Streaming Server wykorzystuje TCP-IP do obsługi m.in autorskiego protokołu Storm, a także HLS, MPEG-DASH, CMAF czy RTMP. W nadchodzących aktualizacjach udostępniony zostanie również protokół WebRTC w dwóch wariantach: TCP-IP i właśnie UDP.