DE60306084T2 - Verfahren zur Rundsendung von Inhalten eines Peer-to-Peer Netzes - Google Patents

Verfahren zur Rundsendung von Inhalten eines Peer-to-Peer Netzes Download PDF

Info

Publication number
DE60306084T2
DE60306084T2 DE60306084T DE60306084T DE60306084T2 DE 60306084 T2 DE60306084 T2 DE 60306084T2 DE 60306084 T DE60306084 T DE 60306084T DE 60306084 T DE60306084 T DE 60306084T DE 60306084 T2 DE60306084 T2 DE 60306084T2
Authority
DE
Germany
Prior art keywords
node
file
nodes
peer
neighbor
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.)
Expired - Lifetime
Application number
DE60306084T
Other languages
English (en)
Other versions
DE60306084D1 (de
Inventor
John Vert
Eugene Menlo Park Mesgar
Eugene Zarakhovsky
Cesare John Saretto
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE60306084D1 publication Critical patent/DE60306084D1/de
Publication of DE60306084T2 publication Critical patent/DE60306084T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching 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/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • 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
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network

Description

  • Diese Erfindung bezieht sich im Allgemeinen auf Gruppenkonnektivität über ein Netzwerk und bezieht sich im Speziellen auf einen Dateitransfer in einem Peer-to-Peer-Netzwerk.
  • Während die Anzahl und Popularität von Peer-to-Peer-Netzwerken zunimmt und diese neue Anwendungen finden, werden die Nachteile der derzeitigen Peer-to-Peer-Technologie deutlicher. Die Zunahme der PC-Rechenleistung hebt diese Defizite auch hervor, wenn sie dem Mangel einer gleichzeitigen, umfangreichen Zunahme der Bandbreite, die für die Verwendung für Peer-to-Peer-Konnektivität zur Verfügung steht, gegenüber gestellt wird.
  • Zum Beispiel sind existierende Techniken und Methodiken für die Übertragung von Dateien in Peer-to-Peer-Netzwerken auch ungünstig und zusehends langsam, wobei eine schnelle Mitbenutzung von Informationen über das Netzwerk gehemmt wird. Wenn das Peer-to-Peer-System für Realtime-Gruppen-Interaktivität eingesetzt wird, kann jegliche wesentliche Verzögerung einer Dateiübertragung ein Gefühl, dass man getrennt wurde, zur Folge haben, wodurch eine angebliche Realtime-Interaktion anfängt, sich für den Benutzer mehr wie eine gezierte, weniger dynamische Interaktion anzufühlen. Deshalb ist es wichtig, Dateiübertragungen so oft als möglich zu beschleunigen.
  • Ein primärer Grund für die Langsamkeit von derzeitigen Peer-to-Peer-Dateiübertragungsprotokollen liegt in dem Verfahren, mit welchem die Dateiübertragungsbelastung auf die Peer-to-Peer-Knoten verteilt ist. Zum Beispiel fächert in einer typischen Übertragungstechnik ein Knoten, der eine Datei zur gemeinsamen Benutzung mit der Gruppe besitzt, die Datei einfach auf alle Gruppenmitglieder durch paralleles oder serielles Hochladen der Datei zu jedem auf. Dies zwingt dem verteilenden Knoten einen signifikanten Nachteil bezüglich Bandbreite und Rechenleistung auf, weil er jeden Anfragenden oder jeden Knoten, der Material empfängt, bedienen muss, und dies in einer hauptsächlich simultanen oder gleichzeitigen Weise tun muss. Als Ergebnis ist die Dateiübertragungsgeschwindigkeit bezüglich der gesamten Gruppe an die Rechenleistung und Verbindungsgeschwindigkeit des verteilenden Knotens gebunden.
  • Es gibt einen Bedarf für einen Peer-to-Peer-Dateiübertragungsmechanismus, der eine ausreichende Übertragungsgeschwindigkeit bereitstellt, so dass im Wesentlichen Realtime-Gruppen-Interaktionen unter Verwendung eines Peer-to-Peer-Netzwerkes ohne übermäßige Unterbrechungen aufgrund von Dateiübertragungsverzögerungen gemacht werden können.
  • "OAI-P2P: a peer-to-peer network for open archives", PROC. OF THE ICPPW'02, 18. August 2002, Seiten 463–468, Ahlborn B. et al., beschreibt Peer-to-Peer-Protokolle zur gemeinsamen Benutzung von Informationen zwischen Benutzern, wobei Metadaten als Kleber zwischen Inhalten und der Gemeinschaft verwendet werden. Jeder teilnehmende Peer kann Konsument und Anbieter von Datenservicen sein. Es wird eine Peer-to-Peer-Infrastruktur zum Speichern, Abfragen und Austauschen von Metadaten vorgeschlagen, wobei jeder teilnehmende Peer seine Metadateninformationen verfügbar machen kann. Die Peers veröffentlichen das, was sie anbieten, durch Anzeigen, welche Art von Servicen sie zur Verfügung stellen.
  • EP-A-0993163 offenbart ein System, wobei Datenpakete zu einem Client durch ein flexibles, nicht-deterministisches verteiltes System von Peer-Clients zugestellt werden, welche die Datenpakete zwischenspeichern, um die Effizienz und Geschwindigkeit zum Zustellen der Datenpakete zu dem Client zu maximieren. In diesem System wird, wann immer ein Client ein Datenpaket anfrägt, zuerst ermittelt, ob das Datenpaket lokal in dem Speicher liegt, und wenn es nicht gefunden wird, wird ein Versuch gemacht, das Datenpaket von einem Peer-Client im lokalen Netzwerk abzurufen, und wenn es weiter nicht gefunden wird, wird ein letzter Versuch gemacht, das Datenpaket von dem Server abzurufen.
  • Es ist die Aufgabe der vorliegenden Erfindung, effizientere Verfahren zum Übertragen von Dateien zwischen Knoten eines Peer-to-Peer-Netzwerkes bereitzustellen.
  • Die Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche gelöst.
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung sind durch die abhängigen Ansprüche definiert.
  • Die vorliegende Erfindung richtet sich auf ein System, Verfahren und Architektur zur effizienten Übertragung von Dateien in einem Peer-to-Peer-Netzwerk. Das System ist an gepasst zum Fördern von im Wesentlichen Realtime-Dateimitbenutzung, was in einer Umgebung für Online-Gruppen-Interaktion besonders günstig ist. In einer Ausführungsform der Erfindung dienen viele Knoten des Peer-to-Peer-Netzwerkes sowohl als Clients als auch als Server, wobei beide Dateiinformationen empfangen und die empfangenen Informationen an andere Knoten übertragen. Die Last der Dateiübertragung ist in einer Ausführungsform der Erfindung gleichmäßiger über die Knoten des Netzwerkes verteilt, so dass üblicherweise kein Knoten eine unverhältnismäßige Dateiübertragungsbelastung trägt. Dies ist nützlich, um sicherzustellen, dass die Datei zu jedem Knoten in dem Netzwerk so schnell wie möglich übertragen wird.
  • In einer Ausführungsform der Erfindung wird die Dateiverbreitung durch die Veröffentlichung von Dateimetadaten ausgelöst. Nachdem die Metadaten empfangen worden sind, ermittelt jeder Knoten, ob er die zugehörige Datei empfangen möchte. Wenn er wünscht, die Datei zu empfangen, verwendet der relevante Knoten oder die Knoten ein Pull-Modell, um die Dateiinhalte von entsprechenden Nachbarn abzufragen. In einer Ausführungsform der Erfindung gibt jeder Knoten, der die Datei hat oder empfängt, seinen Besitz der Datei bekannt, so dass andere Knoten die Datei dann von diesen Sekundärquellen erhalten können. In einer Ausführungsform der Erfindung kann ein Knoten im Wesentlichen gleichzeitig eine Datei über Streaming-Download von einem bestimmten Knoten empfangen und kann dieselbe Datei über Upload einem anderen Knoten zustellen. In dieser Ausführungsform wird ein Erzeugungskennzeichner vorzugsweise verwendet, um zwei Knoten, von denen jeder denselben Teil einer Datei besitzt, von dem Versuch abzuhalten, den Rest der Datei voneinander zu erhalten.
  • Zusätzliche Merkmale und Vorteile der Erfindung werden durch die nachfolgende detaillierte Beschreibung von veranschaulichenden Ausführungsformen, die mit Bezug auf die beiliegenden Figuren verläuft, ersichtlich gemacht.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Während die beigefügten Ansprüche die Merkmale der vorliegenden Erfindung genau darlegen, kann die Erfindung, zusammen mit ihren Aufgaben und Vorteilen, am besten durch die nachfolgende detaillierte Beschreibung in Verbindung mit den angehängten Figuren verstanden werden, von denen:
  • 1 ein schematisches Diagramm ist, das allgemein ein exemplarisches Computersystem darstellt, das verwendbar ist, um eine Ausführungsform der Erfindung zu implementieren;
  • 2 ein schematisches Diagramm ist, das ein beispielhaftes Peer-to-Peer-Netzwerk zum Ermöglichen von Dateiübertragung gemäß einer Ausführungsform der Erfindung darstellt;
  • 3 ein Flussdiagramm ist, das einen Prozess zur Dateiverteilung und -abfrage zur Verwendung in einem Peer-to-Peer-Netzwerk gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
  • 4 ein Flussdiagramm ist, das eine Dateiübertragungspriorisierungstechnik für die Verwendung in einem Peer-to-Peer-Netzwerk gemäß einer Ausführungsform der vorliegenden Erfindung darstellt; und
  • 5 ein schematisches Diagramm ist, das eine Knoten-Client/Server-Architektur gemäß einer Ausführungsform der Erfindung zeigt.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Mit Bezug auf die Figuren, in denen gleiche Bezugsziffern auf gleiche Elemente verweisen, wird die Erfindung nachstehend in dem Kontext einer Computerumgebung beschrieben. Obwohl es zum Ausüben der Erfindung nicht notwendig ist, wird die Erfindung so beschrieben, dass sie durch Computer ausführbare Instruktionen implementiert ist, sowie z.B. Programmmodule, die durch einen Personalcomputer (PC) ausgeführt werden. Im Allgemeinen enthalten Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen und Ähnliches, das bestimmte Aufgaben ausführt oder bestimmte abstrakte Datentypen implementiert.
  • Die Erfindung kann in anderen Computersystemkonfigurationen als einem PC implementiert sein. Zum Beispiel kann die Erfindung in Hand-Held-Geräten, Mobiltelefonen, Multiprozessorsystemen, Mikroprozessor-basierter oder programmierbarer Unterhaltungselektronik, Netzwerk-PCs, Minicomputern, Mainframe-Computern und Ähnlichem realisiert sein. Die Erfindung kann auch in verteilten Computerumgebungen ausgeübt werden, wo Funktionen durch dezentrale verarbeitende Geräte ausgeführt werden, die durch ein Kommunikationsnetzwerk verbunden sind. In einer verteilten Computerumgebung können Programmmodule in beiden, lokalen und dezentralen Speichergeräten, liegen.
  • Obwohl die nachfolgende detaillierte Beschreibung der Erfindung im Kontext eines beispielhaften Allzweck-Computergerätes, wie z.B. einem konventionellen PC 20, dargelegt ist, gilt es als verstanden, dass die Erfindung in vielen Arten von Computerumgebungen, wie oben vorgeschlagen, eingebaut sein kann.
  • Bevor die Erfindung im Detail beschrieben wird, wird eine Computerumgebung, in welcher Ausführungsformen der Erfindung implementiert werden können, in Verbindung mit 1A beschrieben. Der PC 20 schließt einen Prozessor 21, einen Systemspeicher 22 und einen Systembus 23 ein, der verschiedene Systemkomponenten einschließlich des Systemspeichers mit dem Prozessor 21 koppelt. Der Systembus 23 kann irgendeine von verschiedenen Typen von Busstrukturen sein, einschließlich einem Speicherbus oder Speicher-Controller, einem Peripheriebus und einem lokalen Bus, der irgendeine von einer Vielfalt von Busarchitekturen verwendet. Der Systemspeicher schließt Read Only Memory (ROM) 24 und Random Access Memory (RAM) 25 ein. Ein Basic-Input/Output-System (BIOS) 26, das Basisroutinen enthält, die helfen, Informationen zwischen Elementen innerhalb des PCs 20, wie z.B. während des Hochfahrens, zu übermitteln, ist in ROM 24 gespeichert. Der PC 20 enthält des Weiteren ein Festplattenlaufwerk 27 zum Lesen von und Schreiben auf eine(r) Festplatte 60, ein magnetisches Disklaufwerk 28 zum Lesen von oder Schreiben auf eine(r) entfernbare(n) magnetische(n) Disk 29, und ein optisches Disklaufwerk 30 zum Lesen von oder Schreiben auf eine(r) entfernbare(n) optische(n) Disk 31, wie z.B. eine CD-ROM oder andere optische Medien.
  • Das Festplattenlaufwerk 27, magnetische Disklaufwerk 28 und optische Disklaufwerk 30 sind mit dem Systembus 23 durch eine Festplattenlaufwerksschnittstelle 32, eine magnetische Disklaufwerksschnittstelle 33 bzw. eine optische Disklaufwerksschnittstelle 34 verbunden. Die Laufwerke und ihre zugehörigen computerlesbaren Medien stellen nichtflüchtigen Speicher für computerlesbare Instruktionen, Datenstrukturen, Programmmodule und andere Daten für den PC 20 bereit. Obwohl die hierin beschriebene exemplarische Umgebung eine Festplatte 60, eine entfernbare magnetische Disk 29 und/oder eine entfernbare optische Disk 31 einsetzt, wird es von Fachleuten begrüßt, dass andere Typen von computerlesbaren Medien, welche Daten speichern können, die durch ein Computergerät abrufbar sind, wie z.B. magnetische Kassetten, Flush-Memory-Karten, Digital Video-Disks, Bernoulli-Kartuschen, Random Access Memonies, Read Only Memories und Ähnliches, ebenso in der exemplarischen Arbeitsumgebung verwendet werden können.
  • Eine Anzahl von Programmmodulen kann auf der Festplatte 60, der magnetischen Disk 29, optischen Disk 31, ROM 24 oder RAM 25 gespeichert werden, einschließlich einem Betriebssystem 35, einem oder mehreren Anwendungsprogrammen 36, anderen Programmmodulen 37, und Programmdaten 38. Ein Benutzer kann Befehle und Informationen in den PC 20 durch Eingabegeräte eingeben, wie z.B. einer Tastatur 40 und einem Zeigergerät 42. Andere Eingabegeräte (nicht gezeigt) können ein Mikrofon, Joystick, Game Pad, Satellitenschüssel, Scanner oder Ähnliches einschließen. Diese und andere Eingabegeräte sind oft mit dem Prozessor 21 durch eine serielle Anschluss-Schnittstelle 46 verbunden, die mit dem Systembus gekoppelt ist, können aber durch andere Schnittstellen, wie z.B. einem Parallelanschluss, Garne Port oder Universal Serial Bus (USB) verbunden sein. Ein Monitor 47 oder anderer Typ von Anzeigegerät ist auch mit dem Systembus 23 über eine Schnittstelle verbunden, wie z.B. einem Videoadapter 48. Zusätzlich zu dem Monitor schließen PCs üblicherweise andere periphere Ausgabegeräte, nicht gezeigt, wie z.B. Lautsprecher und Drucker, ein.
  • Der PC 20 arbeitet in einer Netzwerkumgebung unter Verwendung von festen oder transienten logischen Verbindungen zu einem oder mehreren Remote Computern, wie z.B. Remote Computer 49. Der Remote Computer 49 kann im Allgemeinen ein anderer PC, ein Server, ein Router, ein Netzwerk PC, ein Peer-Gerät oder andere bekannte Netzwerkknoten, oder jeglicher anderer Gerätetyp, sein, wie z.B. irgendeiner von den hier irgendwo Genannten. Der Remoute Computer 49 schließt üblicherweise viele oder alle der oben in Bezug auf PC 20 beschriebenen Elemente ein, obwohl es dafür kein Erfordernis gibt, und nur ein Speichergerät 50 in 1A dargestellt worden ist. Die logischen Verbindungen, die in 1A gezeigt sind, schließen ein Local Area Network (LAN) 51 und ein Wide Area Network (WAN) 52 ein. Solche Netzwerkumgebungen sind alltäglich in Büros, unternehmensweiten Computernetzwerken, Intranets und dem Internet.
  • Wenn er in einer LAN-Netzwerkumgebung verwendet wird, ist der PC 20 mit dem lokalen Netzwerk 51 durch eine Netzwerkschnittstelle oder Adapter 53 verbunden. Wenn er in einer WAN-Netzwerkumgebung verwendet wird, schließt der PC 20 typischerweise ein Modem 54 oder andere Mittel zum Herstellen von Kommunikationen über das WAN 52 ein. Das Modem 54, welches intern oder extern sein kann, ist mit dem Systembus 23 über eine serielle Anschluss-Schnittstelle 46 verbunden. Obwohl ein Standardmodem in einer Implementierung einer Ausführungsform der Erfindung verwendet werden kann, wird eine Breitbandverbindung, wie z.B. eine mit einer Kapazität zwischen ungefähr 120 kbps und 1,5 Mbps oder mehr, im Allgemeinen ein besseres Leistungsverhalten bringen. Programmmodule, die bezüglich PC 20 gezeigt sind, oder Teile davon, können in dem Remote-Speichergerät gespeichert sein. Es wird begrüßt, dass die gezeigten Netzwerkverbindungen exemplarisch sind, und andere Mittel zum Erstellen einer Kommunikationsverbindung zwischen den Computern verwendet werden kann. Zusätzlich ist es nicht beabsichtigt, dass die Erfindung auf einen bestimmten Netzwerktyp beschränkt ist. Jeglicher Netzwerktyp, verkabelt oder kabellos, fest oder transient, leitungsvermittelt, paketvermittelt oder eine andere Netzwerkarchitektur, können verwendet werden, um die vorliegende Erfindung zu implementieren.
  • In der folgenden Beschreibung wird die Erfindung in Bezug auf Vorgänge und symbolische Repräsentationen von Funktionen beschrieben, die durch einen oder mehrere Computergeräte, wie z.B. PC 20, ausgeführt werden können, soweit nicht anders gekennzeichnet. Als solches gilt es als verstanden, dass solche Vorgänge und Funktionen, die zeitweise als computerausgeführt bezeichnet sind, die Manipulation von elektrischen Signalen, die Daten in einer strukturierten Form darstellen, durch den Prozessor des Computers einschließen. Diese Manipulation formt die Daten um oder erhält sie an Orten in dem Speichersystem des Computers, was die Funktion des Computers in einer Weise, die von Fachleuten gut verstanden wird, umgestaltet oder anderweitig abändert. Die Datenstrukturen, wo Daten erhalten werden, sind physikalische Orte des Speichers, die bestimmte Eigenschaften durch das Format der Daten definiert haben. Während die Erfindung im vorhergehenden Kontext beschrieben wurde, ist es jedoch nicht als Beschränkung gemeint, was die Fachleute begrüßen werden, dass verschiedene der hier später beschriebenen Vorgänge und Funktionen auch in Hardware implementiert sein können.
  • Ein beispielhaftes Peer-to-Peer-Netzwerk 201, das gemäß einer Ausführungsform der Erfindung verwendbar ist, ist in 2 schematisch gezeigt. Üblicherweise wird ein Peer-to-Peer-Netzwerk, das die Erfindung verwendet, ungefähr zwischen 2 und 10 Knoten enthalten, obwohl größere Netzwerke ebenso verwendet werden können, um die Erfindung zu implementieren. Die Doppelendenlinien zwischen den Knoten A bis G des Peer- to-Peer-Netzwerkes stellen Peer-to-Peer-Netzwerk-Verbindungen dar. Deshalb ist z.B. in der dargestellten Anordnung der Knoten A direkt mit Knoten B verbunden, aber nur indirekt (d.h. nicht über eine einzelne Verknüpfung) mit Knoten C. Jede Peer-to-Peer-Verbindung kann eigentlich eine Anzahl von physischen und/oder logischen zugrunde liegenden Verbindungen umfassen, und mag so mit einem zugrunde liegenden Netzwerk in Zusammenhang stehen, über welches das Peer-to-Peer-Netzwerk gelegt worden ist. Es ist zu beachten, dass obwohl die Peer-to-Peer-Netzwerkknoten im Allgemeinen Computer sein werden, dies nicht erforderlich ist. Eher kann jeglicher Gerätetyp, der entsprechende Netzwerkmöglichkeiten hat, abhängig von der Ausrüstungswahl des Benutzers verwendet werden.
  • Um die Leistung des Peer-to-Peer-Netzwerkes zu steigern, kann jeder Computer in der Gruppe auch "gemeinsame Dateien" in einer Datenbank speichern, die mit den Datenbanken der anderen Gruppenmitglieder aktuell gehalten wird. Diese Datenbank kann auf viele verschiedene Weisen aktuell gehalten werden. In einer Implementierung kann sie, wann immer ein bestimmter Computer die Datenbank verändert, diese Veränderungen zu den anderen Computern in dem Peer-to-Peer-Netzwerk über die oben beschriebenen Verbindungen verbreiten. Alternativ können die Computer in der Gruppe ihre Datenbanken automatisch aktualisieren, nachdem eine bestimmte Zeitspanne abgelaufen ist, und dabei die Computer, die in logischer Verbindung mit ihnen stehen, nach neueren Versionen der Datenbank abfragen. Während Peer-to-Peer-Technologien im Allgemeinen eine Anzahl von Vorteilen bieten, einschließlich der Unabhängigkeit von einem zentralen Server, und oft eine bessere Ressourcennutzung, kann die vorliegende Erfindung auch einen zentralen Server oder Einrichtung (nicht gezeigt) benutzen, der/die mit einem oder mehreren Knoten zur Datenspeicherung oder zur Aufrechterhaltung des Status einer bestimmten Peer-to-Peer-Knotengruppe oder bestimmter Offline-Mitglieder verbunden ist.
  • Das Peer-to-Peer-Netzwerk 201 kann unter Verwendung existierender Peer-to-Peer-Technologien konstruiert sein. Zum Beispiel verbindet sich im Allgemeinen ein Knoten mit dem Netzwerk 201 durch das Herstellen einer Verbindung zu einem der existierenden Knoten. An diesem Punkt kann der neue Knoten auf die Verbindungen des existierenden Knotens (zu anderen Knoten) "Huckepack" genommen werden; durch Auswerten der anderen Verbindungen und Knoten des existierenden Knotens, wenn es welche gibt, und durch Auswählen, sich mit manchen, allen oder keinem dieser anderen Knoten zu verbinden. Der verbindende Knoten berücksichtigt im Allgemeinen die Kosten einer neuen Verbindung gegenüber den nützlichen Eigenschaften einer neuen Verbindung beim Entscheiden, ob zusätzliche Verbindungen, basierend auf den Verbindungen des existierenden Knotens, erzeugt werden sollen. Jeder Knoten des Peer-to-Peer-Netzwerkes führt auch einen Datensatz mit dem momentanen Status der Teile des Netzwerkes, von welchem er weiß, um die relevanten Teile der Netzwerkmitgliedschaft und den Status zu jeder Zeit zu verfolgen, wie es durch Fachleute begrüßt sein wird. Es ist die Sammlung von diesen verschiedenen Datensätzen auf den verschiedenen Knoten, die eigentlich das Peer-to-Peer-Netzwerk bildet, weil die Verbindungen zwischen Knoten eigentlich nicht fest verkabelt sind und in den meisten Fällen auch transient sind, in dem Sinne, dass sie eher paketvermittelt sind als leitungsvermittelt.
  • Gemäß einem Aspekt der Erfindung wird eine Dateiverteilung durch einen Knoten des Peer-to-Peer-Netzwerkes, wie z.B. Knoten A, ausgelöst. Wie hier weiter detaillierter beschrieben sein wird, fließen die Dateidaten durch das Netzwerk zu den geeigneten Empfängerknoten, während die Übertragungstechnik den Übertragungsaufwand relativ gleichmäßig über das Netzwerk verteilt. Insbesondere mit Bezug auf den Flowchart 301 von 3 kann gesehen werden, dass der verteilende Knoten zuerst Metadaten zugehörig zu der Datei von Interesse in Schritt 303 veröffentlicht. Die Metadaten sind keine Dateidaten, sondern stellen eher Informationen über die Datei selbst dar, so wie den Kontext der Datei, wie z.B. eine Priorität in Bezug auf andere Dateien. Die Metadaten sind vorzugsweise klein genug, um einfach zu allen Knoten über bestehende Verbindungen mit minimaler Bandbreitenverwendung durch die reguläre Peer-to-Peer-Datensatz-Flooding-Technik zu fluten. Gemäß dieser Technik geben alle Empfängerknoten die Metadaten sequenziell weiter, bis die Daten alle Knoten des Netzwerkes erreicht haben. Es ist zu beachten, dass, wenn ein Knoten doppelte Metadaten empfängt, wie z.B. über verschiedene Verbindungen zu verschiedenen Knoten, verwirft es irgendwelche doppelten Informationen einfach ohne das Weiterleiten, und leitet nur die erste empfangene Kopie der Metadaten weiter.
  • In einer Ausführungsform der Erfindung umfassen die Metadaten einen Dateinamen, eine Dateigröße, eine Reihe von Verteilungscharakteristiken, Verfallsinformationen und irgendwelche modulspezifischen Informationen, die die veröffentlichende Anwendung oder das Modul bereitstellen möchte. Zusätzlich können die Metadaten auch jegliche andere Information einschließen, wie z.B. Erzeugungs- und/oder Änderungsdatum, Be sitzer, Erzeuger, Priorität etc. Der Dateiname innerhalb der Metadaten ist einfach ein Kennzeichner, verbunden mit der Datei. Der Dateiname braucht nicht absolut eindeutig zu sein, obwohl es vorzugsweise ein Kennzeichner ist, der spezifisch genug ist, so dass es unwahrscheinlich ist, dass er mit irgendeiner anderen Datei auf irgendeinem Knoten des Netzwerkes 201 identisch in Verbindung gebracht wird als mit der passenden Datei. In dem Fall von Musikdateien, kann der Dateiname die passenden MP3-ID3-Tags einschließen. Die Dateigrößeninformation stellt einen Hinweis bereit, wie viel Daten in der Datei enthalten sind, und wird vorzugsweise mit Bezug auf die Größe der Datei angegeben, wenn sie komprimiert ist, sofern Komprimierung für die Übertragung verwendet wird. Die Reihe von Verteilungscharakeristiken stellt optional einen Hinweis oder Vorschlag bereit, wie die Datei verteilt werden sollte. Letztendlich bestimmt die Ablaufinformation die Zeit, an welcher die Datei aus dem Speicher von jedem Empfängerknoten gelöscht werden sollte, sobald sie übertragen worden ist. Es ist zu beachten, dass die ursprüngliche Metadatenveröffentlichung eine Erklärung einschließt, dass der Absendeknoten die angebotene Datei besitzt, aber dass jeder andere Knoten diese Erklärung nicht macht, bis er tatsächlich mindestens einen Teil der Datei besitzt, wie unterhalb detaillierter diskutiert wird.
  • Sobald der veröffentlichende Knoten die Metadaten wie in Schritt 303 übermittelt hat, und alle Knoten des Peer-to-Peer-Netzwerkes die Metadaten empfangen haben, entscheidet jeder Metadaten-Empfängerknoten in Schritt 305, die Datei abzufragen oder nicht. Ein Knoten kann irgendeinen von einer Anzahl von Gründen haben, die Datei abzufragen. Wenn z.B. ein Modul für Online-Realtime-Gruppen-Interaktion, wie z.B. ein Modul für eine Gruppenaudioerfahrung (group audio experience module), die Veröffentlichung der Dateimetadaten angeregt hat, und der Empfängerknoten denselben Modultyp aktiviert hat, dann wird der Empfängerknoten wahrscheinlich die angebotene Datei abfragen wollen.
  • Zusätzlich durchsucht, in einer Ausführungsform der Erfindung, ein Knoten seine lokalen Dateien, um zu ermitteln, ob er bereits eine Kopie der relevanten Datei hat, und benutzt eher eine solche Kopie, als dass ein Download von einem anderen Knoten abgefragt wird. Die Ermittlung, ob eine lokale Kopie "dieselbe" ist wie eine angebotene Kopie, kann auf vielen Faktoren basieren. Im Fall von Audiodateien z.B. kann die Gleichheit von einer Übereinstimmung in solch Charakteristiken, wie Dateiname, Erzeugender Künstler oder andere Beteiligte, und Spieldauer abgeleitet werden. In einer weiteren Ausführungsform der Erfindung jedoch wird diese von Lokal stammende Datei nicht verwendet, um Anfragen von anderen Knoten für die angebotene Datei zu bedienen. Dies ist so, weil es Unterschiede zwischen der von Lokal stammenden Kopie und der angebotenen Kopie geben kann, was bei dem Lokal beziehenden Knoten offensichtlich sein kann oder nicht, aber was die Kontinuität des Herunterladens verhindern kann, wenn es einen Wechsel der Quellen während des Herunterladens durch einen anderen Knoten gibt. Solche Unterschiede können in der präzisen Komprimierungstechnik liegen, die verwendet wird, um die Datei zu verkleinern (z.B. wenn dieselbe Datei in verschiedenen Weisen komprimiert wurde, um verschiedene Endversionen zu erzeugen), oder in den zugrunde liegenden Daten, die zum Erzeugen der Datei verwendet wurden (z.B. wenn die Dateien zugehörig zu verschiedenen Mitschnitten desselben Liedes sind). Die Entscheidung, die lokale Datei zu verwenden oder nicht zu verwenden, kann in diesem Kontext im Zusammenhang mit dem Maß an Dateigleichheit stehen, das eingesetzt wurde.
  • Wenn der Empfängerknoten entscheidet, die Datei abzufragen, dann überprüft er in Schritt 307, ob irgendeiner seiner direkten Nachbarknoten erklärt hat, dass er die Datei besitzt. Wenn einer oder mehr Nachbarn erklärt haben, dass sie die Datei besitzen, was bedeutet, dass sie mindestens einen Teil der Datei haben, dann entscheidet der fragliche Knoten, von welchem Nachbarknoten die Datei in Schritt 309 abgefragt wird. Diese Entscheidung kann auf irgendeiner Anzahl von Faktoren basieren, einschließlich z.B. den Berechnungs- und Verbindungscharakteristiken der Knoten (vorher gemessene Dateiübertragungsleistung, Geschwindigkeit, Betriebssicherheit, etc.).
  • Weil viele Knoten Teile einer Datei empfangen können und dann ihren Besitz bekannt geben, gibt es eine theoretische Möglichkeit, dass die Knoten versuchen, wenn die relevanten Anbieter für diese Knoten Probleme haben, die Datei voneinander zu erhalten. Dies würde in einer Blockierung enden, weil keiner der Knoten im Besitz der gesamten Datei ist. Um dieses Problem zu mindern, bietet vorzugsweise jeder Knoten, der seinen Besitz einer Datei anbietet, auch eine Generationsnummer für diese Datei an. Jeder Knoten, der die gesamte Datei hat oder erhält, kann seine Version als Generation-0-Datei anbieten. Ein Knoten, der eine teilweise Kopie anbietet, die von einer Generation-0-Quelle erhalten wird, bietet seine Version als Generation 1 an. Im Allgemeinen bietet jeder Knoten seine Version so an, dass sie eine Generation um 1 größer als die Version hat, die sie simultan herunterläd. Wenn ein Quellknoten mit dem Herunterladen einer ganzen Kopie der Datei fertig ist, dekrementiert er seine angebotene Generation zu 0, und das Dekrement fließt durch die Kette an Knoten, zu denen er direkt oder indirekt Uploads liefert. Deshalb ist die Generationsnummer zugehörig zu den angebotenen Dateiversionen ein weiterer Faktor, der in einer Ausführungsform der Erfindung verwendbar ist, um zu ermitteln, von welchem Knoten die Datei einzuholen ist, wobei eine kleinere Generation im Allgemeinen erforderlich ist und eine Generation gleich der des Anfragenden üblicherweise nicht akzeptabel ist.
  • Wenn nur ein Nachbarknoten erklärt hat, dass er im Besitz der Datei ist, und eine passende Version hat, dann wird Schritt 309 für den fraglichen abfragenden Knoten ausgelassen. In Schritt 311 frägt der abfragende Knoten die Datei von dem ausgewählten Nachbarknoten ab, der im Besitz der Datei ist, und beginnt mit dem Empfangen.
  • Sobald der abfragende Knoten mit dem Empfangen der Datei begonnen hat, ist er in einer Ausführungsform der Erfindung in der Lage, seinen Besitz anderen Knoten bekannt zu geben. Dies ist so, weil der abfragende Knoten die Teile der Datei, die er schon empfangen hat, liefern kann, während er gleichzeitig weiter die Datei von seinem Anbieter mit ungefähr derselben oder größeren Rate empfängt. Dies wirkt sich in den meisten Fällen auf eine leichte Abnahme der Dateiverteilungsverzögerung aus, weil ein Knoten nicht auf den Abschluss eines Dateiempfangs warten muss, bevor er dessen Besitz bekannt manchen kann und die Datei zu anderen Knoten liefern kann. Deshalb übermittelt in Schritt 313 der abfragende Knoten eine Bekanntmachung zu seinen Nachbarknoten, dass er im Besitz der fraglichen Datei ist. In Schritt 315 bedient der fragliche Knoten jegliche empfangenen Anfragen für die Datei. Letztendlich endet der Vorgang bei 319.
  • Wenn bei Schritt 305 ermittelt worden ist, dass der fragliche Knoten nicht wünscht, die Datei zu besitzen, dann geht der Vorgang zu Schritt 317 über, wo ermittelt wird, ob irgendein Nachbarknoten des fraglichen Knotens eine unaufgeforderte Dateianfrage an den fraglichen Knoten geschickt hat. Weil die Dateiverteilung im Allgemeinen auf einer reinen Abfragebasis steht, wie oben beschrieben, ist es möglich, dass ein Knoten, der die Datei haben möchte, keinen Nachbarn hat, der die Datei aufgrund seiner eigenen Initiative erhält und anbietet. Deshalb kann solch ein Knoten, nachdem er eine angemessene Zeit gewartet hat, wie z.B. ungefähr die Zeit für die Schrittgröße eines Datei-Downloads, eine unaufgeforderte Dateianfrage zu einem seiner Nachbarn senden, und dabei diesen Nachbarn auffordern, die fragliche Datei abzurufen und zu liefern. In einer Ausführungsform der Erfindung steht jede/jedes Peer-to-Peer-Anwendung oder Modul im Zusammenhang mit einem bestimmten Peer-to-Peer-Netzwerk, das ausschließlich oder hauptsächlich Knoten umfasst, auf denen dieselbe Anwendung oder dasselbe Modul läuft. Deshalb ist in dieser Ausführungsform die Wahrscheinlichkeit klein, die Verwendung einer unaufgeforderten Anfrage zu benötigen, weil jeder Knoten wahrscheinlich die Datei haben möchte.
  • Wenn bei Schritt 317 ermittelt wird, dass kein Nachbarknoten des fraglichen Knotens eine unaufgeforderte Dateianfrage zu dem fraglichen Knoten gesendet hat, dann endet der Vorgang bei Schritt 319. Wenn es stattdessen bei Schritt 317 ermittelt wurde, dass einer oder mehr Nachbarknoten des fraglichen Knotens eine unaufgeforderte Dateianfrage zu dem fraglichen Knoten gesendet hat, geht der Vorgang zu Schritt 307 und den logisch nachfolgenden Schritten über. Es ist zu beachten, dass der fragliche Knoten selbst eine unaufgeforderte Dateianfrage machen muss, um die Datei in einer Ausführungsform der Erfindung zu erhalten.
  • Obwohl es oberhalb nicht ausführlich diskutiert worden ist, gibt es Situationen, in denen ein Knoten zwischen einer Vielzahl von Dateien zum Herauf- und/oder Herunterladen aussucht, und/oder wenn eine Entscheidung gefällt wurde zwischen der Funktion des Heraufladens und der Funktion des Herunterladens für den bestimmten Knoten. Diese Situationen werden in Bezug auf den verallgemeinernden Flowchart 401 der 4 detaillierter diskutiert. Obwohl die Situation, die in 4 präsentiert wird, die gleichzeitige Verfügbarkeit einer Vielzahl von Upload- und Download-Gelegenheiten einbezieht, wird es begrüßt, dass in den meisten Fällen solch eine Vielzahl von Gelegenheiten nicht existieren wird, und dass in solchen Situationen manche der Schritte aus dem Flowchart 401 soweit erforderlich, weggelassen werden können.
  • Bei Schritt 403 hat ein bestimmter Knoten Anfragen zum Upload von zwei oder mehr bestimmten Dateien erhalten und hat ebenso Anzeigen erhalten, dass zwei oder mehr andere Dateien zum Upload zu dem Knoten verfügbar sind. In dem Fall, wo der bestimmte Knoten unbestimmte Upload- und Download-Kapazität hat und die gleichzeitige Ausführung (d.h. im Wesentlichen zu derselben Zeit oder wenigstens während sich überlappender Zeitintervalle) all solcher Aktivitäten durchgeführt werden können, ohne irgendeine der Aktivitäten zu verlangsamen oder zu verzögern, dann sind all solche Uploads und Downloads vorzugsweise gleichzeitig abzusenden. Wenn jedoch, was typischer ist, die Ressourcen des Knotens und/oder des Netzwerkes begrenzt sind, so dass der schnellste Download oder Upload nur erreicht wird, wenn kein anderer Download oder Upload bedient wird, dann wird der schnellste mögliche Download oder Upload im Allgemeinen nur durch eine Entscheidung hinsichtlich der Aktivität (Heraufladen oder Herunterladen) und der Datei, die zu bedienen ist, stattfinden. Es wird begrüßt, dass, wenn der Upload- und Download-Kanal wie in bestimmten Breitbandtechnologien völlig getrennt sind, dass dann die Priorisierung für jeden Kanal besser getrennt durchgeführt wird, als in einer zusammenarbeitenden Weise, wie in 4 gezeigt.
  • Bei Schritt 405 werden die potenziellen Datei-Upload- und Datei-Download-Aktivitäten priorisiert. Insbesondere wird jede Datei vorzugsweise mit einer numerischen Priorität, die ihre aktuelle Wichtigkeit darstellt, in Zusammenhang gebracht, wie z.B. über die Metadaten. Die Prioritäten können z.B. die relative Reihenfolge der Dateien in einer Audio Playlist darstellen, und können sich verändern, wenn die Playlist sich verändert. In dem Umfang, dass sich eine oder mehr relevante Dateiprioritäten während des Upload oder Download ändern, und beeinflussen, welche Datei aktuell die bevorzugte Datei für den Upload oder Download ist, kann die Zieldatei mittendrin gewechselt werden, wobei der übertragene unvollständige Teil der vorher bevorzugten Datei für eine potenzielle zukünftige Wiederaufnahme der Übertragung gespeichert wird. Wenn Datei-Upload- und Datei-Download-Kanäle vollständig verschieden sind, so dass sie sich nicht gegenseitig beeinflussen, dann geschieht die Priorisierung vorzugsweise auf einer Pro-Kanalbasis. Das heißt, alle potenziellen Datei-Downloads werden in Bezug aufeinander priorisiert, und alle potenziellen Datei-Uploads werden in Bezug aufeinander priorisiert. Fachleute werden es zusätzlich begrüßen, dass die beschriebenen Techniken einfach modifiziert werden können, um eine Vielzahl unabhängiger Upload-Kanäle und/oder eine Vielzahl unabhängiger Download-Kanäle aufzunehmen.
  • Bei Schritt 407 wird die am höchsten priorisierte Dateiübertragung bedient. Im Fall von unabhängigen Upload- und Download-Kanälen, wird der am höchsten priorisierte Datei-Upload bedient und der am höchsten priorisierte Download auch bedient. Es sollte wieder beachtet werden, dass sich Dateiprioritäten während der Dateiübertragung ändern können, was darin resultiert, dass eine andere Datei eine höhere Priorität für den Upload oder Download hat, als die aktuell bediente Datei, wie oben diskutiert. Letztendlich endet der Vorgang bei Schritt 409.
  • 5 stellt in schematischer Weise eine Client/Server-Architektur dar, die gemäß einer Ausführungsform der Erfindung verwendbar ist. Insbesondere in dem Peer-to-Peer-Netzwerk gemäß verschiedener Ausführungsformen der Erfindung arbeiten viele Knoten sowohl als Clients als auch Server, obwohl es begrüßt wird, dass ein oder mehrere Knoten nur als Clients oder nur als Server arbeiten können. Eine beispielhafte Knoten-Client/Server-Architektur 501 besitzt beides, Client-Einrichtungen 503 und Server-Einrichtungen 505. Die Client-Einrichtungen 503 sind verantwortlich für das Anfragen gewünschter Dateien, wenn überhaupt, und zum Empfangen solcher Dateien. Detaillierter gesagt, enthalten die Client-Einrichtungen 503 vorzugsweise eine Client-Schnittstelle 507 zum Empfangen einer Anfrage, wie z.B. von einem Modul oder einer Anwendung, zum Erhalten einer bestimmten Datei von einem anderen Knoten, wie z.B. einer, die angeboten worden ist. Solche Anfragen können priorisiert werden und in der Prioritätswarteschlange 511 eingereiht werden. An diesem Punkt wird die Knotenverbindungsschnittstelle 513 verwendet, um die Anfrage auszuführen, und die gewünschte Datei zu der angemessenen Zeit, basierend auf der zugewiesenen Anfragepriorität zu erhalten.
  • Die Server-Einrichtungen 505 eines Knotens enthalten vorzugsweise eine Dateischnittstelle 515 zum Empfangen von Dateidaten, wie z.B. von einem anderen Modul oder einer anderen Anwendung auf dem Knoten. Die Dateiinformation kann komprimiert sein, z.B. zu dem 64 k Windows Media® Audio (WMA)-Format, oder kann in einem einheitlichen Format für Massen-Uploads sein oder kann in einem Streaming-Format für einen Streaming-Upload sein. Zur Klarheit werden zwei Schnittstellen, eine "Datei veröffentlichen"-Schnittstelle ("I Publish File") und eine "Stream veröffentlichen"-Schnittstelle("I Publish Stream"), innerhalb der Schnittstelle 515 dargestellt. Die letztere wird verwendet, um Stream-Veröffentlichungen einer Datei durch den Serverteil 505 zu ermöglichen, während die erstere verwendet wird, um einheitliche Veröffentlichungen einer ganzen Datei, wie oben diskutiert, zu ermöglichen. Die Dateidaten, die bei der Schnittstelle 515 empfangen werden, werden zu dem Server-Cache 517 für eine temporäre Speicherung übermittelt, und können relativ zu anderen anstehenden Uploads in der Server-Prioritäts-Warteschlange 519 eingestellt werden. Vorzugsweise werden die Dateien mit höchster Priorität zuerst bei der Dateischnittstelle 515 empfangen, obwohl Prioritäten sich während des Empfangens von Dateidaten bei der Schnittstelle 515 ändern können. Letztendlich werden die Dateidaten in passender Prioritätsordnung der Knotenverbindungsschnittstelle 513 verfügbar gemacht. Es wird begrüßt, dass Dateidaten zum Upload alternativ von der Knotenverbindungsschnittstelle 513 kommen können, wie z.B., wenn die Client-Einrichtungen 503 das Empfangen von Dateidaten von einem anderen Knoten verursacht haben, und dass die Servereinrichtungen zum Hochladen derselben Daten zu noch einem weiteren Knoten dienen. In diesem Fall können die eingehenden Dateidaten in beiden, der Client-Prioritäts-Warteschlange und der Server-Prioritäts-Warteschlange, gespeichert werden.
  • Es wird begrüßt, dass ein neues Mittel zur Inhaltsübertragung für die Verwendung in einem Peer-to-Peer-Netzwerk beschrieben worden ist. Angesichts der vielen möglichen Ausführungsformen, zu der die Prinzipien dieser Erfindung angewandt werden können, sollte es verstanden werden, dass die hierin in Bezug auf die Figuren beschriebenen Ausführungsformen nur als illustrativ gemeint sind, und nicht verwendet werden sollten, den Umfang der Erfindung einzuschränken. Zum Beispiel werden die Fachleute es verstehen, dass die Elemente der dargestellten Ausführungsformen, die als Software gezeigt wurden, in Hardware implementiert werden können und umgekehrt, oder dass die dargestellten Ausführungsformen in ihrer Anordnung und Detail modifiziert werden können. Deshalb zieht die Erfindung, wie hierin beschrieben, alle solche Ausführungsformen in Erwägung, wie sie im Umfang der folgenden Ansprüche erscheinen.

Claims (20)

  1. Verfahren zum Übertragen von Dateien zwischen Knoten in einem Peer-to-Peer-Netzwerk, das eine Vielzahl von Knoten hat, einschließlich eines Absendeknotens, eines Empfängerknotens, und eines Nachbarknotens, wobei der Nachbarknoten direkt mit dem Empfängerknoten verbunden ist, wobei das Verfahren umfasst: beim Empfängerknoten, Empfangen von Metadaten, die durch den Absendeknoten übermittelt worden sind und die sich auf eine Datei beziehen, die sich im Besitz des Absendeknotens befindet; beim Empfängerknoten, Empfangen einer Benachrichtigung von dem Nachbarknoten, dass der Nachbarknoten die Datei erhalten hat, die sich im Besitz des Absendeknotens befindet; beim Empfängerknoten, Ermitteln, ob die Datei, die sich im Besitz des Absendeknotens befindet, von dem Nachbarknoten basierend auf den Metadaten abzurufen ist.
  2. Verfahren gemäß Anspruch 1, des Weiteren das Abrufen der Datei von dem Nachbarknoten zum Empfängerknoten umfassend, wenn beim Empfängerknoten ermittelt wurde, die Datei abzurufen.
  3. Verfahren gemäß Anspruch 1, wobei die Metadaten eine Priorität zugehörig zu der Datei umfassen.
  4. Verfahren gemäß Anspruch 2, wobei das Abrufen der Datei von dem Nachbarknoten umfasst: Senden einer Anfrage für die Datei zu dem Nachbarknoten; und Empfangen eines streaming upload der Datei von dem Nachbarknoten beim Empfängerknoten.
  5. Verfahren gemäß Anspruch 4, des Weiteren das Senden einer Benachrichtigung zu anderen Knoten in dem Peer-to-Peer-Netzwerk umfassend, dass der Empfängerknoten die Datei besitzt, sobald der Empfängerknoten begonnen hat, den streaming upload der Datei zu empfangen.
  6. Verfahren gemäß Anspruch 5, wobei die Benachrichtigung, dass der Empfängerknoten die Datei besitzt, auch einen Generationskennzeichner umfasst, wobei der Generationskennzeichner die vom Empfängerknoten verfügbare Dateikopie von der vom Absendeknoten verfügbaren Dateikopie unterscheidet.
  7. Verfahren gemäß Anspruch 6, des Weiteren das Senden einer zweiten Benachrichtigung umfassend, dass der Empfängerknoten die Datei besitzt, sobald der Empfängerknoten das Empfangen des streaming upload der Datei abgeschlossen hat, wobei die zweite Benachrichtigung einen zweiten Generationskennzeichner umfasst, wobei der zweite Generationskennzeichner die vom Empfängerknoten verfügbare Dateikopie von der vom Absendeknoten verfügbaren Dateikopie nicht unterscheidet.
  8. Verfahren gemäß Anspruch 1, wobei das Ermitteln beim Empfängerknoten, ob die Datei, die sich im Besitz des Absendeknoten befindet, von dem Nachbarknoten basierend auf den Metadaten abzurufen ist, des Weiteren das Ermitteln basierend auf den Matedaten umfasst, dass eine lokale Datei auf dem Empfängerknoten existiert, die der Datei, die sich im Besitz des Absendeknoten befindet, entspricht und dabei Bestimmen, die Datei nicht von dem Nachbarknoten abzurufen.
  9. Verfahren gemäß Anspruch 3, wobei die Datei, die sich im Besitz des Absendeknoten befindet, eine Audio-Datei ist.
  10. Verfahren gemäß Anspruch 9, wobei die Priorität der Datei basierend auf dem Level der Datei in einer Audio-Playlist ermittelt wird, wobei ein aktuell abspielendes Level in der Playlist mit einer höheren Priorität assoziiert wird als ein Level in der Playlist, das nicht aktuell abgespielt wird.
  11. Computer-lesbares Medium, das darauf Computer-ausführbare Instruktionen zum Ausführen des Verfahrens gemäß Anspruch 1 hat.
  12. Verfahren zum Übertragen von Dateien zwischen Knoten in einem Peer-to-Peer-Netzwerk, das eine Vielzahl von Knoten hat, einschließlich eines Absendeknotens, eines Empfängerknotens, und eines ersten und eines zweiten Nachbarknotens, wobei der erste und der zweite Nachbarknoten direkt mit dem Empfängerknoten verbunden sind, wobei das Verfahren umfasst: beim Empfängerknoten, Empfangen einer Benachrichtigung von dem ersten Nachbarknoten, dass der erste Nachbarknoten eine erste Datei liefern kann, wobei der Empfängerknoten erste Metadaten besitzt, die sich auf die erste Datei beziehen, wobei die ersten Metadaten eine erste Priorität umfassen; beim Empfängerknoten, Empfangen einer Anfrage von dem zweiten Nachbarknoten, eine zweite Datei von dem Empfängerknoten zu dem zweiten Nachbarknoten hochzuladen, wobei der Empfängerknoten zweite Metadaten besitzt, die sich auf die zweite Datei beziehen, wobei die zweiten Metadaten eine zweite Priorität umfassen; Ermitteln, welche der ersten und der zweiten Priorität einem höheren Prioritätslevel entspricht; und Abrufen der ersten Datei von dem ersten Nachbarknoten, wenn die erste Priorität einem höheren Prioritätslevel entspricht als die zweite Priorität, und andererseits Hochladen der zweiten Datei zu dem zweiten Nachbarknoten.
  13. Verfahren gemäß Anspruch 12, des Weiteren das Senden einer ersten Benachrichtigung umfassend, dass der Empfängerknoten die erste Datei liefern kann, sobald der Empfängerknoten das Empfangen der ersten Datei begonnen hat, wobei die erste Benachrichtigung einen ersten Generationskennzeichner umfasst, wobei der erste Generationskennzeichner eine Kopie der ersten Datei, verfügbar vom Empfängerknoten, von einer Kopie der ersten Datei, verfügbar von dem ersten Nachbarknoten, unterscheidet.
  14. Verfahren gemäß Anspruch 13, wobei die Kopie der ersten Datei, verfügbar von dem ersten Nachbarknoten, mit einem zweiten Generationskennzeichner assoziiert ist, wobei der zweite Generationskennzeichner die Kopie der ersten Datei, verfügbar vom ersten Nachbarknoten, von einer Kopie der ersten Datei, verfügbar vom Absendeknoten, unterscheidet.
  15. Verfahren gemäß Anspruch 13, des Weiteren das Senden einer zweiten Benachrichtigung umfassend, dass der Empfängerknoten die erste Datei liefern kann, sobald der Empfängerknoten das Empfangen der ersten Datei abgeschlossen hat, wobei die zweite Benachrichtigung einen zweiten Generationskennzeichner umfasst, wobei der zweite Generationskennzeichner die Kopie der ersten Datei, verfügbar vom Empfängerknoten, von der Kopie der ersten Datei, verfügbar von dem ersten Nachbarknoten, nicht unterscheidet.
  16. Verfahren gemäß Anspruch 15, wobei die erste und zweite Datei Audio-Dateien sind.
  17. Verfahren gemäß Anspruch 9, wobei die erste und zweite Priorität auf den Levels der entsprechenden Dateien in einer Audio-Playlist basieren, wobei ein aktuell abspielendes Level in der Playlist mit einer höheren Priorität assoziiert wird als ein Level in der Playlist, das nicht aktuell abgespielt wird.
  18. Computer-lesbares Medium, das darauf Computer-ausführbare Instruktionen zum Ausführen des Verfahrens gemäß Anspruch 12 hat.
  19. Verfahren zum Übertragen von Dateien zwischen Knoten in einem Peer-to-Peer-Netzwerk, das eine Vielzahl von Knoten hat, einschließlich eines Empfängerknotens, und mindestens ersten und zweiten Nachbarknoten, wobei die mindestens ersten und zweiten Nachbarknoten direkt mit dem Empfängerknoten verbunden sind, wobei das Verfahren umfasst: Abfragen einer Datei durch den Empfängerknoten bei einem liefernden Knoten; beim Empfängerknoten, Empfangen eines Teils der abgefragten Datei, die einen ersten Generationskennzeichner besitzt, von dem liefernden Knoten, und Zuweisen eines zweiten Generationskennzeichners, der größer ist als der erste Generationskennzeichner, zu dem Teil der abgefragten Datei beim Empfängerknoten; Empfangen einer ersten Benachrichtigung von dem ersten Nachbarknoten, dass der erste Nachbarknoten die abgefragte Datei liefern kann, wobei die erste Benachrichtigung einen ersten Nachbarkopiegenerationskenzeichner umfasst; beim Empfängerknoten; Empfangen einer zweiten Benachrichtigung von dem zweiten Nachbarknoten, dass der zweite Nachbarknoten die abgefragte Datei liefern kann, wobei die zweite Benachrichtigung einen zweiten Nachbarkopiegenerationskennzeicher umfasst; und Ermitteln, von welchem des ersten Nachbarknotens und des zweiten Nachbarknotens, der restliche Teil der angefragten Datei abgerufen werden soll, basierend auf dem ersten und dem zweiten Generationskennzeichner einer Nachbarkopie.
  20. Computer-lesbares Medium, das darauf Computer-ausführbare Instruktionen zum Ausführen des Verfahrens gemäß Anspruch 19 hat.
DE60306084T 2002-12-02 2003-11-21 Verfahren zur Rundsendung von Inhalten eines Peer-to-Peer Netzes Expired - Lifetime DE60306084T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/307,752 US20040107242A1 (en) 2002-12-02 2002-12-02 Peer-to-peer content broadcast transfer mechanism
US307752 2002-12-02

Publications (2)

Publication Number Publication Date
DE60306084D1 DE60306084D1 (de) 2006-07-27
DE60306084T2 true DE60306084T2 (de) 2006-10-19

Family

ID=32312207

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60306084T Expired - Lifetime DE60306084T2 (de) 2002-12-02 2003-11-21 Verfahren zur Rundsendung von Inhalten eines Peer-to-Peer Netzes

Country Status (18)

Country Link
US (1) US20040107242A1 (de)
EP (1) EP1427170B1 (de)
JP (1) JP2004185618A (de)
KR (1) KR20040048363A (de)
CN (1) CN100364264C (de)
AT (1) ATE330409T1 (de)
AU (1) AU2003262470B2 (de)
BR (1) BR0305326A (de)
CA (1) CA2450059A1 (de)
DE (1) DE60306084T2 (de)
DK (1) DK1427170T3 (de)
ES (1) ES2265549T3 (de)
HK (1) HK1066951A1 (de)
MX (1) MXPA03010965A (de)
PL (1) PL363796A1 (de)
RU (1) RU2343536C2 (de)
TW (1) TW200420068A (de)
ZA (1) ZA200309086B (de)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020002039A1 (en) 1998-06-12 2002-01-03 Safi Qureshey Network-enabled audio device
JP4555072B2 (ja) * 2002-05-06 2010-09-29 シンクロネイション インコーポレイテッド ローカライズされたオーディオ・ネットワークおよび関連するディジタル・アクセサリ
DE10255074A1 (de) * 2002-11-26 2004-06-03 Bayerische Motoren Werke Ag Riementrieb für Hilfsaggregate einer Brennkraftmaschine
AU2003289788A1 (en) 2002-12-20 2004-07-14 Nimcat Networks Inc. Voice mail system for packet switched networks
US7398307B2 (en) * 2003-04-30 2008-07-08 Hewlett-Packard Development Company, L.P. Method and system for managing a network
US20040243672A1 (en) * 2003-05-27 2004-12-02 Outi Markki System and method for user interaction in a peer-to-peer environment
US20040267697A1 (en) * 2003-06-25 2004-12-30 Javad Hamidi File storage network
US8612359B2 (en) * 2004-01-29 2013-12-17 Yahoo! Inc. Method and system for sharing portal subscriber information in an online social network
US20050171954A1 (en) * 2004-01-29 2005-08-04 Yahoo! Inc. Selective electronic messaging within an online social network for SPAM detection
US7885901B2 (en) * 2004-01-29 2011-02-08 Yahoo! Inc. Method and system for seeding online social network contacts
US7269590B2 (en) * 2004-01-29 2007-09-11 Yahoo! Inc. Method and system for customizing views of information associated with a social network user
US7707122B2 (en) * 2004-01-29 2010-04-27 Yahoo ! Inc. System and method of information filtering using measures of affinity of a relationship
US8359349B2 (en) * 2004-03-18 2013-01-22 Nokia Corporation System and associated terminal, method and computer program product for uploading content
JP4690387B2 (ja) * 2004-03-22 2011-06-01 コデマテ エー/エス 好ましくはストリーミング・システムに適用される配布方法
US8688803B2 (en) * 2004-03-26 2014-04-01 Microsoft Corporation Method for efficient content distribution using a peer-to-peer networking infrastructure
US7620685B2 (en) * 2004-04-21 2009-11-17 Microsoft Corporation Smart shares and transports
GB2413407B (en) * 2004-04-22 2007-11-07 Ibm Method and system for software or data distribution
US20050246636A1 (en) * 2004-05-01 2005-11-03 Microsoft Corporation System and method for a user interface that provides contact-based sharing of resources
US8028038B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Obtaining a playlist based on user profile matching
US8028323B2 (en) 2004-05-05 2011-09-27 Dryden Enterprises, Llc Method and system for employing a first device to direct a networked audio device to obtain a media item
US20050257205A1 (en) * 2004-05-13 2005-11-17 Microsoft Corporation Method and system for dynamic software updates
US8140849B2 (en) 2004-07-02 2012-03-20 Microsoft Corporation Security for network coding file distribution
US7756051B2 (en) 2004-07-02 2010-07-13 Microsoft Corporation Content distribution using network coding
US8316088B2 (en) * 2004-07-06 2012-11-20 Nokia Corporation Peer-to-peer engine for object sharing in communication devices
US8996646B2 (en) * 2004-07-09 2015-03-31 Codemate A/S Peer of a peer-to-peer network and such network
GB0420180D0 (en) * 2004-09-10 2004-10-13 Tao Group Ltd Extendible media content rendering system
US7711835B2 (en) * 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US7796520B2 (en) 2004-09-30 2010-09-14 Avaya Canada Corp. System and methods for announcing and locating services in a distributed peer-to-peer network
DE112004003043B4 (de) * 2004-09-30 2022-05-05 Avaya Canada Corp. System und Verfahren zur Bekanntgabe und Lokalisierung von Diensten in einem verteilten Peer-to-Peer-Netzwerk
US8099482B2 (en) 2004-10-01 2012-01-17 E-Cast Inc. Prioritized content download for an entertainment device
US20060095582A1 (en) * 2004-10-29 2006-05-04 Narasimhan Nitya Device and method for transferring apportioned data in a mobile ad hoc network
EP1681829A1 (de) * 2005-01-12 2006-07-19 Deutsche Thomson-Brandt Gmbh Verfahren zum Zuordnen einer Priorität zu einer Datenübertragung in einem Netzwerk und Netzwerksknoten, der das Verfahren verwendet
US8219635B2 (en) * 2005-03-09 2012-07-10 Vudu, Inc. Continuous data feeding in a distributed environment
US8904463B2 (en) * 2005-03-09 2014-12-02 Vudu, Inc. Live video broadcasting on distributed networks
US9176955B2 (en) * 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US20080022343A1 (en) * 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
JP4705795B2 (ja) * 2005-03-31 2011-06-22 学校法人早稲田大学 データ共用プログラム、データ共用システム用のコンピュータ及びデータ共用方法
US20060253807A1 (en) * 2005-04-05 2006-11-09 Hirokazu So Recording medium and data processing device
JP4707137B2 (ja) * 2005-04-19 2011-06-22 株式会社日立ソリューションズ データ通信方法およびシステム並びに装置
US20060265395A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265396A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265394A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US8099511B1 (en) * 2005-06-11 2012-01-17 Vudu, Inc. Instantaneous media-on-demand
JP4707477B2 (ja) * 2005-06-23 2011-06-22 富士通株式会社 ファイル共有プログラムおよびファイル共有装置
JP4747733B2 (ja) * 2005-08-22 2011-08-17 ブラザー工業株式会社 ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム
KR100678957B1 (ko) 2005-08-31 2007-02-06 삼성전자주식회사 네트워크 상에서 존재하는 네트워크 장치들간의 멀티미디어데이터를 공유하는 장치 및 그 방법
JP4846318B2 (ja) * 2005-09-26 2011-12-28 シャープ株式会社 通信プログラム、記録媒体、通信方法および通信端末装置
US20070143446A1 (en) * 2005-12-21 2007-06-21 Morris Robert P Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
US7761503B2 (en) * 2006-01-06 2010-07-20 Microsoft Corporation Peer distribution point feature for system management server
JP4846370B2 (ja) * 2006-01-24 2011-12-28 シャープ株式会社 通信プログラム、記録媒体、通信方法および通信端末装置
US8904456B2 (en) 2006-02-13 2014-12-02 Tvu Networks Corporation Methods, apparatus, and systems for providing media content over a communications network
GB0607294D0 (en) * 2006-04-11 2006-05-24 Nokia Corp A node
US7944832B2 (en) * 2006-04-21 2011-05-17 Yongmin Zhang Method and device for realizing content flowing on P2P network
JP5124733B2 (ja) * 2006-04-25 2013-01-23 キヤノンItソリューションズ株式会社 サーバ装置および情報共有システムおよびプログラムおよび記録媒体
CN100433657C (zh) * 2006-05-11 2008-11-12 蓝汛网络科技(北京)有限公司 适用于大规模流媒体直播系统的对等网络成员管理方法
US7945689B2 (en) * 2007-03-23 2011-05-17 Sony Corporation Method and apparatus for transferring files to clients using a peer-to-peer file transfer model and a client-server transfer model
ES2377764T3 (es) * 2006-06-13 2012-03-30 Microsoft Corporation Sistema de distribución de ficheros
US8887040B2 (en) * 2006-08-10 2014-11-11 Qualcomm Incorporated System and method for media content delivery
FR2904905A1 (fr) * 2006-08-11 2008-02-15 France Telecom Procedes et systemes d'emission et de reception d'un flux de donnees en fonction de contraintes de qualite de service
US8296812B1 (en) 2006-09-01 2012-10-23 Vudu, Inc. Streaming video using erasure encoding
US20100095009A1 (en) * 2006-10-02 2010-04-15 Nokia Corporation Method, System, and Devices for Network Sharing or Searching Of Resources
US8363102B1 (en) * 2006-10-13 2013-01-29 L-3 Communications Mobile-Vision, Inc. Dynamically load balancing date transmission using one or more access points
US7958117B2 (en) * 2006-11-17 2011-06-07 Yahoo! Inc. Initial impression analysis tool for an online dating service
ATE498272T1 (de) * 2006-12-08 2011-02-15 Deutsche Telekom Ag Verfahren und system für peer-to-peer- inhaltsverbreitung
EP1936497A3 (de) * 2006-12-20 2009-04-08 NCR Corporation Automatisierte weiträumige Softwareverteilung mit reduzierten Anforderungen an die Netzwerkbandbreite
CN101227489B (zh) * 2007-01-18 2010-10-13 中国移动通信集团公司 网络存储数据的共享方法及共享系统
GB0703974D0 (en) * 2007-03-01 2007-04-11 Sony Comp Entertainment Europe Entertainment device
US8125988B1 (en) * 2007-06-04 2012-02-28 Rangecast Technologies Llc Network audio terminal and method
US8370754B2 (en) * 2007-09-04 2013-02-05 Apple Inc. Method and apparatus for providing a user with dynamic sync status
CN101471861B (zh) * 2007-12-27 2012-11-07 华为技术有限公司 提高对等叠加网络服务质量的方法、装置以及对等节点
US10326812B2 (en) 2008-01-16 2019-06-18 Qualcomm Incorporated Data repurposing
US8522231B2 (en) 2008-01-30 2013-08-27 International Business Machines Corporation Updating a plurality of computers
US8744976B2 (en) * 2008-04-28 2014-06-03 Yahoo! Inc. Discovery of friends using social network graph properties
CN101465824B (zh) * 2008-12-29 2012-05-16 腾讯科技(深圳)有限公司 即时通信文件多源传输系统及方法
JP5278059B2 (ja) * 2009-03-13 2013-09-04 ソニー株式会社 情報処理装置及び方法、プログラム、並びに情報処理システム
US20100235878A1 (en) 2009-03-13 2010-09-16 Creative Technology Ltd. Method and system for file distribution
DE102009002007B3 (de) * 2009-03-31 2010-07-01 Robert Bosch Gmbh Netzwerkcontroller in einem Netzwerk, Netzwerk und Routingverfahren für Nachrichten in einem Netzwerk
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
CN101674330A (zh) * 2009-10-09 2010-03-17 中兴通讯股份有限公司 业务交互方法及装置
US20110314070A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Optimization of storage and transmission of data
CN102065289B (zh) * 2010-09-09 2012-10-24 西安电子科技大学 基于网络编码的可靠性视频传输方法及装置
US8635271B1 (en) 2010-10-01 2014-01-21 Google Inc. Method and system for maintaining client cache coherency in a distributed network system
US9064278B2 (en) * 2010-12-30 2015-06-23 Futurewei Technologies, Inc. System for managing, storing and providing shared digital content to users in a user relationship defined group in a multi-platform environment
JP5857451B2 (ja) * 2011-06-03 2016-02-10 富士通株式会社 配信方法及び配信システム
CN103095765B (zh) * 2011-11-03 2015-06-17 陈璧超 对等通信网络及其分发数据内容的方法、通信节点
US9800423B1 (en) 2012-05-14 2017-10-24 Crimson Corporation Determining the status of a node based on a distributed system
US9319474B2 (en) * 2012-12-21 2016-04-19 Qualcomm Incorporated Method and apparatus for content delivery over a broadcast network
US10133754B2 (en) * 2013-02-10 2018-11-20 Qualcomm Incorporated Peer-to-peer picture sharing using custom based rules for minimal power consumption and better user experience
US9020469B2 (en) 2013-06-04 2015-04-28 Rangecast Technologies, Llc Network audio distribution system and method
US10038566B1 (en) 2013-10-23 2018-07-31 Ivanti, Inc. Systems and methods for multicast message routing
US9124507B1 (en) * 2014-04-10 2015-09-01 Level 3 Communications, Llc Proxy of routing protocols to redundant controllers
US10075385B1 (en) 2014-07-16 2018-09-11 Ivanti, Inc. Systems and methods for discovering and downloading configuration files from peer nodes
US10834150B1 (en) * 2014-12-26 2020-11-10 Ivanti, Inc. System and methods for self-organizing multicast
US10180845B1 (en) * 2015-11-13 2019-01-15 Ivanti, Inc. System and methods for network booting
US10116526B2 (en) 2016-05-13 2018-10-30 Ivanti, Inc. Systems and methods for providing a self-electing service
CN109347968B (zh) * 2018-11-07 2021-09-24 网宿科技股份有限公司 一种下载资源文件的数据块的方法、设备和系统
US11102272B2 (en) * 2019-12-19 2021-08-24 Wangsu Science and Technology Co., Ltd. Method and device for downloading resource file
CN111866133B (zh) * 2020-07-20 2023-04-07 成都民航空管科技发展有限公司 一种多源大批量客户端数据同步方法及系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5948070A (en) * 1995-10-31 1999-09-07 Nec Corporation File transfer systems, file transfer methods and storage media for storing file transfer programs
US5802310A (en) * 1996-05-30 1998-09-01 International Business Machines Corporation Systems and methods for data channel queue control in a communications network
US5884031A (en) * 1996-10-01 1999-03-16 Pipe Dream, Inc. Method for connecting client systems into a broadcast network
US5928331A (en) * 1997-10-30 1999-07-27 Matsushita Electric Industrial Co., Ltd. Distributed internet protocol-based real-time multimedia streaming architecture
EP0993163A1 (de) * 1998-10-05 2000-04-12 Backweb Technologies Ltd. System und Verfahren zur verteilten Datencachespeicherung in Kundenendgeräten
US6640241B1 (en) * 1999-07-19 2003-10-28 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a communications manager
US6366907B1 (en) * 1999-12-15 2002-04-02 Napster, Inc. Real-time search engine
US6970937B1 (en) * 2000-06-15 2005-11-29 Abacast, Inc. User-relayed data broadcasting
US6731605B1 (en) * 2000-06-19 2004-05-04 Sharp Laboratories Of America, Inc. Prioritized optimal server side bandwidth allocation in a multimedia session with push and pull sources
US6505200B1 (en) * 2000-07-06 2003-01-07 International Business Machines Corporation Application-independent data synchronization technique
US6665867B1 (en) * 2000-07-06 2003-12-16 International Business Machines Corporation Self-propagating software objects and applications
US7089301B1 (en) * 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
AU2002231199A1 (en) * 2000-12-21 2002-07-01 Aspsecure Corporation Methods for rights enabled peer-to-peer networking
US7275102B2 (en) * 2001-01-22 2007-09-25 Sun Microsystems, Inc. Trust mechanisms for a peer-to-peer network computing platform
US20020168082A1 (en) * 2001-03-07 2002-11-14 Ravi Razdan Real-time, distributed, transactional, hybrid watermarking method to provide trace-ability and copyright protection of digital content in peer-to-peer networks
US7047406B2 (en) * 2001-03-21 2006-05-16 Qurlo Holdings, Inc. Method and system for providing a secure peer-to-peer file delivery network
US20020143959A1 (en) * 2001-04-03 2002-10-03 David El-Baze Method and apparatus for interactive direct peer-to-peer multimedia streaming
US7356487B2 (en) * 2001-06-14 2008-04-08 Qurio Holdings, Inc. Efficient transportation of digital files in a peer-to-peer file delivery network
JP4446368B2 (ja) * 2001-09-14 2010-04-07 富士通株式会社 コラボレーション方法、システム、プログラム及び記録媒体
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7584208B2 (en) * 2002-11-20 2009-09-01 Radar Networks, Inc. Methods and systems for managing offers and requests in a network
US7398261B2 (en) * 2002-11-20 2008-07-08 Radar Networks, Inc. Method and system for managing and tracking semantic objects
US7640267B2 (en) * 2002-11-20 2009-12-29 Radar Networks, Inc. Methods and systems for managing entities in a computing device using semantic objects
US20040260701A1 (en) * 2003-05-27 2004-12-23 Juha Lehikoinen System and method for weblog and sharing in a peer-to-peer environment
US7174385B2 (en) * 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network

Also Published As

Publication number Publication date
EP1427170A3 (de) 2004-10-27
CN100364264C (zh) 2008-01-23
ES2265549T3 (es) 2007-02-16
PL363796A1 (en) 2004-06-14
CN1514578A (zh) 2004-07-21
BR0305326A (pt) 2004-08-31
HK1066951A1 (en) 2005-04-01
DE60306084D1 (de) 2006-07-27
ZA200309086B (en) 2004-07-22
AU2003262470B2 (en) 2009-07-02
ATE330409T1 (de) 2006-07-15
US20040107242A1 (en) 2004-06-03
EP1427170A2 (de) 2004-06-09
RU2003134811A (ru) 2005-05-27
AU2003262470A1 (en) 2004-06-17
CA2450059A1 (en) 2004-06-02
DK1427170T3 (da) 2006-10-16
EP1427170B1 (de) 2006-06-14
KR20040048363A (ko) 2004-06-09
MXPA03010965A (es) 2004-09-10
RU2343536C2 (ru) 2009-01-10
JP2004185618A (ja) 2004-07-02
TW200420068A (en) 2004-10-01

Similar Documents

Publication Publication Date Title
DE60306084T2 (de) Verfahren zur Rundsendung von Inhalten eines Peer-to-Peer Netzes
DE60213297T2 (de) Multimediadatenübertragung durch vorwärtsgerichtetes Streamen
DE60111072T2 (de) Verfahren und vorrichtung zur parallelen nachrichtenübermittlung in echtzeit von dateisegmentierten
DE60214823T2 (de) Verfahren und System für eine verteilte Multicastcachetechnik
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE602006000171T2 (de) Verfahren zum Zuordnen einer Priorität zu einer Datenübertragung in einem Netzwerk und Netzwerksknoten, der das Verfahren verwendet
DE602004010807T2 (de) Techniken zur bereitstellung eines virtuellen arbeitsraums, bestehend aus einer vielzahl elektronischer einrichtungen
DE102012214245B4 (de) Multistream-Datenübertragung
DE60131900T2 (de) Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
DE60216918T2 (de) Verfahren und computersystem zur auswahl eines randservercomputers
US8621099B2 (en) Systems and methods for formatting media content for distribution
DE60211524T2 (de) Verfahren und vorrichtung zur verteilten lieferung von inhalten innerhalb eines computernetzwerkes
DE602004009622T2 (de) Datenübertragung
DE60122691T2 (de) Verfahren und vorrichtung zum verteilten cachen
DE60315558T2 (de) Verteiltes Rechnersystem für Vorrichtungsresourcen basierend auf Identität
DE60210733T2 (de) System und Verfahren zur Überlastregelung in Netzwerken
US20140229582A1 (en) System And Method For Offline Downloading Network Resource Files
US20040249965A1 (en) Node caching system for streaming media applications
DE202010018478U1 (de) Cachen von Informationen
DE602004009176T2 (de) Dienstverwaltung durch verwendung mehrerer dienstort-manager
CN104735044A (zh) 一种流媒体直播方法及系统
CN105872856A (zh) 一种流媒体文件分发方法及系统
Xu et al. Analysis of a hybrid architecture for cost-effective streaming media distribution
KR20070059807A (ko) 피투피 기반의 스트리밍 서비스 제공 방법 및 장치, 이를이용한 스트리밍 서비스 시스템
JP2008259120A (ja) 配信装置、配信システムおよび配信方法

Legal Events

Date Code Title Description
8364 No opposition during term of opposition