要約
- max_udp_payload_sizeは、宣言した端点が受信可能とするUDPペイロードの上限を、認証済みの一方的な通知として示す値である。
- RFC 9000のデータグラム長はIP・UDPヘッダーを含まないUDPペイロードであり、PMTUは経路が断片化なしに運べる完全なIPパケットの最大サイズである。
- 最大UDPペイロードは適用されるPMTUからIPヘッダーとUDPヘッダーを引いた値であり、送信側は相手の上限とPMTUDまたはDPLPMTUDによる現在の経路証拠にも従う。
監視画面に「MTU」と表示された数字があると、それを経路の事実として扱いやすい。しかし、暗号化されたハンドシェイクで受け取るmax_udp_payload_sizeは、そのような値ではない。RFC 9000での意味は、宣言した端点が受信可能とする最大UDPペイロードである。相手側の送信をさらに制限できるが、安全に送信できるサイズを測った結果でも、経路の状態を表す値でもない。
この宣言が暗号化されたハンドシェイクに含まれ、検証済みであることは、出所と完全性を保証するにとどまる。途中の経路がそのサイズを通すことを証明するものではない。既定値は65527で、許される最大UDPペイロードである。これを経路が受け入れるという意味にしてはならない。1200未満の値は無効であり、トランスポートパラメータエラーとして処理される。
UDPデータグラムには完全なQUICパケットを一つ以上収容できる。RFC 9000のデータグラム長はQUICヘッダーと保護されたペイロードを含むUDPペイロード全体であり、IP・UDPヘッダーは含まない。一方PMTUは、特定の経路を断片化なしに通過できる完全なIPパケットの最大サイズである。対応する最大UDPペイロードは、PMTUからIPヘッダーとUDPヘッダーを差し引いて求める。PMTUと最大UDPペイロードは同じ意味ではない。PMTUは時間によって変化し、ローカルとリモートのアドレス対ごとに異なり得る。
QUICを使う経路は少なくとも1200バイトのUDPペイロードを支えなければならない。PMTUDまたはDPLPMTUDなしでは、1200バイトを超えるデータグラムを送るべきではない。QUICを運ぶUDPデータグラムはIP層で断片化してはならず、IPv4では可能ならDon't Fragmentビットを設定する。相手の値を知る前に1200を超えて送れば、損失の危険がある。実際の送信上限は、相手の上限と現在のPMTU証拠から導いたUDPペイロード上限の小さい方になる。Initialパケットを含むデータグラムを1200バイト以上に拡張することは、プロトコルの最小要件だけを示す。
PMTUDはICMPを使う。ただしPacket Too Bigは、アドレス、ポート、可能ならQUIC接続IDと照合して検証する必要があり、ICMPだけでPMTUを増やしてはならない。DPLPMTUDは候補サイズのプローブを送り、アドレス対ごとに確認または損失を記録する。プローブ損失は信頼できる輻輳の証拠ではないため、それだけで輻輳制御を発動すべきではない。ただしプローブは輻輳ウィンドウを消費する。
証拠台帳には、接続時刻と観測時刻、アドレス対、宣言端点、認証済みmax_udp_payload_sizeと利用可能になった時点、0-RTTで記憶値が使われたか、現在のPMTUとそこから導いた最大UDPペイロード、PMTUDまたはDPLPMTUDの方式・状態・プローブサイズ・確認と損失、検証済みICMP、IPバージョン、ヘッダー拡張の前提、断片化方針、アプリケーションペイロード、QUICオーバーヘッドとデータグラム内のパケット集約、さらに損失、輻輳、スループット、遅延、完了、アプリケーション結果を別々に残す。一つの値から性能や成功を推定してはならない。
HIST-008はPMTUDの歴史、TR-039は3倍のアンプ攻撃制限、TR-049は一つのデータグラム内でのパケット集約、TR-046はフロー制御の許可、TR-040は接続IDと移行を扱う。いずれも現在のアドレス対のサイズ証拠ではない。
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加

