← Cloudflare Fundamentals / fundamentals / reference
Připojení TCP
Následující část vysvětluje, jak Cloudflare efektivně směruje provoz pomocí anycast routingu a funguje jako prostředník mezi uživateli a origin servery. Druhá část se věnuje TCP spojením a keep-alive pro optimalizaci výkonu a nakonec TCP Fast Open (TFO), rozšíření protokolu, které zvyšuje rychlost TCP spojení.
Jak Cloudflare propojuje uživatele s origin serverem
Uživatelé se ke Cloudflare připojují tak, že ze svých zařízení odesílají požadavky do globální sítě Cloudflare. Cloudflare se poté připojí k origin serveru a funguje jako prostředník mezi uživatelem a origin serverem.
flowchart LR
accTitle: Connections with Cloudflare
A[Visitor] <-- Connection --> B[Cloudflare global network] <-- Connection --> C[Origin server]
Provoz uživatelů se směruje do nejbližšího datacentra Cloudflare na základě nejkratší Border Gateway Protocol ↗ (BGP) trase, díky anycast ↗ směrování. Cloudflare poté požadavek zpracuje. Pokud požadavek není obsloužen z datových center Cloudflare, Cloudflare otevře spojení s origin serverem, aby požadavek předal.
Připojení TCP a keep-alive
HTTP (Hypertext Transfer Protocol) je Vrstva 7 ↗ aplikační protokol, který funguje nad TCP. Protokol HTTP standardně otevírá pro každý cyklus požadavek-odpověď nové připojení TCP, což může vzhledem k opakovanému navazování a ukončování spojení způsobit výkonnostní režii.
Keep-Alives jsou mechanismus, který propojuje TCP a HTTP a umožňuje, aby jedno TCP připojení zůstalo otevřené pro více HTTP požadavků a odpovědí. Díky tomu se snižuje režie a latence spojená s navazováním nových TCP připojení pro každý webový prostředek. Keep-Alives zvyšují efektivitu a odezvu webových aplikací tím, že umožňují opakované využití existujících připojení, snižují síťový provoz a zlepšují uživatelský zážitek.
Připojení TCP mohou přetrvávat i po dokončení HTTP požadavků. Pro efektivní správu zdrojů se však nečinná připojení obvykle po určité době neaktivity ukončují. Aby se připojení dala lépe znovu využívat a snížila se související režie, používá se keep-alive. Tyto mechanismy společně optimalizují výkon a spolehlivost webových aplikací a zároveň šetří síťové zdroje.
Pokud uživatel ani origin neodpoví na dva keep-alive pakety, Cloudflare spojení ukončí odesláním paketu TCP Reset (RST).
Pro připojení k uživatelům používá Cloudflare výchozí časový limit nečinnosti 400 sekund. Po uplynutí těchto 400 sekund začne Cloudflare odesílat sondy keep-alive každých 75 sekund. Pokud zůstane devět sond po sobě bez odpovědi, Cloudflare spojení ukončí odesláním paketu RST.
Nastavení připojení TCP mezi uživatelem a Cloudflare a mezi Cloudflare a origin serverem lze u zákazníků Enterprise přizpůsobit. Podrobnosti vám poskytne váš tým pro správu účtu.
TCP Fast Open (TFO)
TCP Fast Open ↗ (TFO) je rozšíření protokolu, které může výrazně zrychlit navazování připojení TCP tím, že umožňuje odeslat data už v úvodním paketu SYN, místo aby vyžadovalo samostatný handshake před zahájením přenosu dat. TFO tak snižuje latenci a zlepšuje výkon webů a aplikací, zejména v sítích s vysokou latencí. Cloudflare podporuje TFO na uživatelských připojeních.
Když klient zahájí připojení k webovému serveru chráněnému Cloudflare, odešle paket TCP SYN se žádostí o spojení. Cloudflare jako reverzní proxy tento paket SYN zachytí a odpoví paketem SYN-ACK, aby spojení navázal. Je-li povoleno TFO, může Cloudflare v paketu SYN-ACK odeslat i počáteční data (například data požadavku HTTP), čímž odpadá potřeba dalšího okruhu pro přenos dat. Klient přijme paket SYN-ACK s daty a potvrdí jej paketem ACK. Tím se navázání spojení urychlí.