DE102008028591A1 - Method for uninterruptible video stream communication from server computer to client computer, involves executing application program transmitted from computer to client computer, and utilizing offered service by client computer - Google Patents

Method for uninterruptible video stream communication from server computer to client computer, involves executing application program transmitted from computer to client computer, and utilizing offered service by client computer Download PDF

Info

Publication number
DE102008028591A1
DE102008028591A1 DE200810028591 DE102008028591A DE102008028591A1 DE 102008028591 A1 DE102008028591 A1 DE 102008028591A1 DE 200810028591 DE200810028591 DE 200810028591 DE 102008028591 A DE102008028591 A DE 102008028591A DE 102008028591 A1 DE102008028591 A1 DE 102008028591A1
Authority
DE
Germany
Prior art keywords
computer
client computer
server
client
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE200810028591
Other languages
German (de)
Inventor
Sebastian Dippl
Steffen Rusitschka
Sebnem ÖZTUNALI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE200810028591 priority Critical patent/DE102008028591A1/en
Publication of DE102008028591A1 publication Critical patent/DE102008028591A1/en
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The method involves transmitting a network address of a corresponding computer (2.1) from a server computer (10) to a client computer (1.1). The client computer is connected to the computer so that the computer is a father node of the client computer. A request is forwarded from the server computer to the computer. An application program (11) e.g. Java(RTM: object-oriented programming language) applet, enabling use of a service is transmitted from the computer to the client computer. The program is executed, and the offered service is used by the client computer.

Description

Die Erfindung betrifft ein Verfahren zur unterbrechungsfreien Datenübertragung, insbesondere von Videostreams, von mindestens einem Serverrechner zu einem Clientrechner.The The invention relates to a method for uninterrupted data transmission, in particular of video streams, of at least one server computer to a client machine.

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.Known Audio servers, such as iTunes, or video servers, like You-Tube the possibility the audio or video files worldwide and at any time of day and night to download and to listen or to watch. However, need the users have a corresponding player that downloaded that must be installed and configured. Also, if the player already installed on the computer of the user is the audio / video file only completely downloaded. This means live transmission in real time not possible.

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.Furthermore It is a goal of such video servers to reach as many users as possible. Will the user capacity reached a video server, the operator must be a set up, install and finance another video server to continue for the users stay attractive.

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.at an explosive access to a specific video file, for example the latest music video from Coldplay, users inform others Interested about the presence of such a video, what in the shortest possible time Time great Requests from the server must be coped with. This is called as an unwanted denial of service attack. As a denial of service (DoS, for example German: refusal of service) one calls one Attack on a host (server) or other computer in one Data network with the aim of rendering one or more of its services unable to work. This happens just by overload.

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.With known client / server streaming system is only the possibility sufficient server set up to cope with such a rush to be, d h. the system must be designed in such a way that this also a maximum access is sufficiently dimensioned. However, this is very high Costs connected. With minimal access, the unused resources are of the network broke.

Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zur vorzustellen, dass live-Übertragungen in Echtzeit ermöglicht und kostengünstig ist.Of the The invention is based on the object of providing a method for that live broadcasts in real time and cost-effective is.

