DE60301611T2 - Wegoptimierer für gleichrangige netzwerke - Google Patents

Wegoptimierer für gleichrangige netzwerke Download PDF

Info

Publication number
DE60301611T2
DE60301611T2 DE60301611T DE60301611T DE60301611T2 DE 60301611 T2 DE60301611 T2 DE 60301611T2 DE 60301611 T DE60301611 T DE 60301611T DE 60301611 T DE60301611 T DE 60301611T DE 60301611 T2 DE60301611 T2 DE 60301611T2
Authority
DE
Germany
Prior art keywords
peer
message
network
node
optimizer
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
DE60301611T
Other languages
English (en)
Other versions
DE60301611D1 (de
Inventor
Don Bowman
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.)
Sandvine Inc ULC
Original Assignee
Sandvine Inc ULC
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 Sandvine Inc ULC filed Critical Sandvine Inc ULC
Application granted granted Critical
Publication of DE60301611D1 publication Critical patent/DE60301611D1/de
Publication of DE60301611T2 publication Critical patent/DE60301611T2/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
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • 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/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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]
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1063Discovery through centralising entities
    • 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/1072Discovery involving ranked list compilation of candidate 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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf die Bereitstellung eines Peer-zu-Peer-Pfadoptimierers (PPO). Ein solcher Optimierer kann verwendet werden, um Peer-zu-Peer-Netzwerknachrichten zu untersuchen und diese dynamisch und transparent auf einen kostengünstigen Pfad umzuleiten.
  • HINTERGRUND DER ERFINDUNG
  • Der Peer-zu-Peer-(P2P)-Netzwerkbetrieb hat sich als eine beliebte Form des Austauschs von Daten, wie z. B. von Spielfilmen oder Musik, zwischen Individuen unter Verwendung des Internets herausgebildet. In einem P2P-Netzwerk hat jeder Computer im Netzwerk die gleichen Zuständigkeiten wie jeder der anderen, d. h. er ist ein "Gleichgestellter" (peer). Viele Variationen von P2P-Netzwerken wurden erzeugt, wobei derzeit die am meisten vorherrschenden sind: Napster, Kazaa und Gnutella. Die Verwendung von P2P zum Übertragen großer Mengen an Multimediadaten, wie z. B. Spielfilmen oder Musik, hat die auf dem Internet übermittelte Informationsmenge deutlich erhöht.
  • P2P hat zu einem erhöhten finanziellen Druck auf die Netzwerkdienstanbieter geführt. Ein Netzwerkdienstanbieter ist eine Körperschaft, die eine Gruppe von Computern oder Knoten pflegt, die ein Netzwerg bilden. Beispiele von Netzwerken umfassen ein Netzwerk, das von einem Internetdienstanbieter (ISP) kontrolliert wird, ein Unternehmensnetzwerk oder ein Universitätsnetzwerk, sind jedoch nicht hierauf beschränkt.
  • Ein Netzwerkdienstanbieter muss typischerweise für den Verkehr zu und von seinem Netzwerk ein Entgeld bezahlen.
  • Bei der gegebenen Popularität des P2P-Netzwerkbetriebs ist es für irgendeinen Netzwerkdienstanbieter schwierig, P2P-Verkehr zu blockieren. Dem Netzwerkdienstanbieter bleiben wenige Wahlmöglichkeiten, nämlich:
    • a) Dienste mit abgestufter Bandbreite, und die Hoffnung, dass die Benutzer für zusätzliche Bandbreite bezahlen werden, oder
    • b) Beschneiden der für P2P-Anwendungen verfügbaren Bandbreite, was in der Benutzerbasis Unzufriedenheit hervorrufen kann.
  • Es besteht daher Bedarf an einem alternativen Lösungsansatz, der einem Netzwerkdienstanbieter erlaubt, P2P-Verkehr durch sein Netzwerk effektiv zu beschränken, während die bestehende Leistungsfähigkeit für den Benutzer aufrechterhalten oder verbessert wird. Die vorliegende Erfindung zielt auf diesen Bedarf.
  • WO 02/15035 offenbart eine Anordnung zum intelligenten Umleiten einer Suche eines Peer-zu-Peer-Netzwerks, in der ein Benutzer, der eine Suche durchführt, beim Auswählen eines Hosts unterstützt wird, der wahrscheinlich schnelle, bevorzugte Ergebnisse für den Benutzer zurückgibt.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Die vorliegende Erfindung zielt auf einen Peer-zu-Peer-Optimierer, wie in Anspruch 1 ausgeführt ist. Der Optimierer untersucht Peer-zu-Peer-Nachrichten zwischen Knoten innerhalb von Netzwerken, die mit dem Optimierer verbunden sind, zum Zweck der Optimierung des Verhaltens auf jedem der Netzwerke, und insbesondere zum Zweck der Bestimmung eines kostengünstigen Pfades für jede Peer-zu-Peer-Nachricht.
  • Die vorliegende Erfindung zielt ferner auf einen entsprechenden Prozess und ein entsprechendes computerlesbares Medium.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Für ein besseres Verständnis der vorliegenden Erfindung, und um deutlicher zu zeigen, wie diese umgesetzt werden kann, wird im Folgenden lediglich beispielhaft auf die beigefügten Zeichnung Bezug genommen, in welchen:
  • 1 ein Blockdiagramm von Beispielnetzwerken ist, die für die Verbindung mit einem Peer-zu-Peer-Optimierer der vorliegenden Erfindung geeignet sind;
  • 2 ein Blockdiagramm mehrerer Knoten ist, die mit einem PPO verbunden sind;
  • 3 ein Blockdiagramm eines ISP-Systems ist;
  • 4 ein Blockdiagramm eines zentralisierten Server-Netzwerks ist;
  • 5 ein Blockdiagramm eines zentralisierten Server-Netzwerks ist, das einen PPO verwendet;
  • 6 ein Blockdiagramm eines dezentralisierten Server-Netzwerks ist;
  • 7 ein Blockdiagramm eines dezentralisierten P2P-Netzwerks ist, das einen PPO verwendet;
  • 8 ein Blockdiagramm eines Hybrid-P2P-Netzwerks ist;
  • 9 ein Blockdiagramm eines Hybrid-P2P-Netzwerks ist, das einen PPO verwendet;
  • 10 ein Blockdiagramm eines PPO ist;
  • 11 ein logisches Flussdiagramm ist, das die Verarbeitung einer Ping-Nachricht zeigt;
  • 12 ein logisches Flussdiagramm ist, das die Verarbeitung einer Pong-Nachricht zeigt;
  • 13 ein logisches Flussdiagramm ist, das die Verarbeitung einer Anfragenachricht zeigt;
  • 14 ein logisches Flussdiagramm ist, das die Verarbeitung einer Anfragetreffernachricht zeigt; und
  • 15 ein logisches Flussdiagramm ist, das die Verarbeitung einer Verbindungsanforderung zeigt.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • 1 ist ein Blockdiagramm von Netzwerken, die mit einem Peer-zu-Peer-Optimierer der vorliegenden Erfindung verbunden sind. Der Peer-zu-Peer-Optimierer (PPO) 10 überwacht den gesamten P2P-Verkehr zwischen mehreren Netzwerken 12. Beispiele von Netzwerken 12 umfassen ein von einem ISP kontrolliertes Netzwerk, ein Unternehmensnetzwerk oder ein Universitätsnetzwerk, sind jedoch nicht hierauf beschränkt. Die Netzwerke 12 wären typischerweise über das Internet mit dem PPO 10 verbunden, jedoch ist dies keine Notwendigkeit für die vorliegende Erfindung. Jedes beliebige Netzwerk 12, das P2P-Verkehr bereitstellen oder anfordern kann, kann den PPO 10 nutzen.
  • Um die Kosten des P2P-Verkehrs zu minimieren, nutzt das Netzwerk 12 den PPO 10, um einen kostengünstigen Pfad für den Austausch von P2P-Daten zwischen den Knoten 14 zu bestimmen. Ein Knoten 14 ist ein beliebiger Computer, der P2P-Daten empfangen oder senden kann.
  • In 2 ist ein Blockdiagramm mehrerer Knoten gezeigt, die mit einem PPO 10 verbunden sind. Jedes Netzwerk 12a und 12b enthält mehrere Knoten 14. Für jeden Knoten 14, der bekannt ist, pflegt der PPO 10 eine Kostenklasse. Die Tabelle 1 zeigt die Kostenklasse für jeden Knoten der 2.
  • Tabelle 1
    Figure 00050001
  • Unter der Annahme, dass eine P2P-Anfrage innerhalb eines einzigen Netzwerks, wie z. B. 12a, bedient werden kann, befinden sich typischerweise die kostengünstigsten Pfade für die P2P-Übertragung innerhalb des Netzwerks 12a. Beispiele wären Verbindungen zu den Knoten 14a und 14b. Dies muss jedoch nicht immer der Fall sein. Zum Beispiel kann eine Anfrage zum Knoten 14d sehr teuer sein, wenn der Knoten 14d, der die Daten enthält, sich innerhalb eines Unternehmens-Intranets einen halben Erdumfang entfernt befindet. In einem solchen Szenario wäre der Knoten 14f innerhalb des Netzwerks 12b, der die benötigten Daten enthält, eine kostengünstigere Wahl.
  • Bei der Bestimmung eines kostengünstigen Pfades für die Lieferung oder den Empfang von P2P-Daten kombiniert der PPO 10 die Kostenklasse jedes Knotens am Endes eines möglichen Datenaustauschs. Diese Kombination führt zu einem Pfadkostenwert. Zum Beispiel kann eine Anfrage vom Knoten 14e nach einer Datei auf dem Knoten 14a zu Pfadkosten von 155 führen. Dieses Beispiel ist eines einer einfachen Addition der Kostenklasse von zwei Knoten, um die Pfadkosten zu bestimmen. Der Erfinder beabsichtigt nicht, die vorliegende Erfindung auf irgendeinen spezifischen Algorithmus zum Erhalten von Pfadkosten zu beschränken. Zum Beispiel kann ein Gewichtungsfaktor auf die Knoten mit einer hohen Kostenklasse angewendet werden, um diese aus der Betrachtung bei der Berechnung von Pfadkosten auszuschließen.
  • In 3 ist ein Blockdiagramm eines ISP-Systems gezeigt. 3 zeigt, wie ein Internetdienstanbieter (ISP) die vorliegende Erfindung nutzen kann. Das Netzwerk 12a ist das von einem ISP gepflegte Netzwerk. Das Netzwerk 12a ist mit mehreren Netzwerken 12b bis 12n über Verbindungsglieder 30b bis 30n verbunden. Typische Netzwerke 12b bis 12n wären über das Internet zugänglich, jedoch können sie eine beliebige Form von Netzwerk sein, das Dateien für P2P-Nachrichtenaustausch enthält. Das Netzwerk 12a umfasst mehrere Knoten 14. P2P-Daten werden zwischen den Knoten 14 innerhalb des Netzwerks 12a und den Knoten innerhalb der Netzwerke 12b bis 12n ausgetauscht. Ein Knoten 14 kann der Computer eines Heimbenutzers, ein Geschäftscomputer oder ein Unternehmens-Server sein, der mit irgendeinem der Netzwerke 12a bis 12n verbunden ist. Wie im aktuellen ISP-Beispiel der 3 gezeigt ist, ist jeder Knoten 14 innerhalb des Netzwerks 12a mit einem Kommunikationsmodul 20 verbunden, das dem Knoten 14 erlaubt, mit dem Netzwerk 12a zu kommunizieren. Das Kommunikationsmodul 20 kann ein Digital-Teilnehmerleitungs-Zugangsmultiplexer (DSLAM) sein, der für Telephonleitungsverbindungen verwendet wird. Das Kommunikationsmodul 20 kann ferner ein Kabel-Modem-Endgerätesystem (CMTS) sein, das für Kabelanschlüsse verwendet wird. Das Kommunikationsmodul 20 kann ferner ein Modul sein, das Einwahlverbindungen, drahtlose Verbindungen oder Faseroptikverbindungen akzeptiert. Das Wesentliche hierbei ist, dass das Kommunikationsmodul 20 einen Knoten 14 mit dem Netzwerk 12a verbindet. Ein Aggregator 22 sammelt die Daten zu und von den Kommunikationsmodulen 20 und ist zu diesem Zweck mit einem Verteilungsrouter 24 verbunden. Der Verteilungsrouter 24 bestimmt, wohin eine Anfrage nach einer Information innerhalb des Netzwerks 12a geleitet werden soll. Der Verteilungsrouter 24 ist mit einem Kernrouter 26, einem oder mehreren Cache-Servern 28 und einem oder mehreren P2P-Pfadoptmierern (PPO) 10 verbunden. Der Kernrouter 26 ist mit den Netzwerken 12b bis 12n typischerweise mittels Vermittlungsträger-(IXC)-Verbindungen 30b bis 30n verbunden. Ein IXC ist eine Telekommunikationsgesellschaft, wie z. B. AT&T. Ein Cache-Server 28 ist eine Ablage von Informationen, die von den Netzwerken 12b bis 12n erhalten werden und auf die von den Knoten 14 häufig zugegriffen wird. Um die Kosten der dauernden Anforderung von Daten von den Netzwerken 12b bis 12n zu vermeiden, kann das Netzwerk 12a häufig nachgefragte Informationen in einem oder mehreren Cache-Speichern 28 speichern. Gewöhnlich wären dies aktuelle Versionen von beliebten Web-Seiten, kann jedoch alle Formen von Daten enthalten. Der Cache 28 kann auch gewöhnlich als eine "Cache-Gruppe" oder ein "Cache-Server" bezeichnet werden.
  • Die vorliegende Erfindung beruht auf dem PPO 10. Der PPO 10 dient dazu, drei Hauptfunktionen bereitzustellen:
    • 1) Reorganisieren der mit dem PPO 10 verbundenen Netzwerke. Dies wird erreicht durch Abfangen aller P2P-Nachrichten und den Versuch, Knoten mit anderen Knoten in derselben Kostenklasse zu verbinden. Dies erlaubt, die Netzwerke auf zwei Wegen zu reorganisieren:
    • a) sie werden flacher, da Knoten mit Knoten unter der Kontrolle eines PPO 10 verbunden werden, so dass ein Baum von Verbindungen zwischen Knoten größtenteils eine Tiefe von 1 aufweist; und
    • b) der PPO 10 versucht, Knoten mit anderen Knoten innerhalb eines Netzwerks zu verbinden, wobei ohne die Verwendung eines PPO 10 die Verbindungen zufällig wären und ein Baum von Verbindungen zwischen Knoten eine unbegrenzte Tiefe aufweisen kann.
    • 2) Reduzieren des Netzwerkverkehrs. Dies wird bewerkstelligt, indem Nachrichten nicht rundfunkartig ausgestrahlt werden, sondern stattdessen dorthin gesendet werden, wo sie hingelangen müssen, oder indem sie verworfen werden, wenn keine Notwendigkeit besteht, diese weiterzusenden.
    • 3) Umleiten von Verkehr auf einen kostengünstigen Pfad.
  • Jede dieser Funktionen wird im Folgenden genauer beschrieben.
  • Obwohl das Beispiel der 3 auf das Netzwerk eines ISP angewendet wird, ist von den Erfindern nicht beabsichtigt, die Verwendung der vorliegenden Erfindung auf ein ISP-Netzwerk zu beschränken. Jedes beliebige Netzwerk, für das eine Körperschaft wünscht, den P2P-Verkehr in einer kostengünstigen Weise zu kontrollieren, kann die vorliegende Erfindung nutzen. Wie oben beschrieben worden ist, wären Beispiele ein Unternehmensnetzwerk oder ein Universitätsnetzwerk oder irgendeine kommerzielle Verwendung eines großen Netzwerks, wie z. B. in der Hotelindustrie.
  • Bevor die Struktur des PPO 10 genauer beschrieben wird, wird zuerst darauf Bezug genommen, wie er in einer Vielfalt von P2P-Modellen genutzt werden kann.
  • In 4 ist ein Blockdiagramm eines zentralisierten Server-Netzwerks allgemein mit 40 bezeichnet. Das Netzwerk 40 ist ein Beispiel eines P2P-Netzwerks der ersten Generation, wie z. B. Napster. Napster ist ein Internet-Dienst, der ursprünglich entwickelt wurde, um den Benutzern zu erlauben, MP3-Musikdateien auszutauschen. Im Netzwerk 40 verbindet ein zentraler Server 42 mehrere Knoten 14 über Verbindungen 44. Die Verbindungen 44 wären typischerweise Verbindungen über das Internet. Ein Knoten 14 sendet eine Anfrage nach einer Datei zum zentralen Server 42 über eine Verbindung 44. Der zentrale Server 42 stellt eine Antwort über die Verbindung 44 zur Verfügung, die angibt, auf welchem Knoten 14 sich die angeforderte Datei befindet. Der zentrale Server 42 enthält im wesentlichen ein Verzeichnis aller Dateien, die für den Zugriff auf allen Knoten 14 verfügbar sind. In Reaktion auf die Antwort richtet der anfragende Knoten 14 eine Verbindung mit seinem Peer-Knoten 14 ein, der die Datei enthält, und fordert eine Kopie der Datei an, wie in der Übertragungsverbindung 46 gezeigt ist.
  • Um zu erläutern, wie 4 die vorliegende Erfindung nutzen kann, wird nun auf 5 Bezug genommen, in der ein Blockdiagramm eines zentralisierten Server-Netzwerks, das einen PPO nutzt, allgemein mit 50 bezeichnet ist. Im Netzwerk 50 untersucht der PPO 10 die zu einem zentralen Server 42 gesendeten Suchanfragen. Wenn der PPO 10 die angeforderte Datei kennt, stellt er dem anfragenden einen kostengünstigen Pfad zu der Datei zur Verfügung. Wenn der PPO 10 die Datei nicht kennt, nutzt er Alternativen, um den Anfragenden zu der Datei zu leiten. Diese Alternativen werden später genauer beschrieben. Bei der Bestimmung, zu welchem Knoten 14 die Anfrage geleitet wird, nutzt der PPO 10 die Kostenklasseninformationen. Kostenklasseninformationen für einen Knoten würden typischerweise durch Maße bestimmt, wie z. B. die Geschwindigkeit der Verbindung zu den Knoten (z. B. Bandbreite und Abstand) und die finanziellen Kosten der Nutzung einer Verbindung zu den Knoten. Kostenklasseninformationen würden typischerweise finanzielle Kosten zum Erhalten einer Datei von einem spezifischen Knoten 14 wiedergeben. Ein Administrator der vorliegenden Erfindung kann seine eigene Kostenklasse für einen Knoten 14 setzen, oder der PPO 10 kann diese mittels Vorgabe setzen oder kann diese dynamisch bestimmen. Unabhängig vom Verfahren der Erstellung der Kostenklasse für einen Knoten besteht das Wesentliche darin, dass jedem Knoten Kosten zugeordnet sind und der PPO 10 diese Informationen nutzt, um einen kostengünstigen Pfad für den Austausch von P2P-Daten bereitzustellen.
  • In 6 ist ein Blockdiagramm eines dezentralisierten Server-Netzwerks allgemein mit 60 bezeichnet. Das Netzwerk 60 nutzt ein verteiltes Modell, bei dem jeder Knoten 14 gleich ist und es keinen zentralen Server 42 wie beim Netzwerk 40 (4) gibt. Das Netzwerk 60 kann als ein P2P-Netzwerk der zweiten Generation betrachtet werden, wobei ein Beispiel hierfür Gnutella wäre. Gnutella stellt einen Dateitauschdienst für viele Typen von Informationen zur Verfügung und ist nicht nur auf den Austausch von Multimediadateien ausgerichtet. Jeder Knoten 14 versucht, ständig eine gewisse Anzahl von Verbindungen 44 zu anderen Knoten 14 aufrechtzuerhalten. Anfragen nach Informationen werden mit einem Lebensdauer-Feld (TTL-Feld) gesendet, welches dekrementiert wird, und dann von jedem Knoten 14 zu allen anderen Knoten 14, mit denen er verbunden ist, weitergeleitet. Wenn der TTL-Wert 0 erreicht, wird die Anfrage verworfen. Dieser Typ von Netzwerk hat gezeigt, dass er signifikante Skalierungsprobleme aufweist, da Anfragen nach Informationen die Netzwerkleistungsfähigkeit beeinträchtigen. Wie beim Netzwerk 40 wird dann, wenn eine angeforderte Datei lokalisiert worden ist, eine direkte Verbindung zwischen zwei Knoten hergestellt, um die angeforderte Datei zu übertragen, wie durch die Übertragungsverbindung 46 gezeigt ist.
  • Bei der vorliegenden Erfindung ist die Topologie des Netzwerks 60 wie in 7 gezeigt rekonfiguriert. 7 ist ein Blockdiagramm eines dezentralisierten P2P-Netzwerks, das den PPO 10 verwendet, und ist allgemein mit 70 bezeichnet. Im Netzwerk 70 wird dann, wenn eine P2P-Kommunikation zwischen Netzwerken 12a und 12b gesendet wird, der PPO 10 dies untersuchen. Der PPO 10 ermittelt anschließend einen kostengünstigen Weg, die Kommunikation zu bewerkstelligen. Es ist nicht die Absicht des Erfinders, die Verwendung der vorliegenden Erfindung nur auf zwei Netzwerke 12a und 12b, wie in 7 gezeigt ist, zu beschränken.
  • In 8 ist ein Blockdiagramm eines Hybrid-P2P-Netzwerks allgemein mit 80 bezeichnet. Diese Netzwerktopologie kann als dritte P2P-Generation bezeichnet werden, bei der bestimmte Knoten als "Superknoten" oder "Ultra-Gleichgestellte" ausgewählt sind und als Verkehrskoordinator für die anderen Knoten dienen. In 8 sind Superknoten mit dem Bezugszeichen 82 bezeichnet und miteinander verbunden. Dieses Modell wird vom P2P-Diensten wie z. B. Fasttrack, Kazaa, Morpheus und Grokster benutzt. Die Superknoten 82 wechseln dynamisch, wenn sich die Bandbreite und die Netzwerktopologie ändern. Jeder Knoten 14 kann ein Superknoten 82 sein.
  • In 9 ist ein Blockdiagramm eines Hybrid-P2P-Netzwerks, das den PPO 10 nutzt, allgemein mit 90 bezeichnet. Im Netzwerk 90 agiert der PPO 10 als ein Superknoten zwischen den Netzwerken 12a und 12b. Alle Knoten innerhalb des Netzwerks 12a sehen den PPO 10 als ihren Superknoten und somit ihren Pfad zum Netzwerk 12b. Die Knoten 14 innerhalb des Netzwerks 12a können auch Superknoten innerhalb des Netzwerks 12a sein (nicht gezeigt).
  • Bezüglich der Topologien der in den 4 bis 9 gezeigten Netzwerke ist es die Absicht des Erfinders, einfach zu zeigen, wie die vorliegende Erfindung in bestehenden P2P-Netzwerken genutzt werden kann. Es ist nicht die Absicht des Erfinders, die vorliegende Erfindung auf die gezeigten Netzwerke zu beschränken, sondern vielmehr, Beispiele für die Vielfalt der vorliegenden Erfindung aufzuzeigen.
  • In 10 ist ein Blockdiagramm eines PPO allgemein mit 10 bezeichnet. Wie Fachleute erkennen können, kann der PPO 10 auf viele verschiedene Weisen implementiert werden. Die Struktur des PPO 10, wie in 10 gezeigt ist, dient nur als Beispiel einer Implementierung, die verwendet werden kann, um P2P-Kommunikationsvorgänge zu untersuchen und zu managen. Im Folgenden werden die Komponenten des in 10 gezeigten PPO 10 genauer beschrieben.
  • Ein Lizenzierungsmodul 102 ist verantwortlich für die Durchsetzung der maximalen Anzahl gleichzeitiger Benutzer des PPO 10, für die der Kunde (z. B. der Besitzer eines PPO 10) eine Lizenzgebühr bezahlt hat. Das Konfigurationsmodul 104 pflegt die Konfiguration des PPO 10, wie z. B. die Teilnetzwerke und IP-Adressen der Knoten, die sich innerhalb eines Netzwerks 12 befinden. Ein Statistikmodul 106 pflegt die Statistik für den PPO 10, wie z. B. die Anzahl der umgeleiteten Dateien und die Anzahl der gleichzeitigen Benutzer. Ein Protokollierungsmodul 108 ist verantwortlich für Protokollierungsfunktionen, wie z. B., wann der PPO 10 hochgefahren oder heruntergefahren wurde, und wann die Anzahl der Lizenzen überschritten wurde. Ein Belastungsausgleicher-Rückmeldungsmodul 110 bietet eine negative Rückmeldungsschleife zu einem externen Belastungsausgleicher, so dass mehrere PPOs unter der Kontrolle eines Kunden den gleichen Verkehr empfangen. Ein WCCP-Modul 112 arbeitet mit dem Cisco-Web-Cache-Communication-Protocol (WCCP), um sicherzustellen, dass ein Router, wie z. B. der Verteilungsrouter 24 der 3, nur P2P-Kommunikationsvorgänge zu einem oder mehreren PPOs 10 sendet. Wie Fachleute erkennen werden, können mehrere Verfahren verwendet werden, um P2P-Verkehr zu einem PPO 10 zu leiten, wie z. B. die Erkennung spezifischer Port-Adressen oder die kontext-sensitive Abtastung von Paketen. WCCP dient nur als ein Beispiel. Ein GUID-Generator 114 erzeugt eine globale eindeutige Kennung für jeden Sender eines P2P-Pakets, um die Möglichkeit einer Zurückführung zum ursprünglichen Sender des Pakets zu vermeiden, und um ferner Nachrichten, die empfangen worden sind, eindeutig zu identifizieren.
  • Eine P2P-Anwendung 116 arbeitet als Steuerprogramm für den PPO 10. Die Anwendung 116 umfasst: ein Route/Pfad-Kostenmodul 118, ein Anfragemodul 120, ein Ping/Pong-Netzwerktrainingsmodul 122, ein Verbindungsmanagermodul 124 und ein Übertragungsmanagermodul 126. Das Route/Pfad-Kostenmodul 118 weist jeder vorgeschlagenen Verbindung auf der Grundlage der Kostenklasse jedes Knotens in der Verbindung Pfadkosten zu.
  • Das Anfragemodul 120 umfasst: ein Ketteneditierabstandsmodul 128, ein Suchzusammenlegungsmodul 130, ein Anfrageroutenplanungs-Logikmodul 132, ein QoS-Modifikationsmodul 134 und ein Inhaltsverzeichnismodul 136.
  • Das Ketteneditierabstandsmodul 128 ermittelt die Ähnlichkeit zwischen dem Namen einer angeforderten Datei und den Dateinamen, die dem PPO 10 bekannt sind. Das Suchzusammenlegungsmodul 130 nutzt das Ketteneditierabstandsmodul 128, um den Namen einer angeforderten Datei unabhängig von der Kostenklasse auf bekannte verfügbare Dateien abzubilden. Das Anfrageroutenplanungs-Logikmodul 132 leitet Anfragen nach einer Datei zu den Knoten, die wahrscheinlich die angeforderte Datei enthalten. Das Modul 132 pflegt eine Liste aller Nachrichten zu und von einem Netzwerk 12. Durch die Pflege einer solchen Liste kann das Modul 132 schnell störende Nachrichten verwerfen, wie z. B. Anfragen nach Daten, die nicht bestätigt worden sind. Das QoS-Modifikationsmodul 134 schreibt die Routenplanungsinformation des Moduls 132 um, um einen vom Route/Pfad-Kostenmodul 118 bestimmten kostengünstigen Pfad auszuwählen. Die Routenplanungsinformation enthält QoS-Parameter, wie z. B. eine angegebene Bandbreite und eine Betriebszeit. Der Zweck des Umschreibens der Routenplanungsinformation besteht darin, dem Anfragenden einen Pfad zu einer Datei oder zu Dateien bereitzustellen, der die kostengünstigste Nutzung der Netzwerkbetriebsmittel bewirkt. Hierdurch kann eine Nachricht umgeleitet werden. Das Inhaltsverzeichnis 136 pflegt ein Verzeichnis des Inhalts, der für einen Zugriff in den Knoten 14 innerhalb des Netzwerks 12 verfügbar ist. Das Inhaltsverzeichnis 136 enthält ferner die Kostenklasse für jeden Knoten, in dem sich der Inhalt befindet. Typischerweise ist ein solcher Inhalt eine Datei, kann jedoch auch Formen von Daten enthalten, wie z. B. Streaming-Medien. Es ist nicht die Absicht des Erfinders, die Verwendung des Ausdrucks "Datei" auf irgendeine Form von P2P-Daten zu beschränken, die vom PPO 10 untersucht oder durch diesen übermittelt werden können.
  • Das Ping/Pong-Netzwerktrainingsmodul 122 dient dazu, auf der Grundlage der durch den PPO 10 von den Knoten 14 empfangenen Ping-Nachrichten den Host-Cache 138 mit IP-Adressen der Knoten 14 zu füllen. Das Ping/Pong-Netzwerktrainingsmodul 122 sendet mehrere Pong-Nachrichten in Reaktion auf eine Ping-Nachricht bei dem Versuch, ein eine Ping-Nachricht sendendes Netzwerk zu trainieren. Pong-Nachrichten werden vom PPO 10 für jeden Knoten 14 gesendet, der die gleiche Kostenklasse wie der Sender des Pings aufweist, den der PPO 10 kennt. Diese Benutzung von mehreren Pong-Nachrichten dient dazu, das Netzwerk, das den Ping gesendet hat, zu trainieren. Dieses Training liefert dem sendenden Netzwerk andere Knoten als diejenigen, für die der PPO 10 den Verkehr zu beschränken wünscht.
  • Wenn eine Verbindung zwischen einem Knoten 14 und dem PPO 10 eingerichtet wird, pflegt der Verbindungsmanager 124 die Verbindung, bis der Knoten 14 die Verbindung verwirft. Ein Verzeichnisabrufmodul 142 ist verantwortlich für das Erlangen der Inhaltsnamen und das Hinzufügen derselben zum Inhaltsverzeichnis 136.
  • Der Übertragungsmanager 126 ist im wesentlichen ein Stellvertreter, der den Austausch von P2P-Daten handhabt. Der Manager 126 nutzt das Abrufumleitungsmodul 144, um eine Anfrage nach einem Inhalt zu einem Knoten mit niedrigeren Pfadkosten umzuleiten. Ein Knoten 14 kann eine Anfrage nach einer spezifischen Datei auf einem weiteren Knoten 14 stellen. Wenn diese Datei über einen kostengünstigeren Pfad verfügbar ist, leitet das Abrufumleitungsmodul 144 die Anfrage stillschweigend zu einem weiteren Knoten mit einem kostengünstigeren Pfad um.
  • Mehrere P2P-protokollspezifische Steuerungsprogramme 146 sind verantwortlich für die Pflege eines spezifischen P2P-Protokolls, z. B. Gnutella oder Fasttrack. Ein Sendesteuerprotokoll-(TCP)-Steuerungsprogramm 148 stellt die Aufrechterhaltung des korrekten TCP-Verhaltens sicher. In ähnlicher Weise dient ein Internetprotokoll-(IP)-Steuerungsprogramm 150 dem selben Zweck für das IP. Es ist nicht die Absicht des Erfinders, die vorliegende Erfindung auf die Verwendung von TCP und IP zu beschränken. Diese dienen lediglich als Beispiel. Wie Fachleute erkennen werden, kann eine beliebige Anzahl von Kommunikationsprotokollen verwendet werden, einschließlich, jedoch nicht hierauf beschränkt, ATM, UDP und Wireless.
  • Ein Abgegrenzte-Dienste-Codepunkt-(DSCP)-Kennzeichnungsmodul 152 nutzt abgegrenzte Dienst (DiffServ oder DS), um die IP-Pakete zu klassifizieren, so dass bestimmte Typen von Paketen Vorrang vor anderen erhalten. Zum Beispiel kann für die Anzahl P2P-Pakete, denen erlaubt wird, ein Netzwerk 12 zu betreten oder zu verlassen, eine Begrenzung verhängt werden. Ein solches Merkmal ist optional, kann jedoch von Netzwerken verwendet werden, die feststellen, das P2P-Daten einen zu großen Anteil ihrer Bandbreite verbrauchen. Wie Fachleute erkennen werden, kann eine beliebige Anzahl von Maßnahmen, wie z. B. das Paketschnüffeln oder die Erkennung spezifischer Port-Adressen, benutzt werden, um P2P-Verkehr zu identifizieren. Es ist nicht die Absicht des Erfinders, die Fähigkeit zur Begrenzung von P2P-Verkehr auf die DSCP-Lösung zu beschränken.
  • Der PPO 10 optimiert das Verhalten zwischen den Netzwerken 12, mit denen er verbunden ist, und innerhalb derselben. Das Verhalten ist die Fähigkeit, Nachrichten zu erzeugen, zu zerstören, zu modifizieren oder zu ignorieren. Das Verhalten optimiert das zukünftige Verhalten jedes Netzwerks 12, nicht nur die aktuelle Nachricht. Ein Beispiel der Erzeugung einer Nachricht ist ein falscher Pong. Ein Beispiel der Zerstörung einer Nachricht ist das Löschen einer Nachricht, die bereits beantwortet ist, oder im Fall von Gnutella einer Nachricht, deren TTL abgelaufen ist. Die Modifikation ist nicht auf das QoS-Modifikationsmodul 134 begrenzt. Zum Beispiel kann das Suchzusammenlegungsmodul 130 Nachrichten modifizieren, um den ähnlichsten Dateinahmen wiederzugeben, der vom Ketteneditierabstandsmodul 128 ermittelt worden ist. Im Fall eines spezifischen Protokolls, wie z. B. Gnutella, kann eine Modifikation das Überschreiben des TTL-Abschnitts der Nachricht beim Weiterleiten der Nachricht enthalten. In ähnlicher Weise kann die GUID für eine Nachricht bei Bedarf verändert werden. Im wesentlichen kann der PPO 10 in Abhängigkeit vom Protokoll Nachrichten nach Bedarf modifizieren, um das Netzwerkverhalten zu optimieren. Ein Beispiel des Ignorierens einer Nachricht besteht darin, eine Anfrage an einen Knoten in einem Netzwerk zu ignorieren, wenn Verkehr von diesem Netzwerk beschränkt worden ist.
  • Damit der PPO 10 P2P-Anfragen untersuchen und bearbeiten kann, muss er eine Vielfalt von P2P-Protokollen kennen. Diese Funktion wird von P2P-protokollspezifischen Steuerungsprogrammen 146 gehandhabt.
  • Als Nächstes wird beispielhaft beschrieben, wie ein P2P-protokollspezifisches Steuerungsprogramm 146 mit dem Gnutella-Protokoll umgehen kann. Es ist nicht die Absicht des Erfinders, die vorliegende Erfindung nur auf die Arbeit mit dem Gnutella-Protokoll zu beschränken, sondern statt-dessen, ein praktisches Beispiel dafür zu geben, wie die vorliegende Erfindung mit P2P-Anfragen umgehen kann.
  • Das Gnutella-Protokoll weist fünf Nachrichtentypen auf, nämlich: Ping, Pong, Anfrage, Anfragetreffer und Anstoß. Wie ein Steuerungsprogramm 146 jede dieser Nachrichten handhabt, ist im folgenden Diagramm 1 gezeigt. Im Diagramm 1 bezieht sich der Ausdruck "interner Knoten" auf einen Knoten 14 innerhalb des Netzwerks 12a des ISP-Beispiels der 3. Der Ausdruck "externer Knoten" bezieht sich auf einen Knoten 14 innerhalb eines Netzwerks 12b bis 12n der 3. Durch die Verwendung der Ausdrucke "interner Knoten" und "externer Knoten" will der Erfinder zeigen, wie der PPO 10 verwendet werden kann, um P2P-Verkehr zwischen Knoten in einem "internen" Netzwerk, wie z. B. einem ISP, und Knoten in einem "externen" Netzwerk, wie z. B. mehreren Orten des Internets, zu untersuchen und umzuleiten.
  • Das Diagramm 1 zeigt, wie der PPO 10 verwendet werden kann, um P2P-Verkehr zwischen Netzwerken zu untersuchen und umzuleiten. In der folgenden Beschreibung des Diagramms 1 empfehlen wir dem Leser, auf die 3 und 10 sowie auf das Diagramm 1 Bezug zu nehmen.
  • Diagramm 1
    Figure 00160001
  • Eine Ping-Nachricht wird verwendet, um zu ermitteln, ob ein Knoten 14 aktiv ist, und hilft dabei, eine Datenbank aktiver Knoten im Host-Cache 138 der 10 einzurichten. Der PPO 10 antwortet auf eine Ping-Nachricht mit einer Pong-Nachricht. Um die Identifizierung eines Knotens 14 innerhalb des Netzwerks 12a zu vermeiden, würde der PPO 10 typischerweise eine verfälschte Pong-Nachricht bereitstellen. Die verfälschte Pong-Nachricht würde die Anzahl der gemeinsam genutzten Dateien und die Datenmenge, die mit dem den Ping-Knoten 14 enthaltenden Netzwerk 12a gemeinsam genutzt wird, sowie die P-Adresse und den Port des gepingten Knotens angeben. In ähnlicher Weise leitet der PPO 10 in diesem Beispiel Pong-Nachrichten nicht weiter, jedoch empfängt er diese und fügt diese zu der Liste von Knoten im Host-Cache 138, von denen er Daten erhalten kann, hinzu.
  • Eine Anfragenachricht ist eine Suchnachricht, die ein Fragment eines Dateinamens enthält, mit anderen Worten eine Anfrage nach Daten. Im vorliegenden Beispiel werden ankommende Anfragenachrichten von einem externen Knoten verworfen, so dass sie als Anfragefehlschlag erscheinen, wodurch die Bedienung einer P2P-Anfrage von einem Netzwerk 12b bis 12n vermieden wird. Es ist nicht die Absicht des Erfinders, zu fordern, dass Anfragenachrichten verworfen werden, sondern es ist einfach ein Verfahren, das verwendet werden kann, um unerwünschten P2P-Verkehr in das Netzwerk 12a zu begrenzen. Implementierungen, die den PPO 10 nutzen, können wählen, ob sie den freien Fluss aller Nachrichten erlauben oder eine begrenzte Menge an Verkehr zur Verfügung stellen. Anfragenachrichten von einem Knoten 14 innerhalb des Netzwerks 12a werden zuerst zu den Knoten 14 weitergeleitet, die die angeforderte Datei enthalten und einen kostengünstigen Pfad aufweisen. Dies wären typischerweise Knoten 14 innerhalb des Netzwerks 12a, jedoch muss dies nicht immer der Fall sein. Die Knoten 14, die die angeforderten Daten aufweisen, werden dann mit Anfragetreffernachrichten antworten. Wenn es keine Übereinstimmungen für die Anfrage nach Daten gibt, oder wenn keine Anfragetreffernachricht zurückgegeben wird, wird die Anfragenachricht an eine zufällige Menge von Knoten 14 innerhalb des Netzwerks 12a gesendet. Ein Verfahren zur Bestimmung der zufälligen Menge von Knoten 14 zum Empfangen der Anfragenachricht wäre die Verwendung einer gewichteten wahrscheinlichkeitstheoretischen Funktion, wie z. B. ein Reihum-Verfahren auf der Grundlage der Anzahl von Dateien, die von jedem Knoten 14 zur Verfügung gestellt werden. Auf diese Weise gelangt die Anfrage nicht immer zu den Knoten 14 mit der größten Anzahl von Dateien. Wenn immer noch keine Übereinstimmung vorliegt, wird die Anfrage zu Knoten 14 mit den niedrigsten Pfadkosten in den Netzwerken 12b bis 12n weitergeleitet.
  • Eine Anfragetreffernachricht ist eine Antwort auf eine Anfragenachricht. Ankommende Anfragetreffernachrichten von Knoten in den Netzwerken 12b bis 12n werden zu einem geeigneten Knoten 14 innerhalb des Netzwerks 12a weitergeleitet. Ankommende Anfragetreffernachrichten von den Knoten 14 innerhalb des Netzwerks 12a werden zu dem anfragenden Knoten innerhalb des Netzwerks 12a zurückgeleitet und nicht zu den Netzwerken 12b bis 12n gesendet.
  • Eine Anstoßnachricht wird verwendet, wenn der sendende Knoten ein Zugangsschutzsystem (Firewall) aufweist und der empfangende Knoten nicht. Der empfangende Knoten sendet eine Anstoßnachricht, die den sendenden Knoten veranlasst, eine Verbindung direkt zum empfangenden Knoten zu öffnen. Ankommende Anstoßanfragen können vom PPO 10 optional verworfen werden oder unverändert auf dem Weg aus dem Netzwerk 12a weitergeleitet werden.
  • Für ein Beispiel, wie die vorliegende Erfindung genutzt werden kann, um das Gnutella-Protokoll zu unterstützen, wird im Folgenden auf die logischen Flussdiagramme 11 bis 15 Bezug genommen. Wie bei der vorherigen Diskussion bezüglich des Diagramms 1 wird auf die Komponenten der 3 beispielhaft Bezug genommen.
  • In 11 ist ein logisches Flussdiagramm, das die Verarbeitung einer Ping-Nachricht zeigt, allgemein mit 160 bezeichnet. Beginnend mit dem Schritt 162 wird eine Ping-Nachricht empfangen. Im Schritt 164 wird die Ping-Nachricht optional verworfen, wobei dann, wenn sie verworfen wird, diese nicht innerhalb des Netzwerks 12a weitergeleitet wird. Im Schritt 166 wird eine falsche Pong-Nachricht erzeugt. Die falsche Pong-Antwort kann die Anzahl von Dateien enthalten, die für den P2P-Austausch innerhalb des Netzwerks 12a verfügbar sind. Die falsche Pong-Nachricht kann zu jedem Knoten gesendet werden, der mit dem PPO 10 verbunden ist, um ein Netzwerk zu trainieren, wie vorher mit Bezug auf das Ping/Pong-Trainingsmodul 122 der 10 beschrieben worden ist.
  • In 12 ist ein logisches Flussdiagramm, das die Verarbeitung einer Pong-Nachricht zeigt, allgemein mit 190 bezeichnet. Der Prozess 190 beginnt im Schritt 192 mit dem Empfang einer Pong-Nachricht. Im Schritt 194 wird geprüft, ob die Nachricht von einem Knoten 14 innerhalb des Netzwerks 12a stammt. Wenn die Nachricht von einem Knoten 14 innerhalb des Netzwerks 12a stammt, kann die Nachricht optional im Schritt 196 verworfen werden.
  • Wenn die Nachricht von einem Knoten 14 in einem Netzwerk 12b bis 12n stammt, rückt die Verarbeitung zum Schritt 198 vor, wo die TTL für die Nachricht dekrementiert wird. Anschließend rückt die Verarbeitung zum Schritt 200 vor, wo der aktuelle Wert der TTL geprüft wird. Wenn die TTL abgelaufen ist, wird die Nachricht im Schritt 202 verworfen. Wenn die TTL nicht abgelaufen ist, rückt die Verarbeitung zum Schritt 204 vor, wo geprüft wird, ob eine Ping-Nachricht passend zur Pong-Nachricht empfangen worden ist. Der PPO 10 speichert Nachrichten, die er unter der Kontrolle eines Anfrageroutenplanungs-Logikmoduls 132 (10) empfängt. Typischerweise wird eine Nachricht nicht lange gespeichert, da die meisten P2P-Anfragen nach Informationen in weniger als einer Minute geklärt wird. Wenn keine passende Ping-Nachricht gefunden wird, wird die Pong-Nachricht im Schritt 202 verworfen. Wenn eine passende Ping-Nachricht gesehen worden ist, wird die Pong-Nachricht anschließend im Schritt 206 zur Quelle der ursprünglichen Ping-Nachricht weitergeleitet.
  • In der obigen Beschreibung der 12 nimmt der Erfinder auf die Lebensdauer (TTL) Bezug. Die TTL-Information wird vom Gnutella-Protokoll verwendet, jedoch nicht von allen anderen Protokollen. Für andere Protokolle, die die TTL nicht erkennen, würde die Logik der 11 modifiziert, um die Schritte 98 und 200 zu entfernen. Somit würde die Steuerung vom Schritt 194 im negativen Fall direkt zum Schritt 204 übergehen.
  • In 13 ist ein logisches Flussdiagramm, das die Verarbeitung einer Anfragenachricht zeigt, allgemein mit 210 bezeichnet. Der Prozess 210 beginnt mit dem Schritt 212, in welchem eine Anfragenachricht empfangen wird. Im Schritt 214 wird ermittelt, ob die Anfragenachricht von einem Knoten 14 innerhalb des Netzwerks 12a stammt. Wenn dies der Fall ist, rückt die Verarbeitung zum Schritt 216 vor, wo geprüft wird, ob die angeforderte Datei innerhalb des Netzwerks 12a enthalten ist, wie durch das Inhaltsverzeichnis 136 angegeben wird (10). Wenn die Datei innerhalb des Netzwerks 12a enthalten ist, rückt die Verarbeitung anschließend zum Schritt 218 vor, wo die Anfragenachricht zu den Knoten 14 mit der niedrigsten Kostenklasse innerhalb des Netzwerks 12a weitergeleitet wird. Wenn die Datei nicht innerhalb des Netzwerks 12a gefunden wird, rückt die Verarbeitung anschließend zum Schritt 220 vor, wo die Anfragenachricht zu einer ausgewähl ten gewichteten Liste von Knoten 14 innerhalb des Netzwerks 12a weitergeleitet wird. Das Ziel hierbei ist, dass das Inhaltsverzeichnis 136 nicht aktuell sein muss und die angeforderte Datei sich innerhalb des Netzwerks 12a befinden kann. Ein Verfahren der Bestimmung der Menge von Knoten 14, zu denen die Anfragenachricht gesendet wird, wäre die Verwendung einer gewichteten wahrscheinlichkeitstheoretischen Funktion, wie z. B. ein Reihum-Verfahren auf der Grundlage der Anzahl von Dateien, die von jedem Knoten 14 innerhalb des Netzwerks 12a zur Verfügung gestellt werden. Auf diese Weise gelangt die Anfrage nicht immer zu einem Knoten 14 mit der größten Anzahl von Dateien.
  • Als Nächstes wird im Schritt 222 geprüft, ob die Datei auf einem Knoten 14 innerhalb des Netzwerks 12a lokalisiert worden ist. Wenn die Datei lokalisiert worden ist, wird die Ortsinformation zum Urheber der Anfragenachricht im Schritt 224 weitergeleitet. Wenn im Schritt 222 die Datei nicht lokalisiert worden ist, wird die Anfragenachricht zu einer gewichteten Teilmenge verbundener Knoten mit der niedrigsten Kostenklasse in den Netzwerken 12b bis 12n im Schritt 226 weitergeleitet. Wie vorher erwähnt worden ist, kann ein gewichtetes Reihum-Schema verwendet werden, um die Knoten 14 in den Netzwerken 12b bis 12n für den Empfang der Anfrage auszuwählen. Ein verbundener Knoten ist ein Knoten, der einen Verbindungspfad zum PPO 10 z. B. über TCP-IP eingerichtet hat. Zurückkehrend zum Schritt 214 rückt die Verarbeitung dann, wenn die Anfragenachricht nicht von einem Knoten 14 innerhalb des Netzwerks 12a stammt, zum Schritt 228 vor, wo der TTL-Wert der Nachricht dekrementiert wird. Anschließend wird im Schritt 230 geprüft, ob der TTL-Wert für die Nachricht größer als 0 ist. Falls nicht, wird die Nachricht im Schritt 232 verworfen und die Verarbeitung endet. Wenn der TTL-Wert kleiner oder gleich 0 ist, rückt die Verarbeitung zum Schritt 226 vor, wo die Anfragenachricht zu allen verbundenen Knoten in den Netzwerken 12b bis 12n weitergeleitet wird. Optional kann dann, wenn die Anfrage von einem Knoten in der Netzwerken 12b bis 12n stammt, die Anfrage im Schritt 226 einfach verworfen oder zum anfragenden Knoten zurückgegeben werden, so dass es nicht erforderlich ist, dass der PPO 10 die Anfrage zu den verbundenen Knoten weiterleitet.
  • Wie oben mit Bezug auf 12 beschrieben worden ist, würden dann, wenn das Kommunikationsprotokoll die TTL nicht nutzt, die Schritte 228, 230 und 232 weggelassen. Im negativen Fall des Schritts 214 würde dann der Ablauf zum Schritt 226 vorrücken.
  • In 14 ist ein logisches Flussdiagramm, das die Verarbeitung einer Anfragetreffernachricht zeigt, allgemein mit 240 bezeichnet. Der Prozess 240 beginnt im Schritt 242, wo eine Anfragetreffernachricht durch den PPO 10 empfangen wird. Die Verarbeitung rückt zum Schritt 244 vor, wo die TTL für die Anfragetreffernachricht dekrementiert wird. Im Schritt 246 wird dann, wenn die TTL kleiner oder gleich 0 ist, die Nachricht im Schritt 248 verworfen. Wenn die TTL größer als 0 ist, rückt die Verarbeitung zum Schritt 250 vor, wo geprüft wird, ob eine passende Anfragenachricht für die Anfragetreffernachricht empfangen worden ist. Der PPO 10 speichert Nachrichten, die er unter der Steuerung eines Anfrageroutenplanungs-Logikmoduls 132 (10) empfängt. Typischerweise wird eine Nachricht nicht lange gespeichert, da die meisten P2P-Anfragen nach Informationen innerhalb von einer Minute geklärt werden. Wenn keine passende Anfragenachricht empfangen wurde, rückt die Verarbeitung zum Schritt 248 vor, wo die Nachricht verworfen wird. Wenn eine passende Anfragenachricht empfangen wurde, rückt die Verarbeitung zum Schritt 252 vor, wo geprüft wird, ob die Anfragetreffernachricht von einem Knoten 14 innerhalb des Netzwerks 12a stammt. Falls nicht, wird anschließend im Schritt 254 die Anfragetreffernachricht optional zu dem Knoten weitergeleitet, der die ursprüngliche Anfrage gestellt hat. Wenn im Schritt 252 festgestellt wird, dass die Anfragetreffernachricht von einem Knoten 14 innerhalb des Netzwerks 12a stammt, rückt die Verarbeitung zum Schritt 256 vor. Im Schritt 256 wird geprüft, ob die ursprüngliche Anfragenachricht, die der Anfragetreffernachricht entspricht, von einem Knoten 14 innerhalb des Netzwerks 12a stammt. Trifft dies zu, rückt die Verarbeitung zum Schritt 254 vor, wo die Nachricht zu dem Knoten weitergeleitet wird, der die ursprüngliche Anfrage gestellt hat. Falls nicht, rückt die Verarbeitung zum Schritt 248 vor, wo die Nachricht verworfen wird.
  • In 15 ist ein logisches Flussdiagramm, das die Verarbeitung einer Verbindungsanfrage zeigt, allgemein mit 260 bezeichnet. Ein beliebiger Knoten 14 kann eine Verbindung zu irgendeinem anderen Knoten 14 im Schritt 262 anfordern. Im Schritt 264 wird geprüft, ob die Anfrage von einem Knoten 14 innerhalb des Netzwerks 12a stammt. Trifft dies zu, versucht der Verbindungsmanager 124 (siehe 10), die Anfrage durch das Anfragemodul 120 (siehe 10) zu bedienen, um einen kostengünstigen Pfad innerhalb des Netzwerks 12a im Schritt 266 zu bestimmen. Wenn im Schritt 264 festgestellt wird, dass die Verbindungsanfrage nicht von einem Knoten 14 innerhalb des Netzwerks 12a stammt, rückt die Verarbeitung zum Schritt 268 vor. Im Schritt 268 wird eine Ping-Nachricht zu den verbunden Knoten 14 innerhalb der Netzwerke 12b bis 12n gesendet. Im Schritt 270 werden einer oder mehrere Pongs empfangen und es wird im Schritt 272 entschieden, welche Verbindung zu einem spezifischen externen Knoten 14 genutzt werden sollte. Schritt 272 kann eine Vielfalt von Verfahren nutzen, um zu bestimmen, welche Verbindungen zu halten sind und welche zu verwerfen sind. Typischweise würde der Schritt 272 Verbindungen auf der Grundlage der Datenmenge, der Kostenklasse und der Gesamtzahl der Verbindungen, die aufrechterhalten werden können, aufrechterhalten. Wenn im Schritt 272 ein Knoten 14 für besser befunden wird als eine bestehende Verbindung, wird diese im Schritt 272 verworfen. Wenn im Schritt 272 eine bessere Verbindung gefunden wird, wird diese im Schritt 276 zum Inhaltsverzeichnis 136 hinzugefügt.
  • Obwohl diese Offenbarung und die daran angefügten Ansprüche die Ausdrücke Anfrage, Anfragetreffer, Ping, Pong, Anstoß und Verbindung verwenden, ist es nicht die Absicht des Erfinders, diese Ausdrücke spezifisch dem Gnutella-Protokoll zuzuordnen. Für den Erfinder ist der Ausdruck Anfrage analog zu einer Anforderung von Daten, während Anfragetreffer einer Antwort auf eine Anfrage entspricht, was anzeigt, dass die Daten lokalisiert worden sind. Ein Ping ist ein Standard-Computer-Kommunikationsausdruck und ist ein Kürzel für Packet Internet Groper; im Wesentlichen ist dies eine Nachricht, um zu ermitteln, ob ein spezifischer Computer in einem Netzwerk zugänglich ist. Ein Pong ist eine Antwort auf einen Ping. Ein Anstoß ist eine Nachricht, die direkt zu einem Knoten gesendet wird, der durch eine Firewall geschützt ist. Ein Anstoß wird verwendet, um eine direkte Verbindung zwischen dem Knoten hinter der Firewall und dem die Anstoßnachricht sendenden Knoten anzufordern, so dass der Knoten hinter der Firewall Daten zu dem anfragenden Knoten "drücken" kann. Eine Verbindung ist eine Verbindung zwischen zwei Knoten.
  • Obwohl sich die Offenbarung beispielsweise auf einen PPO innerhalb eines ISP bezieht, ist es nicht die Absicht des Erfinders, die Erfindung auf eine solche Konfiguration zu beschränken. Zum Beispiel kann ein PPO innerhalb eines beliebigen Netzwerks verwendet werden, einschließlich von Netzwerken, die von Unternehmen genutzt werden, um Daten mit ihren Angestellten oder Kunden auszutauschen. Ferner können mehrere PPOs genutzt werden, um für den Fall, dass ein PPO ausfällt, Redundanz bereitzustellen, und um ferner einen Lastausgleich zu schaffen. Im Fall eines Netzwerks 12, das einen einzelnen PPO verwendet, würde das Netzwerk 12 bei Ausfall des PPO zu dem Zustand ohne den PPO zurückkehren; d. h. alle P2P-Nachrichten werden ausgetauscht, ohne zu entscheiden, wer die Anfrage bedienen sollte.
  • Obwohl die Erfindung mit Bezug auf bestimmte spezifische Ausführungsformen beschrieben worden ist, sind für Fachleute verschiedene Modifikationen derselben offensichtlich, ohne vom Umfang der Erfindung, wie in den beigefügten Ansprüchen ausgeführt, abzuweichen.

