Google chce zrychlit internet. Pracuje na úpravách TCP

25. 1. 2012

Sdílet

 Autor: Redakce

Na blogu Google Code se včera objevil nový příspěvek od síťového specialisty jménem Yuchung Cheng, člena týmu, který si klade za cíl zrychlení prohlížení internetových stránek. Základní myšlenka spočívá ve zrychlení samotného protokolu TCP, tedy jednoho ze základních kamenů celého internetu.

Poukazuje na fakt, že internetové prohlížeče obvykle otevírají dopředu desítky souběžných TCP spojení, tedy ještě před vysláním samotných požadavků. Tato strategie sice obchází některá omezení, ale je často vyvážena vysokou latencí a dalšími komplikacemi.

Prvním návrhem je navýšení tzv. Initial Congestion Window (obecně představy odesílatele o množství dat, které může být posláno před tím, než se začne linka přetěžovat). Při moc velkém okénku často dochází k zahazování packetů, moc malé okénko ovšem zase omezuje výkon. V současné době se posílají 3 packety, které vyžadují tři potvrzení druhé strany (tzv. Round Trips) za účelem dodání obsahu o objemu 15 kB. Na základě experimentů Googlu by se navýšením Initial Congestion Window na 10 packetů snížila latence webových přenosů až o 10 %.

Druhou navrhovanou úpravou je snížení tzv. Initial Timeout ze současných tří sekund na jednu. Google vysvětluje, že timeout navrácení potvrzení (Round Trip Time, zkráceně RTT) měl své opodstatnění před pár desítkami let, ale dnešní internet údajně vyžaduje pro optimální běh podstatně kratší timeout.

Třetím vylepšením by mělo být využití TFO (TCP Fast Open). Dle statistiky Googlu je prohlížeč ve třetině případů nucen "spotřebovat" jeden potvrzovací cyklus (1 RTT) pro navázání TCP spojení se vzdálenou stranou. Většina odpovědí (HTTP) se přitom vejde do úvodního okénka 10 packetů, což zdvojnásobuje čas pro samotnou odpověď.

Pomocí TFO je možné toto přetížení eliminovat tak, že se úvodní HTTP požadavek zahrne již do packetu TCP SYN  při otevírání spojení (tzv. třípacketový handshake). Při různých experimentech bylo dosaženo snížení času pro načtení obsahu v průměru o 10 %, v některých specifických situacích až o 40 %.

Posledním návrhem je použití proporcionálního omezení rychlosti, které spočívá v úpravě rychlosti podle velikosti ztrát packetů. Tento návrh není v podstatě žádnou novinkou, je již nějakou dobu integrován do linuxového jádra a integrace do TCP standardu na sebe nejspíše nenechá dlouho čekat.