-
Die
Erfindung betrifft eine Peer-to-Peer-Kommunikationseinrichtung, ein Verfahren
zum Bilden einer Peer-to-Peer-Identifikationsangabe und ein Verfahren
zum Betreiben eines Peer-to-Peer-Kommunikationsnetzwerks.
-
Bei
Peer-to-Peer-Kommunikationsnetzwerken sind eine Mehrzahl von Netzwerkeinheiten,
so genannten Peers, die durch Computersysteme realisiert werden,
miteinander zu einer Kommunikationsnetzwerkstruktur verbunden, ohne
dass eine zentrale Einheit, etwa ein zentraler Server, erforderlich
ist.
-
Peer-to-Peer-Kommunikationsnetzwerke weisen
somit keine klassische Client-Server-Architektur auf, vielmehr agiert
jeder Peer sowohl als Client als auch als Server. Ein Anwendungsbeispiel
für Peer-to-Peer-Kommunikationsnetzwerke
ist ein File-Sharing-System, bei dem Daten verteilt mittels der
Peers gespeichert sind und jeder Peer bei jedem anderen Peer dort
gespeicherte Daten anfordern kann.
-
Da
in einem Peer-to-Peer-Kommunikationsnetzwerk kein zentraler Server
vorhanden ist, müssen
bestimmte Aufgaben, die in einer Client-Server-Architektur von einer
zentralen Einheit übernommen
werden, von den Peers selbst übernommen werden.
Ein solcher Dienst von hoher Bedeutung ist die Adressauflösung, d.h.
die für
das Kontaktieren eines bestimmten Peers erforderliche Umsetzung
bekannter Adressdaten des Peers (wie beispielsweise der Name des
Benutzers bzw. Betreibers des Peers, eine dem Peer zugeordnete Telefonnummer,
etc.) in die IP(Internet-Protokoll)-Adresse des Peers. Dies kann
beispielsweise anschaulich durch "Fluten" des Peer-to-Peer-Kommunikationsnetzwerks mit Suchanfragen
erreicht werden, was aber im Folgenden nicht weiter betrachtet wird.
-
Eine
andere Möglichkeit
der Adressauflösung
besteht in der Verwendung von verteilten Hashtabellen (distributed
hash tables, DHT). Dafür existieren
mehrere Algorithmen. Die wohl bekanntesten sind CHORD mit einer
ringförmigen
logischen Anordnung der Peers, d.h. heißt bei dem das Peer-to-Peer-Kommunikationsnetzwerk
eine Ring-Topologie aufweist, und Kademlia, gemäß welchem die Peers entsprechend
einer baumartigen Struktur logisch angeordnet sind.
-
Diese
Algorithmen basieren darauf, dass jedem Peer eine eindeutige Adresse
zugeordnet wird, die als Knoten-ID (node ID) bezeichnet wird und
die die (logische) Position des Peers in dem Peer-to-Peer-Kommunikationsnetzwerk
definiert.
-
In
dem Peer-to-Peer-Kommunikationsnetzwerk zu speichernde Daten werden
durch festgelegte Suchbegriffe gekennzeichnet und werden gemäß den Suchbegriffen
mittels bestimmter Peers gespeichert. Umgekehrt kann dann der Peer,
mittels welchem Daten gespeichert sind, unter Verwendung des den
Daten zugeordneten Suchbegriffs bestimmt werden.
-
Um
dies zu erreichen, werden Daten, denen ein Suchbegriff zugeordnet
ist, mittels des Peers gespeichert, dessen Knoten-ID dem Hashwert
des Suchbegriffs gemäß einer
verwendeten Metrik am nächsten
kommt. Das Vorgehen beim CHORD-Algorithmus ist in [1] beschrieben.
Der Kademlia-Algorithmus ist in [2] beschrieben.
-
Da
die Zuordnung von Suchbegriffen und damit von Daten zu Peers von
den Knoten-IDs der Peers abhängt,
kann der Benutzer eines Peers darüber bestimmen, für welche
Suchbegriffe bzw. Daten sein Peer verantwortlich ist, wenn man ihn
die Knoten-ID seines
Peers frei wählen
lässt.
Auch wenn Daten in einem Peer-to-Peer-Kommunikationsnetzwerk typischerweise
mittels mehrerer Peers abgelegt sind, um Datenverlust zu vermeiden,
wenn ein Peer das Peer-to-Peer-Kommunikationsnetzwerk verlässt, besteht
bei freier Wahl der Knoten-IDs durch die Be nutzer dennoch die Gefahr,
dass ein Benutzer mehrerer Peers (das heißt ein Benutzer, der mehrere
Peers betreibt) oder dass eine Benutzergruppe die vollständige Kontrolle über bestimmte
Daten erlangen und diese beispielsweise nicht mehr verfügbar machen.
-
Daher
kann es bei einem Peer-to-Peer-Kommunikationsnetzwerk (neben anderen
Sicherheitsanforderungen wie Zugangskontrolle zu den gespeicherten
Daten, Authentifizierung abgelegter Datensätze, etc.) auch erforderlich
sein, dass einem Benutzer eine eindeutige Benutzeridentifikation
(unique user identifier, UUID) zugeordnet wird und den Peers des
Benutzers eindeutige Netzwerkeinheitenidentifikationen, die es ermöglichen,
festzustellen, welche Peers von dem Benutzer betrieben werden.
-
Die
UUID eines Benutzers wird üblicherweise
von einer eindeutigen Bezeichnung des Benutzers abgeleitet, beispielsweise
von der Kundennummer des Benutzers, seiner Email-Adresse, einer
ihm zugeordneten SIP-URI (Session Initiation Protocol-Uniform Ressource
Indicator) oder seiner Telefonnummer. Der Name des Benutzers eignet
sich typischerweise schlecht zu Ableitung einer UUID, da ein Name eventuell
nicht eindeutig ist, da es mehrere Benutzer des Peer-to-Peer-Kommunkationsnetzwerks
mit demselben Namen geben kann. Ebenso ist die Ableitung der UUID
von einem vom Benutzer frei wählbaren
Spitznamen nicht zu empfehlen, da der Benutzer hierdurch zumindest
bei seiner Subskription zu dem Peer-to-Peer-Kommunikationsnetzwerk bzw. zu dem mittels
des Peer-to-Peer-Kommunikationsnetzwerks realisierten
Kommunikationsdienstes (z.B. eines File-Sharing-Kommunikationsdienstes)
seine UUID selbst bestimmen kann, wodurch eventuell Angriffsmöglichkeiten
des Benutzers gegen das Peer-to-Peer-Kommunikationsnetzwerk entstehen.
-
Zur
Ableitung der UUID eines Benutzers berechnet man üblicherweise
den Hashwert (z.B. gemäß einem
Secure Hash-Verfahren
wie beispielsweise SHA-1 (Secure Hash Algorithm 1) oder MD5) der eindeutigen
Bezeichnung des Benutzers (beispielsweise seiner Telefonnummer)
und kürzt
diesen falls notwendig durch Abschneiden auf die Länge der
in dem Peer-to-Peer-Kommunikationsnetzwerk
verwendeten UUIDs ab. Diese UUID kann dann in einem digitalen Zertifikat
verwendet werden, mit dem sich der Peer des Benutzers gegenüber anderen
Peers als autorisiertes Mitglied des Peer-to-Peer-Kommunikationsnetzwerks
ausweisen kann. Dadurch kann der Peer des Benutzers genau an der
durch die Knoten-ID, die von der UUID spezifiziert wird, angegebenen
Stelle in dem Peer-to-Peer-Kommunikationsnetzwerk
betrieben werden.
-
Viele
herkömmliche
Peer-to-Peer-Kommunikationsnetzwerke enthalten keine Zugangskontrolle in
Form einer Einschränkung
der Wahl der Knoten-ID eines Peers. In diesen Peer-to-Peer-Kommunikationsnetzwerken
kann jeder Benutzer einen Peer mit beliebiger Knoten-ID betreiben.
-
Ferner
besteht die Möglichkeit,
dass das Eintreten eines neuen Peers in ein Peer-to-Peer-Kommunikationsnetzwerk
verweigert wird, wenn bereits ein Peer an dieser Stelle (d.h. mit
derselben Knoten-ID) in dem Peer-to-Peer-Kommunikationsnetzwerk vorhanden ist.
Alternativ wird an den bereits vorhandenen Peer eine Nachricht gesendet,
die ihn veranlasst, das Peer-to-Peer-Kommunikationsnetzwerk zu verlassen
und dem neuen Peer den Platz zu überlassen.
Stimmt die Knoten-ID eines von einem Benutzer betriebenen Peers
jedoch mit der UUID des Benutzers überein (oder wird eindeutig
durch diese spezifiziert) so ist es bei dieser Vorgehensweise nicht möglich, dass
ein Benutzer mehrere Peers gleichzeitig in dem Peer-to-Peer-Kommunikationsnetzwerk betreibt.
-
Um
dies zu ermöglich,
könnten
dem Anwender für
jeden von ihm betriebenen Peer eine eigene UUID oder eine eigene
Netzwerkeinheitenidentifikation zertifiziert werden, was aber einen
hohen Zertifizierungsaufwand erfordert.
-
Der
Erfindung liegt das Problem zu Grunde, eine flexiblere und gleichzeitig
sichere Nutzung von Peer-to-Peer-Kommunikationsnetzwerken
gegenüber
dem Stand der Technik zu schaffen.
-
Das
Problem wird durch eine Peer-to-Peer-Kommunikationseinrichtung, ein Verfahren
zum Bilden einer Peer-to-Peer-Identifikationsangabe und ein Verfahren
zum Betreiben eines Peer-to-Peer-Kommunikationsnetzwerks mit den Merkmalen
gemäß den unabhängigen Patentansprüchen gelöst.
-
Beispielhafte
Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
-
Es
wird eine Peer-to-Peer-Kommunikationseinrichtung mit einem Speicher
bereitgestellt, in welchem eine Peer-to-Peer-Identifikationsangabe der Peer-to-Peer-Kommunikationseinrichtung
gespeichert ist, die einen eindeutigen unveränderbaren Teil und einen veränderbaren
Teil aufweist.
-
Ferner
wird ein Verfahren zum Bilden einer Peer-to-Peer-Identifikationsangabe für eine Peer-to-Peer-Kommunikationseinrichtung
bereitgestellt, bei dem die Peer-to-Peer-Identifikationsangabe
aus einem eindeutigen unveränderbaren
Teil und einem veränderbaren
Teil gebildet wird.
-
Ferner
wird ein Verfahren zum Betreiben eines Peer-to-Peer-Kommunikationsnetzwerks
mit mehreren Peer-to-Peer-Kommunikationseinrichtungen
bereitgestellt, bei dem die Peer-to-Peer-Kommunikationseinrichtungen
jeweils mittels einer Peer-to-Peer-Identifikationsangabe adressiert
werden, die einen eindeutigen unveränderbaren Teil und einen veränderbaren
Teil aufweist.
-
Anschaulich
wird gemäß einem
Ausführungsbeispiel
der Erfindung einer Peer-to-Peer-Kommunikationseinrichtung zur Adressierung
ein fester Identifikationsteil vorgegeben, der sich beispielsweise
eindeutig aus einer eindeutigen Identifikation des Benutzers der
Kommunikationseinrichtung ergibt. Der feste Identifikationsteil
wird durch einen, beispielsweise von dem Benutzer der Peer-to-Peer-Kommunikationseinrichtung,
veränderbaren
Identifikationsteil zu einer Peer-to-Peer-Identifikationsangabe ergänzt, so
dass die Peer-to-Peer-Identifikationsangabe
zur Adressierung der Identifikationsangabe-Kommunikationseinrichtung
in einem Peer-to-Peer-Kommunikationsnetzwerk
verwendet werden kann.
-
Unter
dem veränderbaren
Teil ist zu verstehen, dass der Benutzer der Kommunikationseinrichtung
diesen Teil der Peer-to-Peer-Identifikationsangabe
frei wählen
darf, während
der eindeutige unveränderbare
Teil der Kommunikationseinrichtung fest zugewiesen ist und von dem
Benutzer nicht verändert
werden kann. Der veränderbare
Teil Peer-to-Peer-Identifikationsangabe
kann in einer alternativen Ausgestaltung der Erfindung auch automatisch,
beispielsweise unter Verwendung eines entsprechenden Identifikationsangabe-Zuweisungsalgorithmus,
ermittelt werden und der Peer-to-Peer-Kommunikationseinrichtung zugeordnet
werden.
-
Die
Peer-to-Peer-Identifikationsangabe ist somit nicht vollständig unveränderlich
festgeschrieben, sondern ein Teil der Peer-to-Peer-Identifikationsangabe
wird bei der Authentifizierung oder Autorisierung der Kommunikationseinrichtung
nicht festgelegt oder nicht überprüft.
-
Durch
eine Ausführungsform
der Erfindung wird es beispielsweise ermöglicht, dass ein Benutzer mehrere
Peer-to-Peer-Kommunikationseinrichtungen
in einem Peer-to-Peer-Kommunikationsnetzwerk betreibt,
die dem Benutzer eindeutig zugeordnet werden können, wobei es dem Benutzer
ermöglicht
wird, die von ihm betriebenen Peer-to-Peer-Kommunikationseinrichtungen flexibel
zu adressieren. Gleichzeitig kann durch die eindeutige Zuordnung
von Peer-to-Peer-Kommunikationseinrichtungen
zu Benutzern die Sicherheit des Peer-to-Peer-Kommunikationsnetzwerks
gewährleistet
werden, da beispielsweise vermieden werden kann, dass Daten nur
mittels Peer-to-Peer-Kommunikationseinrichtungen desselben Benutzers
gespeichert werden.
-
Die
weiteren Ausgestaltungen der Erfindung, die im Zusammenhang mit
der Peer-to-Peer-Kommunikationseinrichtung beschrieben sind, gelten sinngemäß auch für das Verfahren
zum Bilden einer Peer-to-Peer-Identifikationsangabe und das Verfahren
zum Betreiben eines Peer-to-Peer-Kommunikationsnetzwerks.
-
Der
eindeutige unveränderbare
Teil ist beispielsweise eine eindeutige Benutzeridentifikation des
Benutzers der Peer-to-Peer-Kommunikationseinrichtung.
Die eindeutige Benutzeridentifikation kann zum Beispiel mittels
einer Hash-Funktion aus einer eindeutigen Bezeichnung des Benutzers
ermittelt werden. Als eindeutige Benutzeridentifikation kann zum
Beispiel eine Telefonnummer, eine Email-Adresse, eine SIP-URI oder
eine Kundennummer des Benutzers verwendet werden.
-
Der
veränderbare
Teil ist beispielsweise eine von dem Benutzer der Peer-to-Peer-Kommunikationseinrichtung
frei wählbare
Bit-Kombination.
-
In
einer Ausführungsform
ist die Peer-to-Peer-Kommunikationseinrichtung
Teil eines Peer-to-Peer-Kommunikationsnetzwerks,
das gemäß dem CHORD-Algorithmus
oder gemäß dem Kademlia-Algorithmus
betrieben wird.
-
Die
Peer-to-Peer-Kommunikationseinrichtung ist beispielsweise ein Personal
Digital Assisstant, ein Desktop-Computer oder ein Laptop.
-
Ausführungsbeispiele
der Erfindung sind in den Figuren dargestellt und werden im Weiteren
näher erläutert.
-
1 zeigt
ein Peer-to-Peer-Kommunikationsnetzwerk gemäß einem Ausführungsbeispiel
der Erfindung.
-
2 zeigt
ein Ablaufdiagramm gemäß einem
Ausführungsbeispiel
der Erfindung.
-
1 zeigt
ein Peer-to-Peer-Kommunikationsnetzwerk 100 gemäß einem
Ausführungsbeispiel der
Erfindung.
-
Das
Peer-to-Peer-Kommunikationsnetzwerk 100 weist mehrere Peers 101 auf,
die in diesem Ausführungsbeispiel
gemäß einer
Ringtopologie angeordnet sind.
-
Die
Peers 101 können
als Personal Digital Assisstant, als Desktop-Computer oder als Laptop, etc.
eingerichtet sein. Die Peers weisen jeweils mindestens einen Prozessor,
beispielsweise einen Mikroprozessor, auf sowie mindestens einen
Speicher.
-
Mittels
der Peers 101, genauer in den Speichern der Peers 101,
werden Daten gespeichert. Eine Verbindungslinie 102 zwischen
zwei Peers 101 deutet an, dass die zwei Peers 101 in
dem Peer-to-Peer-Kommunikationsnetzwerk 100 direkt einander
benachbart sind. Je mehr Verbindungslinien 102 zwischen
zwei Peers 101 liegen, umso weniger sind die beiden Peers 101 in
dem Peer-to-Peer-Kommunikationsnetzwerk 100 benachbart.
Umgekehrt sind zwei Peers 101 umso stärker in dem Peer-to-Peer-Kommunikationsnetzwerk 100 benachbart,
je weniger Verbindungslinien 102 zwischen den beiden Peers 101 liegen.
-
Jedem
Peer 101 ist eine Knoten-ID, d.h. eine eindeutige Identifikation
im Rahmen des Peer-to-Peer-Kommunikationsnetzwerks 100,
zugeordnet. Zwei Peers 101 sind dann in dem Peer-to-Peer-Kommunikationsnetzwerk 100 stärker benachbart,
wenn die ihnen zugeordneten Knoten-IDs sich wenig unterscheiden.
Beispielsweise sind zwei Peers 101 dann direkt einander
benachbart, wenn sich ihre Knoten-IDs nur in dem am wenigsten signifikanten
Bit oder in mehreren niedrigstwertigen Bits unterscheiden.
-
Wie
erwähnt
dienen die Peers 101 zum Speichern von Daten, beispielsweise
realisiert das Peer-to-Peer-Kommunikationsnetzwerk 100 einen File-Sharing-Kommunikationsdienst
für die
Peers 101. Das Peer-to-Peer-Kommunikationsnetzwerk 100 wird
mittels eines IP-Kommunikationsnetzwerks, beispielsweise
durch Nutzung des Internets, realisiert.
-
Ein
Peer 101 wird, wie oben beschrieben, durch ein Gerät realisiert,
beispielsweise durch ein Notebook, einen PDA (Personal Digital Assisstant) oder
einen Desktop-Computer. Ein Gerät
kann auch mehrere Peers 101 realisieren, beispielsweise
können
auf einem Computersystem mehrere Software-Client-Einheiten ausgeführt werden, die jeweils einen
Peer 101 realisieren.
-
Es
wird angenommen, dass mehrere Peers 101 denselben Benutzer
haben, d.h. dass ein Benutzer mehrere der Peers 101 betreibt.
Die Bestimmung von Knoten-IDs für
die von dem Benutzer betriebenen Peers 101 (und damit ihre
Anordnung innerhalb des Peer-to-Peer-Kommunikationsnetzwerks 100) wird
im Folgenden beschrieben.
-
Es
wird davon ausgegangen, dass das Peer-to-Peer-Kommunikationsnetzwerk 100 gemäß dem CHORD-Algorithmus
betrieben wird. Das im Weiteren beschriebene Vorgehen ist aber auch
für ein
Peer-to-Peer-Kommunikationsnetzwerk 100 anwendbar, das
gemäß dem Kademlia-Algorithmus
betrieben wird und gemäß einer
Baum-Topologie ausgestaltet ist. Allgemein kann das Peer-to-Peer-Kommunikationsnetzwerk 100 gemäß einem
beliebigen Peer-to-Peer-Algorithmus betrieben werden.
-
2 zeigt
ein Ablaufdiagramm 200 gemäß einem Ausführungsbeispiel
der Erfindung.
-
Der
dargestellte Ablauf dient zur Bestimmung von Knoten-IDs für Peers 101,
die alle von demselben Benutzer betrieben werden.
-
In
Schritt 201 wird eine eindeutige Bezeichnung des Benutzers
ermittelt, beispielsweise eine Kundennummer des Benutzers, seine
Email-Adresse, die ihm zugeordnete SIP-URI (Session Initiation Protocol-Uniform
Ressource Indicator) oder seine Telefonnummer.
-
Beispielsweise
wird als eindeutige Bezeichnung des Benutzers die Kundennummer des
Benutzers 0123456789 ermittelt.
-
In
Schritt 202 wird aus der eindeutigen Bezeichnung des Benutzers
unter Verwendung einer Hashfunktion ein Hashwert ermittelt, beispielsweise gemäß SHA-1
oder MD5.
-
Zum
Beispiel wird aus der Kundennummer des Benutzers (0123456789) der
SHA1-Hashwert 87 AC EC 17 CD 9D CD 20 A7 16 CC 2C F6 74 17 B7 1C
8A 70 16 ermittelt.
-
In
Schritt 203 wird aus dem ermittelten Hashwert die UUID
(unique user identifier, eindeutige Benutzeridentifikation) ermittelt.
In diesem Beispiel erfolgt dies durch einfaches Abschneiden des
Hashwerts. Es wird angenommen, dass den Peers 101 in dem
Peer-to-Peer-Kommunikationsnetzwerk Knoten-IDs der Länge 10 Bytes
zugeordnet werden. In diesem Fall wird der Hashwert auf 9 Byte abgeschnitten,
also:
Hashwert: 87 AC EC 17 CD 9D CD 20 A7 16... UUID des Benutzers:
87 AC EC 17 CD 9D CD 20 A7
Diese UUID des Benutzers ergibt
sich zufällig,
ist dem Benutzer aber fest zugeordnet.
-
In
Schritt 204 kann der Benutzer sich Knoten-IDs selbst auswählen, indem
er die UUID durch selbst gewählte
Bits ergänzt.
In diesem Beispiel ergänzt
der Benutzer die UUID durch ein Byte auf die 10 Byte, die zur Adressierung
der Peers 101 in Form von Knoten-IDs verwendet werden.
-
Zum
Beispiel ergänzt
der Benutzer die UUID in der folgenden Weise, um Knoten-IDs für drei von ihm
betriebene Peers 101 zu bestimmen:
UUID des Benutzers:
87 AC EC 17 CD 9D CD 20 A7
Knoten-ID für Peer 1: 87 AC EC 17 CD 9D
CD 20 A7 01
Knoten-ID für
Peer 2: 87 AC EC 17 CD 9D CD 20 A7 81
Knoten-ID für Peer 3:
87 AC EC 17 CD 9D CD 20 A7 82
-
Dem
Benutzer wird also die UUID fest vorgeschrieben, er kann aber die
letzten Bits (in diesem Beispiel die letzten 8 Bit) frei wählen, um
sich selbst Knoten-IDs für
seine Peers 101 zu bestimmen. In diesem Beispiel kann der
Benutzer 256 Peers 101 unter Verwendung seiner
UUID verwenden.
-
Die
frei wählbaren
Bits kann der Benutzer vollkommen zufällig wählen, beispielsweise unter Verwendung
eines Zufallszahlen-Generators.
-
Die
Peers 101 des Benutzers unterscheiden sich in diesem Ausführungsbeispiel
nur in den am wenigsten signifikanten Bits (wenn man annimmt, dass
die signifikantesten Bits links stehen). Somit sind die Peers 101 des
Benutzers stark benachbart in dem Peer-to-Peer-Kommunikationsnetzwerk 100. Eine
hohe Stabilität
eines Peers 101 (d.h. eine lange Verweildauer in dem Peer-to-Peer-Kommunikationsnetzwerk 100)
nützt damit
den anderen Peers 101 des Benutzers, da es wenig Last bei
diesen erzeugt (vorausgesetzt dass eine hohe Arbeitslast stets stark benachbarte
Peers 101 betrifft, was beispielsweise der Fall sein kann,
wenn diese gleiche Daten speichern).
-
Umgekehrt
werden auch die anderen Peers 101 des Benutzers belastet,
wenn er einen Peer 101 oft aus dem Peer-to-Peer-Kommunikationsnetzwerk 100 entfernt
und wieder einbringt. Der Benutzer wird dadurch veranlasst, seine
Peers 101 möglichst
stabil im Peer-to-Peer-Kommunikationsnetzwerk 100 zu halten.
Bei einer zufälligen
Verteilung der Knoten-IDs der Peers 101 des Benutzers würde sich
hingegen die von einem Peer 101 beim Betreten und Verlassen des
Peer-to-Peer-Kommunikationsnetzwerk 100 erzeugte
Last zufällig
auf irgendwelche Peers 101 im Peer-to-Peer-Kommunikationsnetzwerk 100 verteilen.
-
Ein
weiterer Vorteil besteht darin, dass die einem Peer 101 benachbarten
Peers 101 auch wahrscheinlich bezüglich der Topologie auf IP-Netzwerkebene
stärker
benachbart sind, da sie von demselben Benutzer betrieben werden.
Dies hat den Vorteil, dass Keep-Alive-Nachrichten sowie Informationen über Änderungen
der Nachbarliste (Stabilisierungsnachrichten) in dem Peer-to-Peer-Kommunikationsnetzwerk 100 schneller
ausgetauscht werden und weniger Verkehr in dem gesamten IP-Kommunikationsnetzwerk
verursachen.
-
Ein
weiterer Vorteil dieses Verfahrens besteht darin, dass mehrere Geräte eines
Benutzers mit einer einzigen Suche, der die UUID des Benutzers zu Grunde
gelegt wird, im Peer-to-Peer-Kommunikationsnetzwerk 100 gefunden
werden können.
-
Allerdings
kann es auch ein Nachteil sein, wenn alle Geräte des Benutzers im Peer-to-Peer-Kommunikationsnetzwerk 100 benachbart
sind. Da die Peers 101 mit hoher Wahrscheinlichkeit auch
im IP-Kommunikationsnetzwerk benachbart sind, sind sie mit hoher
Wahrscheinlichkeit auch alle mittels derselben Einheiten des IP-Kommunikationsnetzwerks,
beispielsweise mittels desselben Routers, an das IP-Kommunikationsnetzwerk
angebunden.
-
Bei
Ausfall dieses Routers würden
alle Peers 101 gleichzeitig von dem IP-Kommunikationsnetzwerk
getrennt. In diesem Fall steigt die Wahrscheinlichkeit von Datenverlusten
in dem Peer-to-Peer-Kommunikationsnetzwerk 100 stark an,
vor allem dann, wenn die Anzahl der Peers 101 des Benutzers
die Anzahl der Peers 101 in einer Replikationsgruppe (d.h.
der Peers 101, die dieselben Daten speichern) erreicht
oder übersteigt.
Dieses Problem kann aber durch eine Anpassung der Größe der Replikationsgruppen
vermieden werden. Betreibt ein Benutzer beispielsweise maximal n
Peers 101 gleichzeitig, so sollten die Replikationsgruppen
um (n-1) Peers vergrößert werden.
Für maximal
zwei Peers 101 pro Benutzer ist diese Vorgehensweise durchaus
praktikabel.
-
Ist
eine Ergänzung
der UUID zum Bestimmen der Knoten-IDs an dem am wenigstens signifikanten
Ende der UUID (das heißt
durch hinzufügen von
am wenigsten signifikanten Bits) nicht wünschenswert, beispielsweise
wegen der damit verbundenen Lokalität (starken Nachbarschaft) der
von dem Benutzer betriebenen Peers 101, so können auch
andere Bits an einer anderen Stelle der UUID frei wählbar sein.
-
Je
näher diese
frei wählbaren
Bits an dem am meisten signifikanten Ende der UUID sind, desto mehr
verteilen sich die Peers 101 des Benutzers im Peer-to-Peer-Kommunikationsnetzwerk 100.
-
Damit
gehen sowohl die Vorteile als auch die Nachteile der Lokalität der Peers 101 des
Benutzers verloren.
-
Nichtsdestotrotz
wird es weiterhin ermöglicht,
dass mehrere Peers 101 desselben Benutzers im Peer-to-Peer-Kommunikationsnetzwerk 100 vorhanden
sind.
-
Als
Beispiel werden die Knoten-IDs dadurch gewählt, dass der Benutzer das
höchste
Byte der UUID frei wählen
darf. Eine Knoten-ID ergibt sich also aus dem frei gewählten Byte
und aus den folgenden Stellen der UUID, die in diesem Fall durch
Abschneiden des Hashwerts auf insgesamt 10 Byte ermittelt wird.
-
Beispiel:
-
- Kundennummer des Benutzers:
0123456789
- Hashwert der Kundennummer:
87 AC EC 17 CD 9D CD 20 A7 16
CC 2C F6 74 17 B7 1C 8A 70 16
(20 Bytes insgesamt)
- UUID des Anwenders:
87 AC EC 17 CD 9D CD 20 A7 16 (Hashwert
auf 10 Bytes abgeschnitten)
- Peer 1:
01 AC EC 17 CD 9D CD 20 A7 16
(10 Bytes =
80bits)
- Peer 2:
80 AC EC 17 CD 9D CD 20 A7 16
- Peer 3:
81 AC EC 17 CD 9D CD 20 A7 16
-
In
einer weiteren Ausführungsform
werden eindeutige Bezeichnungen der Peers 101 des Benutzers
dadurch ermittelt, dass die eindeutige Bezeichnung des Benutzers
durch von dem Benutzer frei wählbare
Endungen gewählt
werden. Anschaulich wird also vor der Hashwert-Berechnung eine eindeutige
Erfindung gewählt
und so in die Hashwert-Berechnung mit einbezogen.
-
Die
Knoten-IDs werden aus den eindeutige Bezeichnung der Peers 101 ermittelt,
indem die zu den eindeutigen Bezeichnungen der Peers 101 gehörenden Hashwerte
ermittelt werden und diese auf die erforderliche Länge (in
diesem Beispiel 10 Byte) abgeschnitten werden.
-
Beispiel:
-
- Kundennummer des Benutzers:
0123456789
- Hashwert:
87 AC EC 17 CD 9D CD 20 A7 16 CC 2C F6 74 17 B7
1C 8A 70 16
(20 Bytes)
- UUID des Anwenders:
87 AC EC 17 CD 9D CD 20 A7 16
(10
Bytes)
- Eindeutige Bezeichnung von Peer 1:
0123456789a
- Hashwert:
4C 8E 08 F9 40 44 D9 B5 99 13 F6 68 73 AF 8E
AC 42 99 26 6E
(20 Bytes)
- Knoten-ID von Peer 1:
4C 8E 08 F9 40 44 D9 B5 99 13
(10
Bytes)
- Eindeutige Bezeichnung von Peer 2:
0123456789b
- Hashwert:
58 C8 27 05 3B D8 16 F6 BB 5F 00 3E 90 5C 57
D5 88 73 AB 5A
(20 Bytes)
- Knoten-ID von Peer 2:
58 C8 27 05 3B D8 16 F6 BB 5F
(10
Bytes)
-
Durch
diese Vorgehensweise werden die Peers 101 zufällig in
dem Peer-to-Peer-Kommunikationsnetzwerk 100 verteilt. Die
Vorteile und Nachteile der Lokalität der Peers 101 des
Benutzers werden dadurch vermieden.
-
In
diesem Dokument sind folgende Veröffentlichungen zitiert:
- [1]
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari
Balakrishnan: "CHORD:
A Scalable Peer-To-Peer Lookup Service for Internet Applications"
- [2] Petar Maymounkov, David Mazieres: "A Peer-to-Peer Information System Based
on the XOR Metric"