Die Aufgabe wird durch die Merkmals des unabhängigen Anspruch 1 gelöst.The The object is solved by the feature of independent claim 1.

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.The The invention relates to a method for uninterrupted data transmission from at least one first server computer with a service at least a first client computer. First, the first client computer sends a request for the service to the first server computer. The server computer transmits the network address a corresponding computer to the first client computer. To Receiving the network address will be the client machine with the appropriate Computer connected such that the corresponding computer is a parent node of the first client computer. The first server computer can do this manage and maintain the network structure, ie the connection of the first client computer to the appropriate computer can in the first Server computer to be deposited. The request of the first client computer is forwarded from the first server computer to the appropriate computer. Next follows the transfer an application program, such as a plug-in for one Browser or a Java applet, from the appropriate computer to the first client computer, wherein the application program uses the Service allows. The transfer the application program can be done automatically, and then it possible If this program is also successful after the transfer has taken place to start.

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.The Idea of the invention is based on that home network meanwhile high data bandwidths of up to 16 Mbit download and up to 4 Mbit upload has. Future are even higher Data bandwidths to be expected. So-called flaterates are lump sum payments for the Use of the Internet access, whereby the connection costs are independent of the connection duration to the Internet or the amount of data transferred. With the present invention, thus a real-time audio / video data transmission be realized from client to client, in which the decentralized computer the users and their Internet bandwidths are exploited. Alone the Server computer managed and monitored the network structure of such peer-to-peer streaming. Corresponding the server computer responds to, for example, natural failures. Of the Invention underlying tree structure grows accordingly when needed and thus binds all the more private computers into the tree structure one the higher access to the services; especially videos, are. Thus is only one server needed who has the corresponding services including application programs, to allow explosive access to certain data. Furthermore does not have to be big static Network structure maintained and maintained.

Weitere vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen wiedergegeben.Further advantageous embodiments of the invention are given in the dependent claims.

Eine vorteilhafte Ausgestaltungen der Erfindungen ist es, die Videodatenströme mittels Real Time Streaming Protocol zu übertragen.A advantageous embodiments of the invention is to use the video data streams Real Time Streaming Protocol.

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.The Real Time Streaming Protocol (RTSP) is a network protocol to Control of continuous and mostly uninterrupted transmission of audiovisual data (streams) or software over IP-based networks. An advantageous embodiment of the invention is as an application program to use a signed Java applet.

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.These Java applets are small, can be loaded quickly, and run automatically after downloading. Similar applications are DHTML, Microsoft ® Silverlight and 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.A advantageous embodiments of the invention is the data stream buffers the service so on the first client computer that the service can continue to be used for a certain period of time if the data stream is interrupted is.

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.This has the advantage that, for example, 30 s long video sequences in Buffer in stock lie to allow the server to restructure the network tree can organize and until the reconnection between one Father and the child node the video is running without interruption. To reconnection between father and child may be the buffer accordingly filled because the data transfer rate is higher as the for the video signal needed Data rate.

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.A advantageous embodiments of the invention is the first Client computer in dependence of certain parameters as parent node in the tree structure disposal to deliver.

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.This have the advantage of making the tree structure dynamic, for example to grow as a result of high load levels. It can be a second Client the same file - the same Video - download want and therefore start the inquiry with the server computer. This Detects that the first client has the video file locally there has and transfers accordingly the second client, the network address of the first client, so that the first client opposite the second client acts as a server. The second client will be in the tree structure as a branch or as a child of the first client incorporated. After the application program is also local to the disk of the first client machine can bind to another Calculator to the first client computer this other computer is not only the video streams received from the first client computer but also the application program.

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).nowadays One finds in almost all households, over a modern Internet connection such as DSL or cable, a small box (the router) used for switching to the Internet responsible is. To allow several computers simultaneous access to the Internet, In most cases, Network Address Translation (NAT) is used. Many private Internet addresses are translated into a few (usually one) public ones. The NAT router maintains then for Each connection contains an entry in a table for incoming packets to assign to the respective internal computer. This works fine, as long as connections are actively opened from within the network (eg retrieving a website).

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.As soon as but from outside (second client) on a service in the home network - here first Client - access wants, NAT becomes a problem. There no internal computer the connection NAT does not know to which computer incoming Packages should be forwarded. To services in the home network To make accessible, a way has to be found, over which NAT communication with a service. This problem will as the NAT / Firewall Traversal issue designated.

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.This Problem can be overcome for example by hole-punching technique become. Hole punching is a networking technique for connecting two participants connected to different network structures are and are located behind a firewall. There can be the first and the second client sends a request to the server knows the Server for assigns this IP address and port number and passes these corresponding IP addresses and port number of the one client the other client. Now, the first of them can be data packets to the second client. Because the first client is now using valid port number can, these are accordingly from the Firewall of the second Client approved so that incoming data packets are accepted.

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.A advantageous embodiments of the invention is the readiness available as a parent node from the running time of the video player, from the network bandwidth of the father node, of the burden of the father node and / or the remaining term of the available dependent service close.

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.So a newly-integrated client is sent to the reserve bank, as long as these conditions are not fulfilled. This will make unnecessary restructuring the network avoided, which occur when a user only briefly Video has played and then his computer from the tree structure removed by switching off. The knowledge is exploited, that the longer a user watches a video, the more likely it is that this user stays online.

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.An advantageous embodiment of the invention is, in case of failure of a child node with n children's child node connected the first server computer, the tree structure is redesigned such that a suitable child child node is selected. This selected child child node is the new child node from the remaining child child nodes and this new child node is connected to a parent node, where n ∈ N = {1, 2, ..., n max } and n max is the maximum allowable number of child nodes at one Father node is.

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.For example, the second client machine can tolerate only 10 more clients connected to that second client machine without the quality of the service - showing videos - degrading. n max is different for each client computer, as this number depends among other things on the computer performance, hard disk capacity and / or data bandwidth. The father node can also be the first server computer. It is conceivable to provide a second (or even a third, etc.) server computer, which has the same functions as the first server computer. This would allow these server computers to be deployed at different locations around the world and thus limit the time differences that inevitably occur in data transfers from Australia to Germany.

