5. RFC 793からの変更 (Changes from RFC 793)
本セクションでは、RFC 793およびその後続の更新に対して本文書で行われた主な変更をまとめています。
5.1. プロトコル仕様の変更
ヘッダー形式の更新:
- RFC 3168に従ってTCPヘッダーの制御ビットを更新し、CWR (Congestion Window Reduced, 輻輳ウィンドウ削減) とECE (ECN-Echo, ECNエコー) フラグを追加
- 予約ビットの処理要件を明確化
シーケンス番号の処理:
- 初期シーケンス番号 (Initial Sequence Number, ISN) の選択メカニズムを明確化
- シーケンス番号の比較とラップアラウンド処理を更新
接続管理:
- SYN-RECEIVED状態でのリセット (Reset) 処理に関する明確化を追加 (RFC 5961を更新)
- 同時オープン (Simultaneous Open) の処理を明確化
- TIME-WAIT状態の期間と処理を更新
オプション処理:
- 必須オプションセットを明確化: End of Option List、No-Operation、Maximum Segment Size
- 未知のオプションの処理要件を更新
- 実験的オプションへの参照を追加
5.2. 廃止された内容
本文書は以下のRFCを廃止します:
- RFC 793 - 元のTCP仕様 (1981)
- RFC 879 - TCP最大セグメントサイズと関連トピック
- RFC 2873 - IPv4優先度フィールドのTCP処理
- RFC 6093 - TCP緊急メカニズムの実装について
- RFC 6429 - 持続状態に関するTCP送信者の明確化
- RFC 6528 - シーケンス番号攻撃に対する防御
- RFC 6691 - TCPオプションと最大セグメントサイズ (MSS)
5.3. 更新された内容
本文書は以下のRFCを更新します:
- RFC 1011 - 公式インターネットプロトコル (TCP部分)
- RFC 1122 - インターネットホストの要件 -- 通信層 (TCP部分)
- RFC 5961 - ブラインドイン・ウィンドウ攻撃に対するTCPの堅牢性向上 (SYN-RECEIVED状態の処理)
5.4. セキュリティの強化
- ブラインド攻撃 (Blind Attacks) に対する保護メカニズムを追加
- シーケンス番号攻撃に対する防御を更新
- セキュリティ実装のベストプラクティスを明確化
- SYN flood攻撃に関する考慮事項を追加
5.5. パフォーマンスの向上
- 最新の輻輳制御アルゴリズムを参照
- 再送タイムアウト (Retransmission Timeout, RTO) 計算を更新
- 高性能拡張機能への参照を追加 (ウィンドウスケーリング、タイムスタンプ、SACK)
- Nagleアルゴリズムの実装要件を明確化
5.6. 相互運用性の明確化
- 不正な形式のセグメントの処理を明確化
- エラー条件の処理を更新
- 境界ケースの動作を明確化
- 用語と定義を統一
5.7. 編集上の変更
- 言語と用語を現代化
- 可読性向上のためにコンテンツを再構成
- 実装ガイダンスを追加
- 参考文献を更新
- RFC 2119キーワードの使用を標準化
5.8. 含まれていない内容
以下の内容は、最新のTCP実装の重要な部分ですが、別の文書で指定されています:
- 詳細な輻輳制御アルゴリズム (RFC 5681など)
- 高性能拡張機能 (RFC 7323 - ウィンドウスケーリング、タイムスタンプ)
- 選択的確認応答SACK (RFC 2018、RFC 2883)
- TCP Fast Open (RFC 7413)
- マルチパスTCP (RFC 8684)
これは、基本仕様の明確性を維持しながら、これらの拡張機能が独立して進化できるようにするための意図的な設計選択です。
注意: 変更の完全なリストと正誤表の修正については、公式のRFC 9293文書の第5節を参照してください。