Zusammenfassung

  • Jede ULP-Ebene in RFC 5109 benennt mit eigener Paketmaske und Schutzlänge eine begrenzte Gleichung. Eine lösbare untere Ebene beweist keine vollständige Rekonstruktion.
  • Rekonstruierte Bytes müssen noch auf Vollständigkeit, Plausibilität, Codec-Verwendbarkeit und rechtzeitige Wiedergabe geprüft werden.

Ein mathematischer Erfolg ohne Medienergebnis

Der schwierige Fall ist nicht die leere Ausgabe. Er ist ein Ergebnis, das genug Struktur besitzt, um wie ein vollständiger Erfolg auszusehen. Fehlt ein RTP-Medienpaket und sind alle übrigen Operanden der Ebene 0 vorhanden, kann der Empfänger Wiederherstellungsfelder, Gesamtlänge und einen geschützten Anfang rekonstruieren. Enthält die höhere Ebene zugleich ein zweites verlorenes Paket, bleiben dort zwei Unbekannte. Der spätere Teil des Zielpakets ist nicht eindeutig bestimmbar.

RFC 5109 lässt diesen Zustand ausdrücklich zu. Verlorene Nutzdaten können vollständig oder teilweise wiederhergestellt werden. Die aus Ebene 0 gewonnene Paketgesamtlänge wird mit der tatsächlich rekonstruierten Nutzdatenlänge verglichen. Erst wenn beide übereinstimmen, ist die Byte-Abdeckung vollständig. Ein gültiger RTP-Header hebt eine fehlende Nutzlast nicht auf.

Für einen Decoder ist selbst ein zusammenhängender Präfix kein universelles Versprechen. ULP versucht, wichtigere frühe Teile stärker zu schützen und fehlende Daten eher als zusammenhängendes Ende statt als verstreute Löcher zu hinterlassen. Ob der konkrete Medienaufbau diesen Präfix selbstständig nutzen kann, hängt jedoch von seinen Abhängigkeiten und Fragmentgrenzen ab. Das Protokoll kann diese Anwendungsentscheidung nicht vorwegnehmen.

Schutz hat eine Geometrie

Uneven Level Protection teilt die geschützten Daten in Ebenen abnehmender Bedeutung. Jede Ebene führt ihre eigene Paritätsoperation aus. Ein FEC-Paket kann mehrere Ebenen tragen, doch Paketgruppe und Schutzlänge dürfen sich zwischen den Ebenen unterscheiden. Kleinere Gruppen können den frühen Teil stärker absichern; größere Gruppen schützen spätere Bytes mit weniger Overhead und anderer Verlusttoleranz.

Der Ebenenheader enthält eine 16-Bit-Schutzlänge und eine 16- oder 48-Bit-Maske. Ist N die Sequenznummernbasis, ordnet ein gesetztes Bit i das Medienpaket N+i der Gleichung dieser Ebene zu. Die Maske beantwortet, welche Pakete beteiligt sind. Die Schutzlänge beantwortet, welcher Byte-Bereich jedes Pakets eingeht. Keine der beiden Angaben belegt, welche übrigen Operanden beim Empfänger angekommen sind.

Die Ebenen sind strukturell verschachtelt. Ein Medienpaket, das auf Ebene p geschützt wird, muss auch auf p-1 geschützt sein. Ein FEC-Paket mit Ebene p muss die vorherige Ebene mitführen. Trotzdem können die Paketgruppen verschieden sein; die benachbarten Ebenen desselben Medienpakets dürfen sogar in unterschiedlichen FEC-Paketen liegen. Ein einzelnes Merkmal „FEC-geschützt“ kann diese Struktur nicht darstellen.

Auswahl ist noch keine Rekonstruktion

RFC 5109 trennt zwei Arbeitsschritte. Zunächst entscheidet die Implementierung, welche Medien- und FEC-Pakete gemeinsam ein fehlendes Paket rekonstruieren könnten. Der Auswahlalgorithmus bleibt lokal, weil Suchkomplexität, Rechenbudget und die Chance, eine lösbare Kombination zu finden, gegeneinander abgewogen werden. Erst danach folgt die festgelegte Byte-Rekonstruktion.

Damit entstehen getrennte Fehlermöglichkeiten. Eine lösbare Kombination kann vorhanden sein, aber nicht innerhalb der Wiedergabefrist gefunden werden. Die Auswahl kann für Ebene 0 funktionieren und für Ebene 1 scheitern. Oder eine scheinbar passende Gruppe enthält weiterhin mehr als eine Unbekannte.