Die Erfindung wird mittels eines Ausführungsbeispiels anhand der schematischen Zeichnung näher erläutert. Da zeigt dieThe Invention is by means of an embodiment with reference to the schematic drawing closer explained. There shows the

Figur eine Baumstruktur eines Peer-to-Peer-Streaming-Systems.figure a tree structure of a peer-to-peer streaming system.

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.11.m eingebunden (der Einfachheit halber sind nur drei Rechner dargestellt).The figure shows a tree structure of a peer-to-peer streaming system. In the upper half of the figure is a first server computer 10 with a java applet 11 and / or a browser plugin 12 , To the server 10 is a first client 1.1 involved. This first client 1.1 is the child node to the server 10 , On this server 10 are a total of m child nodes 1.1 - 1.m integrated (for simplicity, only three computers are shown).

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.At the very first request to the server 10 No computers are involved at all, so the server 10 at a request from the computer 1.1 whose url (network address) receives.

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.Again, a request from the computer 2.n on the server 10 so can the server 10 for example, the url of the calculator 1.1 to hand over. This halves the data transmission of the server 10 already half, using only one tree with a depth of one. The depth can be any size.

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.However, the requests to the server 10 first met directly by this, the server can quickly reach its performance limits. The server 10 recognizes after the calculator 1.1 to 1.m are involved, that he has reached his performance limits.

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.For example, the calculator starts 2.1 a request to watch a Coldplay video. This coldplay video is already running on the computer 1.1 , The video is already locally on the hard disk of the computer 1.1 , The server hands over the computer 2.1 the internet address of the computer 1.1 , and bind this calculator 2.1 (second client) as a child node to the computer 1.1 (first client). The server stores the source of the data stream (parent node) and the bandwidth of the client.

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.The computer 1.1 now has two roles. On the one hand, he is the first client and gets his data directly from the server 10 and on the other hand is this calculator 1.1 Server for the computer 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.If there are any further inquiries for the Coldplay video, then these computers will work 2.n according to the calculator 2.1 to the computer 1.1 Tied and served by this.

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.Meanwhile, the Coldplay video is on the computer 1.1 has expired and the user switches off his device, so that this device is no longer available for data transmission.

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.For example, by sending regular (every 10 seconds) a hard beat message from the first server to the active server - like the machine 1.1 ., recognizes the first server 10 the calculator 1.1 is no longer available. Because the video signal on the child node from the calculator 1.1 locally buffered goods (eg 30 seconds video sequence), the users of the calculator remember 2.1 to 2.n not the failure of the computer 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.Since the first server keeps the tree structure up to date, it knows a potential server - like. computer 2.1 , This calculator 2.1 For example, it is set one level higher in the tree structure, taking the place of calculator 1.1 one, ie the first server 10 is now father node of calculator 2.1 , The remaining computers 2.2 to 2.n be directly to the computer 2.1 tethered as a child's knot, as shown in the lower half of the figure hinted. The restructuring is faster than the video sequence stored in the buffer.

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.Because the first server 10 (P2P management server) knows the current state of the tree structure, the first server 10 Monitor the bandwidth usage or even predict what future bandwidths will be needed. Dement speaking, the tree can be restructured to evenly distribute the load or intercept anticipated loads in the future.

