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

4. コンテキスト識別子

  1. コンテキスト識別子

本文書で定義されている HTTP における UDP プロキシのメカニズムは、将来の拡張機能が UDP ペイロードとは異なるセマンティクスを持つ HTTP データグラムを交換することを可能にする。これらの拡張機能の一部は、追加データで UDP ペイロードを拡張する場合があり、他の拡張機能は、UDP ペイロードとは完全に別のデータを交換する場合がある。これを実現するために、UDP プロキシリクエストストリームに関連付けられたすべての HTTP データグラムは、Context ID フィールドで始まる;セクション 5 を参照。

Context ID は 62 ビット整数(0 から 2^62-1)である。Context ID は可変長整数としてエンコードされる;[QUIC] のセクション 16 を参照。Context ID 値 0 は UDP ペイロード用に予約されており、非ゼロ値は動的に割り当てられる。非ゼロの偶数 Context ID はクライアントによって割り当てられ、奇数の Context ID はプロキシによって割り当てられる。Context ID 名前空間は、特定の HTTP リクエストに結び付けられている;同じ数値を持つ Context ID が、異なるセマンティクスを持つ可能性のある個別のリクエストで同時に割り当てられる可能性がある。Context ID は、特定の HTTP 名前空間内で再割り当てしてはならないが (MUST NOT)、任意の順序で割り当ててもよい (MAY)。偶数および奇数の Context ID の使用に対する Context ID 割り当て制限は、エンドポイント間の同期の必要性を回避するために存在する。ただし、Context ID が割り当てられると、これらの制限は Context ID の使用には適用されない;最初に割り当てたエンドポイントに関係なく、任意のクライアントまたは UDP プロキシで使用できる。

登録とは、エンドポイントがピアに特定の Context ID のセマンティクスと形式を通知するアクションである。本文書は、登録がどのように行われるかを定義しない。将来の拡張機能は、HTTP ヘッダーフィールドまたはカプセルを使用して Context ID を登録してもよい (MAY)。使用されている方法によっては、まだ登録されていない Context ID を持つデータグラムが受信される可能性がある。たとえば、これは、送信中にデータグラムを含むパケットと登録メッセージを含むパケットの順序が入れ替わったことが原因である可能性がある。