Netzwerkanwendungen, Teil 2
Real-Time Transport Protocol
Ein universelles Transportprotokoll für Multimedia-Daten ist das Real-Time Transport Protocol (RTP). Es soll die notwendigen Eigenschaften für eine Echtzeitkommunikation bereitstellen, dabei aber so wenige Festlegungen wie möglich enthalten. So bleibt es etwa der Anwendung selbst überlassen, wie sie mit Paketverlusten umgeht.
RTP setzt auf UDP auf. UDP bietet die notwendige Grundfunktionalität - Zustellung von Paketen ohne großen Overhead. RTP ergänzt diesen Paketdienst um einige für die Echtzeitkommunikation notwendige Elemente.
Der Header für RTP-Pakete ist mindestens 12 Byte lang. Er enthält eine 16 Bit große Sequenznummer für das Paket. Diese Nummer wird bei jedem Paket um Eins erhöht. Anhand dieser Nummern kann der Empfänger erkennen, ob er alle Pakete in der richtigen Reihenfolge erhält. Die zeitliche Beziehung stellt ein Feld mit einem Zeitstempel her. Dabei ist das exakte Format des Zeitstempels anwendungsabhängig.
Die Quelle des Datenstroms wird über eine 32-Bit-Zahl im Feld "Synchronization Source" (SSRC) mitgeteilt. Über ein 7 Bit großes Feld wird der Typ der Nutzdaten angegeben. Damit könnte beispielsweise ein Wechsel der Kodierungsmethode angezeigt werden. Schließlich kann ein RTP-Strom Beiträge von mehreren Quellen enthalten (zum Beispiel mehrere Mikrofonkanäle).
Die Bedeutung der einzelnen Datenfelder im RTP-Header erläutert folgende Tabelle.
Bits | Bezeichnung | Bedeutung | |
---|---|---|---|
V | 2 | version | RTP-Versionsnummer |
P | 1 | padding | Gibt an, ob der Frame mit Padding-Bytes aufgefüllt werden soll |
X | 1 | extension | Gibt an, ob eine Header-Erweiterung vorliegt |
CC | 4 | CSRC count | Anzahl der CSRC-Identifier |
M | 1 | marker | Markiert ein bestimmtes Profil |
PT | 7 | payload type | Legt das Format des RTP-Pakets fest und ordnet es einer Anwendung zu |
SN | 16 | sequence number | Dient der Sortierung der empfangenen Pakete |
- | 32 | timestamp | Absendezeit (in Relation zum RTP-Strom) |
SSRC | 32 | sync source | Zufallszahl zur Unterscheidung von verschiedenen RTP-Quellen |
CSRC | 32 | contributing source | Identifikation der beitragenden Quelle (nur bei gemischten RTP-Strömen) |