4. Kontext-Identifikatoren
- Kontext-Identifikatoren
Der in diesem Dokument definierte Mechanismus zum Proxying von UDP in HTTP ermöglicht es zukünftigen Erweiterungen, HTTP-Datagramme auszutauschen, die eine andere Semantik als UDP-Nutzlasten tragen. Einige dieser Erweiterungen können UDP-Nutzlasten um zusätzliche Daten erweitern, während andere Daten austauschen können, die vollständig von UDP-Nutzlasten getrennt sind. Um dies zu erreichen, beginnen alle HTTP-Datagramme, die UDP-Proxying-Anfragestreams zugeordnet sind, mit einem Context ID-Feld; siehe Abschnitt 5.
Context IDs sind 62-Bit-Ganzzahlen (0 bis 2^62-1). Context IDs werden als Ganzzahlen variabler Länge kodiert; siehe Abschnitt 16 von [QUIC]. Der Context ID-Wert 0 ist für UDP-Nutzlasten reserviert, während Nicht-Null-Werte dynamisch zugewiesen werden. Nicht-Null-geradzahlige Context IDs werden vom Client zugewiesen, und ungeradzahlige Context IDs werden vom Proxy zugewiesen. Der Context ID-Namensraum ist an eine bestimmte HTTP-Anfrage gebunden; es ist möglich, dass eine Context ID mit demselben numerischen Wert gleichzeitig in verschiedenen Anfragen zugewiesen wird, möglicherweise mit unterschiedlicher Semantik. Context IDs DÜRFEN NICHT innerhalb eines gegebenen HTTP-Namensraums neu zugewiesen werden, KÖNNEN aber in beliebiger Reihenfolge zugewiesen werden. Die Einschränkungen der Context ID-Zuweisung auf die Verwendung von geradzahligen und ungeradzahligen Context IDs bestehen, um die Notwendigkeit einer Synchronisation zwischen Endpunkten zu vermeiden. Sobald jedoch eine Context ID zugewiesen wurde, gelten diese Einschränkungen nicht für die Verwendung der Context ID; sie kann von jedem Client oder UDP-Proxy verwendet werden, unabhängig davon, welcher Endpunkt sie ursprünglich zugewiesen hat.
Registrierung ist die Aktion, durch die ein Endpunkt seinem Peer die Semantik und das Format einer gegebenen Context ID mitteilt. Dieses Dokument definiert nicht, wie die Registrierung erfolgt. Zukünftige Erweiterungen KÖNNEN HTTP-Header-Felder oder Kapseln verwenden, um Context IDs zu registrieren. Abhängig von der verwendeten Methode ist es möglich, dass Datagramme mit Context IDs empfangen werden, die noch nicht registriert wurden. Dies kann beispielsweise auf eine Neuordnung des Pakets, das das Datagramm enthält, und des Pakets, das die Registrierungsnachricht enthält, während der Übertragung zurückzuführen sein.