INTEGRITY Dokumentace

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í.