3. Design of the QUIC Transmission Machinery (QUIC送信機構の設計)
QUICにおけるすべての送信は、暗号化レベル (Encryption Level) を示し、パケットシーケンス番号 (Packet Sequence Number, 以下パケット番号 Packet Number と呼ぶ) を含むパケットレベルのヘッダー (Packet-Level Header) とともに送信されます。暗号化レベルは、[QUIC-TRANSPORT] のセクション12.3で説明されているように、パケット番号空間 (Packet Number Space) を示します。パケット番号は、接続の存続期間中、パケット番号空間内で決して繰り返されません。パケット番号は、空間内で単調増加順序 (Monotonically Increasing Order) で送信され、曖昧さを防ぎます。一部のパケット番号が使用されないことが許可されており、意図的なギャップ (Intentional Gaps) が残ります。
この設計により、送信と再送信を区別する必要がなくなります。これにより、QUICのTCPパケット損失検出メカニズムの解釈における重大な複雑性が排除されます。
QUICパケットには、異なるタイプの複数のフレーム (Frames) を含めることができます。回復メカニズム (Recovery Mechanisms) は、信頼性の高い配信が必要なデータとフレームが確認応答されるか、損失として宣言され、必要に応じて新しいパケットで送信されることを保証します。パケットに含まれるフレームのタイプは、回復と輻輳制御ロジック (Recovery and Congestion Control Logic) に影響します:
-
すべてのパケットが確認応答されますが、確認応答誘発フレーム (Ack-Eliciting Frames) を含まないパケットは、確認応答誘発パケットとともにのみ確認応答されます。
-
CRYPTOフレームを含むロングヘッダーパケット (Long Header Packets) は、QUICハンドシェイクのパフォーマンスに重要であり、確認応答のためにより短いタイマーを使用します。
-
ACKまたはCONNECTION_CLOSEフレーム以外のフレームを含むパケットは、輻輳制御制限 (Congestion Control Limits) にカウントされ、送信中 (In Flight) と見なされます。
-
PADDINGフレームは、確認応答の送信を直接引き起こすことなく、パケットが送信中バイト数 (Bytes in Flight) に寄与するようにします。