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

5. コンテキスト識別子

本書で定義されているHTTPでのIPプロキシのメカニズムは、将来の拡張機能がIPペイロードとは異なるセマンティクスを持つHTTPデータグラムを交換することを可能にする。これらの拡張機能の一部は、IPペイロードに追加データを付加したり、IPヘッダーフィールドを圧縮したりできるが、他の拡張機能はIPペイロードとは完全に別のデータを交換できる。これを実現するために、IPプロキシ要求ストリームに関連付けられたすべてのHTTPデータグラムは、コンテキストIDフィールドで始まる。セクション6 を参照。

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

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