Für Ebene n liest der Empfänger die Schutzlänge Ln, entnimmt die geschützten Bytefolgen am kumulierten Ebenenoffset, füllt zu kurze Operanden mit Nulloktetten auf und führt XOR aus. Das Ergebnis wird an die richtige Position gesetzt und mit den anderen Ebenen verkettet. Die auf Ebene 0 rekonstruierte Gesamtlänge zeigt anschließend, ob alle Ebenenergebnisse zusammen das ursprüngliche Paket erreichen.

Auditierbare Telemetrie hält deshalb Sequenzbasis, Maske, Ebene, Schutzlänge, vorhandene Operanden, Zahl der Unbekannten, rekonstruierten Byte-Bereich und Vollständigkeitsvergleich fest. Ein Zähler namens recovered_packets bewahrt keinen dieser Unterschiede.

Medienkompatibilität kann ungenutztes FEC verbergen

Wird FEC als eigener RTP-Strom übertragen, bleiben die Medienpakete unverändert. Ein Empfänger ohne FEC-Unterstützung kann die zusätzlichen Daten ignorieren und das Medium weiter verarbeiten. Im Offer/Answer-Verfahren darf die Gegenseite die separate FEC-Sitzung ablehnen und gleichzeitig die Mediensitzung akzeptieren. Sichtbare Wiedergabe beweist daher weder FEC-Aushandlung noch FEC-Nutzung.

Alternativ kann der Schutz als redundante Kodierung nach RFC 2198 mitgeführt werden. Bei einem separaten Strom müssen Adresse, Port, dynamischer Payload Type und Zuordnung zum geschützten Medium außerhalb der Nutzdaten bekannt sein. Medien- und FEC-Strom können unterschiedliche Pfade, Sequenzräume und Verlustschicksale besitzen.

Eine belastbare Spur enthält Angebot, Antwort, Zuordnungsgeneration, Empfang beider Ströme und tatsächlich verwendete Gleichung. Das gleiche sichtbare Bild kann ohne Verlust, nach echter Rekonstruktion, nach Decoder-Verdeckung oder trotz abgelehntem FEC entstehen.

Parität ist keine Authentisierung

Manipulierte FEC-Daten können die Rekonstruktion verändern, eine zu große Länge erzeugen und den Rechenaufwand deutlich erhöhen. RFC 5109 empfiehlt Plausibilitätsprüfungen vor der Wiederherstellung und eine Validierung des Ergebnisses vor seiner Nutzung. Eine algebraisch lösbare Gleichung kann operative Ablehnung verdienen.

Bei getrennten Strömen gehören Integrität, Zuordnung und Schlüsselgeneration ebenso zur Beweiskette wie Längen- und Rechenlimits. Erst danach darf der Decoder entscheiden. Weder XOR noch ein parsbarer Header sind ein Dienstbeleg.

Reparatur verbraucht die knappe Ressource

Mehr FEC-Pakete relativ zum Medium erhöhen häufig den Schutz und stets den Ressourcenverbrauch. Stammt Verlust aus Überlastung, kann automatische Redundanzerhöhung die Ursache verstärken. RFC 5109 verlangt, dass Implementierungen die Gesamtmenge aus Medien und FEC bei zunehmendem Verlust nicht wesentlich erhöhen. Unter Best-Effort-Bedingungen ist Verlust zu überwachen.

Änderungen an Ebenenzahl, Gruppengröße oder Mehrfachschutz der Ebene 0 sind deshalb gemeinsam mit Gesamtrate, Medienrate, Warteschlangenverzögerung, Verlust, Decoderannahme und Wiedergabeverspätung zu beurteilen. Eine höhere Rekonstruktionsquote kann mit einem schlechteren Dienst zusammenfallen.

Die belegbare Grenze

RFC 5109 wurde im Dezember 2007 als Standards Track veröffentlicht. Es ersetzte RFC 2733 und RFC 3009, korrigierte RTP-Header-Unstimmigkeiten und ergänzte ungleichen Schutz. Sein FEC-Format ist zu den Vorgängern nicht rückwärtskompatibel, während unveränderte Medien weiterhin konsumierbar sein können. Das ist eine Protokolleigenschaft, kein Nachweis einer Einführung.

Die Maske reicht über höchstens 48 Offsets, die Operation verwendet XOR. Die Quellen belegen keinen benannten Betreiber, kein Produkt, keinen eingesetzten Codec, keine Verlustquote, keinen Wiederherstellungsanteil und keine Nutzerqualität. Der belastbare Schluss lautet: RFC 5109 kann Schutzabsicht und rekonstruierte Reichweite präzise ausdrücken. Es macht daraus noch kein vollständiges Medien- oder Dienstergebnis.

Quellen