-
Die
Erfindung betrifft ein Verfahren zur unterbrechungsfreien Datenübertragung,
insbesondere von Videostreams, von mindestens einem Serverrechner
zu einem Clientrechner.
-
Bekannte
Audio-Server, wie iTunes, oder Video-Server, wie You-Tube, bieten
die Möglichkeit
die Audio- bzw. Video-Dateien
weltweit und zur jeder Tages- und Nachtzeit herunterzuladen und
anzuhören bzw.
anzusehen. Allerdings benötigen
die Benutzer ein entsprechendes Abspielprogramm, dass heruntergeladen,
installiert und konfiguriert werden muss. Auch, wenn das Abspielprogramm
bereits auf dem Rechner des Nutzers installiert ist, wird die Audio/Video-Datei
erst vollständig
heruntergeladen. Damit sind live-Übertragung in Echtzeit gar
nicht möglich.
-
Darüber hinaus
ist es ein Ziel solcher Video-Server möglichst viele Nutzer zu erreichen.
Wird die Nutzerkapazität
eines Video-Servers erreicht, muss der Betreiber entsprechend einen
weiteren Video-Server aufstellen, installieren und finanzieren, um
weiterhin für
die Nutzer attraktiv zu bleiben.
-
Bei
einem explosionsartigen Zugriff auf eine bestimmte Videodatei, beispielsweise
das neueste Musikvideo von Coldplay, informieren die Nutzer andere
Interessierte über
das Vorhandensein eines solchen Videos, worauf in kürzester
Zeit große
Zugriffe vom Server verkraftet werden müssen. Dies bezeichnet man als
einen ungewollten denial of service attack. Als Denial of Service
(DoS, zu Deutsch etwa: Dienstverweigerung) bezeichnet man einen
Angriff auf einen Host (Server) oder sonstigen Rechner in einem
Datennetz mit dem Ziel, einen oder mehrere seiner Dienste arbeitsunfähig zu machen.
Dies geschieht eben durch Überlastung.
-
Mit
bekannten Client/Server Streaming System besteht lediglich die Möglichkeit
ausreichend Server aufzustellen, um einem solchen Ansturm gewachsen
zu sein, d h. das System muss derart ausgelegt sein, dass dieses
auch einem größtmöglichen Zugriff
ausreichend dimensioniert ist. Allerdings ist dies mit sehr hohen
Kosten verbunden. Bei minimalem Zugriff liegen die ungenutzten Ressourcen
des Netzwerks brach.
-
Der
Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zur vorzustellen,
dass live-Übertragungen
in Echtzeit ermöglicht
und kostengünstig
ist.
-
Die
Aufgabe wird durch die Merkmals des unabhängigen Anspruch 1 gelöst.
-
Die
Erfindung betrifft ein Verfahren zur unterbrechungsfreien Datenübertragung
von mindestens einem ersten Serverrechner mit einem Dienst zu mindestens
einem ersten Clientrechner. Als erstes versendet der erste Clientrechner
eine Anfrage für
den Dienst an den ersten Serverrechner. Der Serverrechner überträgt die Netzwerkadresse
eines entsprechenden Rechners an den ersten Clientrechner. Nach
Erhalt der Netzwerkadresse wird der Clientrechner mit dem entsprechenden
Rechner derart verbunden, dass der entsprechende Rechner ein Vaterknoten
des ersten Clientrechners ist. Der erste Serverrechner kann dabei
die Netzwerkstruktur verwalten und pflegen, d h die Anbindung des
ersten Clientrechners an den entsprechenden Rechner kann im ersten
Serverrechner hinterlegt werden. Die Anfrage des ersten Clientrechners
wird vom ersten Serverrechner an den entsprechenden Rechner weitergeleitet.
Als nächstes
folgt die Übertragung
eines Anwendungsprogramms, wie beispielsweise ein plug-in für einen
Browser oder ein Java-applet, vom entsprechenden Rechner an den
ersten Clientrechner, wobei das Anwendungsprogramm die Nutzung des
Dienstes ermöglicht.
Die Übertragung
des Anwendungsprogramms kann automatisch erfolgen, wobei es dann
möglich
ist dieses Programm nach erfolgten Übertragung auch automatisch
zu starten.
-
Die
Idee der Erfindung basiert darauf, dass Heimnetzwerk mittlerweile
hohe Datenbandbreiten von bis 16 Mbit download und bis zu 4 Mbit
upload aufweist. Zukünftig
sind sogar höhere
Datenbandbreiten zu erwarten. Sogenannte Flaterates sind Pauschalzahlungen
für die
Nutzung des Internetzuganges, wobei die Verbindungskosten unabhängig von
der Anschlussdauer an das Internet bzw. von der übertragenen Datenmenge ist.
Mit der vorliegenden Erfindung kann damit eine Echtzeit Audio/Video-Datenübertragung
von Client zu Client realisiert werden, in dem die dezentralen Rechner
der Nutzer und deren Internetbandbreiten ausgenutzt werden. Allein der
Serverrechner verwaltet und überwacht
die Netzwerkstruktur eines solchen Peer-to-Peer Streamings. Entsprechend
reagiert der Serverrechner bei beispielweise natürlichen Ausfällen. Der
Erfindung zugrundeliegende Baumstruktur wächst entsprechend bei Bedarf
und bindet damit umso mehr private Rechner in die Baumstruktur mit
ein je höher
der Zugriff auf die Dienste; insbesondere Videos, sind. Somit ist
lediglich ein Server nötig,
der die entsprechenden Dienste samt Anwendungsprogramme aufweist,
um auch einem explosionsartigen Zugriff auf bestimmte Daten zu ermöglichen.
Außerdem
muss keine große statische
Netzwerkstruktur gepflegt und gewartet werden.
-
Weitere
vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen wiedergegeben.
-
Eine
vorteilhafte Ausgestaltungen der Erfindungen ist es, die Videodatenströme mittels
Real Time Streaming Protocol zu übertragen.
-
Das
Real Time Streaming Protocol (RTSP) ist ein Netzwerkprotokoll zur
Steuerung der kontinuierlichen und meist unterbrechungsfreie Übertragung von
audiovisuellen Daten (Streams) oder Software über IP-basierte Netzwerke.
Eine vorteilhafte Ausgestaltungen der Erfindungen ist es, als Anwendungsprogramm
ein signiertes Java-applet zu verwenden.
-
Diese
Java-applets sind klein, können schnell
geladen werden und führen
sich automatisch nach dem Herunterladen aus. Ähnliche Anwendungsprogramme
sind DHTML, Microsoft® Silverlight und Flash-Player.
-
Eine
vorteilhafte Ausgestaltungen der Erfindungen ist es, den Datenstrom
des Dienstes derart auf dem ersten Clientrechner zu buffern, dass
der Dienst bei Unterbrechung des Datenstroms für eine bestimmte Zeit weiterbenutzbar
ist.
-
Dies
hat den Vorteil, dass beispielsweise 30 s lange Videosequenzen im
Buffer vorrätig
liegen, damit der Server die Umstrukturierung des Netzwerkbaumes
organisieren kann und bis zur erneuten Verbindung zwischen einem
Vater und dem Kindknoten das Video unterbrechungsfrei läuft. Nach
erneuter Verbindung zwischen Vater und Kind kann der Buffer entsprechend
aufgefüllt
werden, da die Datenübertragungsrate
höher ist
als die für
das Videosignal benötigte
Datenrate.
-
Eine
vorteilhafte Ausgestaltungen der Erfindungen ist es, den ersten
Clientrechner in Abhängigkeit
von bestimmten Parametern als Vaterknoten in der Baumstruktur zur
Verfügung
zu stellen.
-
Dies
bieten den Vorteil, dass die Baumstruktur dynamisch beispielsweise
an den Folgen hoher Lastaufkommens wachsen kann. Dabei kann ein zweiter
Client dieselbe Datei – dasselbe
Video – herunterladen
wollen und startet deshalb die Anfrage beim Serverrechner. Dieser
erkennt, dass der erste Client die Videodatei lokal dort vorliegen
hat und überträgt dementsprechend
dem zweiten Client die Netzwerkadresse des ersten Clients, so dass
der erste Client gegenüber
dem zweiten Client als Server fungiert. Der zweite Client wird in
der Baumstruktur als Ast bzw. als Kind von dem ersten Client eingegliedert.
Nachdem das Anwendungsprogramm ebenfalls lokal auf der Festplatte
des ersten Clientrechners liegt, kann bei einer Bindung eines anderen
Rechners an den ersten Clientrechner dieser andere Rechner nicht
nur die Videodatenströme
vom ersten Clientrechner erhalten sondern auch das Anwendungsprogramm.
-
Heutzutage
findet man in fast allen Haushalten, die über einen modernen Internetanschluss
wie z. B. DSL oder Kabel verfügen,
eine kleine Box (der Router), die für die Vermittlung ins Internet
zuständig ist.
Um mehreren Rechnern gleichzeitig Zugriff aufs Internet zu ermöglichen,
kommt dabei meist Network-Address-Translation (NAT) zum Einsatz.
Dabei werden viele private Internetadressen in wenige (meist eine) öffentliche übersetzt.
Der NAT-Router unterhält
dann für
jede Verbindung einen Eintrag in einer Tabelle um eingehende Pakete
dem jeweiligen internen Rechner zuordnen zu können. Dies funktioniert problemlos,
solange Verbindungen aktiv von innerhalb des Netzwerk geöffnet werden
(z. B. das Abrufen einer Internetseite).
-
Sobald
man jedoch von ausserhalb (zweiter Client) auf einen Dienst im Heimnetzwerk – hier erster
Client – zugreifen
will, wird NAT zum Problem. Da kein interner Rechner die Verbindung
angefordert hat, weiss NAT nicht, an welchen Rechner eingehende
Pakete weitergeleitet werden sollen. Um Dienste im Heimnetzwerk
zugreifbar zu machen, muss also ein Weg gefunden werden, über den
NAT hinweg mit einem Dienst zu kommunizieren. Dieses Problem wird
als das NAT/Firewall-Traversal-Problem
bezeichnet.
-
Dieses
Problem kann beispielsweise durch Hole-Punching technique überwunden
werden. Hole punching ist eine Netzwerktechnik zum Verbindung von
zwei Teilnehmern, die an unterschiedlichen Netzstrukturen angeschlossen
sind und hinter einem Firewall angeordnet sind. Da kann der erste
und der zweite Client eine Anfrage beim Server absenden, kennt der
Server die für
diesen Vorgang zugewiesene IP-Adresse und Portnummer und übergibt
diese entsprechenden IP-Adressen und Portnumer des einen Clients
dem anderen Client. Damit kann nun der erste von sich Datenpakete
an den zweiten Client verschicken. Da der erste Client nun gültige Portnummer verwenden
kann, werden diese entsprechend von der Firewall des zweiten Clients
zugelassen, so dass eingehende Datenpakete angenommen werden.
-
Eine
vorteilhafte Ausgestaltungen der Erfindungen ist es, die Bereitschaft
als Vaterknoten zur Verfügung
zu stellen von der Laufzeit des Videoabspielprogramms, von der Netzbandbreite
des Vaterknotens, von der Last des Vaterknotens und/oder die Restlaufzeit
des zur Verfügung
gestellten Dienstes abhängig
zu machen.
-
So
wird ein eben erst eingebundener Client auf die Reservebank geschickt,
solange diese Bedingungen nicht erfüllt sind. Damit werden unnötige Umstrukturierungen
des Netzes vermieden, die auftreten, wenn ein Nutzer nur kurz ein
Video abgespielt hat und danach seinen Rechner aus der Baumstruktur
durch Abschalten entfernt. Dabei wird die Erkenntnis ausgenutzt,
dass je länger
ein Nutzer ein Video ansieht, um so wahrscheinlicher ist es, dass
dieser Nutzer online bleibt.
-
Eine
vorteilhafte Ausgestaltungen der Erfindungen ist es, bei Ausfall
eines Kindsknoten mit n angeschlossenen Kinderkindsknoten der erste
Serverrechner die Baumstruktur derart umgestaltet wird, dass ein
geeigneter Kinderkindsknoten ausgewählt wird. Dieser ausgewählte Kinderkindsknoten
der neue Kindsknoten von den restlichen Kinderkindsknoten wird und
dieser neue Kinderknoten an einem Vaterknoten angeschlossen wird,
wobei n ∊ N = {1, 2,..., nmax}
gilt und nmax die maximale zulässige Anzahl von
Kinderknoten an einem Vaterknoten ist.
-
Der
zweite Clientrechner verträgt
beispielsweise nur 10 weitere Clients, die mit diesem zweiten Clientrechner
verbunden sind, ohne das der Dienst – das Zeigen von Videos – Qualitätseinbussen
aufweist. nmax ist bei jedem Clientrechner
unterschiedlich, da diese Zahl unter anderem von der Rechnerleistung,
Festplattenkapazität
und/oder Datenbandbreite abhängt.
Als Vaterknoten kann auch der erste Serverrechner sein. Es ist denkbar
einen zweiten (oder auch einen dritten etc) Serverrechner zur Verfügung zustellen,
der dieselben Funktionen aufweist, wie der erste Serverrechner.
Damit könnten
diese Serverrechner an unterschiedlichen Plätzen auf der Welt aufgestellt
werden und könnte
damit Laufzeitunterschiede, die bei Datenübertragungen von Australien
nach Deutschland zwangsläufig
auftreten, in Grenzen zu halten.
-
Die
Erfindung wird mittels eines Ausführungsbeispiels anhand der
schematischen Zeichnung näher
erläutert.
Da zeigt die
-
Figur
eine Baumstruktur eines Peer-to-Peer-Streaming-Systems.
-
Die
Figur zeigt eine Baumstruktur eines Peer-to-Peer-Streaming-Systems. In der oberen Hälfte von
der Figur ist ein erster Serverrechner 10 mit einem Java-applet 11 und/oder
einem Browser-Plugin 12. An den Server 10 ist
ein erster Client 1.1 eingebunden. Dieser erste Client 1.1 ist
der Kindknoten zum Server 10. An diesem Server 10 sind
insgesamt m Kindknoten 1.1–1.m eingebunden (der Einfachheit
halber sind nur drei Rechner dargestellt).
-
Bei
der aller ersten Anfrage an den Server 10 sind überhaupt
keine Rechner eingebunden, so dass der Server 10 bei einer
Anfrage vom Rechner 1.1 dessen url-(Netzwerkadresse) erhält.
-
Trifft
erneut eine Anfrage vom Rechner 2.n auf den Server 10,
so kann der Server 10 beispielsweise die url des Rechners 1.1 übergeben.
Damit halbieren sich die Datenübertragung
des Servers 10 bereits um die Hälfte, wobei lediglich ein Baum
mit einer Tiefe von 1 verwendet wurde. Die Tiefe kann beliebig groß sein.
-
Werden
allerdings die Anfragen an den Server 10 zuerst direkt
von diesem erfüllt,
kann der Server schnell an seine Leistungsgrenzen gelangen. Der Server 10 erkennt
nachdem die Rechner 1.1 bis 1.m eingebunden sind,
dass er seine Leistungsgrenzen erreicht hat.
-
So
startet beispielsweise der Rechner 2.1 eine Anfrage zum
Ansehen eines Coldplay-Videos. Dieses Coldplay-Video läuft bereits
auf dem Rechner 1.1. Das Video liegt bereits lokal auf
der Festplatte des Rechners 1.1. Der Server übergibt
dem Rechner 2.1 die Internetadresse vom Rechner 1.1.
und bindet diesen Rechner 2.1 (zweiter Client) als Kindknoten an
den Rechner 1.1 (erste Client). Dabei speichert der Server
die Quelle des Datenstroms (Vaterknoten) und die Bandbreite des
Clients ab.
-
Der
Rechner 1.1 hat nun zwei Rollen. Einerseits ist er erster
Client und bezieht seine Daten direkt vom Server 10 und
andererseits ist dieser Rechner 1.1 Server für den Rechner 2.1.
-
Treffen
weitere Anfragen für
das Coldplay-Video ein, so werden diese Rechner 2.n entsprechend dem
Rechner 2.1 an den Rechner 1.1 angebunden und
von diesem bedient.
-
Mittlerweile
ist das Coldplay-Video auf dem Rechner 1.1 abgelaufen und
der Nutzer schaltet sein Gerät
ab, so dass dieses Gerät
nicht mehr für
die Datenübertragung
zur Verfügung
steht.
-
Durch
beispielsweise regelmäßiges verschicken
(alle 10 Sekunden) eines hart beat messages vom ersten Server an
die aktiven Server – wie
der Rechner 1.1., erkennt der erste Server 10 das
Rechner 1.1 nicht mehr zur Verfügung steht. Da die Videosignal
auf den Kindknoten vom Rechner 1.1 lokal gebuffert waren
(bspw 30 Sekunden Videosequenz), merken die Nutzer der Rechner 2.1 bis 2.n nicht
den Ausfall des Rechners 1.1.
-
Da
der erste Server die Baumstruktur aktuell hält, kennt dieser einen potentiellen
Server – wie. Rechner 2.1.
Dieser Rechner 2.1 wird beispielsweise in der Baumstruktur
um eine Tiefe höher
gestellt und nimmt dabei den Platz von Rechner 1.1 ein,
d h der erste Server 10 ist nun Vaterknoten von Rechner 2.1. Die
restlichen Rechner 2.2 bis 2.n werden direkt an den
Rechner 2.1 als Kinderknoten angebunden, wie dies in der
unter Hälfte
der Figur andeutungsweise abgebildet ist. Die Umstrukturierung ist
schneller als die im Buffer abgelegte Videosequenz.
-
Da
der erste Server 10 (P2P Verwaltungsserver) den aktuellen
Zustand der Baumstruktur kennt, kann der erste Server 10 die
Benutzung der Bandbreite überwachen
oder sogar vorausberechnen was an zukünftige Bandbreiten benötigt werden.
Dementsprechend kann der Baum umstrukturiert werden, um die Last
gleichmäßig zu verteilen
oder zukünftig
zu erwartende Lasten abzufangen.