Simula Research Laboratory /
Center for Resilient Networks and Applications /
NorNet
Homepage von Thomas Dreibholz /
RTP Audio Homepage
🇬🇧Go to English version of this document🇬🇧
RTP Audio
Das RTP Audio System besteht aus einem Server und mehreren Clients, welche
vom Server mit Audiodaten beliefert werden. Die Übertragung läuft über das
RTP-Protokoll (Real-Time Protocol, siehe
RFC 1889), welches auf UDP basiert.
RTP Audio unterstützt dabei sowohl IPv4 als auch IPv6 einschließlich Flow-Labels
und Traffic Classes. Als Clients stehen ein Text-Client,
ein C++-Client mit
Qt-Oberfläche und ein Java-Client
mit Swing-Oberfläche zur Verfügung. Der Java-Teil ist mittels JNI (Java Native Interface)
an den C++-Teil angebunden.
Die Steuerung des RTP Audio Server geschieht mittels RTCP
Nachrichten. Damit werden An- und Abmeldung vom Server, Qualitäts- und Positionsänderungen
sowie Statusmeldungen von den Clients zum Server übertragen. Die vom Server zur
Verfügung gestellten Audiodateien werden zu Listen zusammengefaßt. Diese können sowohl
WAV-Dateien als auch MP3-Dateien enthalten. MP3-Dateien werden dabei mittels
libmpegsound eingelesen und entpackt.
Zur Übertragung der Audiodaten stehen zwei verschiedene Kodierungen zur Verfügung:
Simple Audio Encoding und Advanced Audio Encoding, wobei letztere einen
Strom in 1, 2 oder 3 Layer aufteilt, welche absteigende Priorität besitzen und daher
über verschiedene DiffServ-Klassen mit verschieden hoher Verlustwahrscheinlichkeit
gesendet werden können. Damit ist eine Fehlerkorrektur möglich, bei welcher fehlende
Pakete eines Audio-Kanals bzw. einer 16-Bit-Hälfte durch die Daten des anderen
Kanals bzw. der anderen Bithälfte ersetzt werden.
Die übertragenen IP-Pakete werden mit einem vom QoS-Management vorgegebenen TOS-Wert
(IPv4) bzw. TrafficClass-Wert (IPv6) markiert, um DiffServ beim Routing zu unterstützen.
Bei IPv6 werden zusätzlich Flow-Labels verwendet, welche Reservierung und Routing
vereinfachen.
Meßwerkzeuge
Zur Lastmessung und -bewertung stehen die Programme netlogger zum Erfassen
des Netzwerk-Verkehrs mittels libpcap und netanalyzer zur Umwandlung der
erfaßten Daten in GNUplot-Eingabedateien zur Verfügung. Dabei wird in festgelegten
Intervallen die Paketanzahl, Paketgröße und Bandbreite der übertragenen Daten gruppiert
nach IPv4, IPv6, TCP, UDP, ICMP4, ICMP6 usw. erfaßt. Roundtripzeit-Messungen werden mit
rttp durchgeführt.
RTP Audio besitzt zusätzlich eine Schnittstelle zu einem optionalen zentralen
Congesion Management. Ein zentraler Netzwerk-Monitor überwacht mittels libpcap
den gesamten Netzwerkverkehr eines Ethernets und berechnet daraus Congestion. Bei
Überlast kann der RTP Audio Server die Bandbreite entsprechend reduzieren. Zur
Simulation eines Netzwerk-Monitors gibt es den Congestion Simulator.
Quality of Service Management
RTP Audio liefert QoS-Vorgaben an den QoS-Manager von
Simon Vey
und das Reservierungsmodul von
.
Der QoS-Manager teilt darauf hin Bandbreite und DiffServ-Klassen für den Strom zu.