TCPを高速化しましょう

Googleは、Webサーバーとブラウザの間のTCP接続の待ち時間を短縮する方法に関する多くの推奨事項を公​​開しています。 これらの推奨事項は、同社が数年間実施している研究をまとめたものです。



1. 輻輳ウィンドウの初期サイズを10(IW10)に増やします。 現在、TCP接続の開始時に、3つのデータパケットが3つのラウンド(RTT)で送信され、小さな情報(15 KB)が送信されます。 私たちの実験は、IW10がWeb接続のネットワーク遅延を10%以上削減することを示しています。



2. 初期タイムアウトを3秒から1秒に減らします。 数十年前には3秒のRTTが許容範囲でしたが、現代のインターネットで必要な時間はずっと短くなっています。 この理由は、ここで十分に文書化されています



3. TCP Fast Open(TFO)を使用します。 HTTP要求の33%について、ブラウザは最初に1つのRTTを使用してリモートピアとのTCP接続を確立する必要があります。 ほとんどのHTTP応答は、10パケットの最初の輻輳ウィンドウに収まり、応答時間が2倍になります。 TFOは、最初のTCP SYNパケットにHTTP要求を含めることにより、この冗長性を排除します。 TFOは、ページの読み込み時間を平均10%短縮し、多くの状況で40%以上短縮することを示しました。 科学的な研究があり、TFOを使用する際のパケット損失やDDoS攻撃などの問題を解決することを目的としたドラフト標準も準備しました。



4. TCPにPRR (比例レート削減)メカニズムを使用します。 パケット損失は、ネットワークの停止または輻輳を示します。 PRRは、再送信されたパケットを均等に分散し、ネットワークの輻輳による損失を回復する新しい損失回復アルゴリズムです。 このアルゴリズムは、損失のレベルに応じてパケットの送信頻度を変更できるため、現在のRFC 3517メカニズムよりも高速です。 PRRアルゴリズムはすでにLinuxカーネルに含まれており、現在TCP標準の一部として発行されています



さらに、混雑したセルラーネットワークでの再接続を高速化し、ダウンロードプロセス中の2-RTT配信を保証するアルゴリズムを開発しています。 TCPに関するすべての作業はオープンソースであり、公開されています。 私たちは、Linuxカーネル、IETF標準提案、科学出版物を通じてイノベーションを広めました。 私たちの目標は、業界の代表者や科学組織とともに、インターネット全体のTCPを改善することです。



All Articles