要約
- TCP Fast Open Cookie はサーバーが生成し、クライアントの送信元 IP 文脈に結び付ける証拠であり、利用者資格や要求 ID ではない。
- 有効な TFO は三者間ハンドシェイク完了前に SYN データをアプリへ渡せる一方、RFC 7413 は早期データがまれに重複配送される可能性を明記する。
- 実行記録には、転送シーケンス、認証済み主体、要求 ID、重複排除、コミット、応答結果を結ぶ必要がある。
高速経路は業務結果より先に終わる
クライアントが予約や設定変更を、保存済み Cookie 付き SYN で送る。サーバーは Cookie を検証し、データをバッファーし、アプリへ通知し、SYN とデータを確認する。しかし有用な応答はクライアントに届かず、同じ論理要求がフォールバック後に再送される。
Cookie は二回目が一回目の重複かを示さない。TCP の確認も、永続コミット、認可、応答到達を示さない。転送が仕様通りでも、業務結果は未確定のままになり得る。
Cookie が認証する対象
RFC 7413 の Cookie はサーバーが生成する不透明な値で、SYN の送信元 IP アドレスを認証し、クライアント側で偽造できないようにする。サーバーは複数の有効 Cookie を認め、実装情報を含め、いつでも期限切れにできる。
これは送信元詐称への対策であり、人物のログインではない。IP は共有、変換、再割当てされる。Cookie の有効性が示すのは、現在の鍵と方針でその IP 文脈を Fast Open に認めたことだけで、ペイロードの作者ではない。
TFO はサービスごとに明示的な有効化が必要である。保留要求の上限に達すれば、新しい Fast Open を止められる。Cookie 検証、listener の受入れ、アプリ認可は別々の判断だ。
受入れ、破棄、再送
Cookie が有効なら、サーバーは SYN データをアプリへ渡し、SYN とデータを確認できる。無効または TFO 不可ならデータを捨て、SYN だけを確認する。その場合、クライアントはハンドシェイク後の ACK で未確認データを再送する。
中間装置がペイロードや未知オプション付き SYN を落とす場合もある。RFC 7413 はタイムアウト後、データも Fast Open オプションも含まない通常の SYN で再試行するよう勧める。早期データは現在の SYN-ACK の MSS を知る前に送るため、保存 MSS も結果を左右し、送り過ぎた分は再送が必要になる場合がある。
ACK の意味は TCP で止まる
RFC 9293 は各オクテットをシーケンス空間に置き、累積 ACK を TCP peer が受信した範囲として定義する。これは転送証拠であり、アプリの認証、認可、保存、業務応答の証明ではない。
SYN データはまれに複数回アプリへ渡る可能性がある。早期送信する操作には、安定した要求 ID、明確な重複排除範囲、原子的な処理、再取得可能な結果が必要になる。
出典
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加

