TCP Fast Open てぃーしーぴーふぁすとおーぷん
TCP Fast OpenTFO0-RTTレイテンシ削減SYNクッキー
TCP Fast Openについて教えて
簡単に言うとこんな感じ!
TCPの接続確立で毎回やっていた「よろしくね」の往復を省略してデータを一緒に送る技術だよ。常連客が「いつものやつ!」と入店と同時に注文するみたいに、ハンドシェイクとデータ送信をまとめて1往復に減らせるんだ!
TCP Fast Openとは
TCP Fast Open(TFO)は、TCPの接続確立(3ウェイハンドシェイク)にかかる往復遅延を削減する拡張機能です。RFC 7413として2014年に標準化されました。
通常のTCPでは、データ送信前に必ず3ウェイハンドシェイクの1往復(1RTT)が必要です。TFOを使うと、2回目以降の接続ではSYNパケットにデータを含めて送信でき、実質0-RTT(往復なし)でデータ転送を開始できます。
仕組みはTFOクッキーを利用します。初回接続時にサーバーがTFOクッキーをクライアントに発行します。2回目以降はクライアントがSYNにクッキーとデータを同封し、サーバーはクッキーを検証してデータを即座に処理します。
通常TCPとTFOの比較
歴史と背景
- 2011年:GoogleがTCPレイテンシ削減のためTFOを提案・実験
- 2014年:RFC 7413として標準化
- 2016年:Linux 3.7以降でサポート。macOS 10.11以降でもサポート
- 2018年:iOSがTFOをサポート開始
- 現在:Webアクセスの高速化に貢献。ただしミドルボックス(一部のファイアウォール等)との互換性問題がある
注意点・制限
- セキュリティ:SYNパケットにデータを含めるため、TFOクッキーを盗まれると偽装リクエストのリスクがある
- 対応環境:クライアント・サーバー双方がTFOをサポートしている必要がある
- ミドルボックス問題:一部のファイアウォールやロードバランサーがTFOに対応していない場合、通信が失敗することがある
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 7413 | TCP Fast Open の仕様 |
| RFC 793 | TCP の基本仕様 |
関連用語
- 3ウェイハンドシェイク — TFOが省略する接続確立手順
- TCP — TFOが拡張するプロトコル
- TCP BBR — TFOとともに使われるレイテンシ削減技術