メインコンテンツまでスキップ

付録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を参照してください。すべての変数名、関数名、アルゴリズムロジックは元の形式で保持されています。