要約
- 同時オープンは、両端がアクティブに開始し、双方が SYN-SENT 中に確認応答のない SYN を受け取る場合に起きる。
- 両端は SYN-RECEIVED を経て相手のシーケンス空間を確認し、ESTABLISHED となる。一つの接続であり、二つではない。
- RFC 9293 はこの経路への対応と、SYN-RECEIVED がアクティブまたはパッシブな OPEN のどちらに由来するかの記録を要求する。
役割より先にあるハンドシェイク
TCP はクライアントとサーバーの会話として説明されがちだ。しかし RFC 793 が中心に置くのは接続の同期である。一方が開始し他方が応答する形は通常だが、二つの TCP が同時に開始することも想定されている。クライアントとサーバーは、トランスポートの必須条件ではない。
SYN が交差するとき
両端はアクティブ OPEN を行い、それぞれ初期シーケンス番号を選んで SYN を送る。二つのセグメントが交差する間、双方は SYN-SENT にいる。各端点は確認応答のない相手の SYN を受け、相手の番号を記録し、SYN-RECEIVED に移って SYN+ACK を返す。その後、自分の SYN への有効な確認を受けると ESTABLISHED に入る。
SYN はシーケンス番号を一つ消費するため、確認値は一つ進む。
対称性にも記憶が要る
RFC 9293 は TCP 実装に同時オープンの試行を処理できることを求め、SYN-RECEIVED に至った OPEN の種別も保持するよう求める。その履歴は後のリセットやエラー処理を左右する。状態遷移は対称でも、ローカルな経路は同じではない。
古い SYN という紛らわしいノック
古い重複 SYN は同時開始に見えることがある。シーケンス検証とリセット処理は依然として必要であり、SYN-SENT で受けた SYN がすべて正当とは限らない。
標準が保証しないこと
規格が示すのは、パケットが両端の TCP に届いた場合の状態機械である。経路、ファイアウォール、NAT、ソケット API、アプリケーションが実際に交換を許すとは限らない。
出典
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
