DE102008032748A1 - Peer-to-peer network operating method, involves storing routing-table with network addresses of peer-devices in peer-to-peer network, and transmitting message directly from one of peer device to another peer device - Google Patents
Peer-to-peer network operating method, involves storing routing-table with network addresses of peer-devices in peer-to-peer network, and transmitting message directly from one of peer device to another peer device Download PDFInfo
- Publication number
- DE102008032748A1 DE102008032748A1 DE102008032748A DE102008032748A DE102008032748A1 DE 102008032748 A1 DE102008032748 A1 DE 102008032748A1 DE 102008032748 A DE102008032748 A DE 102008032748A DE 102008032748 A DE102008032748 A DE 102008032748A DE 102008032748 A1 DE102008032748 A1 DE 102008032748A1
- Authority
- DE
- Germany
- Prior art keywords
- peer
- network
- devices
- address
- routing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
Abstract
Description
Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben eines Peer-to-Peer-Netzwerks, ein Peer-to-Peer-Netzwerk sowie ein entsprechendes Computerprogrammprodukt.The The present invention relates to a method for operating a Peer-to-peer network, a peer-to-peer network, and a corresponding peer-to-peer network A computer program product.
Mit Peer-to-Peer-Systemen ist es möglich, eine Vielzahl von Geräten, die im Folgenden als Peer-Einrichtungen bezeichnet werden, ohne zentrale Einrichtungen, wie Servern, miteinander zu vernetzen. Dabei müssen bestimmte Dienste, welche in üblichen Client-Server-Architekturen von der jeweiligen zentralen Einheit, dem Server, übernommen wird, von den Peer-Einrichtungen selbst erbracht werden. Eine Funktionalität ist dabei die Adressauflösung, d. h. die für das Kontaktieren eines bestimmten Peers notwendige Umsetzung von bekannten Daten des Anwenders auf die Netzwerkadresse seines Gerätes bzw. seiner Peer-Einrichtung. Bekannte Daten können dabei z. B. der Anwendername, eine Telefonnummer oder andere Peer-Einrichtungen charakterisierende Bezeichnungen sein. Häufig wird das Internet als untergeordnetes Kommunikations-Netzwerk mit dem bekannten Internetprotokoll TCP/IP verwendet, sodass die Netzwerkadresse in der Regel die IP-Adresse und den Port des Peers umfasst. Im Folgenden wird die Bezeichnung Peer und Peer-Einrichtung verwendet, es sind jedoch auch Bezeichnungen, wie Netzelement, Komponente, Kommunikationsendgerät, Teilnehmer, Instanz oder Station geläufig.With Peer-to-peer systems make it possible to use a variety of Devices, referred to below as peer devices become compatible with each other without centralized facilities such as servers network. Here are certain services, which in usual Client-server architectures from the respective central unit, the server is taken over by the peer facilities itself be provided. One functionality is the Address resolution, d. H. the for the contact necessary implementation of known data for a particular peer the user to the network address of his device or his peer facility. Known data can be z. As the user name, a telephone number or other peer devices characterizing Be designations. Often the internet is considered subordinate Communication network with the well-known Internet protocol TCP / IP so the network address is usually the IP address and the port of the peer. The following is the name Peer and peer devices, but they are also terms like network element, component, communication terminal, subscriber, Instance or station familiar.
Die Kommunikation zwischen Peers erfolgt dabei über das Protokoll des untergeordneten Kommunikationsnetzwerkes, welches beispielsweise das Internet ist. Das eigentliche Peer-to-Peer-Netzwerk wird dann durch eine Gruppe von Peers gebildet, die jeweils eine Knoten-ID oder Knoten-Adresse innerhalb des Peer-to-Peer-(P2P-)Netzwerkes aufweisen. Man spricht auch von dem Peer-to-Peer-Netzwerk als Overlay-Netzwerk. Eine Datenverbindung zwischen zwei Peers eines P2P-Netzwerkes erfordert zunächst die Ermittlung der Netzwerkadresse des angefragten Peers aus der Knoten-Adresse, die dem anfragenden Peer bekannt ist. Bei so genannten hybriden P2P-Netzwerken hält ein Server ein zentrales Verzeichnis der an dem P2P-Netz beteiligten Peers in Form derer Knoten-Adresse und entsprechenden Netzwerkadresse bereit. Dateiaustauschplattformen wie beispielsweise Napster oder iMesh, Audio Galaxy oder SongSpy basieren auf einem P2P-Netzwerk mit einem entsprechenden zentralen Verzeichnisdienst. Nachteilig ist dabei, dass bei Ausfall des zentralen Verzeichnisdienstes keine neuen Kommunikationsverbindungen mehr aufgebaut werden können. Ferner ist der Verbindungsaufbau durch die Zwischenstufe der Adressanfrage bei dem zentralen Server gebremst und daher langsam.The Communication between peers takes place via the protocol the subordinate communication network, which for example the internet is. The actual peer-to-peer network will then go through a group of peers formed, each with a node ID or Node address within the peer-to-peer (P2P) network. One also speaks of the peer-to-peer network as an overlay network. A data connection between two peers of a P2P network requires first the determination of the network address of the requested peer from the Node address known to the requesting peer. In so-called hybrid P2P networks, a server keeps a central directory the peers involved in the P2P network in the form of their node address and corresponding network address. File sharing platforms such as Napster or iMesh, Audio Galaxy or SongSpy are based on a P2P network with a corresponding central Directory service. The disadvantage here is that in case of failure of the central Directory service no longer communication links can be built. Furthermore, the connection is established through the intermediary of the address request at the central server slowed down and therefore slow.
Um die Abhängigkeit von einem Server mit zentralem Adressverzeichnis zu umgehen, ist es möglich, sogenannte dezentrale P2P-Netzwerke zu implementieren. Dabei ist kein zentraler Server oder ein ausgezeichneter Peer, für einen Verzeichnisdienst vorgesehen. Ein anfragender Peer macht dann dynamisch weitere Peers des P2P-Netzwerkes ausfindig und kommuniziert mit diesen, um Daten und Informationen auszutauschen. Die Adressauflösung, also das Ausfindigmachen der Netzwerkadresse des durch eine Knoten-Adresse in dem P2P-Netzwerk charakterisierten angefragten Peers, erfolgt dynamisch über ein Routing-Protokoll.Around the dependency on a server with a central address directory It is possible to bypass so-called decentralized P2P networks to implement. It is not a central server or an excellent one Peer, intended for a directory service. An inquiring one Peer then dynamically locates further peers of the P2P network and communicates with them to exchange data and information. The address resolution, ie the discovery of the network address of the node address in the P2P network requested peers, is done dynamically via a routing protocol.
Eine
Möglichkeit besteht beispielsweise in der Verwendung einer
verteilten Hash-Tabelle (DHT = Distributed Hash Table). Dabei ist
die Tabelle, welche jedem Peer bzw. jeder Knoten-Adresse eine entsprechende Netzwerkadresse
in dem verwendeten Kommunikationsnetzwerk zuordnet, auf alle beteiligten
Peers in dem P2P-Netzwerk verteilt. Bei einer ringförmig
organisierten logischen Anordnung der Peers bzw. der Knoten-Adressen
können die Peers beispielsweise eine vorgegebene Anzahl
von benachbarten Peers bzw. Knoten-Adressen und deren Netzwerkadressen
in einer lokalen Zuordnungs- oder Hash-Tabelle verteilt abspeichern.
Der Knotenadressraum weist dabei eine Metrik auf, die Abstände
zwischen Peers bzw. Knoten- Adressen definiert. Ein geeigneter Algorithmus
zur Adressauflösung in einem ringförmig organisierten
dezentralen P2P-Netzwerk ist z. B. der Chord-Algorithmus, welcher
in
Die Zuordnung einer Knoten-Adresse oder Knoten-ID (node-ID) kann beispielsweise durch Anwendung einer Hash-Funktion auf einen Benutzernamen des betreffenden Peers bestimmt werden. Analog können auch Suchbegriffe, wie beispielsweise Dateinamen einer Hash-Funktion unterzogen werden, was einen Hash-Wert liefert. Jedem Peer ist ein Bereich von Hash-Werten zugeordnet, die z. B. wiederum aufsteigend geordnet sind. Der erste Hash-Wert des einem jeweiligen Peer zugeordneten Bereichs entspricht dann z. B. der Knoten-Adresse des betreffenden Peers. Dadurch wird beispielsweise festgelegt, welche Daten unter dem gehashten Dateinamen bei einem Peer verfügbar sind.The For example, mapping a node address or node ID (node ID) by applying a hash function to a user name of the be determined peers. Analog can also Search terms, such as file names of a hash function which yields a hash value. Every peer is one Range of hash values assigned to e.g. B. again arranged in ascending order are. The first hash value of the associated peer Area corresponds to z. B. the node address of the relevant Peers. This determines, for example, which data is under the hashed file name are available at a peer.
Eine Suche nach Daten oder Teilnehmern bzw. Peers wird durchgeführt, indem der anfragende oder suchende Peer den Hash-Wert des vorgegebenen Schlüsselwortes, wie Dateiname, Benutzername oder z. B. Telefonnummer berechnet. Um die Netzwerkadresse der sich durch das Hashen ergebenden, zu suchenden Knoten-ID aufzufinden, sendet der anfragende Peer eine Suchanfrage an einen Peer, der mit seiner Knoten-Adresse und zugehörigen Netzwerkadresse in einer Liste bekannter Peers, beispielsweise einer Nachbarliste und/oder Fingerliste, des anfragenden Peers verzeichnet ist. Falls der angefragte Peer für den gesuchten Hash-Wert zuständig ist, sendet er die angefragten Daten an den anfragenden Peer über das Netzwerk.A search for data or participants or peers is carried out by the requesting or searching peer the hash value of the given keyword, such as file name, username or z. B. telephone number. In order to find the network address of the node ID to be searched for by the hash, the requesting peer sends a search request to a peer, with its node address and associated network address in a list of known peers, for example a neighbor list and / or finger list, of the requesting peer. If the requested peer is responsible for the searched hash value, it sends the requested data to the requesting peer over the network.
Falls der zuerst angefragte Peer nicht für den Hash-Wert zuständig ist, antwortet er mit der Adresse eines Peers aus seiner Peerliste, dessen Knoten-ID dem gesuchten Hash-Wert ähnlicher ist als seine eigene Knoten-Adresse. Ob die eigene Knoten-ID mit der gesuchten Knoten-ID bzw. dem gesuchten Hash-Wert ähnlich ist, ergibt sich aus der verwendeten Metrik des Knotenadressraums. Der zuerst angefragte Peer sendet somit dem anfragenden Peer eine Knoten-ID und IP-Adresse, die dem gesuchten Hash-Wert näher kommt. Der anfragende Peer kann nun eine zweite Suchanfrage an den Peer mit der näheren Knoten-Adresse senden. Dieses Verfahren wird weitergeführt, bis ein Peer gefunden wird, der für den Hash-Wert zuständig ist und die gesuchten Daten liefern kann. Es ergibt sich daher für den Nachrichtenaustausch zwischen den Peers üblicherweise ein Mehrfach-Hopping. Die Nachricht wird durch mehrere Peer-Einrichtungen im Netzwerk zu dem jeweiligen Zielpeer geroutet.If the first requested peer is not responsible for the hash value is, he answers with the address of a peer from his peer list, whose node ID is more similar to the searched hash value as its own node address. Whether the own node ID with the similar to the searched node ID or the searched hash value is determined by the metric used by the node address space. The first requested peer thus sends the requesting peer one Node ID and IP address closer to the searched hash value comes. The requesting peer can now send a second query to the Send peer with the closer node address. This method is continued until a peer is found for is responsible for the hash value and provide the searched data can. It therefore results for the message exchange between the peers usually a multiple hopping. The message is transmitted through multiple peer devices on the network routed to the respective target spear.
Bei diesem dezentralen Aufbau des P2P-Netzwerkes können die teilnehmenden Peers in einer Ringstruktur organisiert sein, die sich aus der geordneten periodisch fortgesetzten Liste von Knoten-Adressen ergibt. Prinzipiell sind auch andere Strukturen möglich, beispielsweise eine Baumstruktur. P2P-Netzwerke finden beispielsweise Anwendung zum Austausch von Dateien in Tauschbörsen. Eine Adressauflösung hinsichtlich der Netzwerkadresse in dem verwendeten Netzwerk ist jedoch auch insbesondere wichtig bei so genannten VOIP-Übertragungen, d. h. Sprachübertragung über das Internet (VOIP = voice over IP). Beispielsweise ist ein P2P-Netzwerk zur Sprachübertragung unter dem Namen ”Skype” bekannt. Die Kommunikationssoftware Skype erfordert eine zentrale Bereitstellung der Netzwerkadressdaten der teilnehmenden Peers. Teilnehmer dieses Netzwerkes können untereinander Sprachdaten austauschen und somit über das Internet telefonieren.at This decentralized structure of the P2P network, the participating peers be organized in a ring structure, the resulting from the ordered periodically continued list of node addresses. In principle, other structures are possible, for example a tree structure. For example, P2P networks are used to exchange files in file sharing networks. An address resolution in terms of the network address in the network used but also particularly important in so-called VOIP transmissions, d. H. Voice over the Internet (VOIP = voice over IP). For example, a P2P network is for voice transmission known as "Skype". The communication software Skype requires centralized delivery of network address information the participating peers. Participants of this network can exchange voice data with each other and thus via the Internet calls.
Bei allen vorgenannten Verfahren besteht das Problem, dass Nachrichten, die von einem Peer zu einem anderen versendet werden, über mehrere vorliegende Peers geroutet werden müssen. Dadurch wird der eigentliche Informationsaustausch gebremst und langsam. Insbesondere Anwendungen, die eine Echtzeitverarbeitung erfordern, lassen sich daher nicht durch konventionelle Peer-to-Peer-Protokolle realisieren.at all the above methods have the problem that messages, which are sent from one peer to another over several existing peers must be routed. Thereby the actual information exchange is slowed down and slow. In particular, applications that require real-time processing, can not be solved by conventional peer-to-peer protocols realize.
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren zum Betreiben eines Peer-to-Peer-Netzwerks zu schaffen.It is therefore an object of the present invention, an improved To provide a method of operating a peer-to-peer network.
Es wird daher ein Verfahren zum Betreiben eines P2P-Netzwerkes mit mehreren Peer-Einrichtungen vorgeschlagen, wobei jeder Peer-Einrichtung jeweils eine Netzwerkadresse in einem Kommunikationsnetzwerk zugewiesen wird. Ferner wird von jeder Peer-Einrichtung eine Routing-Tabelle mit mindestens den Netzwerkadressen der übrigen Peer-Einrichtungen in dem P2P-Netzwerk abgespeichert.It Therefore, a method for operating a P2P network with Several peer devices are proposed, each peer device each assigned a network address in a communication network becomes. Furthermore, each peer device becomes a routing table with at least the network addresses of the other peer devices stored in the P2P network.
Es wird ferner ein P2P-Netzwerk mit mehreren Peer-Einrichtungen vorgeschlagen, welcher jeweils eine Netzwerkadresse in einem Kommunikationsnetz zugewiesen ist. Dabei speichert jede Peer-Einrichtung eine Routing-Tabelle mit mindestens den Netzwerkadressen der übrigen Peer-Einrichtungen in dem P2P-Netzwerk ab.It In addition, a P2P network with several peer devices is proposed. which each have a network address in a communication network is assigned. Each peer device stores a routing table with at least the network addresses of the other peer devices in the P2P network.
Eine Routing-Tabelle ermöglicht das Versenden von Nachrichten zwischen Peer-Einrichtungen in dem P2P-Netzwerk ohne weitere Routing-Mechanismen beispielsweise über andere Peer-Einrichtungen. Nachrichten werden daher von einem Peer zu einem anderen direkt versendet, was z. B. bei Anwendungen, die in Echtzeit erfolgen sollen, eine erhebliche Beschleunigung des Datenaustauschs gegenüber konventionellen Routing-Verfahren schafft. Alle Peer-Einrichtungen können jeweils eine Routing-Tabelle speichern.A Routing table enables the sending of messages between peer devices in the P2P network without further routing mechanisms for example via other peer devices. news are therefore sent directly from one peer to another, which z. For example, in applications that should be done in real time, a significant Acceleration of data exchange over conventional Routing procedure creates. All peer facilities can each store a routing table.
Die Routing-Tabelle umfasst vorzugsweise zu jeder in dem P2P-Netzwerk vorliegenden Peer-Einrichtung eine Peer-Identifikation, wie z. B. eine Knoten-Adresse, die Netzwerkadresse und eine Zeitangabe. Die Zeitangabe liefert dabei eine Information über die Aktualität der Routing-Tabelle, z. B. wann eine Veränderung der Teilnehmer-Peers im Peer-to-Peer-Netzwerk vorgekommen ist. Es ist möglich, die Routing-Tabelle aus den Informationen zusammenzustellen, die zur Stabilisierung des Netzwerkes zwischen den Peer-Einrichtungen sowieso ausge tauscht werden. Stabilisierungsnachrichten werden beispielsweise ausgetauscht, wenn Peer-Einrichtungen zum Netzwerk hinzutreten oder sich abmelden oder ausfallen. Die sich daraus ergebenden Informationen können von einer beteiligten Peer-Einrichtung sofort an alle weiteren Peer-Einrichtungen im P2P-Netzwerk verteilt werden. Damit hat immer jede P2P-Einrichtung im P2P-Netzwerk alle notwendigen Routing-Informationen, so dass der Nachrichten- oder Informationsaustausch schnell erfolgen kann.The routing table preferably comprises a peer identification for each peer device present in the P2P network, such as e.g. As a node address, the network address and a time. The time specification provides information about the timeliness of the routing table, z. For example, when a change in the subscriber peers in the peer-to-peer network has occurred. It is possible to assemble the routing table from the information that is exchanged anyway to stabilize the network between the peer devices. Stabilization messages, for example, are exchanged when peer devices join the network or log off or fail. The resulting information can be sent by a participating peer device immediately to all other peer devices in the P2P network. This means that every P2P device in the P2P network has all the necessary routing information so that the exchange of messages or information can be carried out quickly.
Beim Senden einer Nachricht von einer ersten Peer-Einrichtung an eine zweite Peer-Einrichtung in dem Kommunikationsnetzwerk, das beispielsweise das Internet sein kann, liest die erste Peer-Einrichtung die Netzwerkadresse der zweiten Peer-Einrichtung aus der von der ersten Peer-Einrichtung gespeicherten Routing-Tabelle aus.At the Sending a message from a first peer device to a second peer device in the communication network, for example can be the Internet, the first peer device reads the network address the second peer device from that of the first peer device saved routing table.
Vorzugsweise wird für alle Peer-Einrichtungen eine jeweilige Nachricht von einer ersten Peer-Einrichtung zu einer zweiten Peer-Einrichtung direkt ohne Routing oder Hopping über eine weitere Peer-Einrichtung übermittelt.Preferably becomes a message for all peer facilities from a first peer device to a second peer device transmitted directly without routing or hopping via another peer device.
Bei einer Variante des Verfahrens wird beim Hinzutreten oder Entfernen einer Peer-Einrichtung zu oder von dem P2P-Netzwerk die Netzwerkadresse der hinzutretenden oder sich entfernenden Peer-Einrichtung in dem P2P-Netzwerk publiziert. Unter Publizieren versteht man das verteilte Abspeichern von Informationen im P2P-Netzwerk, wobei entsprechende Informationen einer Ressource anschließend für alle an der Änderung der Netzwerkzusammenstellung beteiligten Peers zugänglich sind. Die Peer-Einrichtungen können über einen Subscribe-Mechanismus, den viele P2P-Netzwerkprotokolle vorhalten, aktuelle Änderungen erfassen bzw. überwachen.at A variant of the method is used in addition or removal a peer device to or from the P2P network the network address the adjoining or withdrawing peer device in the P2P network published. Publishing is the distributed one Storing information in the P2P network, with appropriate Then enter information for a resource everyone involved in changing the network composition Peers are accessible. The peer facilities can over a subscribe mechanism that many P2P network protocols hold, Record or monitor current changes.
Es kann beim Hinzutreten oder Entfernen einer Peer-Einrichtung zu oder von dem P2P-Netzwerk ferner ein Multicast zum Aktualisieren der durch die Peer-Einrichtungen gespeicherten Routing-Tabellen erfolgen. Es ist daher im Rahmen des Verfah rens zum Betreiben eines P2P-Netzwerkes gewährleistet, dass auch bei einer Veränderung der Zusammensetzung des P2P-Netzwerkes die Routing-Tabellen an allen Peers immer aktuell vorliegen.It may interfere with the addition or removal of a peer device to or from the P2P network also multicast to update the done by the peer devices stored routing tables. It is therefore part of the process of operating a P2P network ensures that even with a change the composition of the P2P network the routing tables at all Peers are always up to date.
Ein entsprechendes P2P-Netzwerk kann insbesondere als Embedded Netzwerk ausgebildet werden, wobei die Peer-Einrichtungen eine begrenzte Anzahl umfassen. Vorzugsweise hat das Netzwerk insbesondere weniger als 257 Peer-Einrichtungen, damit die zeitnahe Verteilung und Aktualisierung sowie Speicherung der Routing-Tabelle an jedem Peer effizient gewährleistet werden kann. Die Peer-Einrichtungen können dabei als Peer-Client-Software z. B. für programmgesteuerte Einrichtungen wie PCs implementiert werden.One appropriate P2P network can be used in particular as an embedded network be formed, the peer facilities a limited Include number. In particular, the network preferably has less as 257 peer facilities, enabling timely distribution and updating as well as efficiently storing the routing table at each peer can be. The peer devices can be used as peer-client software z. B. implemented for program-controlled devices such as PCs become.
In einer Variante wird das P2P-Netzwerk mit einer verteilten Hash-Tabelle und insbesondere mit einem Chord-Algorithmus oder eine Kademlia-Algorithmus für Ressourcen-Bereitstellung in dem P2P-Netzwerk betrieben. Abweichend von den üblichen Algorithmen wird jedoch die Routing-Tabelle auf jeder Peer-Einrichtung vorgesehen.In a variant is the P2P network with a distributed hash table and in particular with a Chord algorithm or a Kademlia algorithm operated for resource provisioning in the P2P network. Deviating from the usual algorithms, however, the Routing table provided on each peer device.
Die Erfindung betrifft ferner ein Computerprogrammprodukt, welches die Durchführung eines entsprechenden Verfahrens auf einer programmsteuerbaren Rechnereinrichtung veranlasst. Als programmgesteuerte Rechnereinrichtung kommt zum Beispiel ein PC oder auch Mobilgerät in Frage, auf dem entsprechende (Client-)Software installiert ist. Das Computerprogrammprodukt kann beispielsweise in der Art eines Datenträgers wie zum Beispiel USB-Stick, Floppy-Disk, CD-ROM, DVD implementiert werden oder auch auf einer Servereinrichtung als herunterladbare Programmdatei implementiert sein.The The invention further relates to a computer program product comprising the Conducting a corresponding procedure on a program-controllable computer device causes. As a program-controlled computer device For example, a PC or even a mobile device is an option. on the appropriate (client) software is installed. The computer program product For example, in the manner of a data carrier such as Example USB flash drive, floppy disk, CD-ROM, DVD can be implemented or on a server device as a downloadable program file be implemented.
Weitere vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche sowie der im Folgenden beschriebenen Ausführungsbeispiele. Im Weiteren wird die Erfindung anhand beispielhafter Implementierungen unter Bezugnahme auf die beigelegten Figuren näher erläutert. Es zeigt dabei:Further advantageous embodiments of the invention are the subject of the dependent claims and the embodiments described below. In the following, the invention will be described with reference to exemplary implementations explained in more detail with reference to the accompanying figures. It shows:
In den Figuren sind gleiche bzw. funktionsgleiche Elemente mit den gleichen Bezugszeichen versehen worden, sofern nichts Anderes angegeben ist.In the figures, identical or functionally identical elements are provided with the same reference numerals unless otherwise stated.
Zur
Erläuterung der allgemeinen Problematik bei der Adressauflösung
in Peer-to-Peer-Netzwerken ist in der
Die Knoten-Adresse eines Peers ergibt sich beispielsweise durch Anwendung einer geeigneten Hash-Funktion auf den Namen des Peers. Der Name kann beispielsweise ein Benutzername oder eine Telefonnummer sein. Der Hash-Wert eines entsprechenden Suchwortes, beispielsweise einer Telefonnummer, ist einer Knoten-ID bzw. einer Knoten-Adresse zugeordnet. Es können auch mehrere Hash-Werte einer Knoten-Adresse zugeordnet sein.The Node address of a peer results, for example, by application a suitable hash function in the name of the peer. The name may be, for example, a user name or a telephone number. The hash value of a corresponding search term, for example one Telephone number, is assigned to a node ID or a node address. It can also have multiple hash values of a node address be assigned.
Beispielsweise
kann dem Peer P1 eine Knoten-Adresse NID1 = 003 zugeordnet sein,
wobei der Wert NID1 = 003 den Beginn eines Bereiches von Hash-Werten
angibt, für die der Peer P1 verantwortlich ist. Bei einem
P2P-Netzwerk, das 10 Bit breite Hash-Werte verwendet, können
beispielsweise wie in der folgenden Tabelle angegebene Bereiche
von Hash-Werten den jeweiligen Peers zugeordnet werden. Bei 10-Bit-Hashwerten
sind beispielsweise 1024 Peers in dem P2P-Netzwerk möglich. Peer
Knoten-Adresse Hash-Werte
Jedem Peer ist somit eine Knoten-Adresse mit einem bestimmten Wert zugeordnet und ein Bereich von aus Suchbegriffen erzeugte Hash-Werte H = Hash(Suchbegriff).Each Peer is thus assigned a node address with a specific value and a range of hash values generated from search terms H = hash (search term).
Die Tabelle stellt somit die vollständige Tabelle des P2P-Netzwerkes dar. Diese ist nicht zentral von einem Server bereitgestellt, sondern auf die einzelnen Peers P1–P8 aufgeteilt abgespeichert. Jeder Peer kennt die zugeordneten Hash-Werte seiner Nachbarn, beispielsweise der nächsten Nachbarn.The Table thus represents the complete table of the P2P network This is not centrally provided by a server, but stored on the individual peers P1-P8 stored. Each peer knows the assigned hash values of its neighbors, for example the nearest neighbor.
Der
Peer P3 hat die Information abgespeichert, dass für Hash-Werte
124–203 der Peer P2 mit Knoten-Adresse NID2 = 124 zuständig
ist. Der Peer P3 kennt ferner seine eigene Zuständigkeit
für die Hash-Werte 204–311 und die Zuständigkeit
des benachbarten Peers P4 mit der Knoten-Adresse NID4 = 312 für
die Hash-Werte 312–434. Verallgemeinert verfügt
jeder Peer über eine Teil-Hash-Tabelle mit der Zuordnung
von Hash-Werten seiner im Knotenadressraum benachbarten Peers und
gegebenenfalls die Zuordnung der Hash-Werte eines oder mehrerer
Finger-Peers, z. B. im Falle des Peers P3, die Zuordnung des Peers
P7 mit der Knoten-Adresse NID7 = 690 für die Hash-Werte
690-814. Eine entsprechende Teil-Hash-Tabelle PHT ist in der
Falls nun ausgehend von dem Peer P2 eine Suchanfrage bzw. Dateiabfrage für einen Suchbegriff, der den Hash-Wert Hash(Suchbegriff) = 530 liefert, gestartet wird, sendet der Peer P2 eine Suchanfrage F1 an den Peer P3 unter Angabe seiner eigenen Netzwerkadresse IP2 und dem gesuchten Hash-Wert 530. Es wird der Peer P3 ausgewählt, da in der Teil-Hash-Tabelle PHT2 des Peers P2 der Hash-Wert 530 näher an dem Zuständigkeitsbereich des Peers P3 mit Hash-Werten zwischen 204 und 311 liegt, als der weitere in der Teil-Hash-Tabelle verzeichnete Peer P1 mit Zuständigkeitsbereich zwischen H = 003 und 123. Eine Suchanfrage wird daher immer an denjenigen Peer in der eigenen Teil-Hash-Tabelle gesendet, dessen Knoten-Adresse im Knotenadressraum am nächsten dem Hash-Wert des Suchbegriffs bzw. der Ziel-Knoten-Adresse liegt.If now starting from the peer P2 a query or file query for a search term that hashed the hash value (search term) = 530 returns, the peer P2 sends a query F1 to the peer P3 stating its own network address IP2 and the searched hash value 530. The peer P3 is selected, since in the partial hash table PHT2 of the peer P2 the hash value 530 closer to the area of responsibility of peer P3 with hash values between 204 and 311, as the other in the sub-hash table listed Peer P1 with area of responsibility between H = 003 and 123. Therefore, a query will always be to those Peer sent in its own sub-hash table, its node address in the node address space closest to the hash value of the search term or the destination node address.
Der Peer P3 überprüft daraufhin seine Teil-Hash-Tabelle PHT3 und ermittelt den Peer P7 als denjenigen Peer, dessen Zuständigkeitsbereich bzw. zugeordnete Hash-Werte dem gesuchten Hash-Wert 530 am nächsten liegt und sendet eine entsprechende zweite Suchanfrage F2. Der Peer P7 ermittelt in seiner zugeordneten Teil-Hash-Tabelle PHT7 den Peer P6 mit der Knoten-Adresse 523 als für den Hash-Wert 530 zuständigen Peer und sendet diese Information an den ursprünglich anfragenden Peer P2, dessen Netzwerkadresse IP2 den Suchanfragen F1, F2 zugeordnet ist. Alternativ könnte der Peer P7, falls der Peer P2 eine Datenabfrage des Suchbegriffs mit dem Hash-Wert 530 versendet hat, dem Peer P6 die Datenabfrageanforderung von dem Peer P2 bzw. dessen Netzwerkadresse IP2 in einer Nachricht F3' zu senden. Daraufhin übermittelt der Ziel-Peer P6 direkt an den anfragenden Peer P2 bzw. dessen IP-Adresse IP2 die mit dem Hash-Wert 530 bezeichneten Daten über eine Datenverbindung F4 im Kommunikationsnetzwerk bzw. Internet. Somit ermög licht ein entsprechendes P2P-Protokoll die Adressauflösung von gesuchten Daten, beispielsweise ausgehend vom Peer P2, dem keine Information über den Speicherort dieser Daten im P2P-Netzwerk vorliegen, da die dem Peer P2 zugeordnete Teilflash-Tabelle PHT2 diesen Knotenadressbereich nicht umfasst.The peer P3 then examines its partial hash table PHT3 and determines the peer P7 as the peer whose jurisdiction or hashed values match the searched hash value 530 am Next is and sends a corresponding second query F2. The peer P7 determines in its associated partial hash table PHT7 the peer P6 with the node address 523 as peer responsible for the hash value 530 and sends this information to the originally requesting peer P2 whose network address IP2 the search requests F1, F2 assigned. Alternatively, if peer P2 has sent a data query of the search term having hash value 530, peer P7 could send peer P6 the data query request from peer P2 or its network address IP2 in a message F3 '. The destination peer P6 then transmits directly to the requesting peer P2 or its IP address IP2 the data designated by the hash value 530 via a data connection F4 in the communication network or Internet. Thus, a corresponding P2P protocol enabled the address resolution of searched data, for example from the peer P2, which has no information about the storage location of this data in the P2P network, since the partial flash table PHT2 assigned to the peer P2 does not include this node address range.
In
der
In der jeweiligen Routing-Tabelle R1–R5 ist die Peer-Identifikation oder Knoten-Adresse ID1–ID5 für jede Peer-Einrichtung P1–P5 abgelegt sowie die zugehörige Netzwerkadresse IP1–IP5, welche für den Nachrichten- oder Informationsaustausch im Netzwerk IN notwendig sind. Da jede der Peer-Einrichtungen P1–P5 über die Routing-Tabelle P1–P5 in abgespeicherter Form verfügt, ist es möglich ohne zusätzliche Routingvorgänge Nachrichten auszutauschen. Beispielsweise kann ein Speicherbereich oder ein dezidierter Speicher für die Routing-Tabelle vorgesehen werden. Bei dem Versenden einer Nachricht beispielsweise von der Peer-Einrichtung P1 an die Peer-Einrichtung P5 kann unter Koordinierung eines entsprechend abgewandelten Peer-to-Peer-Protokollalgorithmus die Peer-Einrichtung P1 aus ihrer vorliegenden Routing-Liste R1 die Netzwerkadresse des Peers P5 auslesen. Der Versand der Nachricht F1 erfolgt dann direkt unter Verwendung der Netzwerkadresse IP5 für die Peer-Einrichtung P5 mit der Knoten- Adresse NID5. Dabei geschieht kein Hopping oder weiteres Routing mit der Nachricht F1, was den Informations- oder Nachrichtenaustausch verzögern könnte. Auch die Antwortnachricht F2 von der Peer-Einrichtung P5 an die Peer-Einrichtung P1 wird ohne weiteres Hopping oder Routing über andere Einrichtungen im Peer-to-Peer-Netzwerk P2P2 übermittelt. Die Peer-Einrichtung P5 liest aus ihrer vollständigen Routing-Tabelle R5 die Netzwerkadresse des Peers P1 IP1 aus und versendet direkt im Rahmen des Protokolls für das ”underlaying” Internet IN die Nachricht F2. Insbesondere bei Echtzeitanwendungen lassen sich durch das Vorsehen von Routing-Tabellen an allen Peer-Einrichtungen eine Implementierung in Peer-to-Peer-Netzwerken realisieren. In der Vergangenheit war dies insbesondere aufgrund der komplizierten Routing-Verfahren kaum möglich.In the respective routing table R1-R5 is the peer identification or node address ID1-ID5 for each peer device P1-P5 and the associated network address IP1-IP5, which is used for message or information exchange necessary in the network IN. Since each of the peer devices P1-P5 via has the routing table P1-P5 in stored form, is it possible without additional routing operations Exchange messages. For example, a memory area or a dedicated memory for the routing table provided become. For example, when sending a message from the Peer device P1 to the peer device P5 can under coordination a correspondingly modified peer-to-peer protocol algorithm the peer device P1 from its present routing list R1 read out the network address of peer P5. The shipment of the message F1 then takes place directly using the network address IP5 for the peer device P5 with the node address NID5. There is no hopping or further routing with the message F1, which could delay the exchange of information or messages. Also, the response message F2 from the peer device P5 to the Peer setup P1 will hopping or routing without further ado other entities in the P2P2 peer-to-peer network. The peer device P5 reads from its complete routing table R5 outputs the network address of the peer P1 IP1 and sends it directly under the protocol for the underlaying Internet IN the message F2. Especially for real-time applications by providing routing tables at all peer devices implement an implementation in peer-to-peer networks. In In the past this was especially because of the complicated Routing method hardly possible.
Das
vorgeschlagene Verfahren bzw. eine Implementierung in einem Peer-to-Peer-Netzwerk,
wie es in der
In
der
In
dem Beispiel der
Ergänzend können benachbarte Peer-Einrichtungen gegenseitig Stabilisierungsnachrichten gemäß beispielsweise dem Chord- Protokoll übermitteln. In diesen Stabilisierungsnachrichten werden zyklisch die Adressinformationen übermittelt. Die jeweiligen Nachbar-Peer-Einrichtungen überwachen dabei das regelmäßige Eintreffen der Stabilisierungsnachrichten. Falls eine entsprechende Nachricht für einen Peer über eine vorbestimmte Zeitdauer ausbleibt, wird dieser Peer als off-line oder ausgefallen betrachtet, was die ursprünglich benachbarten Peer-Einrichtungen zur Aktualisierung der Routing-Tabelle an die anderen Peer-Einrichtungen melden kann.additional neighboring peer devices can mutually stabilize messages according to, for example, the Chord Protocol. The address information is transmitted cyclically in these stabilization messages. The respective neighboring peer devices monitor thereby the regular arrival of the stabilization messages. If a message for a peer over fails for a predetermined period of time, this peer is considered off-line or failed to consider what the originally adjacent Peer facilities to update the routing table to the can report to other peer organizations.
Beispielsweise
in der
Bei einem unkontrollierten Ausfall einer Peer-Einrichtung erfolgt die Stabilisierung und das Wiederherstellen eines beispielsweisen Chord-Rings in dem Peer-to-Peer-Netzwerk, wenn Stabilisierungsnachrichten ausfallen. Derartige Herzschlag- oder Heartbeat-Nachrichten, die jeder Peer seinen Nachbar-Peer-Einrichtungen übermittelt, zeigen die Aktivität der Peer-Einrichtung an. Fällt eine Peer-Einrichtung aus, d. h. es werden keine Herzschlagnachrichten gesendet, wird gemäß dem Verfahren zum Betreiben des Peer-to-Peer-Netzwerks die Routing-Tabelle an allen übrigen Peer-Einrichtungen aktualisiert, was zum Beispiel durch direkten Nachrichtenaustausch erfolgen kann. Die übrigen Eigenschaften eines Peer-to-Peer-Netzwerkes, beispielsweise beim Publizieren oder Bereitstel len von Ressourcen, z. B. im Rahmen eines bekannten Peer-to-Peer-Protokolls, bleiben unberührt. Allerdings kann der Nachrichtenaustausch deutlich schneller und effizienter erfolgen, da immer ohne Routing-Algorithmen die direkte Netzwerkadresse aller Peer-Einrichtungen bekannt ist.at an uncontrolled failure of a peer device is the Stabilizing and restoring an exemplary chord ring in the peer-to-peer network when stabilization messages fail. Such heartbeat or heartbeat messages that every peer transmitted to his neighbor peer facilities, the show Activity of the peer device. Falls one Peer device, d. H. there will be no heartbeat news is sent according to the method of operation of the peer-to-peer network, the routing table on all the rest Peer facilities updated, for example, through direct messaging can be done. The remaining properties of a peer-to-peer network, for example, when publishing or deploying resources, z. B. in the context of a known peer-to-peer protocol remain unaffected. However, the message exchange can be clear faster and more efficient, always without routing algorithms the direct network address of all peer devices is known.
Die Durchführung des Verfahrens bzw. der angesprochenen Verfahrensschritte lässt sich jeweils durch die Peer-Einrichtungen implementieren. Dabei ist dem Fachmann klar, welche Verfahrenssteile welcher Einrichtung oder zum Beispiel einer Teilroutine eines entsprechenden Computerprogramms zugeordnet sind. Insofern sind die funktionalen Blöcke in den Figuren auch als Programmmodule oder Routinen aufzufassen oder aber als dezidiert eingerichtete Einrichtungen, welche zur Implementierung der jeweiligen Funktion während des Verfahrens dienen.The Implementation of the method or the mentioned method steps can be implemented by the peer devices. It is clear to those skilled in which parts of the process which device or, for example, a subroutine of a corresponding computer program assigned. In this respect, the functional blocks in the figures also as program modules or routines to understand or as decidedly furnished facilities, which for Implementation of the respective function during the procedure serve.
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list The documents listed by the applicant have been automated generated and is solely for better information recorded by the reader. The list is not part of the German Patent or utility model application. The DPMA takes over no liability for any errors or omissions.
Zitierte Nicht-PatentliteraturCited non-patent literature
- - Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan: ”CHORD: A Scalable Peer-to-Peer Lookup Service for Internet Applications, MIT-LCS-TR-819 [0005] Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan: "CHORD: A Scalable Peer-to-Peer Lookup Service for Internet Applications, MIT-LCS-TR-819 [0005]
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102008032748A DE102008032748A1 (en) | 2008-07-11 | 2008-07-11 | Peer-to-peer network operating method, involves storing routing-table with network addresses of peer-devices in peer-to-peer network, and transmitting message directly from one of peer device to another peer device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102008032748A DE102008032748A1 (en) | 2008-07-11 | 2008-07-11 | Peer-to-peer network operating method, involves storing routing-table with network addresses of peer-devices in peer-to-peer network, and transmitting message directly from one of peer device to another peer device |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102008032748A1 true DE102008032748A1 (en) | 2010-01-14 |
Family
ID=41412788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102008032748A Ceased DE102008032748A1 (en) | 2008-07-11 | 2008-07-11 | Peer-to-peer network operating method, involves storing routing-table with network addresses of peer-devices in peer-to-peer network, and transmitting message directly from one of peer device to another peer device |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102008032748A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050135286A1 (en) * | 2003-12-23 | 2005-06-23 | Nurminen Jukka K. | Wireless extended proximity networks: systems, methods and program products |
-
2008
- 2008-07-11 DE DE102008032748A patent/DE102008032748A1/en not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050135286A1 (en) * | 2003-12-23 | 2005-06-23 | Nurminen Jukka K. | Wireless extended proximity networks: systems, methods and program products |
Non-Patent Citations (1)
Title |
---|
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan: "CHORD: A Scalable Peer-to-Peer Lookup Service for Internet Applications, MIT-LCS-TR-819 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102006021591B3 (en) | Data transfer method for e.g. Internet, involves transmitting query for destination-peer-device from one of peer-to-peer-networks to one of peer-devices in network under information of one of network addresses of another peer-device | |
DE60317925T2 (en) | CONTROLLING NETWORK TRAFFIC IN A PEER-TO-PEER ENVIRONMENT | |
DE60301783T2 (en) | METHOD AND SYSTEM FOR EQUIVALENT COMMUNICATION IN A NETWORK ENVIRONMENT | |
DE60211524T2 (en) | METHOD AND DEVICE FOR THE DISTRIBUTED DELIVERY OF CONTENT WITHIN A COMPUTER NETWORK | |
DE60208659T2 (en) | SCALABLE RESOURCE DETECTION AND RECONFIGURATION FOR DISTRIBUTED COMPUTER NETWORKS | |
EP1423964B1 (en) | Scalable peer-to-peer-network with a directory service | |
EP1851944B1 (en) | Method for initiating a voip communication using a peer-to-peer database | |
DE102015102871A1 (en) | Distributed routing table lookup technologies | |
EP3059930A1 (en) | Method for configuring a communication device of an industrial automation system and communication device | |
EP3611876A1 (en) | Method for configuring, method for providing topology information, use, device, computer program and computer readable medium | |
EP2201747B1 (en) | Device for operating a dezentralized communication network | |
DE10345051B4 (en) | Method for establishing a communication connection in a directly communicating communication network | |
EP2503760B1 (en) | Method for setting up a communication network comprising devices of an automation assembly | |
DE10394206T5 (en) | Data communication load distribution control program and data load distribution control method | |
EP3076636A1 (en) | Method for providing a name service within an industrial communication system and name service server | |
DE60313026T2 (en) | METHOD AND DEVICE FOR DISTRIBUTING DATA PACKAGES FROM A COMPUTER TO A CLUSTER SYSTEM | |
DE10316236A1 (en) | Method and arrangement for configuring a device in a data network | |
DE102008032748A1 (en) | Peer-to-peer network operating method, involves storing routing-table with network addresses of peer-devices in peer-to-peer network, and transmitting message directly from one of peer device to another peer device | |
EP2044738A1 (en) | Method for operating a local area data network | |
EP2933985B1 (en) | Use of multicast DNS | |
DE102006004025A1 (en) | Method for transmitting a message, network node and network | |
EP3813315A1 (en) | Method for diagnosing data traffic, method for determining a configuration, cluster, computer program and computer-readable medium | |
EP2695364A1 (en) | Method for addressing messages in a computer network | |
EP1520389B1 (en) | Network comprising search functions that are integrated into communication components | |
EP1511272B1 (en) | Server assignment method for clients distributed in more than one networks and client for the server assignmend method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |