10. Improving loss recovery for TCP (Verbesserung der Verlustwiederherstellung 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.