Zum Hauptinhalt springen

10. Low-loss header compression for TCP (Verlustarme Kopfkompression für TCP)

10. Improving loss recovery for TCP (Verbesserung der Verlustwiederherstellung für TCP)​

Dieser Abschnitt beschreibt zwei Mechanismen zur Beschleunigung der Wiederherstellung nach dem Verlust komprimierter TCP-Header. Diese Mechanismen sind besonders wichtig für mittelschnelle Verbindungen mit hoher Paketverlustrate.

10.1 Explicit header request from decompressor (Explizite Header-Anforderung vom Dekompressor)​

Wenn der Dekompressor erkennt, dass der Kontext einer TCP-Verbindung nicht synchron ist, kann er durch Senden einer Header-Anforderung an den Kompressor einen vollständigen Header anfordern. Eine Header-Anforderung ist ein spezielles Paket, das eine Liste der CIDs der nicht synchronen TCP-Verbindungen enthält.

Eine Möglichkeit, wie der Dekompressor eine Desynchronisation erkennt, ist der Empfang eines TCP-Pakets, bei dem die TCP-Prüfsumme fehlschlägt. Dies zeigt an, dass der komprimierte TCP-Header fehlerhaft dekomprimiert wurde.

Nach dem Empfang einer Header-Anforderung SOLLTE der Kompressor für die TCP-Verbindungen, die den aufgelisteten CIDs entsprechen, einen vollständigen Header oder ein COMPRESSED_TCP_NODELTA-Paket senden.

10.2 CONTEXT_STATE packet (CONTEXT_STATE-Paket)​

Das CONTEXT_STATE-Paket ist ein spezielles Paket, das vom Dekompressor an den Kompressor gesendet wird. Es enthält eine Liste der TCP-CIDs, die die Synchronisation verloren haben.

Das Format des CONTEXT_STATE-Pakets ist wie folgt:

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CONTEXT_STATE marker | Number of CIDs |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CID 1 | CID 2 | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Der CONTEXT_STATE-Marker ist ein spezieller 16-Bit-Wert, der dieses Paket als CONTEXT_STATE-Paket identifiziert.

Das Feld „Number of CIDs" gibt an, wie viele CIDs in diesem Paket enthalten sind.

Die CID-Felder sind 8-Bit-CID-Werte.

Nach dem Empfang eines CONTEXT_STATE-Pakets SOLLTE der Kompressor für die TCP-Verbindungen, die den aufgelisteten CIDs entsprechen, einen vollständigen Header oder ein COMPRESSED_TCP_NODELTA-Paket senden.