Claims (11)

Verfahren zur unterbrechungsfreien Datenübertragung von mindestens einem ersten Serverrechner (10) mit einem Dienst zu mindestens einem ersten Clientrechner (1.1) mit folgenden Schritten: a.) Anfrage für den Dienst vom ersten Clientrechner (1.1) an den ersten Serverrechner (10), b.) Übertragung der Netzwerkadresse eines entsprechenden Rechners vom ersten Serverrechner (10) an den ersten Clientrechner (1.1), c.) Verbindung des ersten Clientrechners an den entsprechenden Rechner, so dass der entsprechende Rechner Vaterknoten des ersten Clientrechners ist, d.) Weiterleitung der Anfrage vom Serverrechner (10) an den entsprechenden Rechner, e.) Übertragung eines Anwendungsprogramms (11, 12) vom entsprechenden Rechner an den ersten Clientrechner (1.1), wobei das Anwendungsprogramm die Nutzung des Dienstes ermöglicht, und f.) Ausführung des Anwendungsprogramms, wobei dadurch der angebotene Dienst vom ersten Clientrechner genutzt wird.Method for uninterrupted data transmission from at least one first server computer ( 10 ) with a service to at least a first client computer ( 1.1 ) with the following steps: a.) request for the service from the first client computer ( 1.1 ) to the first server computer ( 10 ), b.) Transmission of the network address of a corresponding computer from the first server computer ( 10 ) to the first client computer ( 1.1 ), c.) connection of the first client computer to the corresponding computer, so that the corresponding computer is the parent node of the first client computer, d.) forwarding the request from the server computer ( 10 ) to the appropriate computer, e.) transmission of an application program ( 11 . 12 ) from the corresponding computer to the first client computer ( 1.1 ), wherein the application program enables the use of the service, and f.) execution of the application program, whereby the service offered by the first client computer is used. Verfahren nach Anspruch 1, wobei der Dienst das von Videodatenströmen ist.The method of claim 1, wherein the service is that of Video streams is. Verfahren nach Anspruch 2, wobei die Videodatenströme mittels real time streaming protocol (RTSP) übertragen werden.The method of claim 2, wherein the video data streams by means of real time streaming protocol (RTSP). Verfahren nach mindestens einem der vorherigen Ansprüche, wobei das Anwendungsprogramm ein signiertes Java-applet und/oder ein plug-in für ein Internetbrowser ist.Method according to at least one of the preceding claims, wherein the application program a signed Java applet and / or a plug-in for an internet browser is. Verfahren nach mindestens einem der vorherigen Ansprüche, wobei in Schritt f) der Datenstrom des Dienstes derart auf dem ersten Clientrechner (1.1) gebuffert wird, dass der Dienst bei Unterbrechung des Datenstroms für eine bestimmte Zeit weiterbenutzbar ist.Method according to at least one of the preceding claims, wherein in step f) the data stream of the service in such a way on the first client computer ( 1.1 ) is buffered that the service can be continued for a certain time when the data stream is interrupted. Verfahren nach mindestens einem der vorherigen Ansprüche, wobei in Schritt c) der erste Clientrechner (1.1) in eine Netzbaumstruktur eingebunden wird, wobei der erste Serverrechner (10) die Wurzel bildet.Method according to at least one of the preceding claims, wherein in step c) the first client computer ( 1.1 ) is integrated into a network tree structure, wherein the first server computer ( 10 ) forms the root. Verfahren nach Anspruch 6, wobei der erste Clientrechner (1.1) in Abhängigkeit von bestimmten Parametern seinerseits als Vaterknoten in der Baumstruktur zur Verfügung steht.The method of claim 6, wherein the first client computer ( 1.1 ) is in turn available as a parent node in the tree structure depending on certain parameters. Verfahren nach Anspruch 7, wobei die Parameter die Laufzeit des Anwendungsprogramms (11, 12), die Netzbandbreite des Vaterknotens, die Last des Vaterknotens und/oder die Restlaufzeit des zur Verfügung gestellten Dienstes sind.Method according to claim 7, wherein the parameters determine the runtime of the application program ( 11 . 12 ), the network bandwidth of the parent node, the load of the parent node, and / or the remaining term of the service provided. Verfahren nach mindestens einem der Ansprüche 6 oder 7, wobei ein weiterer Clientrechner (2.12.n) entsprechend den Schritten a)–f) den Datenstrom vom ersten Clientrechner (1.1) erhält und Kindsknoten vom ersten Clientrechner (1.1) ist.Method according to at least one of claims 6 or 7, wherein a further client computer ( 2.1 - 2.n ) according to the steps a) -f) the data stream from the first client computer ( 1.1 ) and child nodes from the first client computer ( 1.1 ). Verfahren nach mindestens einem der Ansprüche 6 bis 9, wobei bei Ausfall eines Kindsknoten mit n angeschlossenen Kinderkindsknoten der erste Serverrechner (10) die Baumstruktur derart umgestaltet, dass i.) ein geeigneter Kinderkindsknoten ausgewählt wird, ii.) dieser ausgewählte Kinderkindsknoten der neue Kindsknoten von den restlichen Kinderkindsknoten wird und iii.) 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.Method according to at least one of claims 6 to 9, wherein upon failure of a child node with n child child nodes connected, the first server computer ( 10 ii) that selected child child node becomes the new child node of the remaining child child nodes, and iii.) that new child node is connected to a parent node, where n ∈ N = {1 , 2, ..., n max } and n max is the maximum allowable number of children nodes at a parent node. Verfahren nach Anspruch 10, wobei der neue Kinderknoten als Vaterknoten den ersten Serverrechner (10) hat.The method of claim 10, wherein the new child node as parent node the first server computer ( 10 ) Has.
DE200810028591 2008-06-18 2008-06-18 Method for uninterruptible video stream communication from server computer to client computer, involves executing application program transmitted from computer to client computer, and utilizing offered service by client computer Ceased DE102008028591A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200810028591 DE102008028591A1 (en) 2008-06-18 2008-06-18 Method for uninterruptible video stream communication from server computer to client computer, involves executing application program transmitted from computer to client computer, and utilizing offered service by client computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200810028591 DE102008028591A1 (en) 2008-06-18 2008-06-18 Method for uninterruptible video stream communication from server computer to client computer, involves executing application program transmitted from computer to client computer, and utilizing offered service by client computer