Claims (48)

  1. Peer-zu-Peer-Verkehrsoptimierer (10), umfassend: Mittel zum Überwachen aller Peer-zu-Peer-Nachrichten zwischen und innerhalb von Netzwerken (12), die mit dem Optimierer verbunden sind; Mittel zum Pflegen von Kostenklasseninformationen jedes Peer-zu-Peer-Knotens (14); Mittel zum Zuweisen von Pfadkosten zu jeder vorgeschlagenen Verbindung auf der Grundlage der Kostenklasse jedes Knotens (14) in der Verbindung; Mittel zum Nutzen der Pfadkosten, um einen kosteneffizienten Pfad für die vorgeschlagene Verbindung zu bestimmen; und Mittel zum Erzeugen, Vernichten, Modifizieren oder Ignorieren von Peer-zu-Peer-Nachrichten, so dass die vorgeschlagene Verbindung den bestimmten kosteneffizienten Pfad nutzt.
  2. Optimierer nach Anspruch 1, bei dem dann, wenn eine Peer-zu-Peer-Nachricht anfangs nicht auf den kosteneffizienten Pfad geleitet wird, die Peer-zu-Peer-Nachricht auf den kosteneffizienten Pfad umgeleitet wird.
  3. Optimierer nach Anspruch 1, bei dem dann, wenn eine Peer-zu-Peer-Nachricht nicht von einem Knoten in einem ersten Netzwerk stammt und eine Anfragenachricht ist, die Anfragenachricht zu einem oder mehreren Knoten in nicht dem ersten Netzwerk weitergeleitet wird.
  4. Optimierer nach Anspruch 1, bei dem dann, wenn eine Peer-zu-Peer-Nachricht von einem Knoten in einem ersten Netzwerk stammt und eine Anfragenachricht ist, und wenn die Anfragenachricht erfolglos ist, die Anfra genachricht zu einer gewichteten Liste von Knoten im ersten Netzwerk weitergeleitet wird.
  5. Optimierer nach Anspruch 1, bei dem dann, wenn eine Peer-zu-Peer-Nachricht nicht von einem Knoten in einem ersten Netzwerk stammt und eine Anfragenachricht ist, die Anfragenachricht ignoriert wird.
  6. Optimierer nach Anspruch 1, bei dem dann, wenn eine Peer-zu-Peer-Nachricht eine Anfragetreffernachricht ist, bestimmt wird, ob eine passende Anfragenachricht beobachtet worden ist, wobei dann, wenn dies zutrifft, die Anfragetreffernachricht zum Urheber der passenden Anfragenachricht weitergeleitet wird.
  7. Optimierer nach Anspruch 1, bei dem dann, wenn eine Peer-zu-Peer-Nachricht eine Anfragenachricht ist, der Optimierer: a) wenn die Anfrage von einem Knoten in einem ersten Netzwerk stammt, bestimmt, ob die Anfrage von einem oder mehreren Knoten im ersten Netzwerk bedient werden kann, und dann, wenn dies zutrifft, die Anfrage zu dem einen oder den mehreren Knoten im ersten Netzwerk weiterleitet; oder b) wenn die Anfrage nicht von einem Knoten im ersten Netzwerk stammt, die Anfrage verwirft.
  8. Optimierer nach Anspruch 1, bei dem dann, wenn eine Peer-zu-Peer-Nachricht ein Pong ist und keine passende Ping-Nachricht beobachtet worden ist, der Pong verworfen wird.
  9. Optimierer nach Anspruch 1, bei dem dann, wenn eine Peer-zu-Peer-Nachricht ein Ping ist, der Optimierer optional den Ping verwirft.
  10. Optimierer nach Anspruch 9, bei dem dann, wenn der Optimierer den Ping nicht verworfen hat, der Optimierer eine oder mehrere Pong-Nachrichten für Knoten in der gleichen Kostenklasse wie der Knoten, der den Ping gesendet hat, erzeugt.
  11. Optimierer nach Anspruch 1, bei dem dann, wenn eine Peer-zu- Peer-Nachricht eine Verbindung ist, und wenn die Verbindung besser ist als eine bestehende Verbindung, die bestehende Verbindung für diese Verbindung verworfen wird.
  12. Optimierer nach Anspruch 1, bei dem die Kostenklasse von einem Administrator des Optimierers festgelegt wird.
  13. Optimierer nach Anspruch 1, bei dem die Kostenklasse vom Optimierer festgelegt wird.
  14. Optimierer nach Anspruch 1, bei dem jede Peer-zu-Peer-Nachricht untersucht wird, um Informationen über den Urheber der Nachricht zu erhalten.
  15. Optimierer nach Anspruch 14, bei dem die Informationen vom Optimierer in einem Host-Pufferspeicher gespeichert werden.
  16. Optimierer nach Anspruch 1, der ferner einen Inhaltsindex umfasst, wobei der Inhaltsindex eine Abbildung des Inhalts auf die Knoten umfasst.
  17. Optimierer nach Anspruch 16, bei dem der Inhaltsindex genutzt wird, um die Anzahl der Knoten zu begrenzen, zu denen eine Anfragenachricht weitergeleitet wird.
  18. Optimierer nach Anspruch 17, bei dem der Inhaltsindex benutzt wird, um einen optimierten Satz von Knoten zum Empfangen der Anfragenachricht zu bestimmen, wobei der optimierte Satz von Knoten auf den Pfadkosten beruht.
  19. Optimierer nach Anspruch 18, bei dem dann, wenn keine Knoten im Inhaltsindex gefunden werden, die die Anfragenachricht befriedigen, die Anfragenachricht zu einem Satz von Knoten weitergeleitet wird, der durch eine gewichtete wahrscheinlichkeitstheoretische Funktion bestimmt wird.
  20. Optimierer nach Anspruch 1, bei dem das Mittel zum Erzeugen, Vernichten, Modifizieren oder Ignorieren Mittel zum Erzeugen umfasst.
  21. Optimierer nach Anspruch 1, bei dem das Mittel zum Erzeugen, Vernichten, Modifizieren oder Ignorieren Mittel zum Vernichten umfasst.
  22. Optimierer nach Anspruch 1, bei dem das Mittel zum Erzeugen, Vernichten, Modifizieren oder Ignorieren Mittel zum Modifizieren umfasst.
  23. Optimierer nach Anspruch 1, bei dem das Mittel zum Erzeugen, Vernichten, Modifizieren oder Ignorieren Mittel zum Ignorieren umfasst.
  24. Peer-zu-Peer-Verkehrsoptimierungsprozess (10), der die Schritte umfasst: Überwachen aller Peer-zu-Peer-Nachrichten zwischen und innerhalb von Netzwerken (12); Pflegen von Kostenklasseninformationen jedes Peer-zu-Peer-Knotens (14); Zuweisen von Pfadkosten zu jeder vorgeschlagenen Verbindung auf der Grundlage der Kostenklasse jedes Knotens (14) in der Verbindung; Nutzen der Pfadkosten, um einen kosteneffizienten Pfad für die vorgeschlagene Verbindung zu bestimmen; und Erzeugen, Vernichten, Modifizieren oder Ignorieren von Peer-zu-Peer-Nachrichten, so dass die vorgeschlagene Verbindung den bestimmten Pfad verwendet.
  25. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, der dann, wenn eine Peer-zu-Peer-Nachricht anfangs nicht auf den kosteneffizienten Pfad geleitet wird, die Peer-zu-Peer-Nachricht auf den kosteneffizienten Pfad umleitet.
  26. Prozess nach Anspruch 24, der ferner einen Schritt des Nutzens einer Nachricht zum Erhalten von Informationen über den Urheber der Nachricht umfasst.
  27. Prozess nach Anspruch 26, der ferner den Schritt des Speicherns der Informationen in einem Host-Pufferspeicher umfasst.
  28. Prozess nach Anspruch 24, der ferner einen Schritt des Abgleichens eines angeforderten Dateinamens mit in einem Inhaltsindex gespeicherten Dateinamen umfasst.
  29. Prozess nach Anspruch 28, der ferner einen Schritt des Nutzens des Inhaltsindex bei der Bestimmung des kosteneffizienten Pfades umfasst.
  30. Prozess nach Anspruch 24, bei dem der Schritt des Erzeugens, Vernichtens, Modifizierens oder Ignorierens das Modifizieren umfasst.
  31. Prozess nach Anspruch 24, der ferner einen Schritt des Weiterleitens einer Peer-zu-Peer-Nachricht umfasst.
  32. Prozess nach Anspruch 24, bei dem der Schritt des Erzeugens, Vernichtens, Modifizierens oder Ignorierens das Ignorieren umfasst.
  33. Prozess nach Anspruch 24, bei dem der Schritt des Erzeugens, Vernichtens, Modifizierens oder Ignorierens das Erzeugen umfasst.
  34. Prozess nach Anspruch 24, bei dem der Schritt des Erzeugens, Vernichtens, Modifizierens oder Ignorierens das Vernichten umfasst.
  35. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, der dann, wenn eine Peer-zu-Peer-Nachricht nicht von einem Knoten in einem ersten Netzwerk stammt und eine Anfragenachricht ist, die Anfragenachricht zu einem oder mehreren Knoten in nicht dem ersten Netzwerk weiterleitet.
  36. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, der dann, wenn eine Peer-zu-Peer-Nachricht von einem Knoten in einem ersten Netzwerk stammt und eine Anfragenachricht ist, und wenn die Anfragenachricht erfolglos ist, die Anfragenachricht zu einer gewichteten Liste von Knoten im ersten Netzwerk weiterleitet.
  37. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, der dann, wenn eine Peer-zu-Peer-Nachricht nicht von einem Knoten in einem ersten Netzwerk stammt und eine Anfragenachricht ist, die Anfragenachricht ignoriert.
  38. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, der dann, wenn eine Peer-zu-Peer-Nachricht eine Anfragetreffernachricht ist, bestimmt, ob eine passende Anfragenachricht beobachtet worden ist, und dann, wenn dies zutrifft, die Anfragetreffernachricht zum Urheber der passenden Anfragenachricht weiterleitet.
  39. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, der dann, wenn eine Peer-zu-Peer-Nachricht eine Anfragenachricht ist und: a) wenn eine Anfrage von einem Knoten in einem ersten Netzwerk stammt, bestimmt, ob die Anfrage von einem oder mehreren Knoten im ersten Netzwerk bedient werden kann, und dann, wenn dies zutrifft, die Anfrage zu dem einen oder den mehreren Knoten im ersten Netzwerk weiterleitet; oder b) wenn die Anfrage nicht von einem Knoten im ersten Netzwerk stammt, die Anfrage verwirft.
  40. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, der dann, wenn eine Peer-zu-Peer-Nachricht ein Pong ist und keine passende Ping-Nachricht beobachtet worden ist, den Pong verwirft.
  41. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, der dann, wenn eine Peer-zu-Peer-Nachricht ein Ping ist, optional den Ping verwirft.
  42. Prozess nach Anspruch 41, der ferner einen Schritt umfasst, der dann, wenn der Ping nicht verworfen worden ist, eine oder mehrere Pong-Nachrichten für Knoten in der gleichen Kostenklasse wie der Knoten, der den Ping gesendet hat, erzeugt.
  43. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, der dann, wenn eine Peer-zu-Peer-Nachricht eine Verbindung ist, und wenn die Verbindung besser ist als eine bestehende Verbindung, die bestehende Verbindung für diese Verbindung verwirft.
  44. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, bei dem die Kostenklasse von einem Administrator festgelegt wird.
  45. Prozess nach Anspruch 24, der ferner einen Schritt umfasst, bei dem die Kostenklasse durch den Prozess festgelegt wird.
  46. Prozess nach Anspruch 29, der ferner einen Schritt umfasst, der dann, wenn kein Knoten im Inhaltsindex gefunden wird, der eine Peer-zu-Peer-Anfragenachricht befriedigt, die Anfragenachricht zu einem Satz von Knoten weiterleitet, der durch eine gewichtete wahrscheinlichkeitstheoretische Funktion bestimmt wird.
  47. Computerprogramm (116), das Codemittel umfasst, die dafür ausgelegt sind, alle Schritte von irgendeinem der Ansprüche 24 bis 46 auszuführen, wobei das Programm auf einem Datenverarbeitungssystem läuft.
  48. Computerprogramm nach Anspruch 47, das auf einem computerlesbaren Medium ausgeführt ist.
