Multicast-Proxy-Server für Audio-Live-Streams

Transcription

Multicast-Proxy-Server für Audio-Live-Streams
Multicast-Proxy-Server
für
Audio-Live-Streams
Projektarbeit PA2 / Sna06
21. Mai bis 6. Juli 2001
Reto Glanzmann, José Fontanil
Dozent: Dr. Andreas Steffen
6. Juli 2001
Inhaltsverzeichnis
1. Zusammenfassung und Ausblick...........................................................................4
1.1 Zusammenfassung............................................................................................4
1.2 Ausblick............................................................................................................5
1.3 Zeitplanung......................................................................................................5
2. Grundlagen.............................................................................................................6
2.1 Multicasting......................................................................................................6
2.1.1 IP Multicasting Übersicht....................................................................6
2.1.2 Adressen................................................................................................6
2.1.2.1 IP-Multicast-Adressen..............................................................6
2.1.2.2 Umsetzung der IP-Multicast Adresse in Multicast-MACAdressen im Ethernet...........................................................................7
2.1.3 Internet Group Management Protocol (IGMP)...................................8
2.1.3.1 IGMP Version 1.........................................................................8
2.1.3.2 IGMP Version 2.........................................................................8
2.1.4 Distance Vector Multicast Routing Protocol (DVMRP)......................9
2.1.5 Protocol Independent Multicast (PIM)..............................................10
2.1.5.1 PIM Dense Mode.....................................................................10
2.1.5.2 PIM Sparse Mode....................................................................10
2.1.6 Inter-Domain Multicast......................................................................12
2.1.6.1 Multicast Border Gateway Protocol (MBGP).........................12
2.1.6.2 Multicast Source Discovery Protocol (MSDP)........................12
2.1.6.3 Border Gateway Multicast Protocol (BGMP).........................13
2.1.7 Administrative Konzepte....................................................................14
2.1.7.1 Multicast Scope Control..........................................................14
2.1.7.2 Bandbreitenlimitierung / Flusskontrolle...............................15
2.1.7.3 Aufsetzen eines IP-Multicast-Tunnels...................................16
2.1.8 Router..................................................................................................16
2.1.9 MBone.................................................................................................16
2.1.10 Zukünftige Entwicklungen...............................................................17
2.1.10.1 Multicast in IPv6...................................................................17
2.1.10.2 QoS-Unterstützung für IP-Multicast...................................18
2.2 Streaming.......................................................................................................19
2.2.1 Streaming Übersicht..........................................................................19
2.2.2 Unicast Streaming..............................................................................19
2.2.3 Multicast Streaming...........................................................................21
2.2.3.1 SDP, SAP und SIP...........................................................................23
2.2.3.2 RTP, RTCP und RTSP.....................................................................25
2.3 Multicast Streams per Web publizieren (Bsp. Apache)................................26
2.4 SDR MP3 Audio Plug-In................................................................................27
3. Aufgabenstellung..................................................................................................28
4. Analyse..................................................................................................................29
4.1 Vergleich von Streaming / Proxy Server-Produkten....................................29
Übersicht der verfügbaren Audio-Streaming Produkte.............................30
Doku PA2_Sna06.sdw
Seite 2
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
4.2 ZHW MBone Anbindung................................................................................31
5. Realisierung..........................................................................................................33
5.1 Beschreibung unserer Multicast-Streaming Lösung....................................33
5.2 Versuchsaufbau..............................................................................................33
5.2.1 Einführung..........................................................................................33
5.2.2 Darstellung des Testaufbaus.............................................................34
5.2.3 Erläuterungen zum Testaufbau.........................................................35
5.2.4 Performance Aspekte..........................................................................36
5.3 Beurteilung der Lösung.................................................................................37
5.4 Beschreibung der Komponenten...................................................................37
5.4.1 LiveCaster...........................................................................................37
5.4.2 SHOUTcast DNAS-Server..................................................................38
5.4.3 oddcast DSP – Winamp Plug-In.........................................................38
5.5 Kosten / Lizenzierung....................................................................................39
6. Benutzeranleitung................................................................................................40
6.1 Administrator.................................................................................................40
6.1.1 LiveCaster (Multicast-Server)............................................................40
6.1.2 SHOUTcast DNAS-Server (Unicast Server).....................................41
6.1.3 Winamp Plug-In oddcast DSP............................................................43
6.1.4 Winamp Line-In Plug-In....................................................................45
6.1.5 Webpage mit 'tune-in' Angebot (Beispiel Apache)............................45
6.2 Empfänger......................................................................................................47
7. Literaturverzeichnis.............................................................................................48
7.1 Buch................................................................................................................48
7.2 Internet...........................................................................................................48
7.3 RFCs und Internet Drafts..............................................................................50
8. Software Versionen..............................................................................................51
8.1 Auf dem Server / Proxy eingesetzte Software...............................................51
8.2 Auf dem Client eingesetzte Software............................................................51
Doku PA2_Sna06.sdw
Seite 3
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
1. Zusammenfassung und Ausblick
1.1 Zusammenfassung
Im Rahmen unserer zweiten Projektarbeit im dritten Studienjahr evaluierten
wir Multicast-Streaming-Lösungen für den Campus-Einsatz. Nach Versuchen
mit den einzelnen Komponenten haben wir das geforderte Ziel erreicht. Ein
flexibles, leistungsfähiges und in der Anschaffung erstaunlich preisgünstiges
Gesamtsystem. Die Kosten der eingesetzten Software belaufen sich auf magere
US$ 100, wobei die Anzahl der Zuhörer nicht begrenzt ist.
Die Lösung enthält alle geforderten Features: Proxy-Funktionalität, LiveStreaming ab einer beliebigen analogen Quelle und Multiple-SimultaneousStreaming. Die Streams können bequem per Webinterface bezogen werden.
Der vorliegende Projektbericht soll dem Leser die Grundlagen des Multicastings
und Streamings vermitteln. Weiter ist eine Analyse und komplette Anleitung
zum Aufbau der von uns erarbeiteten Gesamtlösung enthalten. Mit diesen
Unterlagen soll es Firmen und Institutionen ermöglicht werden, innert kurzer
Zeit eine lauffähige Multicast-Proxy-Lösung in Betrieb zu nehmen.
Die Multicasting-Technologie ist heute noch sehr unausgereift. Router müssen
neueste Betriebssystem-Updates haben, neue Routingprotokolle werden noch
nicht von allen Routern unterstützt und gewisse Protokolle haben es noch nicht
einmal auf den Stand eines RFCs geschafft. Gleichwohl glauben wir, dass diese
Technologie eine grosse Zukunft haben wird, nicht nur im Campus-Bereich.
Mit dem MBone existiert jetzt schon ein stetig wachsendes, weltumspannendes
Multicast-Netz mit interessanten Inhalten. Auf unsere Initiative hin, sollte auch
die ZHW in den nächsten Wochen den Anschluss an das MBone erhalten.
Winterthur im Juli 2001
Reto Glanzmann
Doku PA2_Sna06.sdw
José Fontanil
Seite 4
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
1.2 Ausblick
Mit dieser Projektarbeit wurde der Grundstein gelegt, um sich genauer mit dem
Thema Multicasting zu befassen.
Mögliche Erweiterungen unserer Arbeit wären:
?
Langzeittest des Gesamtsystems
?
Da es trotz Multicasting nicht möglich ist, eine beliebige Anzahl Streams
gleichzeitig anzubieten, benötigt man ein Auswahl- und Bewertungsverfahren.
Wir haben uns vorgestellt, dass dies am einfachsten mit einem eVote-System
per Webinterface zu realisieren ist.
?
Viele Webradio-Stationen senden ihr Angebot in den proprietären RealMediaund Quicktime-Formaten, es wäre deshalb wünschenswert einen Konverter zu
haben, sodass der LiveCaster auch diese Streams empfangen kann.
1.3 Zeitplanung
Da es sich bei dieser Projektarbeit nicht um ein eigentliches Entwicklungsprojekt
handelt, konnten wir keine Planung im klassischen Stil betreiben, da wir nicht
wussten, was überhaupt auf uns zukommen wird.
Zurückblickend kann gesagt werden, dass eine detaillierte Aktivitätenplanung
im voraus für länger als eine Woche kaum möglich ist, da Produkte und Verfahren, die bei einer ersten Betrachtung vielversprechend ausgesehen haben, sich
bei genauerem Studium als völlig untauglich entpuppen und umgekehrt.
José Fontanil & Reto Glanzmann
Schulfreie Zeit
José Fontanil
Reto Glanzmann
KW 21
KW 22
KW 23
KW 24
KW 25
KW 26
KW 27
21.5.01-27.5.01
28.5.01-3.6.01
4.6.01-10.6.01
11.6.01-17.6.01
18.6.01-24.6.01
25.6.01-1.7.01
2.7.01-6.7.01
M D M D F M D M D F M D M D F M D M D F M D M D F M D M D F M D M D F
Militär
Inbetriebnahme Infrastruktur
Projektbesprechung
Aufsetzen LiveCast-Server
Aufsetzen Shoutcast-Server
Aufsetzen Shoutcast-Source
Installation Obsequieum
Suche nach Proxy-Lösungen
Einlesen Multicasting
Krankheit
Multiple Streams per LiveCaster
Audio Live Stream
Ressourcenanalyse
Web-Oberfläche
Daten kommerzielle Produkte
Firmen kontaktieren für Details
Daten nichtkommerz. Produkte
SDR-Plugin
ZHW-MBone-Anbindung
Dokumentation
Die relativ lange, krankheitsbedingte Abwesenheit von Reto Glanzmann brachte
unsere am Anfang erstellte Grobplanung auch noch durcheinander. Wir verzichten hier deshalb, auf die Illustration aller Planungsversionen, da aus unserer
Sicht das Schlussergebnis am aussagekräftigsten ist.
Doku PA2_Sna06.sdw
Seite 5
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
2. Grundlagen
2.1 Multicasting
2.1.1 IP Multicasting Übersicht
Schon Mitte 1993, noch bevor die Inflation von multimedialen Präsentationen im
World Wide Web richtig angefangen hatte, war es für einige wenige schon möglich, die Übertragung eines Space-Shuttle-Flugs auf einer SUN-Workstation live
miterleben zu können. Dies waren erste Anwendungen des IP-Multicasting im
Rahmen des 1992 erschaffenen Multicast-Backbones, auch MBone genannt. Da
der MBone nur ein virtuelles Overlay-Netzwerk auf der eigentlichen InternetStruktur darstellt, ist es relativ einfach neue Verbindungen zu etablieren, da
physisch keine neuen Leitungen geschaltet werden müssen.
Multicasting bietet im Wesentlichen eine günstige und intelligente Möglichkeit,
one-to-many und many-to-many Verbindungen zu ermöglichen, beziehungsweise
zu routen.
In den nächsten Kapiteln sollen der Aufbau des Multicast-Adressraums und die
gebräuchlichsten Routing-Protokolle erläutert werden. Es werden auch zwei
verschiedene Router vorgestellt. Weiter wird noch auf das Session Description
Protokoll eingegangen. Mit ihm ist es möglich, seine Multicast Beiträge lokal
oder weltweit anzukündigen. Es ist für das Verständnis des Resultats dieses
Praktikums nicht nötig, Multicasting in dieser Tiefe verstehen zu müssen, jedoch
ist es vorteilhaft.
2.1.2 Adressen
Nun folgend wird der Aufbau der Layer 3 Multicast Adressen und deren Zuordnung zur Ethernet-Layer 2 Schicht näher betrachtet.
2.1.2.1 IP-Multicast-Adressen
In der Version 4 des IP-Protokolls werden die verfügbaren 32Bit-Adressen zunächst einmal in grobe Adressräume unterteilt: A, B, C, D, E. Aus der Grafik
kann man entnehmen, dass für die genauere Betrachtung nur die Gruppe D interessant ist. Der IP-Multicast-Adressraum umfasst alle IP-Adressen von
224.0.0.0 bis 239.255.255.255 (Siehe auch noch Kapitel 2.1.7.1).
Doku PA2_Sna06.sdw
Seite 6
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Multicast-Adressen werden keinem einzelnen Host, Router oder Netzwerkkarte
zugeordnet. Multicast-Adressen werden einer sogenannten Multicast-Gruppe erteilt. Die Gruppenteilnehmer hören alle auf dieselbe, bekannte Multicast-Adresse
und empfangen so die für sie bestimmten Daten.
Die IANA (Internet Assigned Numbers Authority) hat den Multicast-Adressraum
feiner unterteilt und je nachdem einzelnen Multicast-Anwendungen oder Routing-Protokollen zugeordnet. Die meisten dieser 'reservierten' Adressen dienen
administrativen Zwecken oder enthalten Managementinformationen. Der
Adressbereich zwischen 224.0.0.0 und 224.0.0.255 ist generell nur für die
Managementkommunikation innerhalb eines Subnetzes vorgesehen und wird
von Routern nicht über das lokale Netzwerk hinaus weitergeleitet. Die vollständige Liste aller reservierten Adressen findet man in der RFC-1700.
2.1.2.2 Umsetzung der IP-Multicast Adresse in Multicast-MAC-Adressen im Ethernet
Wie werden die Daten nun im Ethernet MAC-Layer (OSI-Layer 2) weiter verteilt? Im uns bekannten Unicast Fall geschieht das, indem dem IP-Paket der
MAC-Header mit der entsprechenden MAC-Adresse (48 Bit) des Empfängers vorangestellt als Ethernet-Frame aufs Netz gesendet wird. Die Umsetzung beim
Unicast übernimmt das ARP-Protokoll (Address Resolution Protocol).
Da es sich beim Ethernet um ein Broadcast-Netz handelt, muss man ein IP-Multicast-Paket also nur aufs Netz legen und schon können alle im gleichen Netzwerksegment angeschlossenen Benutzer die Multicast-Pakete erhalten. Ethernet
bietet weiter sogenannte Multicast-Adressen auf der MAC-Ebene, auch Hardware-Multicast genannt. Wenn ein User also einer Multicast-Gruppe beitritt, instruiert er seine Netzwerkkarte einfach dazu, diese Pakete an die IP-Schicht
weiterzuleiten.
MAC-Multicast-Adressen bestehen von links nach rechts gelesen aus der Herstellerkennung der IANA, welche im ersten Byte um ein Bit erhöht wurde (01
00 5Ehex). Die restlichen 24 Bit bilden das Kennzeichnungsfeld für die MulticastGruppe, wobei das erste Bit reserviert ist und immer 0 sein muss.
Bei der Umsetzung einer 32 Bit langen IPv4-Adresse in eine MAC-Adresse, werden also NUR die 23 unteren Bits der IP-Adresse in die MAC-Adresse gemappt.
Es wird in Kauf genommen, dass es zu Kollisionen und Mehrfachvergabe der
gleichen Multicast-Gruppe auf einem Netzsegment kommen kann.
Doku PA2_Sna06.sdw
Seite 7
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
2.1.3 Internet Group Management Protocol (IGMP)
IGMP dient dazu, die Multicast-Pakete zwischen den Routern und Gruppenmitgliedern in einem Netzwerksegment zu vermitteln. In den RFCs 1112 und 2236
wurden Version eins und zwei spezifiziert. Die Version drei ist in Abstimmung.
2.1.3.1 IGMP Version 1
Im IGMP-Protokoll gibt es zwei verschiedene Nachrichtentypen:
?
HOST-MEMBERSHIP-QUERY
?
HOST-MEMBERSHIP-REPORT
Die Query-Nachrichten werden vom Router mit TTL=1 in periodischen Abständen auf die Multicast-Adresse 224.0.0.1 gesendet, wobei die Abstände je nach
Implementierung individuell eingestellt werden können. Üblich sind Werte zwischen ein bis zwei Minuten.
Auf die Query-Anforderung antworten die Hosts im Netzsegment mit einem Report, aber jeder erst nach einer zufälligen Zeitspanne. Darin enthalten ist ihre
Multicast-Gruppe, so sie denn einer angehören. Sind mehrere Rechner in der
gleichen Multicast-Gruppe, greift das Prinzip mit dem zufälligen Zähler: Wenn
ein Client schon einen Report zurück gesendet hat, sehen das die anderen
Gruppenteilnehmer und senden daraufhin keine eigenen Reports.
Ein Report kann auch unaufgefordert gesendet werden (join group). Ein 'leave
group' gibt es in IGMP Version 1 noch nicht.
2.1.3.2 IGMP Version 2
Neu gibt es hier eine 'leave group' Anweisung, dadurch wurde die Latenzzeit für
das Verlassen einer Gruppe und dadurch die unnötige Belastung des Netzwerks
durch unerwünschte Pakete signifikant verringert. Damit das 'leave group'
funktioniert, wird noch eine gruppenspezifische Query-Anfrage eingeführt, damit
der Router anfragen kann, ob nach einem 'leave group' überhaupt noch jemand
dieser Gruppe angehört, ohne zuviel Traffic zu erzeugen. Zum Schluss wurde
noch das Verhalten bei mehreren Multicast-Routern in einem Netzwerksegment
definiert. Der Router mit der tiefsten IP wird als Querier festgelegt.
Doku PA2_Sna06.sdw
Seite 8
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
2.1.4 Distance Vector Multicast Routing Protocol (DVMRP)
Das bis heute am meisten verbreitetste Multicast Routing Protokoll DVMRP,
wurde ursprünglich von Steeve Deering entwickelt und ist ein Routing Protokoll,
das auf Basis von Distanzvektoren, also Hop-Counts, basiert. Eine frühe Version
des Protokolls, eine Art Multicast-RIP, wurde in der RFC 1075 spezifiziert. Moderne Implementierungen beinhalten die starken Verbesserungen, die 1999 im
Internet Draft draft-ietf-idmr-dvmrp-v3-09.txt festgehalten wurden.
Der Aufbau des MBones und seine schnelle, weltweite Ausdehnung, geschah mit
Hilfe dieses Protokolls und ist dem Umstand zu verdanken, dass es immer schon
den frei verfügbaren Software-Multicast-Routing-Dämon mrouted für UNIX Betriebssysteme gab.
DVMRP ist bekannt als ein 'prune and flood protocol' was heisst, dass DVMRP
ähnlich wie IGMP arbeitet, aber über Netzwerksegmente hinweg. Schliesslich ist
es ein Routing-Protokoll. Seit der Version drei routet mrouted auf der Basis vom
Reverse Path Multicasting:
Pruning: Der Sender S am Router R1 beginnt Daten an die Multicast-Gruppe G1
zu schicken, wofür die Kurzform (S,G1) üblich ist. RPB sorgt nun dafür, dass alle
Router R1 bis R7 ein Paket der Übertragung erhalten (flooding). Truncated Reverse Path Broadcasting sorgt nun dafür, dass die Pakete nur an diejenigen
LANs weitergeleitet werden, wo es auch zugehörige Gruppenmitglieder von G1
gibt (R3, R5). R7 und R6 stellen per IGMP fest, dass es in ihrem LAN keine zugehörigen Gruppenteilnehmer gibt und senden nun eine Prune-Nachricht an den
jeweils vorderen Router im 'Multicast-Baum' zurück (pruning = beschneiden,
entspricht abmelden).
Damit ein Benutzer sich jederzeit in einer Multicast-Gruppe anmelden kann,
wurde der grafting-Mechanismus eingeführt. In unserem Beispiel meldet sich ein
User über IGMP am Router R7 an. Dieser sendet nun eine Graft-Nachricht zum
vorderen und dieser weiter bis zum Router R1. Danach wird R1 den G1 Multicast-Baum erweitern.
DVMRP ist relativ einfach zu implementieren, hat aber den Nachteil, dass es
einiges mehr an Ressourcen benötigt als z.B. PIM, da es die schon vorhandenen
Unicast Routing-Tabellen nicht mitbenutzt. Weiter skaliert DVMRP schlecht und
ist für grössere Netze deshalb weniger geeignet.
Doku PA2_Sna06.sdw
Seite 9
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
2.1.5 Protocol Independent Multicast (PIM)
PIM bietet mit seinen beiden Modi dense und sparse im Gegensatz zu DVMRP
auch Unterstützung von spärlich besetzten Regionen und die Verteilung mit
möglichst geringen Verzögerungszeiten. Ein weiterer wichtiger Vorteil ist, dass
PIM die schon vorhandenen Unicast Routingtabellen unabhängig vom eingesetzten Unicast-Routingprotokoll nutzt und dadurch Ressourcen spart. PIM ist zu
schon existierenden Multicast-Routing-Protokollen wie z.B. DVMRP kompatibel
und bietet eine erhöhte Skalierbarkeit (Steuermechanismen, Bandbreitenbedarf,
...). Die Definition des PIM-Protokolls wurde in der RFC 2362 festgehalten.
2.1.5.1 PIM Dense Mode
Der PIM Dense Mode (PIM-DM) arbeitet analog zum DVMRP Protokoll. Es
handelt sich dabei auch um ein 'flood and prune' Protokoll. Der Unterschied zwischen DVMRP und PIM-DM liegt in der Ermittlung des kürzesten Pfades zum
Sender. PIM-DM greift auf die im Router schon vorhandenen eigenen UnicastRouting-Tabellen zu, während DVMRP eigene erstellen und verwalten muss. Insofern ist PIM-DM auch einfacher zu implementieren. Es müssen nur die PruneZustände bezogen auf die Gruppen gespeichert werden. Es ist nicht nötig, Routen
zu berechnen. Dies hat den kleinen Nachteil, dass man etwas Flexibilität in Sachen Wegwahl einbüsst, da man den Multicast-Verkehr, den schon vorhandenen
Routen entlang senden muss (Stichwort 'unsymmetrische Hin- und Rückwege').
2.1.5.2 PIM Sparse Mode
Die wichtigste Neuerung im PIM-Protokoll kommt eigentlich erst mit dem PIM
Sparse Mode (PIM-SM). PIM-SM geht grundsätzlich davon aus, dass es keine
Teilnehmer einer bestimmten Multicast Gruppe gibt und kann somit auf das
'flood and prune' Prinzip verzichten.
In PIM-SM existieren ausgewählte Router als sogenannte Rendezvous Points
(RP), bei denen sich die Teilnehmer zuerst anmelden müssen, bevor sie Multicast-Pakete einer bestimmten Gruppe erhalten. Sender müssen sich ebenfalls als
RP registrieren. Ein PIM-SM Netz kann aus einem oder mehreren RPs bestehen,
welche dann auch für verschiedene Multicast Gruppen zuständig sind.
PIM-SM kann sowohl Shared Trees als auch Source-Based Trees aufbauen. Bei
einem Shared Tree bildet der RP den initialen Kernverteilungsbaum. Es wird
also ein gruppenspezifischer Shared Tree bestehend aus den Sendern und den
Empfängern zusammengesetzt, die alle wiederum über einen RP miteinander
verbunden sind. Beim Shared Tree senden die Sender ihre Pakete an den RP.
Dieser weiss, wer die Multicast-Pakete empfangen will und leitet diese weiter.
Ab einem gewissen Schwellenwert kann der RP den Shared Tree in einen SourceBased Tree umwandeln. Das heisst, dass der Verkehr nicht mehr über den RP
läuft, sondern vom Sender direkt zu gewissen Teilnehmern.
Doku PA2_Sna06.sdw
Seite 10
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
1. Registrierung des Senders beim RP
2. Neuer Teilnehmer für Empfang
3 RP erweitert den Verteilungsbaum
4. Aufbau eines Source-based-Trees
5. Multicastverkehr auf dem kürzesten Pfad
Zusammenfassend kann man also sagen, dass PIM wesentliche Verbesserungen
gegenüber dem bisher bekannten DVMRP bietet. Es basiert nicht auf dem Fluten
von Multicast-Paketen, sondern basiert auf einem expliziten Anmeldeverfahren
an so genannten RPs. Es kombiniert die Möglichkeiten des Source-Based Tree
(kürzester Pfad von Sender zu Empfänger) und des Shared Tree (nur Router im
Pfad, die Teilnehmer haben) und geht effizienter mit Netzwerkressourcen um.
Doku PA2_Sna06.sdw
Seite 11
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
2.1.6 Inter-Domain Multicast
Bisher haben wir nur Routingverfahren angeschaut, die primär auf einen Einsatz innerhalb einer Routingdomäne (Autonomous System, AS) zielen. InterDomain-Routing verlangt aber Unabhängigkeit von den in den AS eingesetzten
Routingprotokollen, sollte möglichst nicht fluten und prunen (!) und wäre zuständig für den Aufbau der Multicastbäume über Domänen hinweg.
Da dringender Handlungsbedarf bestand, hat sich die IETF dazu entschlossen,
eine schnelle Lösung für internationales Multicast-Routing zu erstellen. Als eine
Art Zwischenlösung entstanden dann die Protokolle Multicast Border Gateway
Protocol (MBGP, Erweiterung der RFC 2283) und Multicast Source Discovery
Protocol (MSDP). Eine ganzheitliche Problemlösung für internationales Multicast Routing sieht die IETF in Form des Border Gateway Multicast Protocols
(BGMP, draft-ietf-bgmp-spec-02.txt)
2.1.6.1 Multicast Border Gateway Protocol (MBGP)
MBGP ist eigentlich kein 'eigenes' Protokoll. Der Name hat sich mittlerweile
etabliert verweist aber lediglich auf die Multicast-Erweiterung des Border Gateway Protocol in der Version 4 (BGP-4, RFC 2283).
Durch den Kennzeichner der Adressfamilie (SAFI), werden zwei neue BGP-4 Attribute hinzugefügt, welche den Austausch Multicast-relevanter Informationen
erlaubt:
?
MP_REACH_NLRI
Multiprotocol Reachable NLRI, die Menge der erreichbaren Ziele und
deren Next-Hop-Information
?
MP_UNREACH_NLRI
Multiprotocol Unreachable, die Menge der nicht erreichbaren Ziele
Damit ist es nun möglich, Multicast-Routen separat von Unicast-Routen zu
übermitteln, was zusätzlich den Vorteil hat, dass man für Unicast und Multicast
getrennte Routing-Topologien konfigurieren kann. Der Einsatz von MBGP verhindert, dass der Grenzrouter eines Autonomen Systems (AS) die ganze Topologie des Multicast-Netzes kennen muss. Es genügt das Verständnis über die Topologie des eigenen AS und das Wissen um die Routen zu anderen AS.
2.1.6.2 Multicast Source Discovery Protocol (MSDP)
MBGP regelt zwar den Austausch von Routinginformationen zwischen einzelnen
AS, gibt aber keinerlei Auskünfte darüber, welche Domäne wann Teilnehmer in
welcher Gruppe besitzt. Da PIM-SM ein explizites Anmelden der Gruppen-Teilnehmer beim entsprechenden Rendezvouz-Point Router erfordert, diese Router
aber nur Multicast-Gruppen in der eigenen Domäne kennen, gibt es für einen
Benutzer in der Domäne A keine Möglichkeit einer Multicast-Gruppe in der
Domäne B beizutreten. Der Anmeldeversuch würde an den RP der Domäne A
gesendet werden welcher die Multicast-Gruppe der Domäne B nicht kennt.
Doku PA2_Sna06.sdw
Seite 12
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Das Multicast Source Discovery Protocol (MSDP, draft-ieft-msdp-spec-06.txt) erlaubt es also PIM-SM-Domänen mit eigenen RPs miteinander zu verbinden.
MSDP basiert auf TCP-Verbindungen, um die Zuverlässigkeit der Übertragung
zu gewährleisten. Dem für die Domäne verantwortlichen RP wird je eine MSDP
Instanz zur Seite gestellt. Diese ist üblicherweise im gleichen Rechner installiert.
MSDP funktioniert auch mit mehreren RPs pro Domäne, es wird dann einer
ausgewählt, der die MSDP-Funktionalität für die Domäne übernimmt.
Funktionsweise:
?
Jeder neue Teilnehmer der Multicast Daten sendet, ein Sender also,
muss sich beim PIM-SM zuerst am für die Domäne verantwortlichen RP
anmelden.
?
MSDP erkennt die neue Quelle und sendet eine Source-Active Nachricht an alle direkt verbundenen Nachbarn.
?
Ein MSDP Nachbar überprüft nun zuerst, ob die Nachricht von der
richtigen Stelle her kommt (Endlosschleifenvermeidung). Ist dies der
Fall, wird die Nachricht an alle Nachbarn weitergeleitet, ausser an den,
von welchem die Nachricht erhalten wurde.
?
Will nun jemand einer entfernten Multicast-Gruppe beitreten, werden
PIM-Join-Nachrichten an die Multicast-Senderadresse gesendet und
der Multicast-Verteilbaum erweitert.
2.1.6.3 Border Gateway Multicast Protocol (BGMP)
Dieses Protokoll stellt eine vollständige Interdomain Multicast Routing Architektur dar, hatte dafür aber etwas länger in der Entwicklung. Aktuell ist die
Spezifikation vom November 2000 im IETF-Draft: draft-ietf-bgmp-spec-02.txt.
BMGP etabliert wie PIM-SM gemeinsam genutzte Verteilungsbäume (Shared
Tree), die jedoch im Gegensatz zu PIM bidirektional sind. Dies ermöglicht ein
frühzeitiges erreichen der Teilnehmer einer Session auf der gleichen Hierarchieebene. Die Wurzel eines solchen Baumes ist immer eine ganze Domäne und nicht
etwa ein einzelner Rechner.
BGMP benutzt wie auch MSDP TCP, um zuverlässige Übertragungen der Routing-Informationen garantieren zu können. Das An- und Abmelden wird über
Join- und Prune-Nachrichten vollzogen. Per KeepAlive-Nachrichten werden
die Zustände periodisch aufgefrischt. BGMP arbeitet stark mit dem Unicast
Border Gateway Protocol BGP zusammen und benutzt dessen Routing-Informationen, um die Verteilbäume zu generieren.
BGMP unterstützt Classless Inter-Domain Routing (CIDR), welches schon seit
einigen Jahren in Unicast-Netzen eingesetzt wird. Mit dieser wichtigen Funktionalität kann die Menge der zu übertragenden Routing-Informationen vermindert werden. Damit CIDR effizient mit Multicast eingesetzt werden kann, bedarf
es einer strukturierten und hierarchischen Vergabe der Multicast-Adressen.
Doku PA2_Sna06.sdw
Seite 13
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Dieser Problematik hat sich die Multicast Address Allocation Architecture
(MAAA) angenommen. Darauf sei hier aber nicht weiter eingegangen. Wer mehr
Informationen
über
MAAA
benötigt,
findet
diese
unter
http://north.east.isi.edu/malloc der Adresse der IETF Multicast Address Allocation Group.
2.1.7 Administrative Konzepte
In den nächsten drei Kapiteln geht es um drei Kernprobleme, vor allem aus
Administratoren-Sicht:
?
Reichweite der Multicast-Gruppen festlegen
?
Bandbreitenbegrenzung / Flusskontrolle des Multicast-Verkehrs
?
Da nicht alle Router über Multicastfähigkeiten verfügen müssen Tunnel
eingerichtet werden können
2.1.7.1 Multicast Scope Control
Je nachdem, was der Inhalt des über Multicast gesendeten Materials ist, will
man die Verbreitung eingrenzen können. Es gibt zwei Konzepte um die Reichweite von IP-Multicast-Paketen zu beschränken. Die Begrenzung des erreichbaren Bereichs über den Time To Live Wert (TTL) im IP-Header oder das administrative Scoping.
TTL Beschränkung: Man setzt gezielt den TTL-Wert der Multicast-Pakete. Multicast-Router besitzen einen Konfigurationsparamter, der sogenannte treshold.
Dieser ist eine Art Schwellwert einer Übertragungsleitung. Trifft ein Multicast
Paket mit einem grösseren TTL als im treshold angegeben, bei einem Router
ein, so wird das TTL dekrementiert und das Paket weitergeleitet. Ist der TTL
Wert kleiner als der treshold, so wird das Paket verworfen.
MBone De-Facto TTL-Standards
Reichweite
treshold
lokales Subnetz
1
Innerhalb der Organisation / Institution
16
Innerhalb eines Landes
32
Innerhalb Europas
48
Ausserhalb Europas (z.B. USA)
64
Grösstmögliche Verbreitung (world)
255
Administrative Multicast-Bereiche: Da die Bereiche per TTL nur sehr grob 'beschrieben' werden können, hat man noch ein weiteres Konzept erarbeitet. Administratively Scoped IP Multicast (RFC 2365). Der administrative MulticastBereich ist ein definierter Bereich im Multicast-Adressraum. Er hat folgende
Doku PA2_Sna06.sdw
Seite 14
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Eigenschaften:
?
Multicast-Pakete, die an administrative Multicast-Bereiche adressiert
sind, überschreiben keine konfigurierten Administrationsgrenzen.
?
Adressen aus dem administrativen Bereich, werden lokal zugewiesen
und besitzen deshalb nicht die Notwendigkeit, ausserhalb des Administrationsbereichs eindeutig zu sein.
Der administrative Multicast-Bereich liegt zwischen 239.0.0.0 und
239.255.255.255. Es existiert noch eine weitere Unterteilung dieses Adressbereichs:
Einsatzgebiet
Nicht zugewiesen
Adressbereich
239.0.0.0/10
Nicht zugewiesen
239.64.0.0/10
Nicht zugewiesen
239.128.0.0/10
Organisation / Institution
239.192.0.0/14
Reserviert für Erweiterung im lokalen Bereich
239.253.0.0/16 bis
239.254.0.0/16
Lokaler Bereich
239.0.0.0/16
Damit die administrativen Bereiche nutzbringend eingesetzt werden können,
muss ein Multicast-Router die Konfiguration von IP-Multicast Bereichsgrenzen
(Boundries) zulassen. Ein sogenannter Boundry-Router steht an der Grenze eines
zu administrierenden Bereichs zu anderen Netzen. Der Router sperrt bidirektional alle Paket-Weiterleitungen an den Grenzen des administrativen Bereichs.
2.1.7.2 Bandbreitenlimitierung / Flusskontrolle
Da der Multicast-Verkehr auf UDP basiert und somit keine Flusskontrolle hat
wie z.B. der Sliding-Windows-Algorithmus vom TCP ihn bieten würde, muss man
sein Netz vor Überbelastung schützen. Auch wenn der Verkehr das LAN verlässt
und über das WAN geht, wo Bandbreite teuer ist, wäre man um eine Bandbreitenlimitierung froh.
Da UDP keinen Rückkanal besitzt, wurde als 'Allerheilmittel' die Bandbreitenbeschränkung gewählt. Alle derzeit verfügbaren Implementierungen von Multicast-Router stellen eine Möglichkeit der Bandbreitenlimitierung zur Verfügung.
Insbesondere bei Tunneln ist diese Limitierung wünschenswert.
Beim bekannten Unix-Multicast-Router mrouted, konfiguriert man die Bandbreitenlimitierung mittels rate_limit x, wobei x = Anzahl KBit/s ist. Bei den
CISCO-Pendants kann man noch richtungsabhängig konfigurieren: rate-limit
in und rate-limit out.
Doku PA2_Sna06.sdw
Seite 15
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
2.1.7.3 Aufsetzen eines IP-Multicast-Tunnels
Das Internet besteht noch aus vielen nicht multicast-fähigen Routern. Trotzdem
möchte man Multicast Inseln über viele Unicast-Strecken miteinander verbinden. Dies geschieht über Multicast-Tunnels. Hierbei wird eine virtuelle UnicastVerbindung zwischen zwei Multicast Routern konfiguriert, die zwei oder mehrere
direkt angeschlossene multicast-fähige lokale Netze miteinander verbindet.
Multicast-Pakete aus dem LAN werden dann komplett in Unicast-IP-Datagramme mit der Adresse des Tunnelendpunkts verpackt und über normale Unicast-Routen ans Ziel befördert. Es wird dabei das IP over IP Protokoll benutzt
(RFC 1700). Als Beispiel eine einfache Tunnelkonfiguration mit mrouted:
tunnel IP1 IP2 metric 1 treshold 32 rate_limit 1000
Hier wird also ein Tunnel zwischen dem Router mit IP1 und einem anderen
Router mit IP2 angelget. Der Tunnel bietet eine maximale Transferleistung von
1MBit/s für Multicastverkehr. Die Reichweite der Multicast-Pakete muss mindestens TTL=32 sein.
2.1.8 Router
Hier soll nur erwähnt werden, wie es mit der IP-Multicast-Fähigkeit der heutigen Routern aussieht.
mrouted ist der im MBone zur Zeit am meisten verbreitete Router, seine Handhabung ist sehr einfach. Leider unterstützt er nur das DVMRP Protokoll. Der
mrouted wurde 1989 von Steve Deering an der Stanford University entwickelt.
Die Weiterentwicklung lag danach beim Paolo Alto Centers, zur Zeit (Juni 2001)
ist die Version 3.9 aktuell. Man sollte keine alten Versionen mehr benutzen, da
es etliche Änderungen gegeben hat. Für den mrouted gibt es sogar ein SNMPInterface und er ist für fast alle bekannten UNIXe erhältlich und gratis.
CISCO Router unterstützen IP-Multicast seit der Betriebssystem Version IOS
10.2. Die Version 10.2 ist jedoch ungenügend implementiert. Einsetzen sollte
man kein IOS unter Version 11.1(9). CISCO Router bieten im Gegensatz zum
mrouted das modernere Protokoll PIM an. Sie unterstützen sowohl PIM-SM als
auch PIM-DM.
Natürlich gibt es auch andere Router-Hersteller, die Multicast-Unterstützung
bieten. Die beiden Alternativen mrouted und CISCO-Router sind aber die am
meisten verbreiteten IP-Multicast-Router.
2.1.9 MBone
Der erste Multicast-Tunnel wurde im Sommer 1988 zwischen der BBN und der
Stanford University aufgeschaltet. Seit den ersten Live-Übertragungen von
NASA-Missionen und Rock-Konzerten 1993, wuchs der MBone (Multicast-Backbone) enorm. Dank dem kostenlos verfügbaren UNIX Multicast Routingdämon
mrouted, verbreiteten sich schnell überall auf der Welt Multicast-Inseln. Der
Doku PA2_Sna06.sdw
Seite 16
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
heutige MBone wird vor allem von den kontinentalen Forschungsnetzen gebildet
(Europa: TEN-155, USA: vBNS, CAIDA ...). Die Kern-Router implementieren das
Multicast-Netz direkt auf ATM-Verbindungen. Alle daran angeschlossenen
Gegenstellen sind über MBGP und MSDP angeschlossen. Innerhalb der
einzelnen MBone-Netzwerke läuft heute noch mehrheitlich das DVMRP
Protokoll, beziehungsweise PIM-DM. Es gibt aber schon vereinzelte PIM-SM
Inseln.
1988 wurde noch angenommen, dass das Tunneling nur als Hack gebraucht
werde, bis die Kern-Router Multicasting kennen. Diese Annahme erwies sich als
falsch. Multicasting hat sich bis heute noch nicht breit genug durchgesetzt, so
dass die meisten Neuanschlüsse immer noch per Multicast-Tunnel an den MBone
angeschlossen werden.
Bevor der MBone auch das Interesse der kommerziellen Provider weckte, war
das Multicast-Netz eine reine 'Spielwiese' von Universitäten und Forschungseinrichtungen, welche auf diese Weise bereits erste Konferenzen ausserhalb der
eigenen Netze realisieren konnten.
2.1.10 Zukünftige Entwicklungen
In den folgenden Kapiteln wird jeweils kurz beschrieben, wie sich die zukünftigen Entwicklungen des Internets auf das Multicasting auswirken.
2.1.10.1 Multicast in IPv6
Mit IPv6 (RFCs 2373, 2526), haben wir sage und schreibe 1500 nutzbare IPv6Adressen pro Quadratmeter Erdoberfläche. Klar ist, dass bei einer neuen Adresse
auch die Adressauflösung anders vonstatten geht. Dies ist eine Auswirkung auf
Doku PA2_Sna06.sdw
Seite 17
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
das Multicasting. Eine IPv6-Multicast-Adresse beginnt mit acht auf eins
gesetzten Bits, gefolgt von drei Nullen (future use) und dann, je nachdem ob es
eine well-known IP-Adresse ist, ein 0 oder eine 1, wenn es sich um eine normale
Adresse handelt. Dann folgen vier Bits, welche die Scope des Pakets definieren
(von Node-local bis Global). Am Ende bleiben dann noch 112 Bits um die
Multicast-Gruppe zu identifizieren.
Weiter gibt es als grosse Neuerung die Anycast Adressierung: Anycast beschreibt
die Adressierung eines beliebigen Knotens aus einer Gruppe von Rechnern. Über
diese Technik wird das Adressieren von Multicast-Gruppen einfacher.
Ein weiterer Vorteil von IPv6 ist, dass die Funktionalität vom IGMP Protokoll
ins ICMPv6 (Internet Control Message Protocol) eingeflossen sind (QUERY, REPORT).
IGMPv2 wird durch MLD (Multicast Listener Discovery, RFC 2710) ersetzt, das
auf Basis von ICMPv6 arbeitet.
2.1.10.2 QoS-Unterstützung für IP-Multicast
Die IETF bietet hier auch ohne IPv6 bereits QoS-Lösungen in einem IP-Netzwerk an:
IntServ (Integrated-Services-Modell): Bietet zwar noch keine garantierte Übertragung an, unterstützt dafür aber bevorzugte IP-Pakete. Weitere Informationen
findet man in den RFCs 2212 und 2211.
RSVP (Resource-Reservation-Protocol): Dieses Signalisierungsprotokoll für IntServ ist in der RFC 2205 definiert. Über dieses Protokoll werden die Dienstklassen realisiert. RSVP bietet schon vom Konzept her eine gute Unterstützung für
IP-Multicast. RSVP reserviert für einzelne Datenströme (definiert durch Quell-,
Zieladresse und Portnummern) Netzressourcen. Diese Informationen werden in
periodischen Abständen wiederholt gesendet um die Reservierungszustände in
den Routern aufzufrischen. Da sich die Topologie des Multicast-Baums permanent ändern kann, werden so veraltete Reservierungen gleich implizit gelöscht.
Bei Multicast-Gruppen mit mehreren aktiven Sendern (Konferenzen), werden in
RSVP sogar verschiedene Reservierungstypen unterstützt.
Ein weiterer Ansatz bietet noch die Differentiated-Service-Group der IETF, welche das Type-of-Service-Feld der IPv4 Headers benutzen will. Hier soll aber nicht
näher auf den noch stark auf IP-Unicast ausgerichteten Ansatz eingegangen
werden. Weitere Informationen findet man unter: draft-ietf-diffserv-framework02.txt und in draft-bless-diffserv-multicast-00.txt.
Doku PA2_Sna06.sdw
Seite 18
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
2.2 Streaming
2.2.1 Streaming Übersicht
Die Online-Radiostationen stossen auf grosses Interresse bei den Surfern. Das
Radio ist als klassisches Tagesmedium besonders geeignet für das Internet. Berufsleute am Arbeitsplatz, Studenten und immer mehr Privathaushalte haben
permanenten, breitbandigen Zugriff auf das globale Netzwerk. Gemäss einer
Studie der amerikanischen Markforschungsfirma NPD hat bereits mehr als die
Hälfte aller Internetsurfer schon einmal im Netz nach Audio- oder Videoangeboten Ausschau gehalten. Der Schwerpunkt des Nutzerinteresses liegt bei Musikprogrammen und Konzerten.
Gemäss Schätzungen (Stand März 2000), sind 58 Prozent der Surfer, die Audiound Videoangebote via Internet nutzen männlich. Die meisten Nutzer sind zwischen 25 und 44 Jahre alt. Webcasting-Fans, auch „Streamers“ genannt, haben
darüber hinaus eine überdurchschnittlich gute Bildung. Diese soziodemographische Erkenntnis ist damit zu erklären, dass es momentan noch vorwiegend erfahrene Internetbenutzer sind, die mit Online-Audio und Videoangeboten vertraut sind. Dies wird sich aber in naher Zukunft sicher ändern, was Firmen und
Schulen zwingen wird, sich Gedanken über die Verteilung und Unterbindung von
Audio- bzw. Video-Livestreams zu machen.
2.2.2 Unicast Streaming
Leider ist es heute noch so, dass der grösste Teil der Audio-Video Streams per
Unicast übertragen wird. Dass heisst, dass jeder Zuhörer seine eigene Verbindung zum Streamingserver unterhält. Wollen z.B acht Leute an der ZHW DRS3
hören, so wird der gleiche Stream vom DRS3-Server acht mal an unsere Schule
gesendet. Man kann sich leicht vorstellen, dass die benötigte Bandbreite für jeden weiteren Zuhörer linear ansteigt. Diesem Missstand kann durch Installation
lokaler Proxy-/Relayingserver ein wenig entgegengewirkt werden (siehe Bild unten), da dann eigentlich der Proxy-/Relayingserver der einzige Empfänger des
Streams ist und ihn dann im LAN an die Zuhörer verteilt. Dadurch wird die
"teure" Leitung zum Internet wesentlich entlastet. Der Netzverkehr auf dem
"billigen" LAN bleibt jedoch hoch.
Die Übermittlung von Multimedia-Streams mittels Unicast hat jedoch auch nicht
zu unterschätzende Vorteile. So kann die Übertragungsqualität individuell für
jeden Zuhörer je nach Verbindungsqualität realtime verändert werden. Sollte die
Verbindung zum Server für eine kurze Zeit ganz abreissen, kann der Mediaplayer aus dem Buffer die Empfangslücke für eine gewisse Zeit ausfüllen. Besteht die Verbindung dann zum Server wieder, so wird im Hintergrund der Buffer des Empfängers erneut gefüllt. So kann mit grosser Wahrscheinlichkeit ein
Stream über lange Zeit unterbrechungsfrei empfangen werden. Ausserdem ist
das Billing für kostenpflichtige Dienste sehr einfach zu realisieren.
Doku PA2_Sna06.sdw
Seite 19
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Benötigte Bandbreite für Unicast ohne einen Proxy- / Relaying-Server
Streaming-Server
8 * 128 kbit/s = 1 Mbit/s
Internet
8 * 128 kbit/s = 1 Mbit/s
H S1 HS 2 OK 1 OK 2 PS
1 2 3 4 5 6 7 8 9 101 112
C O LAC TSTA -
CO N SOL E
Hub/Switch
Zuhörer
Benötigte Bandbreite für Unicast mit einen Proxy- / Relaying-Server
Streaming-Server
Internet
1 * 128 kbit/s = 128 kbit/s
Lokaler Proxy/
Relaying-Server
8 * 128 kbit/s = 1 Mbit/s
H S1 HS 2 OK 1 OK 2 PS
1 2 3 4 5 6 7 8 9 101 112
C O LAC TSTA -
CO N SOL E
Hub/Switch
Zuhörer
Doku PA2_Sna06.sdw
Seite 20
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
2.2.3 Multicast Streaming
Multicast Streaming erfreut sich langsam aber sicher immer grösserer Beliebtheit. Vor allem für den Streamer (Sender des Streams) bedeutet es eine enorme
Kostenersparnis, da von seinem Server aus nur noch ein Stream gesendet wird.
Will ein Zuhörer einen Media-Stream empfangen, so muss er seine Absicht dem
Sender mitteilen. Dieser schaut dann dafür, dass der Zuhörer die Multicastpakete zugestellt bekommt. Wie wir bereits einige Kapitel früher erfahren haben,
ist mit dem MBone (Multicast-Backbone) auch die nötige Technik im Backbonebereich vorhanden. Firmen und Schulen (die am MBone angeschlossen sind)
können mittels Multicasting-Empfang unter Umständen enorm Bandbreite einsparen.
Sofern man Campus-intern über eine multicastfähige Infrastruktur verfügt, aber
nicht am MBone angeschlossen ist, kann man auch einen Proxy- / Relayingserver
in Betrieb nehmen, der zwar die Streams per Unicast empfängt, dann aber per
Multicast in das lokale Netz sendet. Somit entsteht vom Internet zum Campus
auch nur eine einfache Bandbreitenbelastung, egal wie viele Hörer diesen Sender
hören.
Die Vorteile des Unicasting sind die Nachteile des Multicasting. Empfängt ein
Hörer auf einmal keine Multicast-Pakete mehr, kann der Empfangsbuffer (welcher bei Empfangsbeginn gefüllt wird) zwar für eine gewisse Zeit den Player mit
Daten versorgen, wenn der Hörer dann aber wieder Multicast-Pakete empfängt,
kann der Buffer nicht wieder ohne Unterbruch gefüllt werden. Weil es halt eben
Multicast ist und nicht individuell vom Sender auf die Probleme des Einzelnen
eingegangen werden kann. Der unterbrechungsfreie Empfang über eine längere
Zeit, ist also nicht gewährleistet. Ein nicht unwesentlicher Aspekt ist auch der
Anschaffungskostenfaktor. Die wenigsten Firmen verfügen bereits über multicastfähige Netzwerktechnik, was dazu führt, dass aus Multicast ziemlich schnell
Broadcast werden kann.
Auch wenn die zur Verfügung stehende Bandbreite ständig wächst, die Zukunft
liegt im Backbonebereich eindeutig beim Multicasting, weil dadurch enorme
Bandbreitenersparnisse erwirkt werden können. In mikrosegmentierten LAN's
ist der Einsatz von Multicasting unter Umständen zuerst abzuklären.
2
Erforderliche Bandbreite
Bandbreite in MBit/s
1.75
Unicast vs. Multicast
1.5
Multicast
Unicast
1.25
1
0.75
0.5
0.25
0
1
5
10
15
Anzahl Empfänger (gleicher Sender)
Doku PA2_Sna06.sdw
Seite 21
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Verkehrsaufkommen bei acht 128kbit/s Livestream-Empfängern (gleicher Sender)
Unicast
Streaming-Server
8 * 128 kbit/s = 1 Mbit/s
Router
5 * 128 kbit/s = 0.5 Mbit/s
1 * 128 kbit/s = 128 kbit/s
3 * 128 kbit/s = 384 kbit/s
HS1 HS2 OK1 OK2 PS
1 2 3 4 5 6 7 8 9 101112
COLACTSTA-
CONSOLE
Hub / Switch
HS1 HS2 OK1 OK2 PS
1 2 3 4 5 6 7 8 9101112
COLACT STA-
CONSOLE
Hub / Switch
HS1 HS2 OK1 OK2 PS
1 2 3 4 5 6 7 8 9101112
COLACT STA-
CONSOLE
Hub / Switch
Multicast
Streaming-Server
1 * 128 kbit/s = 128 kbit/s
Multicastfähiger Router
1 * 128 kbit/s = 128 kbit/s
1 * 128 kbit/s = 128 kbit/s
1 * 128 kbit/s = 128 kbit/s
HS1 HS2 OK1 OK2 PS
1 2 3 4 5 6 7 8 9101112
COLACT ST A-
Doku PA2_Sna06.sdw
CONSOLE
Hub / Switch
HS1 HS2 OK1 OK2 PS
1 2 3 4 5 6 7 8 9101112
COLACT ST A-
CONSOLE
Seite 22
Hub / Switch
HS1 HS2 OK1 OK2 PS
1 2 3 4 5 6 7 8 9101112
COLACT STA-
CONSOLE
Hub / Switch
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
2.2.3.1 SDP, SAP und SIP
Das Session Description Protocol (SDP, RFC 2327) dient dazu Sitzungen zu beschreiben. Diese Beschreibungen werden mit Hilfe der Protokolle SAP, SIP,
SMTP (E-Mail) oder HTTP an potentielle Teilnehmer verteilt. Eine SDP-Beschreibung einer Session besteht aus reinem ASCII-Text, der die eigentliche Beschreibung der Session, den geplanten Zeitraum und die verwendeten Medien
enthält.
SDP
SAP
SIP
HTTP
SMTP
TCP
UDP
IP
In der oben abgebildeten Grafik wurde der im Multicasting meistens verwendete
Fall, SDP in SAP über UDP über IP markiert. Man kann eine Session natürlich
auch über HTTP und SMTP ankündigen, hierbei besteht aber das Problem, dass
der potentielle Gruppenteilnehmer nicht zwingend auch Zugang zur angekündigten Session haben wird. Das Session Initiation Protocol (SIP, RFC 2543) erlaubt es Nutzer oder auch bestimmte Dienste explizit zu einer Sitzung einzuladen. Als Beschreibungsformat kommt wiederum SDP zum Zuge.
Das Session Announcement Protocol (SAP, draft-ietf-mmusic-sap-v2-06.txt) dient
zur Ankündigung von Sitzungen. Die Sitzungs-Ankündigungen werden periodisch
an
die
festgelegte
Multicast
Adresse
sap.mcast.net
(224.2.127.254:9875) gesendet. Bei administrativem Scoping wird statt dieser
well-known Adresse jeweils die höchste Multicast-Adresse des Adressbereichs
genutzt.
Wenn man mit Multicast-Streaming arbeitet, wird man früher oder später einmal über ein SDP-Announcement stolpern, sei dies im Cache vom Programm
SDR oder wenn man die Announcements eines LiveCaster-Streaming Servers
anschaut. Deshalb schauen wir nun noch an, wie eine SDR Nachricht aufgebaut
ist.
SDP Nachrichten werden also meistens via UDP und SAP verbreitet. Hierbei ist
zu beachten, dass wenn man SAP verwendet, nur ein Announcement pro Paket
gesendet werden darf und dass die SDP-Beschreibung nicht länger als 1kByte
sein darf.
UDP
SAP Header
SDP
1kByte max.
Doku PA2_Sna06.sdw
Seite 23
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Der Aufbau einer SDP Nachricht ist zeilenweise in <type> = <value> Paare
aufgeteilt. <type> ist dabei immer ein case-sensitives Zeichen, <value> ist ein
zum <type> entsprechender String. Nun folgt eine Übersicht, welche Typen es
in SDP gibt und was sie bedeuten:
Session Beschreibung
Typ
Wert
Weitere Erklärungen
v
Protokollversion
o
Ersteller der Session und Identifier
s
Name der Session
i
Optionale weitere Informationen
u
URI der Beschreibung
e
E-Mail Adresse des Erstellers
p
Tel. Nr. des Erstellers
c
Connection Information
b
Bandbreiten Informationen
z
Zeitzonenanpassungen
k
Verschlüsselungs-Schlüssel
a
Null oder mehrere Attribute
<username> <session_id> <version>
<network_type> <address_type> <address>
Session bezogene Information
Optional, wenn weiter unten schon angegeben
Genauere Beschreibung der Session
Zeit bezogene Beschreibungen
Typ
Wert
Weitere Erklärungen
t
Zeitblock in der die Session aktiv ist
<starttime> <stoptime> Format: Dezimale
Darstellung des Network Time Values
r
Null oder mehrere Repetitionen
z.B. täglich, wöchentlich um 10Uhr morgens, ...
Medium Beschreibung
Typ
Wert
m
Name des Mediums und Transport
Adressen
i
Titel des Mediums
c
Connection Information
b
Bandbreiten Informationen
k
Verschlüsselungs-Schlüssel
a
Null oder mehrere MediumAttribute
Doku PA2_Sna06.sdw
Weitere Erklärungen
<media> <port/anzahl> <transport_protocol>
<format_list>
Optional wenn es oben schon angegeben wurde
Seite 24
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Hier noch ein Beispiel einer SDP-Nachricht. Sie wurde aus dem Cache des SDR
v.3.0 kopiert. Der Sender ist der LiveCaster Streaming Server:
v=0
o=- 991741912 3202204387 IN IP4 160.85.138.78
s=phpserver - WOLF FM - the hottest mix of the 70s,
80s and today!
i=MP3 audio
u=160.85.138.78/
e=fontajos@zhwin.ch
t=3202204387 3202206007
a=type:broadcast
a=tool:lc v1.0a83
m=audio 59106 RTP/AVP 14
c=IN IP4 239.14.136.2/63
2.2.3.2 RTP, RTCP und RTSP
Was Streaming auszeichnet ist, dass man die gewünschten Daten schon während
der Übertragung anschauen kann. Bei solchen Übertragungen ist es wichtig, eine
niedrige Verzögerungszeit für den Empfang der Pakete zu gewährleisten. Probleme bei der Rekonstruktion des gesendeten Signals beim Empfänger treten
insbesonderer dann auf, wenn Pakete unterschiedliche Verzögerungszeiten haben, auch Jitter genannt. TCP eignet sich nicht, da es jedes verloren gegangene
Paket nochmals beim Sender anfordert. Der Empfänger müsste zu lange Wartezeiten hinnehmen. Verwendet man hingegen nur UDP, können Fehler in der
Übertragung, übermässige Paketverluste und Änderung der Paketreihenfolge die
Qualität negativ beeinflussen. Auch gibt es beim UDP kein Feedback über die
Qualität der 'Verbindung'.
Aus all diesen Gründen wurde 1991 das Real-Time Transport Protocol (RTP,
RFC 1889) entwickelt. Es wurde primär für die Übertragung von kontinuierlichen Datenströmen, wie Audio- und Video, konzipiert. RTP stellt im Vergleich zu
UDP zusätzliche Funktionalitäten bereit, bietet aber im Gegensatz zu TCP keine
garantierte Übertragung aller gesendeten Pakete.
RTP versieht die Audio- und Videopakete mit Zeitstempeln, um sie beim Empfänger wieder in die richtige Reihenfolge zu bringen. Sequenznummern werden
verwendet, damit Paketverluste zuverlässig diagnostiziert werden können. Weiter können via RTP auch verschiedene Datenströme synchronisiert werden. RTP
wird eigentlich immer über UDP versendet, es muss aber nicht. Denkbar wäre
RTP auch direkt in einem ATM-Netzwerk auf dem Adaptation Layer 5 (AAL-5).
RTP wird ausschliesslich für die Übertragung der Datenpakete verwendet. Damit man eine Kontrolle über die Qualität der Datenübertragung hat, verwendet
Doku PA2_Sna06.sdw
Seite 25
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
man das Real-Time Transport Control Protocol (RTCP, siehe auch RFC 1889,
Kapitel 6). Über Sender- und Empfänger-Reports werden Informationen über die
Qualität der Übertragung zwischen den Teilnehmern ausgetauscht (Paketverlustrate, u.s.w.).
Das Real-Time Streaming Protocol (RTSP, RFC 2326) dient der Kontrolle von
Multimedia-Echtzeit-Datenübertragungen. Es wurde 1996 von Real Networks,
Netscape und der Columbia University entwickelt. RTSP bietet eine Art Fernbedienung für Multimedia Server (play, stop, u.s.w.). Für die Datenübertragung
selbst, wird dann meistens RTP benutzt. Weiter überwacht es die Datenverbindung im Sinne einer Qualitätssicherung und bietet auch noch Urheberrechtsschutz-Funktionen.
Eine Anmerkung am Rande: Für Shared Whiteboards (wb-Dienst) und Text
Applikationen muss eine gesicherte Datenübertragung existieren, deshalb wird
hier nicht auf der Basis von UDP operiert, vielmehr wird der Reliable Multicast
(RMC)–Ansatz benutzt. Wer mehr über diesen neuen Ansatz wissen will, verweisen wir an die RMRG (Reliable Multicast Research Group der IETF) weiter.
Interessantes zu diesem Thema findet man auch in 'NACK-Oriented Reliable
Multicast (NORM) Protocol Building Blocks', festgehalten in dem draft-ietf-rmtnorm-bb-00.txt.
Audio/Videoanwendungen
RTP
RTCP
RTSP
Whiteboard, TextTools
Reliable MC
UDP
IP
2.3 Multicast Streams per Web publizieren (Bsp. Apache)
Um einen Multicast Stream im RTP/AVP Format 14 per Weblink verfügbar zu
machen, muss man wie folgt vorgehen:
1. Apache httpd.conf editieren und folgende Zeile hinzufügen:
AddType audio/mpegurl .pls
Tipp: Browsercache leeren und dann erst erneut versuchen auf die Datei zuzugreifen
2. Eine Homepage erstellen, die einen Link mit einer Datei z.B. song_1.pls
enthält. (Genauerer Beschrieb, siehe auch Kapitel 6.1.5)
Die Datei song1.pls enthält folgenden ASCII-Text und ist für alle lesbar:
[playlist]
numberofentries=1
File1=rtp://239.14.136.3:59106
Doku PA2_Sna06.sdw
Seite 26
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Der RTP-Protokoll-Link hinter File1 enthält die Multicast Adresse und Port.
Wenn der Client nun einen Multicast fähigen Player hat (z.B. Winamp 2.7x inkl.
in_rtp.dll), kann er diesen Stream per Mausklick aktivieren, einmal angenommen er ist in einem per Multicast erreichbaren Subnetz.
2.4 SDR MP3 Audio Plug-In
SDR ist ein SAP und SDP Parser, mit welchem man bequem alle Sessions des MBones visualisiert und verwaltet. Man kann mit SDR auch via SIP andere zu Sessions
einladen und eigene Sessions erzeugen.
Damit man mit dem Programm SDR, die per SDP angekündigten MP3-Streams per Mausklick auf JOIN hören
kann, muss ein Plug-In geschrieben werden, denn SDR
muss wissen, mit welcher Anwendung es den MIMEType mpegurl assoziieren soll.
Dies ist allerdings nicht schwer. Folgender Text muss in
eine Datei namens:
sdr2.plugin.S07.audio.rtp.14.winamp
im Verzeichnis Pfad\sdr\plugins gespeichert werden. (Unix: ~/.sdr/plugins/)
media:audio
proto:RTP/AVP
protoname:RTP
tool:winamp
fmt:14
{
fmtname:MP3 audio
flags:
}
flags:rtp://$(ADDRESS):$(PORT)
Dieses Plug-In ist für Winamp gedacht. Will man aber Freeamp starten, so muss
man nur den Namen des Plug-Ins anpassen und in der Datei unter dem Punkt
tool: Winamp durch Freeamp ersetzen.
Wenn jemand Plug-Ins für andere Zwecke schreiben will, findet er eine ausführliche Anleitung in der Hilfe-Funktion des SDR-Programms.
Doku PA2_Sna06.sdw
Seite 27
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
3. Aufgabenstellung
Fachgebiet Kommunikation
Arbeit Nummer: PA2 Sna 01/6
Proxy-Server für Audio-Live-Streams
Dozent:
Steffen Andreas, Büro: E509, Tel.: 434
Beschreibung:
Real-Audio und MP3 Audio-Live-Streams erfreuen sich nicht nur bei den
Studierenden einer grossen Beliebtheit. Hunderte von Radiostationen und
Spartenprogramme können über das Internet empfangen werden. Die Begeisterung der Informatikdienste hält sich jedoch in Grenzen, da Dutzende
von parallelen Kanälen den Internetanschluss zustopfen, auch wenn die
gemietete Bandbreite noch so gross ist. Auch die Belastung der internen
LAN-Segmente ist nicht zu vernachlässigen. Als drastische Gegenmassnahme werden die Audio-Live-Streams häufig durch Sperrung der
gängigen Ports mittels eines Firewalls unterbunden.
Als Kompromiss bietet sich ein Proxy-Server an, der eine limitierte Anzahl
von Audio-Live-Streams zulässt und damit die durch Audio-Streams beanspruchte Bandbreite unter strenger Kontrolle hält. Da meist einige wenige
Radioprogramme von vielen Benutzern gleichzeitig gehört werden, drängt
sich eine Verteilung dieser Kanäle im Intranet durch den Proxy-Server mittels IP Multicast auf.
In dieser Projektarbeit soll ein Bestand aufgenommen werden, welche
Produkte auf dem Markt erhältlich sind, die diese Proxy-Funktionalität anbieten. Da kommerzielle Server meist nicht ganz billig sind (z.Bsp. einige
tausend Franken für einen RealSystem Proxy 8 Server), soll OpenSource
Implementationen besondere Aufmerksamkeit geschenkt werden.
Mindestens zwei verschiedene Lösungen sollen installiert und konfiguriert
werden und deren Vor- und Nachteile aufgezeigt werden. Um die
Belastung der internen LAN-Segmente auf ein Minimum zu begrenzen,
sollen bevorzugt IP-Multicast Lösungen eingesetzt werden.
Doku PA2_Sna06.sdw
Seite 28
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
4. Analyse
4.1 Vergleich von Streaming / Proxy Server-Produkten
Wir haben eine Vergleichstabelle mit den momentan gängigsten kommerziellen,
sowie den vielversprechendsten nichtkommerziellen Produkten zusammengestellt. Die Preisspanne reicht von Freeware bis US$21'000.
Die kommerziellen Produkte sind ganz klar auch für den kommerziellen Einsatz
bestimmt. So kann fast jedes Produkt dem Media-Stream noch Werbeinformationen in irgendeiner Form beifügen. Payment-Möglichkeiten (Pay per View/Listen) bieten auch die meisten. Diese beiden Features erfordern jedoch den Einsatz
von proprietären Streaming-Formaten. Das bedingt natürlich, dass alle Empfänger den Player des Streamers installiert haben müssen. RealNetworks versucht mittels geschickter Verwirrungstaktik auch beim Streaminkonsumenten
noch abzukassieren.
Eine erstaunlich günstige professionelle Streaminglösung ist mit dem Einsatz
des Darwin Streaming Servers möglich. Dieser Server ist die Open Source Version des Apple Streaming Servers und bietet auch dieselbe Funktionalität. Der
einzige Softwarekostenpunkt bei dieser Lösung ist die Quicktime-Pro Lizenz,
welche zur Encodierung des Mediastreams gebraucht wird. Diese kostet gerade
einmal lächerliche US$29.99.
„Backbone Radio“ verwandelt den PC mit der zugehörigen GUI-Control-Unit
gleich in ein komplettes Radiostudio mit allen dazu benötigten Funktionen
(Crossfading, Live Durchsagen, Realtime-Playlist-Change,..).
Das absolute Highlight für den Campus-Einsatz ist der LiveCaster. Er unterstützt das parallele Multicast-Relaying von mehreren MP3-Streams. Dieser Server ist eigentlich Freeware. Man ist jedoch gezwungen, monatlich die neuste
Version auf dem Streamingserver neu zu installieren. Von dieser relativ unangenehmen Freeware-Restriktion kann man sich jedoch durch die einmalige Bezahlung von $100 freikaufen.
Nicht empfehlen können wir den NetShow Encoder von Microsoft. Die von uns
eingesetzte Version (3.1.0.2954) stürzte mitsamt dem System auf verschiedenen
Rechnern permanent nicht reproduzierbar ab. Die Möglichkeit, eine Playlist zu
verwenden ist leider nicht gegeben und Dateien im MP3-Format wurden konsequent verweigert, obwohl NetShow dieses Format offiziell unterstützt. Ausserdem können MPEG 1 Layer 3 Livestreams nur mit einer maximalen Bitrate von
56 kBit/s codiert werden.
Doku PA2_Sna06.sdw
Seite 29
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Übersicht der verfügbaren Audio-Streaming Produkte
Produkt
Typ
Backbone Radio
http://www.backbone.com
Encoding &
Streaming
Darwin Streaming Server 3.0.1
http://www.darwin.org
Betriebssystem
Multicast /Unicast
Qualitäten
Stream-Typ
Preis
Signalquelle
- Multicast
- Unicast
8..48 kBit/s
- Quicktime-Audio
$4'500 - $17'500
Streaming & Relaying - Max OS X
- Linux (RedHat 6.2, Intel)
- Solaris 7
- FreeBSD 3.5 (Intel)
- Windows 2000/NT (SP5)
k/a
- Unicast
- Multicast
20..100 kbit/s
- Quicktime-Audio
- Quicktime-Video
Freeware (open source) - Quicktime Files
- Live Quicktime Streams
- bezieht Quicktime-Stream von beliebiger Quelle, kann aber nicht
selbst Encodieren
- Quicktime Pro Lizenz ($29.99) wird zum Encodieren gebraucht
- Open Source, gleiche Funktionalität wie Apple Streaming Server 3
- Multistream-fähig (verschiedene Streams von einem Server)
RealSystem Server
http://www.realnetworks.com
Encoding &
Streaming
- Windows 2000/NT
- Linux 2.2 (glib c6)
- Free BSD 3.0
- Solaris 2.6-2.8
- AIX 4.3
- HP-UX 11.x
- IRIX 6.5
- 256-768 MB Ram
- Multicast
- Prozessoren:
- Unicast
- Intel Pentium
- Sun Sparc
- IBM RS/6000 Power PC
- HP PA-RISC 2.0
- R4000 (MIPS3)
bis 320 kBit/s
- RealAudio 8
- RealVideo 8
$1'995- $21'313
- 45 Verschiedene MediaFormate (MP3,
Quicktime,..)
- Live- Audio/Video per
Capture-Karte
- 45 verschiedene Media-Formate wie MP3, Quicktime, WAV...
können gelesen werden
RealSystem Proxy
http://www.realnetworks.com
Proxy-Server
- Windows 2000
- IBM-AIX 4.3
- HP UX-11
- Linux 2.2 (libc6)
- Solaris 2.6-2.8
- 512 MB Ram
- Prozessoren:
- Intel
- Sun SPARC
- Multicast
- Unicast
bis 320 kBit/s
- RealAudio 8
- RealVideo 8
$3'995
- RealMedia Streams
- Bandbreiten-Kontrolle
- Caching Funktionalität
NetShow Encoder 3.1.0.2954
http://www.microsoft.com
Encoding &
Streaming
- Windows
k/a
- Unicast
8..96.1 kBit/s
- ACELP
- CELP
- MS G.723.1
- MPEG Layer 3
- Voxware MetaSound
Freeware
- Live (Line-IN)
- MP3-Files
- WAV-Files
- AVI-Files
- Unterstütz keine Playlists (nur immer ein File kann gesendet
werden)
- hat Problemen mit MP3-Files
- Streams können an Microsoft NetShow-Server gesendet werden,
der diese dann per Multicast weitersenden kann.
Obsequieum
http://obs.freeamp.org
Streaming
- Linux 2.x.x
- Pentium 100 MHz
- Linux 2.x.x
- glibc 2.x
- Unicast
8..320 kBit/s
- MPEG Layer 3
Freeware (open source) - MP3-Files
- Playlistenverwaltung in MySQL
- Web-basierte Administration
SHOUTcast DNAS-Server
http://www.shoutcast.com
Relaying
- Windows 95/98/NT/2000
- Linux glibc (intel)
- FreeBSD 3.x (intel)
- FreeBSD 4.x (intel)
- BSDi (intel)
- Solaris 7 (SPARC)
k/a
- Unicast
8..320 kBit/s
- MPEG Layer 3
Freeware
- beliebige MPEG Layer 3
Streaming Quelle
- von beliebiger MPEG Layer 3 Streaming-Quelle speisbar
- Nullsoft Streamin-Tool DSP-Plugin ist auch Freeware
liveCaster
http://www.live.com
Streaming & Relaying - Windows 95/98/NT
- Solaris (SPARC)
- FreeBSD
- Linux (GNU/Linux/x86)
k/a
- Multicast
8..320 kBit/s
- MPEG Layer 3
$100
- MP3-Files
- MP3-Streams
- MP3 von 'standard input'
- kann mittels LiveGate Multicast-Tunnel betreiben
- unterstützt Session-Description-Protokoll
- mehrere Streams möglich
k/a
- Unicast
8..320 kBit/s
- MPEG Layer 3
- Freeware (open
source)
- beliebige MPEG Layer 3
Streaming Quelle
- open source, Quellcode verfügbar
- Remote Adminstration per Telnet möglich
Doku PA2_Sna06.sdw
- Windows 95/98
- Linux
- OS/2
- BeOS
Seite 30 von 51
- CD-Audio
- MP3-Files
- WAV-Files
- Live (Line-In)
Features
k/a
icecast
http://www.icecast.org
Control Unit:
- Mac OS
- (Windows geplant)
Streaming Server:
- Linux
System-Anforderungen
- Quicktime Pro Lizenz enthalten
- GUI Control Unit
- Live Radio Features:
- Crossfading
- Playlist change
- Live Durchsagen
- Zuhörerstatistik
- Billingfunktionen
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
4.2 ZHW MBone Anbindung
Nachdem wir uns mehr mit Multicast und dem MBone befasst haben, wollten wir
natürlich auch die ZHW an den Vorzügen eines MBone-Anschlusses teilhaben
lassen. Leider ist die Schule nicht direkt am MBone angeschlossen und Cablecom, der Provider der Zürcher Hochschule Winterthur, routet Multicast Pakete noch nicht durch ihr Netzwerk. Es wird also ein Multicast-Tunnel zur
nächsten MBone Insel benötigt. Die SWITCH ist über das TEN-155 am MBone
angeschlossen und somit unser nächster Anschluss-Partner. Auf unsere Anfrage
vom 11. Juni 2001 hin bekamen wir schnell eine positive Antwort.
Am Donnerstag dem 14. Juni 2001 wurde mit Herrn Eggimann und Herrn
Schmid in einer Sitzung ein 512kBit/s Multicast-Tunnel zur SWITCH bewilligt.
Als Router der ZHW wurde unser Multicast-Streaming-Server (phpserver) ausgewählt, darauf soll mrouted (DVMRP) laufen. Diese Konfiguration soll bis Ende
2001 aufgeschaltet bleiben. Was jetzt noch fehlt ist ein formeller Antrag der von
der Kontaktperson der ZHW, Peter Eggimann her beantragt werden muss, was
bis heute, 4. Juli 2001, leider noch nicht geschehen ist.
Wir haben uns entschieden eine mögliche mrouted-Konfiguration zu entwerfen,
testen können wir sie aus oben genannten Gründen aber leider noch nicht.
Die ZHW wird wie in der Grafik unten gezeigt wird, ihren gesamten MulticastVerkehr über den phpserver (160.85.138.78) abwickeln, welcher eine GatewayFunktion zum MBone übernimmt.
Doku PA2_Sna06.sdw
Seite 31
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Die mrouted Konfiguration (mrouted.conf) beinhaltet allgemeine Konfigurationen und ein virtuelles Interface, den Tunnel:
cache_lifetime 300
prune_lifetime 7200
zhwlan 160.85.0.0/16
# Hier Definition weiterer Router im lokalen ZHW-LAN
# Tunnel zum SWITCH MBone-Zugangs-Router
tunnel 160.85.138.78 switch-ip metric 1 treshold 1 rate_limit 512
Cache- und prune_lifetime sind übernommene Default-Werte (in Sekunden). Je
nach Bedarf kann man sie auch anpassen, wir fanden sie aber angebracht und
beliessen sie in ihrer Default-Konfiguration.
Der Eintrag zhwlan 160.85.0.0/16 definiert eine sogenannte Boundry (Grenze)
und verbindet diese mit dem Namen 'zhwlan'. Auf diese Weise kann man bei
späteren lokalen Multicast-Routern Interfaces definieren, welche keine Pakete
über diese definierte Multicast-Adressbereichs-Grenze hinaus routen. Momentan
wird sie aber noch nicht verwendet, da nur ein Tunnel definiert wurde, der ja
keine Grenze hat.
Wie man sieht wird ein Multicast-Tunnel zwischen dem phpserver mit der IP
160.85.138.78 zur Gegenstelle bei der SWITCH mit noch unbekannter IP aufgebaut. Da der treshold auf 1 gesetzt wurde, wird jedes ankommende Paket weitergeleitet. Will man später nur schulintern verteilte Anwendungen, z.B. das
ZHW-Radio einführen, dann muss man beim liveCaster den Paketen einen TTLWert kleiner dem hier im Tunnel-Interface definierten treshold wählen.
Wenn dann der MBone Anschluss aufgeschaltet ist und der mrouted konfiguriert
ist, kann man mit Hilfe des Tools mtrace (analog zu traceroute) überprüfen ob
die Pakete den richtigen Weg nehmen. Um überhaupt zu prüfen, ob man jetzt auf
dem MBone ist, sollte man einfach das Programm Session Directory Tool (SDR)
installieren und aufstarten. Es findet automatisch alle per SDP angekündigten
Sessions.
Doku PA2_Sna06.sdw
Seite 32
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
5. Realisierung
5.1 Beschreibung unserer Multicast-Streaming Lösung
Unsere Streaming-Komplettlösung unterstützt IP-Multicast und wurde möglichst nur aus Freeware und Open-Source Komponenten zusammengestellt.
Damit die Realisierung möglichst billig ist, war es zwingend notwendig, dass der
Streaming-Server auch auf einem Freeware Betriebssystem funktioniert. Als
hauptsächlichen Einsatz, sehen wir dieses System im LAN. Es wurde nicht unbedingt dafür konzipiert, Streams über das Internet zu versenden, auch wenn es
dazu in der Lage ist. Die drei Hauptaufgaben die das System erfüllt sind:
1. Proxy Funktion: Das System kann MP3-Streams aus dem Internet / Intranet empfangen und per Multicast im Intranet (LAN) verteilen.
2. Server Funktion: Das System ist in der Lage, von einer Quelle (Std-In,
http-Stream, Line-In) einen MP3-Stream als Multicast im Intranet (LAN)
verteilen zu können.
3. Multiple simultaneous Streaming: Es ist möglich, mit diesem System
mehrere voneinander unabhängige Multicast-Streams zu erzeugen und
zeitgleich zu versenden. Dabei ist die Begrenzung der Anzahl Streams
allein von der Hardware abhängig.
Die zentrale Komponente ist der LiveCaster (www.live.com), welcher für die Erzeugung und Verteilung der Multicast-Streams verantwortlich ist. Die anderen
beiden Komponenten, SHOUTcast und oddcast, sind nur nötig, um den liveCaster mit http-Unicast-Streams, 'Sendematerial' also, zu versorgen. Braucht man
den LiveCaster lediglich, um bereits gespeicherte Dateien abzuspielen, so werden
serverseitig keine weiteren Anwendungen mehr benötigt. Will man im LAN nur
Inhalte verteilen, welche über den MBone empfangen werden, benötigt man
nicht einmal den LiveCaster, dann reicht schon das konfigurieren der Router im
LAN.
5.2 Versuchsaufbau
5.2.1 Einführung
Bei unserem Testaufbau gingen wir davon aus, dass man sowohl noch nicht digitalisierte Inhalte, als auch schon als MP3-Stream vorhandene Inhalte per Multicast im LAN verteilen will.
Gleich von Beginn an sollte die ganze Schule mit Multicast Streams versorgt
werden. Weil das LAN der Zürcher Hochschule Winterthur auf einer flachen
Layer-2 Struktur basiert, haben wir uns entschieden, nicht allzu viele Streams
zu senden und haben uns auf vier Streams beschränkt.
Wir nutzten den Vorteil, dass wir mit unserem System auch noch nicht digitalisierte Inhalte senden können. An einen PC schlossen wir per Line-In einen Tuner an, welcher uns das Radio DRS3 als analoges Audiosignal lieferte. Dieses
Doku PA2_Sna06.sdw
Seite 33
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
wird im PC cobalt (160.85.131.61) digitalisiert und mit einer festgelegten Bitrate
vom Winamp Plug-In oddcast DSP encodiert an den SHOUTcast Server gesendet.
Damit wir den Multicast-Empfängern auch noch andere musikalische Stilrichtungen bieten können, haben wir aus dem Internet drei 'MP3-Sender' ausgewählt, welche nun ebenfalls als Multicasts an der ZHW gesendet werden. Diese
drei MP3-Streams kommen direkt aus dem Internet über das ZHW-LAN als
Unicast-http-Streams zum LiveCaster auf dem phpserver (160.85.138.78).
5.2.2 Darstellung des Testaufbaus
In zwei Grafiken haben wir den Versuchsaufbau visualisiert. In der ersten Grafik sieht man, welche Kommunikationskanäle zwischen den einzelnen Geräten
existieren und welche Unicast- respektive Multicast-Streams vorhanden sind.
Analog
Radio
ZHW-LAN
3 MP3-Streams:
128KBit/s
44.1kHz
Analog Audio
PC: Line-IN
http://160.85.138.78
Unicast MP3-Stream
Per Winamp Plugin:
56kBit/s
22kHz MP3-Stream
Workstation: cobalt
160.85.131.61
Server: phpserver
160.85.138.78
rtp://239.14.136.73
Live Radio (z.B. DRS3)
rtp://239.14.136.3
Jazz Radio
rtp://239.14.136.1
hot hit radio
rtp://239.140.136.2
wolf fm
Unicast
Doku PA2_Sna06.sdw
Multicast
Seite 34
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
In der zweiten Grafik sehen wir, wie die Software-Komponenten miteinander
verknüpft sind und welche Streams von welcher Komponente aus gesendet werden.
Analog
Radio
Internet
analoges Audiosignal
cobalt
3 * MPEG-3 Audiostream à
128 kBit/s
oddcast DSP
Encoder
encodiertes Audiosignal (56kBit/s)
Shoutcast DNAS
Server
phpserver
liveCaster
Server
3 * MPEG-3 Audiostream à 128 kBit/s
1 * MPEG-3 Audiostream à 56 kBit/s
Unicast
Multicast
LAN
5.2.3 Erläuterungen zum Testaufbau
Der Versuchsaufbau diente vor allem dazu, die evaluierte Lösung auch im Einsatz zu erproben, damit wir allfällige Schwierigkeiten und Beschränkungen in
Konfiguration und Betrieb erkennen und dokumentieren können.
Die Installation selbst lief erstaunlich gut. Das Winamp Plug-In oddcast DSP ist
mit wenigen Mausklicks installiert. Der LiveCaster ist ebenfalls eine reine Routinearbeit. Lediglich beim SHOUTcast DNAS-Server muss man sich durch eine
etwas grösser geratene Konfiguration durcharbeiten, was aber auch keine grösseren Schwierigkeiten bereitet. Alles in allem kann man mit einem halben Tag
für die Installation und Konfiguration der gesamten Multicast-Streaming Lösung
rechnen.
Doku PA2_Sna06.sdw
Seite 35
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Dieser Versuchsaufbau hat natürlich das Problem, dass wir ihn im gleichen
Netzwerk-Segment installiert haben, wo auch die potentiellen Empfänger der
Multicast-Streams sind. Dies macht insofern keinen Sinn, als dass auch die Unicasts in einem Shared-Net an alle angeschlossenen Computer gelangen. Bridges
bieten hier immerhin eine gewisse Segmentierung, aber sauber ist es nicht. In
einem realen System gehört dieser Streaming-Aufbau hinter einen multicast-fähigen Router, damit die MP3-Unicasts gar nicht erst ins LAN gelangen. Wenn
man Streams vom Internet her bezieht und via Proxy ins LAN einspeist, ist es
sicher von Vorteil, wenn die Proxy Infrastruktur möglichst gleich nach dem Internet Anschluss der Firma positioniert wird.
Als Nachteil werten wir im Moment, dass es nicht möglich ist, vom oddcast DSP
Plug-In direkt zum liveCaster streamen zu können. Damit wäre dann der
SHOUTcast DNAS-Server überflüssig. So wie es aussieht, gibt es aber in nächster Zeit kein oddcast-Update, welches dieses Feature beinhaltet.
5.2.4 Performance Aspekte
Wir haben untersucht, wie stark die einzelnen Programme die jeweilige Hardware belasten. Da wir zuerst mit dem SHOUTcast for Winamp Plug-In arbeiteten, haben wir auch zu diesem Encodierungs-Plug-In Messwerte. SHOUTcast for
Winamp hat den Nachteil, dass man als Encoder die Advanced Version des
Fraunhofer MP3-Codecs verwendet. Dieser kann nur MP3-Streams bis 56kBit/s
erzeugen. Mit dem oddcast DSP Plug-In fällt diese Einschränkung weg.
Wieviel Prozessorleistung und Memory benötigen die Programme:
?
Server:
Plattform: PII-350MHz, 128MB RAM, SuSE Linux 7.1 (Kernel 2.4.0)
SHOUTcast:
1 sc_serv Prozess benötigt: 4.0% vom RAM und ~ 0% von der Prozessorleistung
LiveCaster:
1 lc Prozess benötigt: 0.5-0.9% RAM und 1.2% von der Prozessorleistung
?
Source Client (oddcast DSP Plug-In):
Plattform:PIII-450MHz, 128MB RAM, MS-Windows2000® SP-1
Winamp 2.72 inkl. oddcast DSP Beta 14 Plug-In und Line-In Plug-In v.1.41:
1 Prozess benötigt: 4.224 MB RAM, 29-74% von der Prozessorleistung (Peakwerte!), Durchschnittswert ist 40% bei 56kBit/s 22kHz UND 128kBit/s
44.1kHz !
?
Source-Client (SHOUTcast Plug-In):
Plattform: PIII-450MHz, 128MB RAM, MS-Windows2000® SP-1
Winamp 2.72 inkl. SHOUTcast for Winamp v.1.8.0 Plug-In:
1 Prozess benötigt: 2.992 MB RAM, 12-18% von der Prozessorleistung um
einen 56kBit/s 22kHz MP3-Stream zu erzeugen
Doku PA2_Sna06.sdw
Seite 36
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Wir sehen also, dass oddcast DSP zwar eine deutlich höhere Grundbelastung für
den Source-Client darstellt, dies aber nahezu unabhängig von der Bitrate des
Ausgabe Streams. Wir vermuten, dass der eigentliche Encodierungs-Prozess mit
einer hohen Bitrate (Qualität) durchgeführt wird und je nach Bedarf die Datenrate für den Ausgangs-Stream reduziert wird. Erstaunt hat uns, dass die LiveCaster Prozesse (pro Multicast-Stream ein ist lc Prozess nötig) und der
SHOUTcast DNAS-Server so wenig Ressourcen beanspruchen.
Quellen: Beim auf Linux basierenden Server holten wir uns die Informationen
mit Hilfe des Tools top (top, dann P oder M). Auf dem Windows Rechner bemühten wir den Task-Manager. Wir haben jeweils den Mittelwert und die PeakWerte aus fünf Minuten Beobachtungszeit gewählt.
5.3 Beurteilung der Lösung
Das Dreigespann LiveCaster – SHOUTcast DNAS-Server – oddcast DSP liefert
eine sehr günstige, flexible und leistungsfähige Multicast-Streaming-Suite. Sie
bietet ein optimales Preis-Leistungs Verhältnis im Vergleich zu anderen Streaming Varianten, allen voran, zum viel verbreitete RealServer.
Als Nachteil kann man werten, dass man einen Windows-PC benötigt, um LiveStreams erzeugen zu können. Wenn man lediglich einen Live-Stream benötigt,
bietet sich noch der Weg über den Standard IN des Linux-Servers an (Soundkarte -> digitalisieren -> auf Std-In streamen -> LiveCaster).
An dieser Stelle möchten wir noch darauf hinweisen, dass man den SHOUTcast
DNAS-Server je nach belieben auch durch den Open-Source Freeware Server
icecast (v.0.1.x oder 0.2.0, experimental) austauschen kann. Das Winamp Plug-In
oddcast DSP kann beide Server bedienen. SHOUTcast ist schon etwas etablierter, wer aber lieber auf Open-Source Produkte setzt, wählt den icecast Server.
Beide Server sind kostenlos.
5.4 Beschreibung der Komponenten
5.4.1 LiveCaster
Die aktuelle Version des LiveCasters ist kostenlos. Dafür muss man ein Ablaufdatum in Kauf nehmen, welches immer zum Ende des Monats abläuft. Dann ist
man gezwungen, den LiveCaster erneut herunterladen und in das gleiche Verzeichnis zu entpacken. Wer diese Tortour nicht auf sich nehmen will, der muss
eine Lizenz für US$ 100.00 erwerben. Diese Lizenz ist nur für eine Maschine mit
statischer IP gedacht. Um eine Lizenz zu erhalten, muss man ein E-Mail an die
Adresse liveCaster23@live.com senden. Darin soll man die IP des Rechners angeben, für den die Lizenz gelten soll. In einer Lizenz sind noch zusätzliche
Dienste enthalten:
?
Ein Jahr lang technischen Support via E-Mail
Doku PA2_Sna06.sdw
Seite 37
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
?
Priorität bei der Ankündigung / Benachrichtigung von neuen Versionen
und Produkte-News.
?
Bei der Windows NT Version kann man danach den LiveCaster als NTDienst laufen lassen (GUI-less), bei Linux ist dies schon in der GratisVersion möglich.
?
Weiter vereinfacht sich die Konfiguration, da man mehrere gleichzeitige
Streams mit nur einem Prozess laufen lassen kann (UNIX).
Wir empfehlen eine Lizenz zu erwerben, zumal die Kosten für die Lizenz rein
symbolisch sind und jeden Monat die Software neu aufzuspielen, nicht wirklich
eine sinnvolle Sache ist.
LiveCaster bildet das Herz dieser Multicast-Streaming-Suite und bietet eine
vielfältige Flexibilität an. Er kann Streams vom Standard-In, direkt von
gespeicherten MP3-Dateien oder von http-Streams verarbeiten. Er bietet weiter
noch einen Modus an, indem man Text per Multicast verteilen kann, was hier
aber nicht gefragt ist. Er läuft unter Solaris, FreeBSD und x86-Linux, sowie unter Windows 9x und Windows NT. Für jede Multicast-Gruppe wird eine simple
Konfigurations-Datei angelegt. Diese kann man einfach beim Start einlesen und
schon läuft der Multicast-Stream. Dazu mehr in der Installationsanleitung.
LiveCaster kündigt seine Multicast-Gruppen via SDP an. D. h. man kann sich
bequem, zum Beispiel via Session Directory Tool (SDR) oder Multikit (siehe
www.live.com), Übersicht verschaffen und sich gegebenenfalls per Mausklick
einwählen.
5.4.2 SHOUTcast DNAS-Server
Dieser Server wird von der Firma Nullsoft entwickelt und ist Freeware. Wer es
nicht mag, sich dem Goodwill einer Firma auszusetzen, der kann alternativ zum
SHOUTcast DNAS-Server (www.shoutcast.com) auch den Open-Source Server
icecast (www.icecast.org) einsetzen.
Der SHOUTcast DNAS-Server ist eigentlich ein kompletter Unicast-StreamingServer. Er kann Unicast-MP3-Streams via http-Protokoll verteilen und dies an
eine beliebige Menge von Empfängern. Die einzige Limitierung ist die Hardware
und die verfügbare Bandbreite.
SHOUTcast wird in unserer Multicast-Streaming-Suite benutzt, damit man die
vom oddcast DSP encodierten Streams dem LiveCaster Server als http-Streams
übergeben kann. Auf diese Weise speisen wir ein Live-Audiosignal in den LiveCaster ein.
5.4.3 oddcast DSP – Winamp Plug-In
Dieses DSP-Plug-In für Nullsofts Audio Player Winamp 2.7x (und neuer), ist
Open-Source und somit Freeware. Anzumerken ist noch, dass die momentan
neuste Release immer noch eine Beta-Version ist (Beta 14), wobei wir betonen
möchten, dass wir nicht einen Absturz oder Unterbruch während des Encodings
Doku PA2_Sna06.sdw
Seite 38
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
zu verzeichnen hatten.
Da oddcast DSP den eigentlichen MP3-Codec (Open-Source Projekt LAME) schon
statisch dazugelinkt hat, muss man nicht noch einen externen Codec installieren.
Zudem erlaubt es LAME Bitraten von 8 – 320kBit/s zu verwenden. Wenn man
will, auch variable Datenraten. Seit Beta 7 kann man sogar den neuen OpenSource Codec Ogg-Vorbis wählen, dies bedingt aber den Einsatz von icecast 0.2.0
als Unicast-Server.
5.5 Kosten / Lizenzierung
LiveCaster:
US$ 100.00 (Eine Lizenz für eine IP)
SHOUTcast DNAS-Server: US$
0.00
oddcast DSP
US$
0.00
Winamp
US$
0.00
Total
US$ 100.00
Doku PA2_Sna06.sdw
Seite 39
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
6. Benutzeranleitung
6.1 Administrator
6.1.1 LiveCaster (Multicast-Server)
Um LiveCaster (v.1.0aXX) auf einem x86-Linux zu installieren, lädt man zuerst
das LiveCaster Paket von http://www.live.com/liveCaster/downloading.html herunter. Danach wird das Paket mit tar -xzf liveCaster.tar.gz ins entsprechende Verzeichnis entpackt.
Es ist wichtig, dass das Programm 'liveCaster' sowie alle .gif und .tcl Dateien im
Pfad enthalten sind. Dies erledigt man am einfachsten, indem man das LiveCaster-Verzeichnis in den Pfad aufnimmt: export $PATH:/usr/local/LiveCaster (Dies ist ein Beispiel-Pfad, Ihr eigener kann natürlich anders aussehen).
Bevor wir liveCaster nun starten, noch einige Informationen zur Arbeitsweise
von liveCaster. liveCaster kann grundsätzlich in zwei verschiedenen Ausführungen benutzt werden. Als X-Anwendung, mit einer einfachen, informativen
grafischen Oberfläche (liveCaster) und als Kommandozeilen-Prozess (lc). liveCaster liest alle für eine Multicast-Gruppe wichtigen Informationen aus einer
Konfigurations-Datei. Defaultmässig heisst diese SELF.txt. Will man eine andere Datei benutzen, so muss man dies mit dem Kommando lc -d Pfad/Dateiname beim Start mitangeben. Zu beachten ist, dass immer nur eine Konfigurations-Datei pro Verzeichnis existieren darf. Als lizenzierter User kann man
sogar mehrere Streams mit nur einer Instanz des liveCasters starten (lc -d
SELF1.txt SELF2.txt ...).
Um eine Konfigurations-Datei erstellen zu können, empfehlen wir, den liveCaster in seiner X-Version zu starten. Existiert noch kein SELF.txt im angegebenen
Verzeichnis, wird ein Assistent eingeblendet, der hilft, die Datei zu erstellen.
Wer will, kann die Konfigurations-Datei natürlich auch von Hand erstellen.
Die Konfigurations-Datei ist sehr simpel aufgebaut und kann mit jedem Editor
bearbeitet werden. Hier eine Beispielsdatei:
bwLimit
URI
info
email_address
progId
source
SDPdir
outputMode
nickname
tunnelState
GroupEId
Doku PA2_Sna06.sdw
128
160.85.138.78/
MP3 audio
fontajos@zhwin.ch
P:160.85.138.78:991741912
http://211.115.216.23:8080
local-default
audio
phpserver – new mp3s
0 { } 10100 10100 1
239.14.136.73 59106 {63 nokey}
Seite 40
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Als Administrator können Sie obiges Beispiel gleich als Vorlage nehmen und die
einzelnen Parameter anpassen.
bwLimit bedeutet Bandbreiten-Limite. Hier wird die maximale Bitrate des MP3Streams festgelegt (128 = 128kBit/s).
URI ist die richtige IP Adresse des Servers (nicht die Multicastgruppe!)
Dem info-Tag kann ein beliebiger Text zugeordnet werden. Dieser wird danach
per SDP als Session-Beschreibung gesendet.
Die E-Mail Adresse des Sender-Verantwortlichen und optional noch seine Telefon-Nr. sind sinnvoll, auf diese Weise kann man nötigenfalls einfach in Kontakt
mit der verantwortlichen Person treten (z.B. bei Scope-Probleme o. ä.).
Die progId ist eine eindeutige Identifikation des Rechners und Programmes.
Bei source wird eine IP-Adresse mit Port angegeben. Dies ist im obigen Fall der
Quellstream, von wo LiveCaster den Unicast Stream empfängt, den er per Multicast weiter verteilen soll.
Will man nur MP3-Dateien streamen, so kann die source-Zeile weggelassen
werden. Es werden dann alphabetisch alle Dateien in diesem Verzeichnis abgespielt. Hierbei ist auch der URI-Tag nicht nötig.
SDPdir definiert, ob man SDP Ankündigungen entweder nur im lokalen Administrations-Bereich (höchste Adresse im admin-Bereich) verteilt oder diese per
TTL begrenzt, bis weltweit über das MBone auf sap.mcast.net
(224.2.127.254:9875) ankündigt.
Der outputMode muss auf audio gesetzt sein (Wir wollen ja keine Texte senden).
Nickname definiert den dargestellten Namen der Quelle des Multicast-Streams.
tunnelState kann man getrost in den default-Einstellungen belassen. Diese sind
nur nötig, wenn man das LiveGate-Tunneling Programm verwendet.
Zum Schluss wird noch die Multicast-Gruppen-Adresse und den Port angegeben.
In geschweiften Klammern wird noch angegeben, wie der TTL-Wert der gesendeten UDP-Pakete gesetzt werden soll.
Nun können wir den liveCaster starten: ./lc -d ./SELF.txt &
6.1.2 SHOUTcast DNAS-Server (Unicast Server)
Wie wir bereits weiter oben beschrieben haben, brauchen wir den SHOUTcast
DNAS-Sever nur, um die vom oddcast DSP encodierten Streams dem liveCasterSever als http-Streams zu übergeben.
Die Installation des SHOUTcast DNAS-Servers gestaltet sich sehr einfach.
Nachdem man von http://www.shoutcast.com/download/ die aktuellste Version
des Servers in ein beliebiges Verzeichnis heruntergeladen und entpackt hat,
muss man noch die Zugriffsberechtigungen für das vom Entpacker erstellte Verzeichnis (/sc_serv) auf 755 ändern (chmod 755 sc_serv).
Doku PA2_Sna06.sdw
Seite 41
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Bevor der SHOUTcast-Server gestartet werden kann, sind noch einige Änderungen im Konfigurationsfile sc_serv.conf empfehlenswert. Dieses File befindet
sich im Root-Verzeichnis des SHOUTcast-Servers und kann einfach mit einem
Editor bearbeitet werden.
Der SHOUTcast-Server verfügt über ein Web-Interface, welches mittels http://ipnummer-des-servers:8000 aufgerufen werden kann.
Administrationsbilschirm (Server Status und Listener)
Administrationsbilschirm (Auszug des Logfiles)
Doku PA2_Sna06.sdw
Seite 42
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Auf eine ausführliche Beschreibung des Web-Interfaces wird hier verzichtet. In
diesem Web-Interface kann man einzelne Zuhörer vom Server rauswerfen, sperren und die Logfiles des Servers betrachten. Damit das nicht jedermann kann,
muss unbedingt im Konfigurationsfile das Administratorenpasswort geändert
werden (Passwort=ihr_passwort). Da wir den SHOUTcast-Server nur als Relay-Station missbrauchen, wollen wir nicht, dass Zuhörer sich per Unicast auf
den Server konnektieren können. Aus diesem Grund ist der Wert für die maximale Zuhöreranzahl auf 1 zu setzten (MaxUser=1). Da wir auch nicht wollen,
dass im ungünstigsten Fall irgend jemand den SHOUTcast-Server mit einem
falschen Stream speisen kann, setzten wir den Parameter SrcIP auf die IPAdresse, von welcher aus der Livestream kommt (z.B. SrcIP=160.85.131.61).
Als letzte Sicherheit setzen wir noch den DestIP-Wert auf 127.0.0.1 (sofern der
SHOUTcast- und liveCaster-Server auf der gleichen Maschine laufen).
Wenn alle diese Einstellungen gemacht sind, kann der SHOUTcast-Server mittels Shell Eingabe ./sc_serv gestartet werden.
6.1.3 Winamp Plug-In oddcast DSP
Das Winamp Plug-In oddcast DSP lässt sich unter Windows bequem mittels Installer installieren. Es kann von http://www.oddsock.org/tools/dsp_oddcast/ herungergeladen werden.
Nach erfolgreicher Installation findet man das Plug-In in den Winamp Preferences unter dem Punkt „Plug-Ins“ „DSP/Effect“.
Das oddcast DSP-Plugin findet man unter dem Punkt DSP/Effect
Drückt man den 'Configure' Button, erscheint das GUI des Plug-Ins. Bevor man
zum Server konnektieren kann, sind noch zwingend einige Einstellungen notwendig.
Doku PA2_Sna06.sdw
Seite 43
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Folgende Informationen müssen eingegeben werden:
?
?
?
?
?
LAME Options: Use LAME
Server Location: Shoutcast
Server (def localhost): IP-Adresse von dem Rechner, auf welchem SHOUTcast
DNAS läuft
Port: 8000 (hängt von der SHOUTcast Konfiguration ab)
Password: Passwort des SHOUTcast-Servers
Servereinstellungen
Die Streaming-Einstellungen können, je nach vorhandener Bandbreite und gewünschter Übertragungsqualität, individuell eingestellt werden.
Es ist zu beachten, dass keine Einstellungen verändert werden können, solange
eine Verbindung zum SHOUTcast Server besteht.
Streaming-Einstellungen
Doku PA2_Sna06.sdw
Seite 44
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Verbindung hergestellt, der Stream wird gesendet
6.1.4 Winamp Line-In Plug-In
Das Line-In Plug-In wird nur bei Verwendung von oddcast DSP benötigt. Das
SHOUTcast Plug-In enthält bereits ein Line-In Plug-In.
Die Installation ist wirklich sehr einfach:
Auf http://home.hccnet.nl/th.v.d.gronde/dev/lineinWA2/index.html die neuste
Version downloaden (bei uns war das noch v.1.42) und die ausführbare Datei
starten. Ein OK-Mausklick reicht und mehr ist nicht zu tun!
Wenn man jetzt z.B. den Tuner oder ein CD-Player an den Line-In Eingang des
PCs angeschlossen hat, so sollte man sich zuerst vergewissern, dass das Audiosignal auch korrekt auf dem lokalen PC angehört werden kann. Ist das der Fall,
so kann man Winamp starten und mit CTRL+L das Location Fenster öffnen.
Dort kann man eine Art URL eingeben: line://mute. Der Befehl 'mute' ist nur
eine von vielen möglichen Konfigurations-Optionen. Welche Möglichkeiten man
hat, kann man mittels CTRL+P -> Input -> Line-In plugin -> Configure lesen.
Mit line:// wird das Line-In Plug-In angesprochen und mit dem Befehl mute
wird das Audiosignal zwar übermittelt, aber am lokalen PC nicht ausgegeben.
Dann kann man auch getrost im Windows Sound-Mixer den Line-In Eingangspegel auf Null reduzieren.
Bei unserem Multicast-Streaming-System hat sich die folgende Reihenfolge für
das Streaming bewährt (SHOUTcast-Server läuft schon):
1. oddcast DSP: Auf CONNECT-Button klicken
2. Line-In Plug-In starten: CTRL+L line://mute
3. liveCaster starten: ./lc -d ./SELF.txt &
6.1.5 Webpage mit 'tune-in' Angebot (Beispiel Apache)
Damit man Multicast-MP3-Streams empfangen kann, muss man neben einem
geeigneten Player auch eine spezielle Art von Link bieten. Wenn man nämlich
einen üblichen Link via HTML-Tag <a href="rtp://239.14.136.73:59106">...</a>
erstellt, weiss der Browser damit nichts anzufangen. Man muss also entweder
ein spezielles Multicast Directory Tool (SDR) installieren, oder die Webpage speziell gestalten. Wir wollen hier den zweiten Weg beschreiten.
Als erstes muss dem Webserver mitgeteilt werden, dass .pls-Dateien einem gewissen Mime-Type zugeordnet werden (audio/mpegurl). Dies ist für den meistDoku PA2_Sna06.sdw
Seite 45
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
verbreitetsten Webserver Apache im Kapitel 2.3 beschrieben.
Nun zur Webpage an sich. Das Vorgehen ist an sich recht einfach. Im HTMLLink gibt man eine Datei an (diese hat die Dateiendung .pls) und somit überträgt
der Webserver im Header den vorher eingerichteten Mime-Type. Hat man Winamp installiert, so funktioniert das ohne Probleme, da dieser pls-Dateien mit
sich selbst assoziiert. Benutzt man andere Player, muss man vielleicht die Dateiendung .m3u benutzen.
In der Datei, die vom Link referenziert wird, soll folgender Text enthalten sein:
[playlist]
numberofentries=1
File1=rtp://239.14.136.3:59106
Dem MP3-Player wird nun als Source den rtp:// - Link übergeben.
Nun den Dateien noch Zugriffsrechte geben: chmod 755, das wärs auch schon.
Für jede Multicast-Gruppe muss man einen Link dieser Art erstellen. Als Beispiel folgt die RADIO-ZHW Page als Source und mit Bild.
Sourcecode:
<!-- Startseite RADIO-ZHW v.1.01 -->
<html>
<head>
<title>ZHW Radio</title>
</head>
<body background="./bild.gif">
<h1><B><img src="./zhw.gif" border=0 align=top></B></h1><BR><BR>
<P><FONT face="Arial, Helvetica"><B><H2>Projektarbeit Sna06: Proxy-Server für Audio-LiveStreams</H2></B></FONT></P>
<BR><BR>
<blockquote>
<table border=0 width=100%>
<tr>
<td align=left valign=middle>
<a href="live_radio.pls"><img src="tunein.gif" border=0 align=top></a> Live Radio
Stream (momentan DRS3)
</td></tr>
<tr>
<td align=left valign=middle>
<a href="hothitradio.pls"><img src="tunein.gif" border=0 align=top></a> Hot Hit Radio
on Multicast
</td></tr>
<tr>
<td align=left valign=middle>
<a href="wolf_fm.pls"><img src="tunein.gif" border=0 align=top></a> WOLF FM on
Multicast
</td></tr>
<tr>
<td align=left valign=middle>
<a href="jazz.pls"><img src="tunein.gif" border=0 align=top></a> Jazz on Multicast
</td></tr>
</table>
</blockquote>
<BR><BR><BR>
<I>Winamp</I> Users: download this Plugin to enable Winamp to receive multicast streams [<a
href="in_rtp.dll">in_rtp.dll</a>]
<BR>...otherwise use <I>Freeamp</I>, which can play RTP-multicast-streams without any
plugins.
<BR><BR><BR>
<I><a href="mailto:fontajos@zhwin.ch">For further information</a></I>
</body>
</html>
Doku PA2_Sna06.sdw
Seite 46
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Screenshot:
RADIO ZHW Einwahlseite
6.2 Empfänger
Damit mit unserem Multicast-Streaming-System auch Musik empfangen werden
kann, muss auf den PCs der Zuhörer ein MP3-Player installiert werden, welcher
RTP Multicast Streams empfangen kann. Freeamp (www.freeamp.org) kann das
in der Version v.2.1 schon von Haus aus. Der von den meisten Leuten eingesetzte
Winamp benötigt noch ein Plug-In, welches man hier findet:
http://www.live.com/multikit/windows/in_rtp.dll
Nach dem download muss diese Datei in das Plugins-Verzeichnis von Winamp
kopiert werden. Meistens wäre das: C:\Programme\Winamp\Plugins.
Danach kann man sich via Weblinks (siehe Kapitel 6.1.5) direkt in den Stream
einklinken.
Doku PA2_Sna06.sdw
Seite 47
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
7. Literaturverzeichnis
7.1 Buch
Titel
Bemerkungen
MBONE Aufbau und Einsatz von
IP-Multicast-Netzen
Holger Fahner, Peter Feil, Tanja Zseby
dpunkt-Verlag, D-69115 Heidelberg
1. Auflage, 2001
298 Seiten
ISBN 3-920993-99-3
Ein sehr gutes Buch. Beschreibt ausführlich IP-Multicast und die Anbindung eines Netzwerks an den MBone.
Das Buch ist sehr aktuell und leicht
verständlich.
7.2 Internet
Link
Beschreibung
Multicasting
http://www.microsoft.com/ntserver/mediaserv/tec Multicast-Streaming – An Introduction
hdetails/overview/multiwp.asp
http://www.switch.ch/lan/ipmcast/
Multicast LAN-Anbindung
http://www.multicasttech.com/multicast_faq.html Multicast FAQ
http://hill.lut.ac.uk/DS-Archive/MTP.html
Multicast Transport Protokolle
ftp://sunsite.cnlab-switch.ch/mirror/mbone/
Grosses FTP-Archiv mit Multicast / MBone
Programmen
http://www.linuxdoc.org/HOWTO/MulticastHOWTO.html
Multicast over TCP/IP HowTo
http://www.sims.berkeley.edu/~zhounan/proj
RTP/RTSP
http://www.mbone.or.kr/rtmw/
RTMW RTP(RSVP) Plug-In & Applet
(RTMW = Real-Time Multimedia Web)
http://pec.etri.re.kr/~mkshin/www7/186.html
The RTMW Application
MBone
http://www.arl.hpc.mil/PET/training/slides/MBon MBone Tutorial und Geschichte
e/index.htm
http://www.savetz.com/mbone/
Ältere MBone Beschreibung (noch als reines
DVMRP-Netz)
http://www.caida.org/tools/measurement/mantra/ Mantra - MBone Topologie
http://www-graphics.stanford.edu/papers/mbone/
MBone Visualisierung (auch in VRML)
http://aohakobe.ipc.chiba-u.ac.jp/misc/JPMBone/MBone-World-en.html
MBone Information Pages
http://wwwmice.cs.ucl.ac.uk/multimedia/software
MBone Applikationen (SDR, RAT, VAT,...)
http://www.ietf.org/ids.by.wg/mboned.html
MBone Entwicklung (IETF)
Doku PA2_Sna06.sdw
Seite 48
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
Link
Beschreibung
http://bzvd.urz.tu-dresden.de/mbone/sessions/
MBone Tools aus dem Browser starten
http://bzvd.urz.tudresden.de/mbone/sessions/qt4.html
MBone Audio/Video mit Quicktime anzeigen
http://www.cdt.luth.se/~peppar/progs/mSD/
mSD ein SAP/SDP Parser (SDP->HTML)
http://majordomo.belnet.be/wilma/mbonebe/199904/msg00023.htm
SDR-Plugins (MP3 onMBone)
http://imj.ucsb.edu/sdr-monitor/global/
SDR Global Session Monitoring Effort ('Was
läuft denn momentan so auf dem MBone...')
Streaming Server / -Proxys
http://www.live.com/
LiveCaster (Hier findet man auch zu
Multicast / MBone viele Informationen)
http://www.shoutcast.com/support/docs/
SHOUTCast
http://www.icecast.org/
ICECast
http://obs.freeamp.org/index.html?mode=features Obsequieum
http://www.microsoft.com/NetShow/Download/en/ Microsoft Netshow
release.htm
http://www.realnetworks.com/products/servers/pr Real Networks
oxy/index.html
http://www.ispplanet.com/equipment/teraedge1.html
Tera Edge 1
http://www.cdt.luth.se/~rolle/mIR/
mIR (Multicast Internet Radio)
http://www.sowerbutts.com/audio.html
Zusammengestrickte Freeware Lösung
Weiteres
http://www.oddsock.org/tools/dsp_oddcast/
oddcast SHOUTcast / icecast MP3-Encoder
http://www.dailymp3.com/encoders.html
MP3 Encoder und Decoder
http://home.hccnet.nl/th.v.d.gronde/
Winamp Line-In Plug-In
http://private.essex.ac.uk/~djmrob/mp3decoders/d ACM Codecs
ecoders_acm.htm
http://www.isi.edu/~eddy/pim/pim.html
PIM Implementation für ein UNIX Tool
Linksammlungen
http://www.switch.ch/lan/ipmcast/references.html Enorm ausführliche Linksammlung über
Multicast von der SWITCH
http://wwwcmc.pharm.uu.nl/gillies/bookmarks/m
ulticast.html
Gute Multicast Linksammlung
Multicast MP3-Player
http://www.freeamp.org
Freeamp Multicast Player für Linux und
Windows
http://www.live.com/multikit/winampplugin.html
in_rtp.dll Multicast Plugin für Winamp
(www.winamp.com)
Doku PA2_Sna06.sdw
Seite 49
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
7.3 RFCs und Internet Drafts
RFCs (http://www.ietf.org/rfc.html):
RFC 1112 IGMP Host Extensions for IP Multicasting
RFC 2236 IGMP Internet Group Management Protocol, Version 2
RFC 1075 DVMRP Distance Vector Multicast Routing Protocol
RFC 2362 PIM Protocol Independent Multicast-Sparse Mode (PIM-SM)
RFC 2283 MBGP Multiprotocol Extensions for BGP-4
RFC 2365 Administratively Scoped IP Multicast
RFC 1889 RTP A Transport Protocol for Real-Time Applications
RFC 2250 RTP Payload Format for MPEG1/MPEG2 Video
RFC 2326 RTSP: Real-Time Streaming Protocol
RFC 2373 IP Version 6 Addressing Architecture
RFC 2526 Reserved IPv6 Subnet Anycast Addresses
RFC 2710 Multicast Listener Discovery (MLD) for IPv6
RFC 2205 RSVP Resource ReSerVation Protocol Version 1 Functional Descr.
RFC 2212 Specification of Guaranteed Quality of Service
RFC 2211 Specification of the Controlled-Load Network Element Service
RFC 2327 SDP Session Description Protocol
RFC SIP Session Initiation Protocol
RFC 2848 Extensions to SIP and SDP for IP Access to Telephone Call Services
Internet Drafts (http://www.ietf.org/internet-drafts/name.txt):
draft-ietf-idmr-dvmrp-v3-09
DVMRP Verbesserung von 1999
draft-ietf-msdp-spec-10.txt
Multicast Source Discovery Protocol (MSDP)
draft-ietf-bgmp-spec-02.txt
Border Gateway Multicast Protocol (BGMP)
draft-ietf-mboned-intro- multicast- 03.txt
Introduction to IP-Multicasting
draft-ietf-mmusic-sdp-directory-type-02.txt Describing session directories in SDP
Eigentlich kein Internet Draft, aber doch erwähnenswerte Protokolle:
http://www.live.com/rtp-mp3/rtp-mp3.txt
A More Loss-Tolerant RTP Payload
Format for MP3 Audio
http://www.live.com/umtp.txt
The UDP Multicast Tunneling Protocol
Doku PA2_Sna06.sdw
Seite 50
© 2001 R. Glanzmann & J. Fontanil
6. Juli 2001
8. Software Versionen
8.1 Auf dem Server / Proxy eingesetzte Software
SuSE Linux 7.1 Professional
(http://www.suse.de)
Apache 1.3.14
(http://www.apache.org)
LiveCaster 1.0a83 (nicht lizensierte Version, gültig bis 20.7.2001)
(http://www.live.com)
SHOUTcast DNAS-Server 1.8.0
(http://www.shoutcast.com)
8.2 Auf dem Client eingesetzte Software
Windows2000 Professional (SP1)
(http://www.microsoft.ch)
Winamp 2.72 / 2.75
(http://www.winamp.com)
oddcast DSP Beta 14 Winamp Plug-In (inkl. LAME MP3-Encoder)
(http://www.oddsock.org/tools/dsp_oddcast/)
Line-In Plug-In for Winamp 2.x
(http://home.hccnet.nl/th.v.d.gronde/)
Freeamp v.2.1 (funktioniert auch auf Linux)
(http://www.freeamp.org)
Session Directory Tool v.3.0 (SDR)
(http://www-mice.cs.ucl.ac.uk/multimedia/software/sdr/)
Doku PA2_Sna06.sdw
Seite 51
© 2001 R. Glanzmann & J. Fontanil