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.

RTP - Header-Daten

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)