Zusammenfassung

  • RFC 3545 wiederholte geänderte Kontextwerte in N+1 aufeinanderfolgenden Paketen. So konnte sich der Dekompressor erneut synchronisieren, solange der Verluststoß innerhalb der angenommenen Link-Grenze blieb.
  • Das optionale HDRCKSUM half bei der Prüfung rekonstruierter Header, wenn die IPv4-UDP-Prüfsumme null war. IPv4 Identification blieb jedoch außen vor; nach mehr als N verlorenen Folgepaketen war es sicherer, den Kontext zu verwerfen und seinen Zustand anzufordern.

Die Prüfsumme hatte einen blinden Fleck. RFC 3545 erlaubte dem Kompressor, eine auf null gesetzte IPv4-UDP-Prüfsumme durch eine 16-Bit-Header-Prüfsumme zu ersetzen. Damit konnte der Dekompressor eine Rekonstruktion prüfen. IPv4 Identification gehörte jedoch nicht zu den geprüften Feldern. Auf einem Link mit wenigen Verlusten konnte diese Auslassung in einem größeren Wiederherstellungsverfahren verborgen bleiben. Nach zu vielen aufeinanderfolgenden Verlusten änderte sie, was „wiederhergestellt“ verlässlich bedeuten konnte.

CRTP nach RFC 2508 komprimiert IP-, UDP- und RTP-Header und hält dafür an beiden Enden einen gemeinsamen Kontext. Ein vollständiger Header richtet diesen Zustand ein; spätere Pakete können Änderungen oder Differenzen übertragen. Geht ein Paket mit einem Update verloren, läuft der Kompressor weiter, während der Dekompressor auf dem alten Stand bleibt. Sichtbar wird die Abweichung womöglich erst, wenn das nächste komprimierte Paket eintrifft. Auf einem Link mit hoher Laufzeit kostet eine Kontextreparatur mindestens eine Rundreise; in der Wartezeit können weitere Pakete verworfen werden.

RFC 3545 begegnet dem Problem mit Wiederholungen und einer ausdrücklich genannten Grenze. N beschreibt die Verlustbedingungen des Links: Die Wahrscheinlichkeit, mehr als N benachbarte Pakete zu verlieren, soll klein sein. Steht ein Update in N+1 aufeinanderfolgenden Paketen, sollte mindestens eine Kopie ankommen, sofern der Verluststoß N nicht überschreitet. Der Dekompressor kann mit dem „twice“-Verfahren eine begrenzte Lücke rekonstruieren und das Ergebnis anhand der UDP-Prüfsumme oder, falls anwendbar, HDRCKSUM prüfen. Das Protokoll erhöht die Verlusttoleranz; es garantiert nicht, dass jeder Verluststoß dem Modell entspricht.

Die Link-Sequenznummer umfasst nur vier Bits und läuft alle 16 Pakete um. Eine beobachtete Differenz verrät daher nicht immer, ob viele Pakete fehlen oder ein späteres Paket vor einem früheren eingetroffen ist. Ist auch eine Deutung mit weniger als N+1 Verlusten plausibel, kann der Dekompressor die entsprechende Rekonstruktion versuchen und prüfen. Liegt die plausible Verlustzahl bei IPv4 über N, ist die Regel klarer: nicht weiter mit „twice“ raten, sondern den Kontext ungültig machen und CONTEXT_STATE senden, damit der Kompressor den gemeinsamen Zustand wiederherstellt.

Hier zählt der Prüfumfang. HDRCKSUM kann verwendet werden, wenn die ursprüngliche IPv4-UDP-Prüfsumme null ist; der Kompressor fügt es zur Kontrolle ein, der Dekompressor entfernt es anschließend. Für IPv6 wird die Option nicht verwendet, da dort eine UDP-Prüfsumme von null unzulässig ist. Trotzdem prüft die Header-Prüfsumme IPv4 Identification nicht. Nach mehr als N Verlusten schließt auch eine bestandene Prüfung diese Lücke nicht. RFC 3545 verlangt stattdessen, den unsicheren IPv4-Kontext zu verwerfen. IPv6 besitzt kein IPv4-ID-Feld und kann deshalb einer anderen Wiederherstellungsregel folgen.

Auch der Update-Stoß selbst hat eine Kennzeichnung. Ändert sich ein konstantes Kontextfeld, während N+1 FULL_HEADER-Pakete gesendet werden, beginnt der Kompressor einen neuen Stoß und ändert die Generationsnummer. Andernfalls könnte der Dekompressor überlappende Stöße als größere Verlusttoleranz missverstehen und eine Desynchronisierung übersehen. Auch CONTEXT_STATE-Nachrichten sollten wiederholt werden. Diese Mechanismen belegen weder, dass ein konkretes Gerät die Erweiterung eingeschaltet hat, noch dass eine RTP-Anwendung den Inhalt abgespielt hat.

Die historische Lehre ist klein, aber betrieblich wichtig: Eine Prüfsumme belegt nur die Felder, die sie abdeckt; eine begrenzte Rekonstruktion ist keine Zustellung; und eine Kontextreparatur bestätigt keinen Medienempfang. Eine lokal bestandene Prüfung kann mit einer ungeprüften IPv4 Identification einhergehen. Überschreitet das Verlustmuster die angenommene Grenze, bedeutet das Verwerfen des Kontexts nicht, auf Wiederherstellung zu verzichten. Es verhindert, dass eine mehrdeutige Sequenz als Gewissheit ausgegeben wird.

Quellen