5. Size Issues (Größenaspekte)
5. Size Issues (Größenaspekte)
5.1 Context Identifiers (Kontextbezeichner)
Kontextbezeichner können 8 Bit oder 16 Bit lang sein. Ihre Größe hat keinen Einfluss auf die Kontextsuche. Eine 8-Bit-CID mit dem Wert 2 und eine 16-Bit-CID mit dem Wert 2 sind gleichwertig.
Die CID-Räume für TCP und Nicht-TCP sind getrennt, sodass eine TCP-CID und eine Nicht-TCP-CID niemals denselben Kontext identifizieren, selbst wenn sie denselben Wert haben. Dies verdoppelt den verfügbaren CID-Raum bei Verwendung von CIDs mit derselben Bitanzahl. Es ist immer möglich zu bestimmen, ob ein vollständiger oder komprimierter Header für ein TCP- oder Nicht-TCP-Paket ist, sodass keine Verwechslung auftreten kann.
Komprimierte Nicht-TCP-Header verwenden ein Bit im zweiten Oktett des komprimierten Headers, um die Größe der CID zu kodieren. Eine 8-Bit-CID ermöglicht eine minimale komprimierte Headergröße von 2 Oktetten für Nicht-TCP-Pakete, wobei die CID das erste Oktett verwendet und das Größenbit sowie der 6-Bit-Generationswert in das zweite Oktett passen.
Für TCP ist die einzige verfügbare CID-Größe 8 Bit, wie in [RFC-1144] beschrieben. 8 Bit können ausreichen, da TCP-Verbindungen immer Punkt-zu-Punkt sind.
Die 16-Bit-CID-Größe ist möglicherweise für Punkt-zu-Punkt-Verbindungen nicht erforderlich; sie ist für Mehrfachzugriffs-Verbindungen gedacht, bei denen ein größerer CID-Raum für eine effektive CID-Auswahl erforderlich sein kann.
Die Hauptschwierigkeit bei Mehrfachzugriffs-Verbindungen besteht darin, dass mehrere Kompressoren den CID-Raum des Dekompressors gemeinsam nutzen. CIDs können nicht mehr unabhängig vom Kompressor gewählt werden, da Konflikte auftreten können. Dieses Problem kann gelöst werden, indem der Dekompressor für jeden Kompressor einen separaten CID-Raum hat. Separate CID-Räume erfordern, dass der Dekompressor erkennen kann, welcher Kompressor ein komprimiertes Paket gesendet hat, möglicherweise durch Nutzung von Sicherungsschicht-Informationen zur Bestimmung, wer den Sicherungsschicht-Rahmen gesendet hat. Wenn solche Informationen nicht verfügbar sind, können alle Kompressoren auf einer Mehrfachzugriffs-Verbindung aufgezählt werden, automatisch oder anderweitig, und ihre Nummer als Teil der CID bereitgestellt werden. Letztere Methode erfordert einen großen CID-Raum.
5.2 Size of the context (Größe des Kontexts)
Die Größe des Kontexts SOLLTE begrenzt werden, um die Implementierung von Kompressor und Dekompressor zu vereinfachen und deren Speicherbedarf zu begrenzen. Die Begrenzung der Kontextgröße verhindert auch Denial-of-Service-Angriffe durch das Senden von Paketen mit einer großen Anzahl von Erweiterungs-Headern.
Die Größe des Kontexts wird durch die Teilheader im vollständigen Header bestimmt. Es werden nur Teilheader bis zu einem bestimmten Teilheader gespeichert, einschließlich dieses Teilheaders. Dies wird durch ein Bit im Sicherungsschicht-Pakettyp angezeigt, das angibt, wie viel vom vollständigen Header gespeichert werden soll. Wenn einige nachfolgende Teile des Pakets weggelassen werden, werden diese nicht im Kontext gespeichert.
Dieses Bit im Sicherungsschicht-Pakettyp bestimmt zusammen mit dem Next-Header-Feldwert eindeutig das Format des komprimierten Headers. Wenn nachfolgende Teile weggelassen werden, verliert die Sicherungsschicht die Information über die Länge dieser Teile, sodass sie keine Auffüllung enthalten dürfen.
Weitere Details sind in Abschnitt 13 zu finden.