TCP garantuje doručení dat ve správném pořadí, UDP maximalizuje rychlost za cenu možné ztráty paketů. Volba mezi nimi je zásadní architektonické rozhodnutí, které ovlivňuje latenci, spolehlivost a škálovatelnost aplikace. Pochopení rozdílů je klíčové pro návrh síťových protokolů i výběr správné technologie.
TCP¶
- Three-way handshake — SYN, SYN-ACK, ACK před zahájením přenosu
- Garantované doručení a pořadí — ztracené pakety jsou automaticky přeposlány
- Flow/congestion control — TCP dynamicky přizpůsobuje rychlost přenosu
- Vyšší latence — overhead z potvrzování, řazení a retransmisí
TCP je stavový protokol — udržuje spojení mezi klientem a serverem. Nagle algoritmus optimalizuje malé pakety, sliding window řídí, kolik dat lze poslat bez potvrzení. Congestion control algoritmy (CUBIC, BBR) zajišťují férové sdílení šířky pásma a prevenci přetížení sítě.
UDP¶
- Connectionless — žádný handshake, pošlete a doufáte
- Žádná garance — pakety se mohou ztratit, zduplikovat nebo přijít mimo pořadí
- Minimální overhead — 8B header oproti 20B+ u TCP
- Nižší latence — žádné čekání na potvrzení
UDP je bezstavový — každý datagram je nezávislý. Jednoduchost UDP umožňuje aplikacím implementovat vlastní reliability mechanismy přesně podle potřeby. Například VoIP toleruje občasnou ztrátu paketu (krátký výpadek zvuku), ale netolerovatelná je latence z retransmisí.
Kdy co¶
- TCP — HTTP/HTTPS, SSH, databáze, email, file transfer — všude, kde záleží na úplnosti dat
- UDP — DNS lookups, VoIP, video streaming, online hry, VPN tunely — kde záleží na rychlosti
QUIC¶
HTTP/3 používá QUIC — protokol postavený nad UDP, který kombinuje spolehlivost TCP s nízkou latencí UDP. Přidává multiplexing (bez head-of-line blocking), vestavěné TLS 1.3 šifrování a 0-RTT connection resumption. QUIC řeší klíčový problém TCP: při ztrátě jednoho paketu neblokuje ostatní streamy.
TCP pro spolehlivost, UDP pro rychlost¶
QUIC je budoucnost — best of both worlds. Pro nové aplikace zvažte QUIC/HTTP3 jako výchozí transportní vrstvu.