University of Essen / Institute for Experimental Mathematics / Computer Networking Technology Group / Thomas Dreibholz
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
Jan Selzer. Der QoS-Manager teilt darauf
hin Bandbreite und DiffServ-Klassen für den Strom zu.
20.04.2012 Thomas Dreibholz, University of Essen / Institute for Experimental Mathematics / Computer Networking Technology Group