Publications (1)

Publication Number Publication Date
DE102008028591A1 true DE102008028591A1 (en) 2010-01-07

Family

ID=41396531

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200810028591 Ceased DE102008028591A1 (en) 2008-06-18 2008-06-18 Method for uninterruptible video stream communication from server computer to client computer, involves executing application program transmitted from computer to client computer, and utilizing offered service by client computer

Country Status (1)

Country Link
DE (1) DE102008028591A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301741A (en) * 2014-09-26 2015-01-21 北京奇艺世纪科技有限公司 Data live broadcast system and method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Padmanabhan, V.N., Wang, H.J., Chou, P.A.: "Resilient Peer-to-Peer Streaming", Network Protocols, 2003. Proceedings. 11th IEEE International Conference, 4-7 Nov. 2003, S. 16-27 *
Padmanabhan, V.N., Wang, H.J., Chou, P.A.: "Resilient Peer-to-Peer Streaming", Network Protocols, 2003. Proceedings. 11th IEEE International Conference, 4-7 Nov. 2003, S. 16-27 Ryousei Takanol, Yasufumi Yoshizawa: "Offloading VoD Server Organized Dynamically Distributed Cache Using P2P Delivery", International Conference on Information Networking, 2008. ICOIN 2008, 23-25 Jan. 2008, S. 1-5
Ryousei Takanol, Yasufumi Yoshizawa: "Offloading VoD Server Organized Dynamically Distributed Cache Using P2P Delivery", International Conference on Information Networking, 2008. ICOIN 2008, 23-25 Jan. 2008, S. 1-5 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104301741A (en) * 2014-09-26 2015-01-21 北京奇艺世纪科技有限公司 Data live broadcast system and method
CN104301741B (en) * 2014-09-26 2018-06-22 北京奇艺世纪科技有限公司 A kind of data broadcast system and method

