DE60209737T2 - Methode und apparat zur weitausgedehnten verteilung von elektronischen inhalten in der peer-to-peer art und weise - Google Patents

Methode und apparat zur weitausgedehnten verteilung von elektronischen inhalten in der peer-to-peer art und weise Download PDF

Info

Publication number
DE60209737T2
DE60209737T2 DE60209737T DE60209737T DE60209737T2 DE 60209737 T2 DE60209737 T2 DE 60209737T2 DE 60209737 T DE60209737 T DE 60209737T DE 60209737 T DE60209737 T DE 60209737T DE 60209737 T2 DE60209737 T2 DE 60209737T2
Authority
DE
Germany
Prior art keywords
peer
server
client
file
file part
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
DE60209737T
Other languages
English (en)
Other versions
DE60209737D1 (de
Inventor
Allen Jeffrey Round Rock JONES
Scott Douglas Austin ROTHERT
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60209737D1 publication Critical patent/DE60209737D1/de
Application granted granted Critical
Publication of DE60209737T2 publication Critical patent/DE60209737T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Technisches Gebiet
  • Die vorliegende Erfindung betrifft Computernetzwerkumgebungen im Allgemeinen und insbesondere die Massenverteilung von Daten.
  • 2. Beschreibung der zugrunde liegenden Technik
  • Die gegenwärtige Technologie für die Massenverteilung von Daten über das Internet umfasst einen oder mehrere „Master"-Server mit dem zur Verfügung stehenden Inhalt und viele weitere „Spiegel"-Sites, auf denen dieselben Daten gespeichert sind. In der Regel ist der Master-Server sehr schnell überlastet und die Endbenutzer sind gezwungen, die Verbindung zu einer Reihe von Spiegel-Sites manuell herzustellen. Jede dieser Spiegel-Sites kann den aktuellen Inhalt enthalten oder auch nicht, weil diese Sites in der Regel mit einer zeitgesteuerten Automatisierung betrieben werden (in der Regel ein für Mitternacht geplanter Cron-Job). Dieses Verteilungsschema ist im Hinblick auf das hohe Anfangsinteresse an bestimmten Daten äußerst problematisch und ineffizient.
  • Daher wäre ein Verfahren wünschenswert, bei dem die Anforderungen an die Master-Server in einer Peer-to-Peer-Form nahtlos auf andere Clients in der Nähe umgeleitet werden, die denselben Inhalt herunterladen.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Die vorliegende Erfindung stellt ein Verfahren, Programm und System für die Informationsverteilung in einem Computernetzwerk bereit. Die Erfindung umfasst das Aufteilen einer elektronischen Datei in eine Vielzahl von Teilen und das anschließende Herunterladen eines Dateiteils auf die erste Clientmaschine, die diesen Dateiteil anfordert. Fordert eine zweite Clientmaschine denselben Dateiteil an, wird die Anforderung auf die erste Clientmaschine umgeleitet. Die erste Clientmaschine fungiert dann als Peer-to-Peer-Server und lädt den angeforderten Dateiteil auf den zweiten Client herunter.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die neuartigen, für die Erfindung charakteristischen Merkmale sind in den beigefügten Ansprüchen dargestellt. Die Erfindung selbst sowie eine bevorzugte Ausführungsform, weitere Aufgaben und Vorteile der Erfindung sind jedoch am besten zu verstehen anhand der folgenden detaillierten Beschreibung einer beispielhaften Ausführungsart in Verbindung mit den beiliegenden Zeichnungen, wobei:
  • 1 eine bildliche Darstellung eines Netzwerkes von Datenverarbeitungssystemen wiedergibt, in denen die vorliegende Erfindung implementiert werden kann;
  • 2 ein Blockdiagramm eines Datenverarbeitungssystems wiedergibt, das gemäß einer bevorzugten Ausführungsart der vorliegenden Erfindung als Server implementiert werden kann;
  • 3 ein Blockdiagramm eines Datenverarbeitungssystems wiedergibt, in das die vorliegende Erfindung implementiert werden kann;
  • 4 ein Flussdiagramm zur Veranschaulichung der Peer-to-Peer-Entlastung gemäß der vorliegenden Erfindung wiedergibt;
  • 5 ein Flussdiagramm zur Veranschaulichung der Umgehung eines ausgefallenen Peer-to-Peer-Servers gemäß der vorliegenden Erfindung wiedergibt; und
  • 6 ein Flussdiagramm zur Veranschaulichung der Sicherheitsprozeduren bei der Peer-to-Peer-Datenverteilung gemäß der vorliegenden Erfindung wiedergibt.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSART
  • 1 ist eine bildliche Darstellung eines Netzwerkes von Datenverarbeitungssystemen, in denen die vorliegende Erfindung implementiert werden kann. Das Datenverarbeitungssystemnetzwerk 100 besteht aus einem Netzwerk von Computern, in denen die vorliegende Erfindung implementiert werden kann. Das Datenverarbeitungssystemnetzwerk 100 enthält ein Netzwerk 102, das als Medium zur Bereitstellung von Kommunikationsverbindungen zwischen verschiedenen untereinander verbundenen Vorrichtungen und Computern im Datenverarbeitungssystemnetzwerk 100 dient. Das Netzwerk 102 kann Verbindungen wie Kabel, drahtlose Verbindungen oder Lichtwellenleiter umfassen.
  • Im dargestellten Beispiel sind ein Server 104 und eine Speichereinheit 106 am Netzwerk 102 angeschlossen. Außerdem sind die Clients 108, 110 und 112 mit dem Netzwerk 102 verbunden. Diese Clients 108, 110 und 112 können zum Beispiel Personal- oder Netzwerkcomputer sein. Im abgebildeten Beispiel stellt der Server 104 für die Clients 108112 Daten wie Boot-Dateien, Betriebssystem-Images und Anwendungen bereit. Die Clients 108, 110 und 112 sind Clients für den Server 104. Das Datenverarbeitungssystemnetzwerk 100 kann weitere Server, Clients und andere, nicht dargestellte Vorrichtungen umfassen. Im abgebildeten Beispiel stellt das Datenverarbeitungssystemnetzwerk 100 das Internet dar, wobei das Netzwerk 102 eine Anzahl weltweiter Netzwerke und Gateways repräsentiert, in denen zur Kommunikation untereinander die Familie der TCP/IP-Protokolle verwendet wird. Das Herzstück des Internets ist ein Backbone aus Hochgeschwindigkeitsleitungen für die Datenkommunikation zwischen Hauptknoten oder Hostcomputern, die aus tausenden von Computersystemen von Unternehmen, staatlichen Stellen und Bildungsinstitutionen sowie anderen Computersystemen bestehen, welche Daten und Nachrichten weiterleiten. Natürlich kann das Datenverarbeitungssystemnetzwerk 100 auch als eine Anzahl unterschiedlicher Netzwerke wie zum Beispiel ein Intranet, ein Local Area Network (LAN) oder ein Wide Area Network (WAN) implementiert werden. 1 ist als Beispiel gedacht und nicht als Einschränkung der vorliegenden Erfindung in Bezug auf die Architektur.
  • In 2 ist ein Blockdiagramm eines Datenverarbeitungssystems gemäß einer bevorzugten Ausführungsart der vorliegenden Erfindung dargestellt, das als Server, wie zum Beispiel der Server 104 in 1, implementiert werden kann. Das Datenverarbeitungssystem 200 kann aus einem an den Systembus 206 angeschlossenen symmetrischen Multiprozessor (SMP) bestehen, der eine Vielzahl von Prozessoren 202 und 204 umfasst. Als Alternative kann auch ein Einzelprozessorsystem verwendet werden. Ebenfalls mit dem Systembus 206 verbunden ist der Speichercontroller/-cache 208, der eine Schnittstelle zum lokalen Speicher 209 bildet. Die E/A-Busbrücke 210 ist am Systembus 206 angeschlossen und bildet eine Schnittstelle zum E/A-Bus 212. Der Speichercontroller/-cache 208 und die E/A-Busbrücke 210 können wie dargestellt zusammengefasst werden.
  • Die an den E/A-Bus 212 angeschlossene PCI-Busbrücke 214 (PCI – Peripheral Component Interconnect) bildet eine Schnittstelle zum lokalen PCI-Bus 216. An den PCI-Bus 216 kann eine Anzahl Modems angeschlossen sein. Typische PCI-Bus-Implementierungen unterstützen vier PCI-Erweiterungssteckplätze oder Anschlüsse für Zusatzkarten (Add-in-Boards). Die Kommunikationsverbindungen zu den Netzwerkcomputern 108 bis 112 in 1 können über das Modem 218 und den Netzwerkadapter 220 hergestellt werden, die über Zusatzkarten an den lokalen PCI-Bus 216 angeschlossen sind.
  • Weitere PCI-Busbrücken 222 und 224 bilden Schnittstellen für weitere PCI-Busse 226 und 228, durch die weitere Modems oder Netzwerkadapter unterstützt werden können. In dieser Form ermöglicht das Datenverarbeitungssystem 200 Verbindungen zu vielen Netzwerkcomputern. Außerdem können ein speicherorientierter Grafikadapter 230 und eine Festplatte 232 direkt oder indirekt wie dargestellt an den E/A-Bus 212 angeschlossen werden.
  • Der Fachmann erkennt, dass die in 2 dargestellte Hardware variieren kann. Zum Beispiel können andere periphere Vorrichtungen, wie etwa optische Laufwerke und Ähnliches, zusätzlich zur oder anstelle der dargestellten Hardware eingesetzt werden. Das abgebildete Beispiel ist nicht als Einschränkung der vorliegenden Erfindung in Bezug auf die Architektur zu verstehen.
  • Bei dem in 2 dargestellten Datenverarbeitungssystem kann es sich zum Beispiel um ein IBM RISC System/6000 handeln, ein Produkt der International Business Machines Corporation in Armonk, New York, auf dem das Betriebssystem Advanced Interactive Executive (AIX) läuft.
  • In 3 ist ein Blockdiagramm eines Datenverarbeitungssystems dargestellt, in das die vorliegende Erfindung implementiert werden kann. Das Datenverarbeitungssystem 300 ist ein Beispiel für einen Client-Computer. In dem Datenverarbeitungssystem 300 wird eine lokale PCI-Busarchitektur eingesetzt. Obwohl im dargestellten Beispiel ein PCI-Bus eingesetzt wird, können auch andere Busarchitekturen wie Accelerated Graphics Port (AGP) oder Industry Standard Architecture (ISA) verwendet werden. Der Prozessor 302 und der Hauptspeicher 304 sind am lokalen PCI-Bus 306 über die PCI-Brücke 308 angeschlossen. Die PCI-Brücke 308 kann auch einen integrierten Speichercontroller und Cache-Speicher für den Prozessor 302 umfassen. Weitere Verbindungen zum lokalen PCI-Bus 306 können über den Direktanschluss von Komponenten oder über Zusatzkarten hergestellt werden. Im dargestellten Beispiel sind der LAN-Adapter 310, der SCSI-Host-Busadapter 312 (SCSI – Small Computer System Interface) und die Buserweiterungs-Schnittstelle 314 mittels Direktanschluss von Komponenten an den lokalen PCI-Bus 306 angeschlossen. Im Gegensatz dazu sind der Audioadapter 316, der Grafikadapter 318 und der Audio/Video-Adapter 319 über Zusatzkarten in den Erweiterungssteckplätzen an den lokalen PCI-Bus 306 angeschlossen. Die Buserweiterungs-Schnittstelle 314 bietet einen Anschluss für einen Tastatur- und Mausadapter 320, ein Modem 322 und einen Zusatzspeicher 324. Der SCSI-Host-Busadapter 312 bietet einen Anschluss für das Festplattenlaufwerk 326, Bandlaufwerk 328, CD-ROM-Laufwerk 330 und DVD-Laufwerk 332. Typische Implementierungen für lokale PCI-Busse unterstützen drei oder vier PCI-Erweiterungssteckplätze oder Anschlüsse für Zusatzkarten.
  • Auf dem Prozessor 302 läuft ein Betriebssystem, das der Koordinierung und Bereitstellung verschiedener Komponenten im Datenverarbeitungssystem 300 in 3 dient. Das Betriebssystem kann ein handelsübliches Betriebssystem wie das von der Microsoft Corporation erhältliche Windows 2000 sein. In Verbindung mit dem Betriebssystem kann ein objektorientiertes Programmiersystem wie zum Beispiel Java laufen und Aufrufe aus Javaprogrammen und -anwendungen, die im Datenverarbeitungssystem 300 ausgeführt werden, an das Betriebssystem übergeben. „Java" ist eine Handelsmarke von Sun Microsystems Inc. Anweisungen für das Betriebssystem, für das objektorientierte Betriebssystem und die Anwendungen oder Programme sind auf Speichervorrichtungen wie dem Festplattenlaufwerk 326 abgelegt und können zur Ausführung durch den Prozessor 302 in den Hauptspeicher 304 geladen werden.
  • Der Fachmann erkennt, dass die in 3 dargestellte Hardware je nach Implementierung variieren kann. Andere interne Hardware oder Peripheriegeräte wie Flash-ROM (oder ein äquivalenter nicht flüchtiger Speicher) oder optische Plattenlaufwerke und Ähnliches können zusätzlich zu der in 3 dargestellten Hardware oder an deren Stelle verwendet werden. Außerdem können die Prozesse der vorliegenden Erfindung auf ein Multiprozessor-Datenverarbeitungssystem angewendet werden.
  • Als weiteres Beispiel kann es sich bei dem Datenverarbeitungssystem 300 um ein Stand-alone-System handeln, welches so konfiguriert ist, dass es ohne eine Schnittstelle für die Netzwerkkommunikation bootfähig ist, unabhängig davon, ob das Datenverarbeitungssystem 300 eine Schnittstelle für die Netzwerkkommunikation umfasst. In einem weiteren Beispiel kann das Datenverarbeitungssystem 300 ein Personal Digital Assistant (PDA) sein, der mit Hilfe von ROM und/oder Flash-ROM als nicht flüchtigem Speicher zur Ablage der Betriebssystemdateien und/oder der vom Benutzer erzeugten Daten konfiguriert wird.
  • Das in 3 dargestellte sowie die oben beschriebenen Beispiele sind nicht als Einschränkungen in Bezug auf die Architektur zu verstehen.
  • Zum Beispiel kann es sich bei dem Datenverarbeitungssystem 300 außer um einen PDA auch um einen Notebook- oder Handheld-Computer handeln. Das Datenverarbeitungssystem 300 kann außerdem ein Kiosk-Terminal oder ein Internetgerät sein.
  • Bei den Ansätzen für die Massenverteilung von Daten nach dem Stand der Technik wird eine direkte Verbindung von einem Client zu einem Server (entweder zum Master-Server oder zu einer Spiegel-Site) geöffnet. Alle Bytes der angeforderten Datei werden dann der Reihe nach vom ersten bis zum letzten heruntergeladen. In einigen Fällen kann der Client bei unterbrochener Verbindung den Download an dem Punkt neu starten, an dem der Fehler auftrat. In allen Fällen geschieht der Download linear und sequenziell entweder auf Byte- oder Paketbasis. In der Regel adressiert der Server eine endliche Anzahl von Anforderungen, bis er aufgrund von Bandbreitengrenzen gesättigt ist.
  • Die vorliegende Erfindung stellt ein Verfahren zur nahtlosen Nutzung der Peer-to-Peer-Technologie bereit, mit deren Hilfe die Master-Server von Anforderungen entlastet und diese Anforderungen auf andere nahe gelegene Clients umgeleitet werden, welche denselben Inhalt herunterladen.
  • In 4 ist ein Flussdiagramm zur Veranschaulichung der Peerto-Peer-Entlastung gemäß der vorliegenden Erfindung dargestellt. Dieser Prozess modifiziert den Ansatz nach dem Stand der Technik, um die Bandbreitenbelegung im Internet insgesamt zu reduzieren. Der Prozess beginnt mit der Aufteilung einer großen Datei in Dateiteile (Schritt 401). Ist die Datei beispielsweise 650 Megabyte (MB) groß, kann die Datei in 650 Dateiteile mit einer Größe von je 1 MB aufgeteilt werden. Diese Dateiteile werden auf verschiedene Clients (Schritt 402) heruntergeladen. Im vorliegenden Beispiel würde dann jeder Client ein 650stel der gesamten Datei besitzen und könnte seinen 1-MB-Dateiteil an einen Peer-Client weitersenden.
  • Fordert ein neuer Client einen Teil der Datei an (Schritt 403), stellt der Server, auf dem sich die vollständige Originaldatei befindet, fest, ob der durch den Client angeforderte Dateiteil bereits auf einen anderen Client heruntergeladen wurde (Schritt 404). Wurde der angeforderte Dateiteil nicht auf einen anderen Client heruntergeladen, erfüllt der Server die Anforderung und lädt den angeforderten Dateiteil auf den neuen Client (Schritt 405) herunter. Wurde der angeforderte Dateiteil bereits auf einen anderen Client heruntergeladen, leitet der Server den neuen anfordernden Client auf einen Peer-to-Peer-Server um (Schritt 406). Diese Umleitung könnte auf der Grundlage einer relativen Netzwerkadresse stattfinden. Zum Beispiel würden alle Anforderungen bezüglich eines Dateiteils in Texas an einen Peer-to-Peer-Server in Texas gehen.
  • Der Effekt beim Einsatz der vorliegenden Erfindung besteht darin, dass mit steigender Anzahl von Benutzern, die auf die Datei zuzugreifen versuchen, die Liste der Peer-to-Peer-Server, welche die Datei spiegeln (und die durch diese Server hinzugefügte potenzielle Bandbreite) ebenfalls mit derselben oder einer potenziell höheren Geschwindigkeit zunimmt. Größe und Anzahl der Teile, in welche eine Datei aufgeteilt wird, können je nach Belastung dynamisch geändert werden. Das bedeutet: Je größer die Belastung, desto kleiner sind die vom Master-Server abgegebenen Dateiteile und desto größer ist die Abhängigkeit von Peer-to-Peer-Servern.
  • Das folgende Beispiel soll die Anwendung der vorliegenden Erfindung weiter veranschaulichen. 650 Clients versuchen, gleichzeitig dieselbe 650-MB-Datei vom selben Master-Server herunterzuladen, und warten in einer Warteschlange darauf, bedient zu werden. Die ersten 65 Maschinen bauen eine Verbindung zum Master-Server auf, erhalten einen Teil der Datei und teilen ihn sich mit mindestens zehn anderen Clientmaschinen. Somit muss der Master-Server nur 65 Downloads durchführen (unter der Annahme, dass keiner der Peer-to-Peer-Server Daten mit anderen teilt, andernfalls ist die Zahl noch geringer), außerdem hat er den Systemaufwand für die Umleitung der anderen Clients auf die richtigen Maschinen. Der Aufwand für die Umleitung der Clients (hinsichtlich CPU-Auslastung und Bandbreite) ist geringer als der Aufwand, 650 Mal dieselbe Datei zu übertragen.
  • In 5 ist ein Flussdiagramm zur Veranschaulichung der Umgehung eines ausgefallenen Peer-to-Peer-Servers gemäß der vorliegenden Erfindung dargestellt. Im obigen Beispiel besteht die Möglichkeit, dass jeder der Peer-to-Peer-Server jederzeit ausfallen kann (schließlich gehören sie den Endbenutzern) (Schritt 501). Im Ergebnis dessen verlieren die Clients ihre Verbindung zum Peer-to-Peer-Server (Schritt 502) und müssen sich wieder neu mit dem Master-Server verbinden (Schritt 503). Der Master-Server leitet die Clients dann auf einen anderen Peer-to-Peer-Server um oder wandelt die Clients selbst in Peer-to-Peer-Server um (Schritt 504). Der Master-Server löscht dann den ausgefallenen Peer-to-Peer-Server aus der Liste der Peer-to-Peer-Spiegel (Schritt 505).
  • In 6 ist ein Flussdiagramm zur Veranschaulichung der Sicherheitsprozeduren bei der Peer-to-Peer-Datenverteilung gemäß der vorliegenden Erfindung dargestellt. Aus Sicherheitsgründen kann der Master-Server einen kleinen Auszug der Datei direkt an die Clients senden (Schritt 601). Dies geschieht, damit die Clients exakt mitteilen können, ob einer der Peer-to-Peer-Server seinen jeweiligen Dateiteil verfälscht hat (Schritt 602). Ein Auszug besteht in der Regel aus einer Gruppe von Prüfbytes wie dem Cyclic Redundancy Check (CRC), die für einen Datenblock eindeutig sind. Als vereinfachtes Beispiel könnte eine Textfolge wie „this is my happy string" einen CRC-Wert von 14 haben. Dies ist ein Einweg-Algorithmus, der in praktisch eindeutiger Weise die Intaktheit der Daten überprüft. In Weiterführung des obigen Beispiels könnte ein Server/Peer zuerst den CRC und dann „this is my happy string" senden, und der Client würde den CRC für die Zeichenkette vergleichen und überprüfen, ob die Zeichenkette erfolgreich übertragen wurde.
  • Wird eine ganze Datei auf einmal gesendet, braucht der Server/Peer für die ganze Datei nur einen einzigen Auszug zu senden, weil es sich um eine sehr feine Granularität handelt. Der Client empfängt die Datei entweder ganz oder gar nicht. Werden hingegen Teile einer Datei übertragen, muss zur Überprüfung jedes Teils ein separater Auszug gesendet werden (im Gegensatz zu einem einzigen Auszug für die ganze Datei). Außerdem ist die Überprüfung jedes Dateiteils bei großen Dateien effektiver, weil die Wahrscheinlichkeit, eine eindeutige Zahl zu erhalten, umso geringer und die Wahrscheinlichkeit unerkannter Probleme umso größer ist, je höher das Verhältnis von Daten zu Auszug (d. h. ein Auszug für die ganze Datei) ist.
  • Wenn ein Peer unerwünschte Daten (z. B. einen Computervirus) weitergibt, entspricht der Datenauszug nicht dem Datenauszug vom Master-Server und der Client erkennt, dass er die gefälschten Daten löschen muss. Wurde ein Dateiteil verfälscht, nimmt der empfangende Client Kontakt mit dem Master-Server auf, der dann die Verbindung zu dem Daten verfälschenden Peer-to-Peer-Server unterbricht (Schritt 603). Außerdem könnten vom Master für jeden Dateiteil Auszüge an den Client gesendet werden, sodass der Client feststellen kann, welcher Teil der Datei erneut übertragen werden muss (Schritt 604). Der Master-Server kann dann den erforderlichen Dateiteil erneut senden (Schritt 605). Es wird außerdem vorgeschlagen, in dem Auszug der gesamten Datei Informationen über den Server zu senden. Auf diese Weise wäre es möglich, ungeachtet der Anzahl der an dem Transfer beteiligten Peer-to-Peer-Server sofort die Herkunft der illegal verteilten Materialien zu bestimmen.
  • Es ist anzumerken, dass, obwohl die vorliegende Erfindung im Kontext eines voll funktionierenden Datenverarbeitungssystems beschrieben wurde, der Fachmann erkennt, dass die Prozesse der vorliegenden Erfindung in Form eines computerlesbaren Mediums von Anweisungen und in einer Vielzahl von Formen verteilt werden können und dass die vorliegende Erfindung anwendbar ist ungeachtet der spezifischen Art der Signalübertragungsmedien, die tatsächlich für die Durchführung der Verteilung eingesetzt werden. Beispiele für computerlesbare Medien umfassen Aufzeichnungsmedien wie Disketten, Festplatten, Arbeitsspeicher (RAMs), CD-ROMs und DVD-ROMs sowie Übertragungsmedien wie digitale und analoge Datenübertragungsverbindungen, verdrahtete oder drahtlose Übertragungsverbindungen, bei denen Übertragungsformen wie zum Beispiel Hochfrequenz und Lichtwellen verwendet werden. Die computerlesbaren Medien können in Form codierter Formate vorliegen, die für die jeweilige Verwendung in einem bestimmten Datenverarbeitungssystem decodiert werden.
  • Die Beschreibung der vorliegenden Erfindung ist zur Veranschaulichung und Erläuterung gedacht und in der offenbarten Form nicht als erschöpfend oder einschränkend in Bezug auf die Erfindung anzusehen. Für den Fachmann sind viele Modifikationen und Variationen erkennbar. Die Ausführungsart wurde ausgewählt und beschrieben, um die Prinzipien der Erfindung und die praktische Anwendung bestmöglich zu erläutern sowie den Fachmann in die Lage zu versetzen, die Erfindung in Bezug auf verschiedene Ausführungsarten mit verschiedenen Modifikationen und deren Eignung für eine bestimmte, in Erwägung gezogene Verwendung zu verstehen.

Claims (6)

  1. Verfahren für das Verteilen von in Form elektronischer Dateien vorliegenden Informationen in einem Computernetzwerk, das einen Server und eine Vielzahl von Clients umfasst, von denen einige oder alle als Peer-to-Peer-Server für den parallelen Download von Informationen nutzbar sind, wobei das Verfahren folgende Schritte umfasst: Aufteilen (Schritt 401) einer elektronischen Datei durch den Server in eine Vielzahl von Dateiteilen; Empfangen (Schritt 403) einer Anforderung eines Dateiteils von einem Client durch den Server; Herunterladen (Schritt 405) des Dateiteils auf den Client durch den Server, falls der Dateiteil nicht auf einem Peer-to-Peer-Server zur Verfügung steht ist (Schritt 404); Umleiten (Schritt 406) der Anforderung des Clients durch den Server auf einen Peer-to-Peer-Server, auf welchem der Dateiteil zur Verfügung steht (Schritt 404); Pflegen einer Liste von Peer-to-Peer-Spiegeln durch den Server, in welcher die am Netzwerk angeschlossenen Peer-to-Peer-Server enthalten sind; Empfangen (Schritt 503) einer Meldung von einem Client durch den Server, dass der Client von einem ausgefallenen Peer-to-Peer-Server (Schritt 501) ein Dateiteil nicht empfangen kann (Schritt 502); Löschen (Schritt 505) des ausgefallenen Peer-to-Peer-Servers aus der Liste der Spiegel durch den Server; Umleiten des Clients (Schritt 504) auf einen anderen Peer-to-Peer-Server durch den Server oder Herunterladen des Dateiteils auf den Client durch den Server.
  2. Verfahren nach Anspruch 1, welches des Weiteren umfasst: Senden (Schritt 601) eines Auszugs für einen Dateiteil durch den Server an jeden Client, der diesen Dateiteil empfangen hat; Empfangen (Schritt 602) einer Nachricht von einem Client durch den Server, wobei in der Nachricht mitgeteilt wird, dass ein Peer-to-Peer-Server einen Dateiteil verfälscht hat, das heißt, dass der vom Client berechnete Auszug für den empfangenen Dateiteil nicht dem vom Server empfangenen Auszug entspricht; Unterbrechen (Schritt 603) der Verbindung zu dem für das Verfälschen der Datei verantwortlichen Peer-to-Peer-Server durch den Server; und erneutes Übertragen (Schritt 605) des Dateiteils an den Client durch den Server, wobei der erneut übertragene Dateiteil frei von jeglichem verfälschten Inhalt ist.
  3. Verfahren nach Anspruch 1 oder 2, welches des Weiteren umfasst, dass der Server: jeden Client, der einen Dateiteil heruntergeladen hat, in einen Peer-to-Peer-Server umwandelt.
  4. Vorrichtung für das Verteilen von in Form elektronischer Dateien vorliegenden Informationen in einem Computernetzwerk, die einen Server und eine Vielzahl von Clients umfasst, von denen einige oder alle als Peer-to-Peer-Server für den parallelen Download von Informationen nutzbar sind, wobei der Server Folgendes umfasst: eine Aufteilungskomponente, die eine elektronische Datei in eine Vielzahl von Teilen aufteilt; einen Empfänger, der eine Anforderung eines Dateiteils von einem Client empfängt; eine Kommunikationskomponente, welche den angeforderten Dateiteil auf den Client herunterlädt, falls der Dateiteil nicht auf einem Peer-to-Peer-Server zur Verfügung steht; eine Umleitungskomponente, welche die Anforderung eines Clients auf einen Peer-to-Peer-Server umleitet, auf welchem der Dateiteil zur Verfügung steht; Speichermittel für das Speichern einer Liste von Peer-to-Peer-Spiegeln, welche die am Netzwerk angeschlossenen Peer-to-Peer-Server enthält; eine Konnektivitätskomponente, welche Peer-to-Peer-Server, die nicht mehr am Netzwerk angeschlossen sind, aus der Liste der Peer-to-Peer-Spiegel löscht.
  5. Computerprogramm, welches Softwarecodeteile umfasst, die so angepasst sind, dass sie, wenn das Programm auf einem Computersystem läuft, alle Schritte eines Verfahrens nach einem der Ansprüche 1 bis 3 durchführen.
  6. Computerprogramm nach Anspruch 5, welches auf einem computerlesbaren Medium gespeichert ist.
DE60209737T 2001-06-25 2002-06-11 Methode und apparat zur weitausgedehnten verteilung von elektronischen inhalten in der peer-to-peer art und weise Expired - Lifetime DE60209737T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US888473 2001-06-25
US09/888,473 US20020198930A1 (en) 2001-06-25 2001-06-25 Method and apparatus for wide-spread distribution of electronic content in a peer to peer fashion
PCT/EP2002/006374 WO2003001448A2 (en) 2001-06-25 2002-06-11 Method and apparatus for wide-spread distribution of electronic content in a peer to peer fashion

Publications (2)

Publication Number Publication Date
DE60209737D1 DE60209737D1 (de) 2006-05-04
DE60209737T2 true DE60209737T2 (de) 2006-11-02

Family

ID=25393233

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60209737T Expired - Lifetime DE60209737T2 (de) 2001-06-25 2002-06-11 Methode und apparat zur weitausgedehnten verteilung von elektronischen inhalten in der peer-to-peer art und weise

Country Status (11)

Country Link
US (1) US20020198930A1 (de)
EP (1) EP1402364B1 (de)
JP (1) JP3962373B2 (de)
KR (1) KR100639021B1 (de)
CN (1) CN1284081C (de)
AT (1) ATE320040T1 (de)
CA (1) CA2447390A1 (de)
DE (1) DE60209737T2 (de)
IL (2) IL159567A0 (de)
TW (1) TWI261172B (de)
WO (1) WO2003001448A2 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458754B2 (en) 2001-01-22 2013-06-04 Sony Computer Entertainment Inc. Method and system for providing instant start multimedia content
US20020138576A1 (en) * 2001-03-21 2002-09-26 Schleicher Jorg Gregor Method and system for generating revenue in a peer-to-peer file delivery network
US8041803B2 (en) * 2001-09-26 2011-10-18 Qurio Holdings, Inc. Method and system for delivering files in digital file marketplace
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US8239446B2 (en) * 2003-11-19 2012-08-07 Sony Computer Entertainment America Llc Content distribution architecture
US7426574B2 (en) * 2003-12-16 2008-09-16 Trend Micro Incorporated Technique for intercepting data in a peer-to-peer network
US7533415B2 (en) * 2004-04-21 2009-05-12 Trend Micro Incorporated Method and apparatus for controlling traffic in a computer network
CN100433619C (zh) * 2004-07-23 2008-11-12 腾讯科技(深圳)有限公司 一种数据下载方法和系统
CN100469002C (zh) * 2005-08-09 2009-03-11 张永敏 数据分块传输方法及装置
CN100446567C (zh) * 2005-10-25 2008-12-24 北京影立驰技术有限公司 在信息家电中实现p2p流播放的装置和方法
US7761503B2 (en) * 2006-01-06 2010-07-20 Microsoft Corporation Peer distribution point feature for system management server
US7970835B2 (en) * 2006-04-04 2011-06-28 Xerox Corporation Peer-to-peer file sharing system and method using downloadable data segments
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
KR100824030B1 (ko) * 2006-09-22 2008-04-21 주식회사 카뮤즈 파일 전송 시스템과 그 전송 방법 및 이를 기록한 기록매체
EP1936497A3 (de) * 2006-12-20 2009-04-08 NCR Corporation Automatisierte weiträumige Softwareverteilung mit reduzierten Anforderungen an die Netzwerkbandbreite
AU2008262281B2 (en) * 2007-06-11 2012-06-21 Kroll Information Assurance, Llc System and method for advertising on a peer-to-peer network
WO2009032710A2 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Filing system and method for data files stored in a distributed communications network
WO2009030643A2 (en) * 2007-09-06 2009-03-12 Edgeware Ab An apparatus and a method for data streaming applications
US9483405B2 (en) 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
CN101534241B (zh) * 2008-03-14 2012-07-04 华为技术有限公司 一种减轻网络流量的方法、系统及一种会话控制单元
US20090327079A1 (en) * 2008-06-25 2009-12-31 Cnet Networks, Inc. System and method for a delivery network architecture
JP5045594B2 (ja) * 2008-07-25 2012-10-10 富士通株式会社 管理装置、管理方法、およびプログラム
JP2010239212A (ja) * 2009-03-30 2010-10-21 Toshiba Corp 通信装置
EP2252031A1 (de) * 2009-05-15 2010-11-17 Thomson Licensing Vorrichtung und Verfahren zur Steuerung der Verbreitung von Daten durch Übertragung von Reihen von Befehlen zwischen Peers mit drahtlosen Kommunikationskapazitäten
US8266310B2 (en) * 2009-07-17 2012-09-11 Microsoft Corporation Enabling peer-to-peer content retrieval in HTTP
US8126987B2 (en) 2009-11-16 2012-02-28 Sony Computer Entertainment Inc. Mediation of content-related services
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
CA2926664A1 (en) * 2015-04-10 2016-10-10 Polyrap Pavement Systems Ltd. Method of strengthening an existing infrastructure using sprayed-fiber reinforced polymer composite
CN109002301A (zh) * 2018-08-02 2018-12-14 合肥联宝信息技术有限公司 一种软件安装方法及系统
CN108900638A (zh) * 2018-08-08 2018-11-27 陈若天 一种在不中断并发异步连接的情况下确保全带宽使用的方法

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08329021A (ja) * 1995-03-30 1996-12-13 Mitsubishi Electric Corp クライアントサーバシステム
EP2270687A2 (de) * 1995-04-11 2011-01-05 Kinetech, Inc. Identifizierung von Daten in einem Datenverarbeitungssystem
US5828838A (en) * 1996-06-20 1998-10-27 Intel Corporation Method and apparatus for conducting multi-point electronic conferences
US6381632B1 (en) * 1996-09-10 2002-04-30 Youpowered, Inc. Method and apparatus for tracking network usage
JP4683723B2 (ja) * 1997-11-13 2011-05-18 エイチ.スペース データ サービシズ エルエルシー ファイル転送システム
DE19807076A1 (de) * 1998-02-20 1999-08-26 Cit Alcatel Datenbereitstellungsystem
US6888929B1 (en) * 1999-08-24 2005-05-03 Microstrategy, Inc. Revenue generation method for use with voice network access provider system and method
US6675205B2 (en) * 1999-10-14 2004-01-06 Arcessa, Inc. Peer-to-peer automated anonymous asynchronous file sharing
US6339785B1 (en) * 1999-11-24 2002-01-15 Idan Feigenbaum Multi-server file download
US6742023B1 (en) * 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
EP1249102A2 (de) * 2000-01-14 2002-10-16 Qariba Limited Ressourcenzuweisung
US20010037311A1 (en) * 2000-02-18 2001-11-01 Mccoy James Efficient internet service cost recovery system and method
US20020133593A1 (en) * 2000-03-03 2002-09-19 Johnson Scott C. Systems and methods for the deterministic management of information
US20030236837A1 (en) * 2000-03-03 2003-12-25 Johnson Scott C. Content delivery system providing accelerate content delivery
US20030236919A1 (en) * 2000-03-03 2003-12-25 Johnson Scott C. Network connected computing system
US20020174227A1 (en) * 2000-03-03 2002-11-21 Hartsell Neal D. Systems and methods for prioritization in information management environments
US7024466B2 (en) * 2000-04-07 2006-04-04 Movielink, Llc Network configured for delivery of content for download to a recipient
IL135555A0 (en) * 2000-04-09 2001-05-20 Vidius Inc Preventing unauthorized access to data sent via computer networks
US7096194B2 (en) * 2000-04-13 2006-08-22 Blake Johnson Dynamic determination of ownership interest based on contribution
US20020049760A1 (en) * 2000-06-16 2002-04-25 Flycode, Inc. Technique for accessing information in a peer-to-peer network
US20020078461A1 (en) * 2000-12-14 2002-06-20 Boykin Patrict Oscar Incasting for downloading files on distributed networks
US7203741B2 (en) * 2000-10-12 2007-04-10 Peerapp Ltd. Method and system for accelerating receipt of data in a client-to-client network
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
WO2002039323A2 (en) * 2000-10-26 2002-05-16 Prismedia Networks, Inc. Method and apparatus for real-time parallel delivery of segments of a large payload file
US7155487B2 (en) * 2000-11-30 2006-12-26 Intel Corporation Method, system and article of manufacture for data distribution over a network
US7277950B1 (en) * 2000-12-29 2007-10-02 Swarmcast, Inc. Packet transfer mechanism over a peer to peer network
WO2002076003A2 (en) * 2001-03-19 2002-09-26 Imesh Ltd. System and method for peer-to-peer file exchange mechanism from multiple sources
US8156223B2 (en) * 2001-03-20 2012-04-10 Microsoft Corporation Distribution of binary executables and content from peer locations/machines
WO2002075622A2 (en) * 2001-03-20 2002-09-26 Abraham Blau System and method for item exchange
US7047406B2 (en) * 2001-03-21 2006-05-16 Qurlo Holdings, Inc. Method and system for providing a secure peer-to-peer file delivery network
US20020138576A1 (en) * 2001-03-21 2002-09-26 Schleicher Jorg Gregor Method and system for generating revenue in a peer-to-peer file delivery network
US20020138552A1 (en) * 2001-03-21 2002-09-26 Debruine Timothy S. Method and system for optimizing private network file transfers in a public peer-to-peer network
US7209973B2 (en) * 2001-04-09 2007-04-24 Swsoft Holdings, Ltd. Distributed network data storage system and method
US20030208400A1 (en) * 2001-04-25 2003-11-06 Jeff Kuo Incentive mechanism for encouraging adoption and use
US20020178255A1 (en) * 2001-05-16 2002-11-28 John Hobart Incentive program for a peer-to-peer network
US7272645B2 (en) * 2001-05-25 2007-09-18 Sbc Technology Resources, Inc. Method of improving the reliability of peer-to-peer network downloads
US8429221B2 (en) * 2001-12-13 2013-04-23 Rockstar Consortium Us Lp Content request routing method
US7090487B2 (en) * 2002-01-22 2006-08-15 Catacel Corp. Catalytic combustor having high cell density
US20040088380A1 (en) * 2002-03-12 2004-05-06 Chung Randall M. Splitting and redundant storage on multiple servers
US8799501B2 (en) * 2002-04-30 2014-08-05 Hewlett-Packard Development Company, L. P. System and method for anonymously sharing and scoring information pointers, within a system for harvesting community knowledge

Also Published As

Publication number Publication date
KR20040007602A (ko) 2004-01-24
ATE320040T1 (de) 2006-03-15
KR100639021B1 (ko) 2006-10-25
EP1402364A2 (de) 2004-03-31
WO2003001448A2 (en) 2003-01-03
JP2004536393A (ja) 2004-12-02
WO2003001448A3 (en) 2004-01-29
JP3962373B2 (ja) 2007-08-22
IL159567A0 (en) 2004-06-01
TWI261172B (en) 2006-09-01
DE60209737D1 (de) 2006-05-04
CA2447390A1 (en) 2003-01-03
CN1284081C (zh) 2006-11-08
CN1520552A (zh) 2004-08-11
US20020198930A1 (en) 2002-12-26
IL159567A (en) 2009-11-18
EP1402364B1 (de) 2006-03-08

Similar Documents

Publication Publication Date Title
DE60209737T2 (de) Methode und apparat zur weitausgedehnten verteilung von elektronischen inhalten in der peer-to-peer art und weise
DE69728178T2 (de) Vorrichtung und verfahren zur fernen datenrückgewinnung
DE69735866T2 (de) Vorrichtung und Verfahren zur Erzeugung von voraussagbaren Antworten
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
US9298707B1 (en) Efficient data storage and retrieval for backup systems
US6892231B2 (en) Method and apparatus for verifying the contents of a global configuration file
US9122635B1 (en) Efficient data backup with change tracking
DE112005001364T5 (de) Verarbeiten von Empfangsprotokolldateneinheiten
US20090228530A1 (en) Separating file data streams to enhance progressive incremental processing
DE112008004014T5 (de) Analysieren von Serverkopien von Clientdateien
US9940331B1 (en) Proactive scavenging of file system snaps
CN109284453B (zh) 基于pdf文档的数据下载方法及装置、存储介质、终端
DE112018000227B4 (de) Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk
WO2006038987A3 (en) A method and apparatus for assigning access control levels in providing access to networked content files
DE112017002497T5 (de) Systeme und verfahren zur aggregation von cloud-speicher
US11500813B2 (en) Instant replay of a file to a cloud tier on a deduplication file system
US7860989B2 (en) Efficient transformation of interchange format messages
US20230059752A1 (en) Parallel restore of a large object
US20120005162A1 (en) Managing Copies of Data Structures in File Systems
US10635128B1 (en) Storing backup data using snapshots
US20140201158A1 (en) Methods for preserving generation data set sequences
US11336750B1 (en) Remote procedure calls that offload search pattern matching from clients to servers
US11726851B2 (en) Storage management system and method
US20040267827A1 (en) Method, apparatus, and program for maintaining quota information within a file system
US11841775B2 (en) File restore performance using adaptive prefetching and DDBoost application programming interfaces

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)