• Keine Ergebnisse gefunden

Peer-to-Peer Netzwerke

N/A
N/A
Protected

Academic year: 2022

Aktie "Peer-to-Peer Netzwerke "

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. Thomas Schmidt

HAW Hamburg, Dept. Informatik Raum 780, Tel.: 42875 - 8452

Email: schmidt@informatik.haw-hamburg.de Website:

www.informatik.haw-hamburg.de/~schmidt/p2p

Peer-to-Peer Netzwerke

Praktikumsteil 2 (5. - 8. Termin):

Zielstellung: Implementierung eines verteilten Spiels "Schiffe Versenken" (ohne Churn).

Die Spielteilnehmer bilden gemeinsam eine Chord DHT. Nach Abschluss der Chord

Initialisierung unterteilt jeder Knoten seinen eigenen Adressraum in I äquidistante Intervalle und platziert S < I Schiffe darin. Aufgabe des Spiels ist es, die Schiffe der Mitspieler zu

"versenken" - wer zuerst das letzte Schiff eines Mitspielers getroffen hat, hat gewonnen.

Im Einzelnen ist der Spielablauf wie folgt:

1. Der Spieler mit dem größten Knotenschlüssel beginnt (Besitzer des Schlüssels 2160 -1).

Er sendet ein get auf einen Schlüssel seiner Wahl.

2. Der Empfänger des get prüft, ob sich ein Schiff in demselben Intervall befindet, wie der verlangte Schlüssel. Ist dies der Fall, ist das Schiff zerstört, anderenfalls ging der

"Schuss" ins Leere.

3. Der Empfänger benachrichtigt alle Teilnehmer (per Broadcast) über den Zerstörungsversuch (angerouteter Schlüssel) und seinen Ausgang.

4. Hiernach ist der Empfänger an der Reihe und darf ein get auf einen Schlüssel seiner Wahl initiieren.

5. Derjenige Knoten, der richtigerweise bemerkt, dass er das letzte Schiff eines Mitspielers zerstört hat, hat gewonnen.

Das Spiel findet vor dem Hintergrund unvollständiger (Chord Routing Tabellen), aber wachsender (Broadcasts der Ergebnisse) Informationen statt. Es obliegt jedem einzelnen Spieler, diese Informationen zu sammeln und so geschickt auszuwerten, dass er eine erfolgreiche "Ratestrategie" anwenden kann.

Die Kernkomponenten des "Verteilten Schiffe Versenkens" bestehen aus:

Î Der Chord Middleware (vorhanden).

Î Einem Broadcast-Nachrichtentyp und einem Broadcast-Routing (s.u.).

Î Einer Auswertung der bisher gelernten, verteilten Spielverhältnisse.

Î Einer Strategie, die gelernten Spielverhältnisse auszunutzen.

(2)

Implementierungsplan:

Workpackage 1 - Broadcast Subsystem:

Implementieren und testen Sie folgendes Broadcast-Inform (jeder Chord Knoten kann Messages der folgenden Form empfangen und versenden):

1 5 9 17 byte T sourceIP sourcePort TID Data

Broadcast Protokollelement:

T Type of message (byte[1] int)

sourceIP die IP-Adresse des Absenders (byte[4] InetAddress) sourcePort die Port-Adresse des Absenders (byte[4] String) TID TransaktionsID - zufällig durch Sender (byte[8] random) Data Message-Type abhängig

Message Type:

Code Wert Data

8 inform RangeHash (byte[20]); Hit (int[1], 0=miss, 1=hit); TargetKey (byte[20]);

Der rangeHash bezeichnet den Weiterleitungsbereich für den rekursiven Broadcast (s.u.).

Das Hit Datenelement gibt an, ob ein Schiff getroffen wurde oder nicht. Schließlich wird in TargetKey über den (eigenen) Schlüssel informiert, auf welchen geschossen wurde.

Rekursiver Broadcast on Chord - Protokollverhalten:

Ein rekursiver Broadcast on Chord soll - analog zu dem Prefix-Flooding on Pastry - erreichen, dass Knoten, die ein Broadcast-Paket empfangen, dieses so lange und so gezielt weiterleiten, dass schließlich alle Teilnehmer das Broadcast-Paket genau einmal erhalten haben. Hierzu muss der Flooding-Algorithmus an die Intervallstruktur von Chord wie folgt angepasst werden:

Jeder Knoten leitet ein Broadcast-Paket mit RangeHash X an alle ihm bekannten Knoten (mit aktualisiertem Range) zwischen seiner ID und X weiter.

Im Detail:

1. Der Startknoten sendet das Broadcast-Paket an alle (unterschiedlichen) Knoten seiner Finger Table, wobei der den jeweils darauffolgenden Finger-Table Eintrag in das RangeHash - Feld notiert.

2. Der Empfänger eines Broadcast-Pakets stellt dieses seiner Applikation zu und leitet es an alle Knoten weiter, welche gem. seiner Finter Table zwischen seiner eigenen ID und dem RangeHash liegen. Dabei trägt er analog den jeweils darauffolgenden Finger Table Eintrag in das RangeHash - Feld ein.

3. Liegen keine weiteren Knoten mehr zwischen der eigenen und der RangeHash ID, terminiert das rekursive Weiterleiten.

Meilenstein 1: .Broadcast inform ist funktionsfähig.

(3)

Workpackage 2 - Informationsstrukturen und Strategie "Schiffe Versenken"

Entwerfen und implementieren Sie eine geeignete Daten- und Informationsstruktur, welche die im Spielverlauf erlauschten Informationen auswertet und

zwischenspeichert. Errichten Sie auf dieser Informationsstruktur eine Strategie, welche Ihre (erfolgreichen) Spielzüge ermittelt.

Benutzen Sie eine einfach aufsteigende TransaktionsID, um den Gewinner eindeutig identifizieren zu können.

Meilenstein 2: Sie können an dem verteilten Spiel teilnehmen.

Workpackage 3 - Test und Optimierung für I = 100 und S = 10.

Testen Sie Ihre Lösungen im Verbund und optimieren Sie Ihre Spielstrategie, so dass Ihr Programm die besseren Spielzüge durchführt.

Meilenstein 3: Sie gewinnen zuverlässig - es winkt Ihnen ein kultiger Preis.

Referenzen

ÄHNLICHE DOKUMENTE

PathFinder is based on a random graph which gives it short average path length, large number of alternative paths for fault tolerable, highly robust and reliable overlay topology..

– Impact of node failures on lookup failure rate. – lookup failure rate roughly equivalent to node failure

– Impact of node failures on lookup failure rate. – lookup failure rate roughly equivalent to node failure

Die Messages put und leave erhalten kein reply , während die Message get im reply die Adresswerte des Datenhalters (also die zum gesuchten Key korrespondierende IP-Adresse

Basics of peer-to-peer systems: motivation, characteristics, and examples Distributed object location and routing in peer-to-peer systems3. Unstructured

Napster provided a service where they indexed and stored file information that users of Napster made available on their computers for others to download, and the files

Wenn eine Anfrage an einem Knoten vorliegt, so kann dieser genau bestimmen, zu welchem Knoten er die Anfrage weiterleiten muss, so dass sie ohne Umwege am für den

Erstmalig an der JMU Würzburg hat sich die Fakul- tät für Biologie seit Sommersemester 2012 entschie- den, alle Hilfskräfte im Bachelor- und Masterbereich, die in der Betreuung