Similar Documents

Publication Publication Date Title
DE60036021T2 (en) System for distributing data within an internetwork with a two-way content agreement
DE60302051T2 (en) METHOD, NETWORK AND APPARATUS FOR CONFIGURING AND CONTROLLING NET RESOURCES IN PROVIDING CONTAINERS WITH DISTRIBUTION RULES
DE602005000779T2 (en) Communication device and method for obtaining and transmitting music sound control data over the Internet.
DE60122691T2 (en) METHOD AND DEVICE FOR DISTRIBUTING CAKES
DE60208659T2 (en) SCALABLE RESOURCE DETECTION AND RECONFIGURATION FOR DISTRIBUTED COMPUTER NETWORKS
EP1826956B1 (en) Adaptation of virtual and physical network interfaces
DE69834731T2 (en) ARRANGEMENT FOR JOINT LOADING IN COMPUTER NETWORKS
DE102006021591B3 (en) Data transfer method for e.g. Internet, involves transmitting query for destination-peer-device from one of peer-to-peer-networks to one of peer-devices in network under information of one of network addresses of another peer-device
DE102015004668B4 (en) DIVISIONAL NETWORK ADDRESS TRANSLATION
DE69917925T2 (en) CONTROL OF AN APPOINTED MEETING
EP2057832A1 (en) Method for offering a call centre service in a peer-to-peer network
EP1897340A1 (en) Device and method for address mapping
DE102008028591A1 (en) Method for uninterruptible video stream communication from server computer to client computer, involves executing application program transmitted from computer to client computer, and utilizing offered service by client computer
WO2012130263A1 (en) Method for addressing messages in a computer network
EP1525714B1 (en) Configuration of a broaband cable network-based telephony access network and a respective packet-based exchange
EP1977583A1 (en) Method for transmitting a message, network node and network
EP2681890B1 (en) Method for communication and components in a communications network
EP3585059B1 (en) Transmission of real-time data packets of programs from the internet
DE102006030591A1 (en) Method for managing communication links
EP3959850B1 (en) Method for providing connection set-up data, and arrangement having a plurality of communication servers and a mediator
DE102004058927B3 (en) Route-signaling method for bringing together signaling messages for required adaptation of resource reservations during routing changes provides information on a change in an inter-domain route
EP2016719B1 (en) Method, network agent and bandwidth broker for managing the available bandwidth for connections between terminals in a packet-oriented communication network
EP1520389B1 (en) Network comprising search functions that are integrated into communication components
WO2008003404A1 (en) Method and communication system for controlling the flow of data over network nodes
EP3507958B1 (en) Method for streaming and reproducing applications via a particular telecommunications system and use

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection