要約
- 対象はシーケンス番号の記憶を失った場合であり、すべての再起動ではない。
- RFC 793は、古い重複セグメントを排出するため1 MSLの沈黙を定めた。
- RFC 9293は安全上の境界を残しつつ、現在は条件が成立しにくいと説明する。
- 状態保持とPAWSは別の防御である。
ホストは忘れても、ネットワークは忘れない
クラッシュはTCPの揮発状態を消しても、送信済みセグメントをキューや経路、受信側から消すわけではない。同じアドレスとポートを再利用すると、古いセグメントが新しいデータに見える可能性がある。データ、SYN、FINは有限のシーケンス空間を占有するためである。
沈黙という代替証拠
RFC 793は、使用中の接続で使った番号の知識を失ったTCPに、最大セグメント生存時間のあいだ送信しないよう求めた。二分という値は工学上の選択であり、再送タイマーやRTTの推定ではない。古い痕跡がネットワークから消える時間を置くのである。
条件を満たす必要がある。最近の番号を保持していれば、既使用番号より後の番号を使って待たずに再開できる。また、すでに1 MSL以上稼働していれば、必要な時間境界は過ぎている。
現行仕様の判断
RFC 9293は、記憶を失った後に少なくとも1 MSL待つ原則を維持する。一方で、ISNとエフェメラルポートのランダム化、リンク高速化による実効MSLの短縮、そして再起動が1 MSLより長くなることが多い点から、危険な条件は現在ほとんど同時に起きないと説明する。
これは原理の撤回ではない。ランダム化は衝突確率を下げるが、実際の履歴を記憶することとは違う。高速通信では、TCPタイムスタンプとPAWSが、32ビット空間の急速な周回に対する別種の古い重複検出を提供する。
出典
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
