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

By Laura Danielczyk23 listopada, 2020
TCP vs UDP

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.


Tags: TCP, UDP