DAGA '06 - Braunschweig Audioübertragung mit geringer Latenz für interaktive Web-Services Christian Borß Institut für Kommunikationsakustik, Ruhr-Universität Bochum, 44780 Bochum, Email: [email protected] Einleitung Web-Services stellen über das World-Wide-Web Dienste zur Verfügung, die über XML-formatierte Funktionsaufrufe von lokaler Software genutzt werden können. Web-Services, die auf dem Server ein von der Interaktion des Benutzers abhängiges Audiosignal generieren, das auf dem Client wiedergegeben wird, erfordern eine Audioübertragung mit geringer Latenz. Abbildung 1 zeigt einen solchen Web-Service. Konventionelle Audio-Streaming-Lösungen wurden für nicht-interaktive Anwendungen entwickelt und weisen meist eine Latenz von mehreren Sekunden auf. In diesem Artikel wird eine Streaming-Lösung mit geringer Latenz für interaktive Web-Services vorgestellt, die ohne Installation von zusätzlicher Software direkt in der Java-Virtual-Machine eines gewöhnlichen Web-Browsers verwendet werden kann. Data Format HTML SDP MPEG−1 Application Layer HTTP RTSP RTP Transport Layer TCP Network Layer RTCP UDP IP Abbildung 2: Standardisierte Streaming-Protokolle Übertragung der betroffenen Pakete bietet. Somit ist es speziell zur Übertragung von Echtzeit-Daten geeignet, da keine Verzögerung durch das erneute Versenden verlorener Pakete entsteht. Das Real Time Streaming Protocol (RTSP) ist ein Anwendungsprotokoll, das zur Selektion des gewünschten Datenstroms und zur Initialisierung der Verbindung verwendet wird. Über RTSP werden Meta-Informationen im Session Description Protocol (SDP) Format an den Empfänger gegeben. Die paketierten Audio-/Videodaten werden durch das Real-Time Transport Protocol (RTP) mit Zeitmarken und Sequenznummern versehen und für gewöhnlich über UDP an den Empfänger gesand. Mit dem RTP Control Protocol (RTCP) gibt der Empfänger Rückmeldung über Paketverlustrate und Jitter. Streaming− server RTCP RTP/ UDP RTCP Broadcaster RTP/UDP RTSP A/V Data Client QoS Feedback Setup / Control Abbildung 1: Interaktive auditive virtuelle Umgebung, die dem Anwender über das Internet zur Verfügung gestellt wird Abbildung 3: Live-Streaming unter Verwendung von RTSP/RTP/RTCP Live-Streaming Ein aus Sender (Broadcaster), Streaming-Server und Empfänger (Client) bestehendes Live-Streaming System, das diese Protokolle verwendet, ist in Abbildung 3 dargestellt. Die Aufteilung in Streaming-Server und Broadcaster, der die Audio-/Videodaten lediglich weiterleitet, dient dabei der Lastverteilung und ist speziell bei einer großen Anzahl von Clients vorteilhaft. Für die Übertragung von Echtzeit-Audio-/Videodaten1 existieren bereits Lösungen, die für Broadcast Systeme konzipiert wurden. Im Folgendem wird ein Überblick über die gebräuchlichsten dafür verwendeten und auf offenen Standards [1]-[6] basierenden Protokolle gegeben. Abbildung 2 zeigt eine hierarchische Übersicht dieser Protokolle. Peer-to-Peer Lösung Das User Datagram Protocol (UDP) ist ein Verbindungsloses Transportprotokoll, das im Gegensatz zum Transmission Control Protocol (TCP) keinen Mechanismus zum Schutz gegen Paketverlust durch erneute Die Standard Edition der Java 2 Platform, die Sun Microsystems als Plugin für Web-Browser anbietet, enthält keine Unterstützung für die zuvor beschriebenen StreamingProtokolle. Es existieren zwar Bibliotheken, wie das Java Media Framework (JMF) von Sun Microsystems, die die- 1 Der Begriff “Echtzeit” weist hierbei lediglich daruf hin, daß es sich nicht um die Übertragung gespeicherter Daten handelt. 249 DAGA '06 - Braunschweig 1 se Unterstützung bieten, doch müßen sie vom Endanwender zuvor installiert werden. Abhängig von der Zielgruppe, der ein Internet-Dienst zur Verfügung gestellt werden soll, kann das allerdings bereits eine unzumutbare Hürde darstellen. Da RTSP und RTCP zudem noch für individuelle Datenströme mit einem gewissen Overhead versehen sind - es existiert nur ein einziger Audio-Datenstrom, die Ausgabe des Web-Services - ist die Verwendung einer direkten Verbindung zwischen Sender und Empfänger unter Verwendung eines vereinfachten Protokolls zweckmäßig. Ein solches Protokoll wurde in Java implementiert und die Eigenschaften des Gesamtsystems untersucht. P(δi < TB) 0.8 0 0 50 Web-Browser nutzbar ist, wurde gemäß Abbildung 6 bestimmt. Mit 200 . . . 350 ms erfüllt sie die Anforderungen, die an die Latenz einer Audioübertragung für interaktive Web-Services gestellt wird. (1) . Die Paketverzögerung ti setzt sich dabei aus der minimalen Netzwerk-Latenz T und einem variablen Anteil δi zusammen, ti = T + δ i . (2) Abbildung 6: Meßaufbau zur Bestimmung der Latenz des implementierten Systems: Ein periodisches Testsignal wird sowohl über das Netzwerk als auch über den Parallel-Port versand. Die Wiedergabelatenz wird mit Hilfe eines dritten PCs bestimmt. Die Pufferzeit TB , die der Empfänger zum Ausgleich des Jitters wählt, sollte somit an die mittlere variable Verzögerung δ angepaßt werden, Literatur (3) TB = f (δ) . [1] “RTP Payload Format for MPEG1/MPEG2 Video”, RFC 2250, Jan. 1998, URL: http://www. rfc-editor.org/rfc/rfc2250.txt Abbildung 4 zeigt den qualitativen Verlauf der Wahrscheinlichkeitsdichtefunktion für die Paketverzögerung und Abbildung 5 die Verteilungsfunktion der variablen Verzögerung δi für DSL-Verbindungen in Deutschland, die aus 27 Meßreihen ermittelt wurde. PSfrag replacements P (t) T T + δ̄ 10 20 30 40 Pufferzeit TB in Millisekunden Abbildung 5: Verteilungsfunktion der variablen Verzögerung δi für DSL-Verbindungen in Deutschland (ermittelt aus 27 Meßreihen) Um die Anforderungen, die das Übertragungsverhalten aktueller Internet-Anbindungen an die Wiedergabe des Audio-Datenstroms stellt, zu bestimmen, wurde die Verzögerung der Pakete bei der Übertragung untersucht. Unter der Annahme, daß die Pakete die gleiche Verzögerung ti auf dem Hinweg erfahren wie auf dem Rückweg, ergibt sich die Paketverzögerung ti wie folgt aus der gemessenen Roundtrip-Zeit τi , τi 2 0.4 0.2 Paketverzögerung ti ≈ 0.6 T + TB [2] “Real Time Streaming Protocol (RTSP)”, RFC 2326, Apr. 1998, URL: http://www.rfc-editor.org/rfc/ rfc2326.txt [3] “SDP: Session Description Protocol”, RFC 2327, Apr. 1998, URL: http://www.rfc-editor.org/rfc/ rfc2327.txt [4] “A More Loss-Tolerant RTP Payload Format for MP3 Audio”, RFC 3119, June 2001, URL: http://www. rfc-editor.org/rfc/rfc3119.txt t Abbildung 4: Qualitativer Verlauf der Wahrscheinlichkeitsfunktion für die Paketverzögerung [5] “RTP: A Transport Protocol for Real-Time Applications”, RFC 3550, July 2003, URL: http://www. rfc-editor.org/rfc/rfc3550.txt Fazit [6] “RTP Profile for Audio and Video Conferences with Minimal Control”, RFC 3551, July 2003, URL: http: //www.rfc-editor.org/rfc/rfc3551.txt 25 der 27 Meßreihen wiesen eine maximale variable Paketverzögerung max(δi ) von unter 21 ms auf. Somit läßt sich der Jitter-Puffer des Empfängers so weit reduzieren, daß die Latenz des Gesamtsystems in einer Größenordnung liegt, die einen interaktiven Dienst realisierbar macht. Die Latenz des implementierten Systems, das ohne eine Installation zusätzlicher Software direkt im 250