付録A. 損失回復疑似コード (Loss Recovery Pseudocode)
本付録は、第6章で説明した損失検出メカニズムの実装例を説明します。
A.1. 送信パケットの追跡 (Tracking Sent Packets)
輻輳制御を正しく実装するために、QUIC送信者はすべての確認応答要求パケットを追跡します。
A.1.1. 送信パケットフィールド
各送信パケットの主要フィールド:
packet_number: パケット番号ack_eliciting: 確認応答が必要かどうかin_flight: インフライトバイトにカウントされるかsent_bytes: 送信バイト数time_sent: 送信時刻
A.2. 関連定数 (Constants of Interest)
- kPacketThreshold: 最大パケット再順序付け(推奨:3)
- kTimeThreshold: 最大時間再順序付け(推奨:9/8)
- kGranularity: タイマー粒度(推奨:1ミリ秒)
- kInitialRtt: 初期RTT値(推奨:333ミリ秒)
A.3-A.11. アルゴリズム関数
損失回復アルゴリズムを実装する関数:
- A.4. 初期化: 損失検出変数の初期化
- A.5. パケット送信時: パケット情報の保存
- A.6. データグラム受信時: 反増幅制限の解除処理
- A.7. 確認応答受信時: ACKフレームの処理
- A.8. 損失検出タイマーの設定: タイマー設定
- A.9. タイムアウト時: タイマー満了処理
- A.10. 損失パケットの検出: 損失パケットの特定
- A.11. 鍵破棄時: 鍵破棄の処理
注記:完全な疑似コード実装については、RFC 9002公式文書の付録Aを参照してください。すべての変数名、関数名、アルゴリズムロジックは元の形式で保持されています。