DE60301611T 2002-05-06 2003-04-09 Wegoptimierer für gleichrangige netzwerke Expired - Lifetime DE60301611T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/138,336 US7571251B2 (en) 2002-05-06 2002-05-06 Path optimizer for peer to peer networks
US138336 2002-05-06
PCT/CA2003/000530 WO2003094465A1 (en) 2002-05-06 2003-04-09 Path optimizer for peer to peer networks

Publications (2)

Publication Number Publication Date
DE60301611D1 DE60301611D1 (de) 2005-10-20
DE60301611T2 true DE60301611T2 (de) 2006-06-08

Family

ID=29269309

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60301611T Expired - Lifetime DE60301611T2 (de) 2002-05-06 2003-04-09 Wegoptimierer für gleichrangige netzwerke

Country Status (9)

Country Link
US (1) US7571251B2 (de)
EP (1) EP1430694B1 (de)
AT (1) ATE304775T1 (de)
AU (1) AU2003227154A1 (de)
CA (1) CA2385781C (de)
DE (1) DE60301611T2 (de)
GB (1) GB2390261B (de)
IL (1) IL159201A (de)
WO (1) WO2003094465A1 (de)

Families Citing this family (71)

* 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
US7054867B2 (en) * 2001-09-18 2006-05-30 Skyris Networks, Inc. Systems, methods and programming for routing and indexing globally addressable objects and associated business models
US7743044B1 (en) * 2002-05-28 2010-06-22 Hewlett-Packard Development Company, L.P. Distributed information retrieval in peer-to-peer networks
DE10230688A1 (de) * 2002-07-08 2004-02-05 Siemens Ag Kommunikationsnetz mit Kommunikations-Komponenten mit Client- und Server-Funktionalitäten und mit Suchfunktionen
US8024808B1 (en) * 2002-08-07 2011-09-20 Cisco Technology, Inc. Arrangement for controlling content distribution by dynamically controlling bandwidth for transfer of the content based on content authorization
US8090798B2 (en) * 2002-08-12 2012-01-03 Morganstein System and methods for direct targeted media advertising over peer-to-peer networks
CN1692616B (zh) * 2002-11-15 2011-01-12 国际商业机器公司 对等环境中的网络流量控制
US7401132B1 (en) * 2002-12-20 2008-07-15 Symantec Operating Corporation Method and system for creating a peer-to-peer overlay network
GB0303192D0 (en) * 2003-02-12 2003-03-19 Saviso Group Ltd Methods and apparatus for traffic management in peer-to-peer networks
US9432463B2 (en) * 2003-03-25 2016-08-30 Sandvine Incorporated Ulc System and method for diverting established communication sessions on the basis of content
WO2004092915A2 (en) * 2003-04-15 2004-10-28 Vehiclesense, Inc. Payment processing method and system using a peer-to-peer network
US8095500B2 (en) 2003-06-13 2012-01-10 Brilliant Digital Entertainment, Inc. Methods and systems for searching content in distributed computing networks
US7464070B2 (en) * 2003-07-29 2008-12-09 Hitachi, Ltd. Database query operations using storage networks
US8239446B2 (en) * 2003-11-19 2012-08-07 Sony Computer Entertainment America Llc Content distribution architecture
US7657508B2 (en) * 2006-12-29 2010-02-02 Teradata Us, Inc. Automated block size management for database objects
WO2005074230A2 (en) * 2004-01-23 2005-08-11 Tiversa Inc. Method for improving peer to peer network communication
US7761569B2 (en) 2004-01-23 2010-07-20 Tiversa, Inc. Method for monitoring and providing information over a peer to peer network
US8156175B2 (en) 2004-01-23 2012-04-10 Tiversa Inc. System and method for searching for specific types of people or information on a peer-to-peer network
GB0402739D0 (en) * 2004-02-09 2004-03-10 Saviso Group Ltd Methods and apparatus for routing in a network
US20080247332A1 (en) * 2004-02-12 2008-10-09 Toshimitsu Sato Network Configuration Management Method, Network Band Management Method, Network Participation Method, and Communication Terminal Device
WO2005084132A2 (en) * 2004-03-08 2005-09-15 First Oversi Ltd A method and device for peer to peer file sharing
US7546342B2 (en) * 2004-05-14 2009-06-09 Microsoft Corporation Distributed hosting of web content using partial replication
JP4274050B2 (ja) * 2004-06-03 2009-06-03 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US8717899B2 (en) * 2004-10-13 2014-05-06 Cisco Technology, Inc. System and method for reporting out-of-resources (OOR) conditions in a data network
US7587367B2 (en) * 2004-12-31 2009-09-08 Ebay Inc. Method and system to provide feedback data within a distributed e-commerce system
US20060209819A1 (en) * 2005-03-21 2006-09-21 Jennings Raymond B Iii Method and apparatus for efficiently expanding a P2P network
US7697520B2 (en) * 2005-04-12 2010-04-13 Tiversa, Inc. System for identifying the presence of Peer-to-Peer network software applications
US9178940B2 (en) * 2005-04-12 2015-11-03 Tiversa Ip, Inc. System and method for detecting peer-to-peer network software
USRE47628E1 (en) 2005-04-12 2019-10-01 Kroll Information Assurance, Llc System for identifying the presence of peer-to-peer network software applications
CN100479415C (zh) * 2005-06-06 2009-04-15 腾讯科技(深圳)有限公司 一种实现数据通讯的系统及其方法
US7920572B2 (en) * 2005-09-20 2011-04-05 Cisco Technology, Inc. Modifying operation of peer-to-peer networks based on integrating network routing information
US7859560B1 (en) 2005-12-27 2010-12-28 Qurio Holdings, Inc. System and method for establishing a local chat session
US8719341B2 (en) * 2005-12-27 2014-05-06 Qurio Holdings, Inc. System and method for accessing and managing mobile device metadata
US8176170B2 (en) * 2006-06-13 2012-05-08 British Telecommunications Public Limited Company Computer network
US7720841B2 (en) * 2006-10-04 2010-05-18 International Business Machines Corporation Model-based self-optimizing distributed information management
CA2668881C (en) * 2006-11-07 2016-07-26 Tiversa, Inc. System and method for enhanced experience with a peer to peer network
US20080120416A1 (en) * 2006-11-07 2008-05-22 Tiversa, Inc. System and method for peer to peer compensation
US8229955B2 (en) * 2006-12-05 2012-07-24 International Business Machines Corporation Database query optimizer that takes network choice into consideration
US8909664B2 (en) 2007-04-12 2014-12-09 Tiversa Ip, Inc. System and method for creating a list of shared information on a peer-to-peer network
US9922330B2 (en) 2007-04-12 2018-03-20 Kroll Information Assurance, Llc System and method for advertising on a peer-to-peer network
KR101409991B1 (ko) * 2007-04-16 2014-06-20 삼성전자주식회사 P2p 통신 환경에서의 데이터 전송 방법 및 장치
US20080285577A1 (en) * 2007-05-15 2008-11-20 Yehuda Zisapel Systems and Methods for Providing Network-Wide, Traffic-Aware Dynamic Acceleration and Admission Control for Peer-to-Peer Based Services
US8996723B2 (en) * 2007-06-04 2015-03-31 Microsoft Technology Licensing, Llc ISP-aware peer-to-peer content exchange
US9294401B2 (en) * 2007-06-28 2016-03-22 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for data transfer in a peer-to-peer network
US8792339B2 (en) * 2007-08-10 2014-07-29 Arris Enterprises, Inc. Method and system for moving distinctive traffic flows to a different priority service flow
GB0718251D0 (en) * 2007-09-19 2007-10-31 Ibm An apparatus for propagating a query
US9483405B2 (en) 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
CN101861584B (zh) 2007-11-05 2013-06-19 聚焦网络公司 端到端的数据传送
US8688639B2 (en) * 2007-11-05 2014-04-01 National Taiwan University Distributed multimedia access system and method
KR101434920B1 (ko) * 2008-02-29 2014-09-25 삼성전자 주식회사 자원 공유 방법 및 그를 수행하는 시스템
US8082290B2 (en) * 2008-03-19 2011-12-20 Verizon Patent And Licensing Inc. Intelligent establishment of peer-to-peer communication
KR101472936B1 (ko) * 2008-04-30 2014-12-17 삼성전자주식회사 피투피 네트워크 시스템 및 그의 지역 기반 운용 방법
CN101741715B (zh) * 2008-11-20 2013-03-20 华为技术有限公司 发送消息的方法、接入路由节点设备和数据缓存系统
TWI384812B (zh) * 2008-12-31 2013-02-01 Ind Tech Res Inst 運用暫存管理與資料傳輸負載平衡之點對點代理服務裝置與方法
CN101854287B (zh) * 2009-04-01 2014-06-25 工业和信息化部电信传输研究所 一种p2p流量优化方法及装置
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
US8126987B2 (en) 2009-11-16 2012-02-28 Sony Computer Entertainment Inc. Mediation of content-related services
US20110246658A1 (en) * 2010-04-05 2011-10-06 International Business Machines Coporation Data exchange optimization in a peer-to-peer network
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
US8447866B2 (en) * 2010-11-01 2013-05-21 Telefonaktiebolaget L M Ericsson (Publ) Network nodes that establish sessions using existing connections identified in a central database
US8352576B2 (en) * 2010-11-15 2013-01-08 Google Inc. Media file access
US8626854B2 (en) * 2011-01-17 2014-01-07 Alcatel Lucent Traffic localization in peer-to-peer networks
KR101789628B1 (ko) * 2011-04-29 2017-10-25 구글 테크놀로지 홀딩스 엘엘씨 정보의 대리 다운로드 또는 업로드를 위한 방법 및 시스템
US9219782B2 (en) * 2012-12-11 2015-12-22 Microsoft Technology Licensing, Llc Identifying seed computing devices using estimates in peer-to-peer networks
GB2510429A (en) 2013-02-05 2014-08-06 Ibm Assessing response routes in a network
US9602482B1 (en) * 2013-12-12 2017-03-21 Amazon Technologies, Inc. Authentication for an API request
US10505838B2 (en) 2013-12-19 2019-12-10 Sandvine Corporation System and method for diverting established communication sessions
US9118582B1 (en) 2014-12-10 2015-08-25 Iboss, Inc. Network traffic management using port number redirection
EP3886113A1 (de) 2016-03-14 2021-09-29 Fenwal, Inc. Zellverarbeitungsanordnung und verfahren mit prozessparameterregelung
CN109547508B (zh) * 2017-09-21 2022-03-22 阿里巴巴集团控股有限公司 一种实现资源访问的方法、装置及系统
US11782918B2 (en) * 2020-12-11 2023-10-10 International Business Machines Corporation Selecting access flow path in complex queries

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US6029195A (en) * 1994-11-29 2000-02-22 Herz; Frederick S. M. System for customized electronic identification of desirable objects
AU5386796A (en) * 1995-04-11 1996-10-30 Kinetech, Inc. Identifying data in a data processing system
US5881050A (en) * 1996-07-23 1999-03-09 International Business Machines Corporation Method and system for non-disruptively assigning link bandwidth to a user in a high speed digital network
US5946316A (en) * 1997-01-17 1999-08-31 Lucent Technologies, Inc. Dynamic distributed multicast routing protocol
US6246669B1 (en) * 1997-11-28 2001-06-12 Cisco Technology, Inc. Method and system for optimizing connection set-up operations in a high speed digital network
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6421675B1 (en) * 1998-03-16 2002-07-16 S. L. I. Systems, Inc. Search engine
US6256309B1 (en) * 1998-04-28 2001-07-03 Cisco Technology, Inc. Quality of service sensitive routes precomputed in bandwidth brackets
US6850965B2 (en) * 1998-11-17 2005-02-01 Arthur Douglas Allen Method for connection acceptance and rapid determination of optimal multi-media content delivery over network
US6631128B1 (en) * 1999-05-27 2003-10-07 Telefonaktiebolaget L M Ericcson (Publ) Core network optimization of topology and technology for traffic handling
US6542964B1 (en) * 1999-06-02 2003-04-01 Blue Coat Systems Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server
US6567856B1 (en) * 1999-06-02 2003-05-20 Sun Microsystems, Inc. Deadlock-free routing
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US20020049841A1 (en) * 2000-03-03 2002-04-25 Johnson Scott C Systems and methods for providing differentiated service in information management environments
US20050021862A1 (en) * 2000-03-31 2005-01-27 Dickens Coal Llc Automatic selection of content-delivery provider using link mapping database
US6993475B1 (en) * 2000-05-03 2006-01-31 Microsoft Corporation Methods, apparatus, and data structures for facilitating a natural language interface to stored information
US7248841B2 (en) * 2000-06-13 2007-07-24 Agee Brian G Method and apparatus for optimization of wireless multipoint electromagnetic communication networks
US6938095B2 (en) * 2000-06-28 2005-08-30 Pluris, Inc. Method and apparatus for establishing and sharing a virtual change notification list among a plurality of peer nodes
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
US6653933B2 (en) * 2000-08-18 2003-11-25 Emware, Inc. Autonomous local area distributed network
US6981055B1 (en) * 2000-08-22 2005-12-27 Internap Network Services Corporation Method and system for optimizing routing through multiple available internet route providers
US6877034B1 (en) * 2000-08-31 2005-04-05 Benchmark Portal, Inc. Performance evaluation through benchmarking using an on-line questionnaire based system and method
WO2002021378A1 (en) 2000-09-05 2002-03-14 Big Think Llc System and method for personalization implemented on multiple networks and multiple interfaces
US7203741B2 (en) 2000-10-12 2007-04-10 Peerapp Ltd. Method and system for accelerating receipt of data in a client-to-client network
US7069310B1 (en) * 2000-11-10 2006-06-27 Trio Systems, Llc System and method for creating and posting media lists for purposes of subsequent playback
US6954790B2 (en) * 2000-12-05 2005-10-11 Interactive People Unplugged Ab Network-based mobile workgroup system
US6813631B2 (en) * 2000-12-15 2004-11-02 Honeywell International Inc. Automatic self configuration of client-supervisory nodes
US7333482B2 (en) * 2000-12-22 2008-02-19 Interactive People Unplugged Ab Route optimization technique for mobile IP
US7155518B2 (en) * 2001-01-08 2006-12-26 Interactive People Unplugged Ab Extranet workgroup formation across multiple mobile virtual private networks
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
WO2002069107A2 (en) * 2001-02-28 2002-09-06 Musicrebellion Com, Inc. Digital online exchange
WO2002097557A2 (en) 2001-04-03 2002-12-05 Captaris, Inc. System, method, and computer program for flow control in a distributed broadcast-route network with reliable transport links
US7269157B2 (en) * 2001-04-10 2007-09-11 Internap Network Services Corporation System and method to assure network service levels with intelligent routing
US7356487B2 (en) * 2001-06-14 2008-04-08 Qurio Holdings, Inc. Efficient transportation of digital files in a peer-to-peer file delivery network
US7546363B2 (en) * 2001-07-06 2009-06-09 Intel Corporation Adaptive route determination for peer-to-peer services
US7065588B2 (en) * 2001-08-10 2006-06-20 Chaavi, Inc. Method and system for data transformation in a heterogeneous computer system
US7221951B2 (en) * 2001-09-17 2007-05-22 Level Z, L.L.C. Method and system for short message service exchange and teleconferencing
CA2408766A1 (en) * 2001-10-17 2003-04-17 Telecommunications Research Laboratory Content delivery network bypass system
US7173929B1 (en) * 2001-12-10 2007-02-06 Incipient, Inc. Fast path for performing data operations
US20030158958A1 (en) * 2002-02-20 2003-08-21 Koninklijke Philips Electronics N.V. Distributed storage network architecture using user devices
US6801905B2 (en) * 2002-03-06 2004-10-05 Sybase, Inc. Database system providing methodology for property enforcement
US20030191558A1 (en) * 2002-03-20 2003-10-09 Martin Arellano Beverage dispensing system
US7174382B2 (en) * 2002-04-09 2007-02-06 Hewlett-Packard Development Company, L.P. Interest-based connections in peer-to-peer networks

