TCP (Transmission Control Protocol, česky protokol řízení přenosu) je spolehlivý způsob, jakým si dva počítače na internetu posílají data. Postará se o to, aby všechno dorazilo, dorazilo to celé a ve správném pořadí. Ten druhý, nedbalejší a rychlejší způsob se jmenuje UDP a je popsaný ve vlastním hesle – v přirovnání k poště je TCP doporučený dopis a UDP pohlednice.

Podívejme se ale na TCP z druhé strany, tedy co pro tu spolehlivost musí udělat. Nejdřív se obě strany musí dohodnout, že spolu vůbec budou mluvit. Tomu se říká navázání spojení a probíhá ve třech krocích: prohlížeč se ozve, server odpoví „slyším Vás" a prohlížeč potvrdí „také Vás slyším". Teprve pak se posílají data. Je to jako zvednout telefon a než začnete diktovat, ověřit si, že na druhé straně někdo je.

Během přenosu se pak odehrává tohle:

  • Rozdělení na kousky – velký soubor se rozřeže na malé zásilky zvané pakety, protože po síti se najednou neveze všechno.
  • Číslování – každý kousek dostane pořadové číslo, takže příjemce dokáže složit původní soubor, i když části dorazí přeházené.
  • Potvrzování – příjemce průběžně hlásí, co už má. Odesílatel tak ví, odkud pokračovat.
  • Opakované odeslání – když potvrzení nedorazí do určité doby, odesílatel tentýž kousek pošle znovu. Tohle je jádro celé spolehlivosti.
  • Řízení rychlosti – TCP zrychluje postupně a při ztrátách zpomalí, aby nezahltilo linku ani protistranu.
  • Ukončení spojení – i rozloučení má svůj postup, aby se nic neztratilo na poslední chvíli.

Právě proto na TCP stojí věci, kde nesmí chybět ani písmenko: načítání webových stránek, přenos souborů přes FTP, doručování pošty protokolem SMTP i čtení schránky přes IMAP. Půlka stažené faktury nebo objednávka s chybějícím řádkem by byly k ničemu. Ke každému takovému spojení patří i číslo portu, které říká, se kterou službou na serveru se má mluvit.

Daň za spolehlivost je čas. Úvodní trojí výměna zdrží o jednu cestu tam a zpět, a čeká-li se na potvrzení ztraceného kousku, stojí mezitím i data, která už dorazila. Na rychlé lince to nepoznáte, na mobilu s vyšší odezvou ano. Přesně tuhle daň se snaží srazit novější QUIC, na kterém běží HTTP/3 – spolehlivost si zajišťuje po svém a úvodní vyjednávání zkrátí.

Jako majitel webu TCP nikde nenastavujete a nemusíte o něm nic vědět, aby Vám stránky fungovaly. Hodí se to až ve chvíli, kdy narazíte na hlášku typu „connection reset" nebo „connection timed out" – teď víte, že jde o přerušené či nenavázané spojení, ne o chybu ve Vašem obsahu. Časté příčiny bývají přetížený server, firewall blokující daný port nebo vypršený časový limit.