Also Published As

Publication number Publication date
GB2390261B (en) 2004-05-12
EP1430694B1 (de) 2005-09-14
IL159201A (en) 2008-11-03
WO2003094465A1 (en) 2003-11-13
US20030208621A1 (en) 2003-11-06
CA2385781C (en) 2012-01-31
GB2390261A (en) 2003-12-31
IL159201A0 (en) 2004-06-01
AU2003227154A1 (en) 2003-11-17
CA2385781A1 (en) 2003-11-06
ATE304775T1 (de) 2005-09-15
GB0324593D0 (en) 2003-11-26
US7571251B2 (en) 2009-08-04
EP1430694A1 (de) 2004-06-23
DE60301611D1 (de) 2005-10-20

Similar Documents

Publication Publication Date Title
DE60301611T2 (de) Wegoptimierer für gleichrangige netzwerke
DE60036021T2 (de) System zur Verteilung von Daten innerhalb eines Internetzwerkes mit zweitseitiger Vereinbarung über Inhalt
US8139483B2 (en) Network traffic control in peer-to-peer environments
DE60125954T2 (de) Adressierung und routen von datenpaketen in einem computer-netzwerk mit hilfe von inhaltsbeschreibenden labeln
DE60037660T2 (de) Auf-anfrage überlagerungsrouting für rechnerbasierte communicationsnetzwerke
Stading et al. Peer-to-peer caching schemes to address flash crowds
DE60208659T2 (de) Skalierbare ressourcenermittlung und rekonfiguration für verteilte rechnernetze
DE60132718T2 (de) System und methode zum auffinden von informationsobjekten und informationsobjektspeichern in rechnernetzen
DE60222904T2 (de) System und verfahren zum datenzugriff für ein mobiles telekommunikationsendgerät
DE69834731T2 (de) Arrangement zum gemeinsamen laden in computernetzwerken
DE60203798T2 (de) Mobiler instant-messaging- und präsenzdienst
DE60221228T2 (de) Verfahren und system zur anycast-wegleitung zwischen mehreren wirtsrechnern
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE60204528T2 (de) Auflösen von virtuellen Netzwerknamen
US7373394B1 (en) Method and apparatus for multicast cloud with integrated multicast and unicast channel routing in a content distribution network
CN101355591A (zh) 一种p2p网络及其调度方法
DE69929661T2 (de) System und Verfahren zur Gatekeeper-to-Gatekeeper Kommunikation
EP3507969A1 (de) Anycast-manifestabruf, unicast-inhaltsabruf
DE10331305A1 (de) Kommunikationssystem, Peer-to-Peer-Nachrichten-Filter-Rechner und Verfahren zum Verarbeiten einer Peer-to-Peer-Nachricht
JP4874900B2 (ja) 協働装置付き情報処理システム
EP1114547B1 (de) Verbindungseinheit und verfahren zur herstellung einer datenverbindung
EP1520389B1 (de) Netzwerk mit in kommunikationskomponenten integrierten suchfunktionen
WO2008003404A1 (de) Verfahren und kommunikationssystem zur steuerung des datenflusses über netzwerkknoten
KR20050086029A (ko) 컨텐츠 전송 네트워크 시스템
Milanesio et al. Accessing and distributing streaming events on DHT-based systems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition