Untersuchungen der Skalierbarkeit eines P2P

Werbung
–––
Untersuchungen der Skalierbarkeit eines P2P-basierten verteilten
Rechensystems.
Bachelorarbeit
Universität Rostock
Fakultät für Informatik und Elektrotechnik
Institut für Angewandte Mikroelektronik und Datentechnik
Vorgelegt von: Benjamin Kappel
Matrikelnummer: 210204477
Betreuer: Dr.-Ing. Peter Danielis, M.Sc. Jan Skodzik
Prof. Dr. Dirk Timmerman
Abgabedatum: 31.03.2014
Einleitung & Motivation und Aufbau der Arbeit - Einleitung und Motivation
Inhaltsverzeichnis
A.
Abbildungsverzeichnis ....................................................................................................... iv
B.
Tabellenverzeichnis ............................................................................................................ v
C.
Abkürzungsverzeichnis ...................................................................................................... vi
1
Einleitung & Motivation und Aufbau der Arbeit ................................................................ 1
2
1.1
Einleitung und Motivation ........................................................................................... 1
1.2
Aufbau dieser Arbeit .................................................................................................... 2
Grundlagen ......................................................................................................................... 3
2.1
2.1.1
Protokolle der Transportschicht........................................................................... 3
2.1.2
Einteilung der Netze nach geografischer Entfernung und Zugang zum WAN ..... 4
2.1.3
Topologie .............................................................................................................. 5
2.2
4
P2P ............................................................................................................................... 7
2.2.1
Abgrenzung zum Client-Server-Modell ................................................................ 7
2.2.2
Einteilung von P2P basierten Systemen ............................................................... 8
2.2.3
Strukturierter Ansatz ............................................................................................ 9
2.2.4
Kad als Implementierungsvariante von Kademlia .............................................. 10
2.3
3
Netzwerktechnische Grundlagen ................................................................................ 3
Verteiltes Rechnen .................................................................................................... 14
2.3.1
Stand der Technik ............................................................................................... 15
2.3.2
P2P-Vorteile gegenüber Client-Server-Ansatz ................................................... 15
DuDE-Konzept .................................................................................................................. 16
3.1
Verteilen von Daten ................................................................................................... 16
3.2
Prinzipieller Ablauf..................................................................................................... 17
3.3
Einsammeln von Daten (KaDis) ................................................................................. 23
3.4
Rollen und Zustände .................................................................................................. 24
Simulation......................................................................................................................... 26
Inhaltsverzeichnis
ii
Einleitung & Motivation und Aufbau der Arbeit - Einleitung und Motivation
5
4.1
Warum Eigenentwicklung? ........................................................................................ 26
4.2
Verwendete Technologien ........................................................................................ 26
4.3
Modellierung ............................................................................................................. 27
4.3.1
Peers ................................................................................................................... 27
4.3.2
Topologie ............................................................................................................ 28
4.3.3
Daten .................................................................................................................. 31
4.3.4
Jobs und Tasks .................................................................................................... 32
4.3.5
Berechnung von Tasks und Ressourcen-Metrik ................................................. 32
4.4
Funktionsweise des Simulators (Wie schickt Peer A an Peer B eine Nachricht) ....... 33
4.5
Möglichkeiten des Simulators ................................................................................... 36
4.6
Parameter der Simulation ......................................................................................... 36
4.7
Wie werden Ergebnisse produziert? ......................................................................... 37
Aufgaben und Auswertung............................................................................................... 39
5.1
Vergleich Client-Server-Modell ................................................................................. 39
5.2
Aufbau der Simulation ............................................................................................... 40
5.3
Skalierbarkeit und Vergleich mit Client-Server (statisches Netz) .............................. 40
5.3.1
5.4
6
Auswirkung des Parameters Peers Pro Task-Watcher ....................................... 42
Analyse des erzeugten Datenverkehrs ...................................................................... 43
Zusammenfassung und Ausblick ...................................................................................... 46
Literaturverzeichnis .................................................................................................................. 47
Inhaltsverzeichnis
iii
Einleitung & Motivation und Aufbau der Arbeit - Einleitung und Motivation
A. Abbildungsverzeichnis
Abbildung 2-1 Ein vermaschtes Netz ......................................................................................... 6
Abbildung 2-2 Ein voll vermaschtes Netz ................................................................................... 6
Abbildung 2-3 Stern-Toplogie .................................................................................................... 6
Abbildung 2-4 Einteilung von P2P-Systemen ............................................................................. 8
Abbildung 2-5 Darstellung eines P2P-Netzes mit 3 Bit-Adressen und 8 Peers. Es wird der
Aufbau der k-Buckets ausgehend vom Peer mit dem Hashwert 001 dargestellt. ................... 11
Abbildung 2-6 Beispiel für einen rekursiven Suchvorgang, bei dem der Peer 001 den Peer 110
sucht. ........................................................................................................................................ 13
Abbildung 2-7 Beispiel für einen interativen Suchvorgang. Bei dem der Peer 001 den Peer 110
sucht. Der zuerst gefragte Peer 100 antwortet mit einem näheren Peer. Dieser Peer wird
anschließend befragt und sendet die Kontaktinformationen.................................................. 13
Abbildung 3-1 Prinzipieller Ablauf von DuDE ........................................................................... 23
Abbildung 3-2 Schematischer Ablauf der Suche nach Dateien ................................................ 24
Abbildung 3-3 Zustandsdiagramm von DuDE .......................................................................... 25
Abbildung 4-1 Ermittlung des Weges für ein Netz innerhalb einer Area................................. 30
Abbildung 4-2 Beispiele für die Outer-Area-Routing-Tabelle von verschiedenen Nodes ....... 31
Abbildung 4-3 Modellierung der Kommunikation zwischen zwei Peers ................................. 35
Abbildung 5-1 Skalierungsverhalten von DuDE im Vergleich zum Client-Server-Model ......... 41
Abbildung 5-2 Diagramm zur Darstellung der Verteilung der Datentypen am Gesamtverkehr
am Beispiel der Simulationsreihe DuDE-200 1000 Teilnehmer und DuDE-200 8000 Teilnehmer
.................................................................................................................................................. 44
Fehler! Verweisquelle konnte nicht gefunden werden.
iv
Einleitung & Motivation und Aufbau der Arbeit - Einleitung und Motivation
B. Tabellenverzeichnis
Tabelle 2-1 Übersicht für die Einteilung von Netzen basierend auf der geographischen
Ausdehnung................................................................................................................................ 5
Tabelle 2-2 Ergebnisse der XOR-Verknüpfung der Peers in Abbildung 2-2 aus Sicht der Peers
mit dem Hashwert 010. Entsprechend der XOR-Metrik wird dann eine Einteilung in die
entsprechenden k-Buckets durchgeführt ................................................................................ 11
Tabelle 3-1 Überblick über die Rollen und deren Aufgabe bei DuDE ...................................... 25
Tabelle 4-1 Aufteilung des Jobs in seine Task am Beispiel RAM- und CPU-Auslastung von 1000
Peers bei einer maximal Größe von 400 Peers pro Aufgabe ................................................... 32
Tabelle 4-2 Übersicht über eine Auswahl der Parameter des Simulators ............................... 37
Tabelle 5-1 Werte der Parameter für den Vergleich Client-Server und DuDE ........................ 40
Tabelle 5-2 Ergebnisse der Simulation und der Vergleichsrechnung. Alle Angaben sind in
Sekunden, bis auf die Teilnehmer sind in Sekunden ............................................................... 41
Tabelle 5-3 Zeitliche Skalierung wenn unterschiedliche Anzahl an Peers pro Task gewählt
werden ..................................................................................................................................... 42
Tabelle 5-4 Datenvolumen für die DuDE-200 Messreihe ........................................................ 43
Tabelle 5-5 Verteilung der Datenmenge innerhalb eines Simulationsvorgangs. Es wird die
Messreihe DuDE-200 für 1000 und 8000 Teilnehmer dargestellt ........................................... 44
Fehler! Verweisquelle konnte nicht gefunden werden.
v
Einleitung & Motivation und Aufbau der Arbeit - Einleitung und Motivation
C. Abkürzungsverzeichnis
ATM - Asynchronous Transfer Mode
CIL - Common Intermediate Language
CLR - Common Language Runtime
CPU - Central Processing Unit
CSV - Comma-separated values
DHT - Distribudet Hash Table
DNS - Domain Name System
DSL - Digital Subscriber Line
DSLAM - Digital Subscriber Line Access Multiplexer
DuDE - Distributed Computing System using a Decentralized P2P Environment
FLOPS - Floating Point Operations Per Second
FTTC - Fibre To The Curb
Gbits - Gigabit per Second
IDE - integrated development environment
IP - Internet Protocol
ISP - Internet Service Provider
KaDis - Kademlia Discovery
LSB - least significant bit
Mbits - Megabit per Second
MD4 - Message-Digest Algorithm 4
MIPS - Million Instructions Per Second
MPLS - Multiprotocol Label Switching
OSPF - Open Shortest Path First
RAM - Random Access Memory
SDH - Synchrone Digitale Hierarchie
SPoF - Single-Point-of-Failure
TCP - Transmission Control Protocol
UDP - User Datagram Protocol
VDSL - Vectoring Digital Subscriber Line
Abkürzungsverzeichnis
vi
Einleitung & Motivation und Aufbau der Arbeit - Einleitung und Motivation
1 Einleitung & Motivation und Aufbau der Arbeit
1.1 Einleitung und Motivation
Wie kann man den Erfolg einer Technologie messen? Eine Antwort auf die Frage, könnte die
Verbreitung sein. Gemessen daran ist das Internet wohl einer der erfolgreichsten
Technologien des letzten Jahrhunderts, denn es gibt quasi keinen Bereich, der nicht durch
diese Technik verändert wurde.
Wie genau aber das Internet funktioniert, bleibt wie auch bei vielen anderen Technologien
dem technisch nicht versierten Benutzer verborgen. Hinter dem Aufruf einer Internetseite
durch einen Browser liegt neben vielen verschiedenen Programmen vor allem eine ganze
Palette an verschiedenen Geräten die Netzwerke auf unterschiedlichen Ebenen miteinander
verbinden. Stellen wir also kurz die Frage, wo genau das Internet nun beginnt?
Wenn wir den Anschluss zu Hause betrachten, so beginnt das Internet dort, wo die Leitung
der Telefonbuchse endet. Dieser Punkt, an dem nicht nur die eigene Telefonleitung, sondern
die vieler anderer Teilnehmer auch endet, ist in den meisten Fällen ein sogenannter Digital
Subscriber Line Access Multiplexer (DSLAM), den man sich als einen Computer für sehr
spezielle Zwecke vorstellen kann. Hier beginnt für die meisten Menschen das Internet.
Nun verhält es sich mit diesen Zugangspunkten wie auch mit vielen anderen
Computersystemen. Sie haben freie und ungenutzte Ressourcen. Stellt man sich weiter vor,
man sollte ein Land wie Deutschland mit Internet versorgen, dann müssten dem entsprechend
solche Zugangspunkte aufstellen. Unter der Annahme, dass bis zu 100001 Teilnehmer an einen
solchen Knoten passen und man von einer Einwohnerzahl von 80 Millionen ausgeht, würden
10.0002 solcher Zugangspunkte benötigt.
Hinzu kam der in den letzten Jahren gestiegener Bedarf nach Breitbandanschlüssen. Möchte
man dieses Bedürfnis auf kurze Sicht kostengünstig abdecken, muss die aktive Technik
wesentlich näher an den potenziellen Kunden gebracht werden. Bei VDSL beträgt die
maximale Länge bis zum Teilnehmer beispielsweise 300 Meter, um eine signifikante Erhöhung
1
Dabei wird die Anzahl nicht von einem Gerät, sondern von mehrere die in einem Verbund agieren abgedeckt.
Ein DSLAM besteht aus mehrere Linecards. Pro Linecard können bis zu 96 Teilnehmer angeschlossen werden.
2
Die tatsächliche Anzahl beträgt ein Vielfaches mehr.
Kapitel: Einleitung & Motivation und Aufbau der Arbeit
-1-
Einleitung & Motivation und Aufbau der Arbeit - Aufbau dieser Arbeit
der Bandbreite zu erzielen. Aus diesen Gegebenheiten wird die Anzahl der DSLAM in den
nächsten Jahren drastisch zunehmen.
Damit sich die Knoten überwachen lassen, erzeugen diese Logeinträge. Zur Planungs- und
Wartungszwecken, oder zum Erkennen einer bewussten Störung des Netzes, müssen diese
Logeinträge ausgewertet werden. Diese immense Anzahl an Zugangsknoten fördert ein
weiteres Problem zu Tage. Wenn es überhaupt möglich sein soll, diese Logeinträge durch eine
zentrale Instanz in Form von Statistiken wie z.B. Maximal, Minimal und Mittelwert
auszuwerten, dann benötigt diese Instanz eine sehr große Leistungsfähigkeit und stellt damit
auch gleichzeitig die Achillesverse des Systems dar. Um diese zu vermeiden, muss wiederum
erneut ein hoher technisch aufwendiger und damit teurer Weg eingeschlagen werden, in dem
nicht nur eine zentrale Instanz gibt sondern diese zu Clustern zusammen fügt. Es müssen also
zwangsläufig andere dezentrale, Systeme gefunden werden, um diese Aufgabe zu bewältigen.
Die nachfolgende Bachelorarbeit beschäftigt sich mit der Fragestellung der Skalierbarkeit für
ein dezentrales System zum verteilten Berechnen von Statistiken aus Logeinträgen von
Zugangsknoten. Dabei wird vor allem der Vergleich eines solchen Systems mit dem
vorherrschenden Client-Server-Modell in dem Mittelpunkt gestellt.
1.2 Aufbau dieser Arbeit
Nach einleitenden Worten im ersten Kapitel folgen in Kapitel zwei wichtige Grundlagen zu den
Themen netzwerktechnische Grundlagen, Peer-to-Peer (P2P)-basierte Systeme und
Verteiltem Rechnen. Das dritte Kapitel stellt das System Distributed Computing System using
a Decentralized P2P Environment (DuDE) vor, bei dem es sich um ein System zum verteilten
Berechnen von Statistiken für Zugangsknoten handelt. Anschließend, im vierten Kapitel, wird
auf die Simulation eingegangen und die Ergebnisse werden präsentiert und diskutiert. Den
Abschluss bildet das letzte Kapitel mit einer Zusammenfassung und einem Ausblick.
Kapitel: Einleitung & Motivation und Aufbau der Arbeit
-2-
Grundlagen - Netzwerktechnische Grundlagen
2 Grundlagen
Dieses Kapitel geht auf die zum Verständnis für DuDE und den Simulator wichtigen Grundlagen
ein. Dazu gehören netzwerktechnische Aspekte sowie auch der Aufbau und die Verwaltung
von Peer-to-Peer-basierten System und den Prinzipien für das Verteilte Rechnen.
2.1 Netzwerktechnische Grundlagen
2.1.1 Protokolle der Transportschicht
Damit zwei Systeme erfolgreich mit einander kommunizieren können, bedarf es einem Satz
von verbindlichen Regeln. Diese Regeln werden Protokolle genannt und dienen als Schema,
wie die einzelnen Bits einer Nachricht interpretiert werden müssen. Das ist vergleichbar mit
der menschlichen Sprache. Zwei Menschen sind nur in der Lage, einander zu verstehen, wenn
es verbindliche Regeln gibt, in diesem Fall die Grammatik (Syntax) und die Wörter (Lexik), an
die sich die beiden Teilnehmer halten3. Auf den verschiedenen Ebenen im Netzwerk existieren
verschieden Protokolle. So definiert das Interprotocol (IP) ein Adressierungsschema, damit
Geräte, die sich in verschiedenen Netzen befinden, kommunizieren können.
Zum Verständnis für den Simulator sind die beiden Protokolle der Transportschicht wichtig.
Diese Schicht teilt einen Datenstrom in kleinere Segmente auf und ermöglicht ein
Anwendungsmultiplex auf einem Netzteilnehmer. In der ersten Version des sogenannten
TCP/IP-Protokoll-Stapels gab es nur ein Protokoll für die Transportschicht und zwar TCP. Die
Abkürzung TCP steht für Transmission Control Protocol.
TCP ist ein sogenanntes zustandsbehaftetes Protokoll. Zu Beginn einer jeden Kommunikation
wird über einen 3-Wege-Handshake eine Verbindung zwischen den beiden Teilnehmern
etabliert. Eine Aufgabe dieser Schicht ist die Teilung des zu sendenden Datenstromes in
kleinere Segmente. Nun kann es passieren, dass auf dem Kommunikationsweg zwischen den
Teilnehmern Pakete verloren gehen oder in einer anderen als die ursprüngliche Reihenfolge
beim Empfänger ankommen. Um mit diesen Probleme umzugehen, bietet TCP im Header eine
Sequenznummer. Der Startwert dieser Sequenznummer wird während des Handshakes
initialisiert. Mit jedem versendeten Segment wird die Sequenznummer um eins erhöht. Auf
3
Dieser Vergleich hinkt an einer Stelle. Um es technisch auszudrücken, sind Menschen Fehler tolerant und
können selbst dann den Gegenüber verstehen, wenn nur ein paar syntaktische Regeln befolgt werden. Selbst
fehlende Wörter könne aus dem Zusammenhang der Nachricht erschlossen werden.
Kapitel: Grundlagen
-3-
Grundlagen - Netzwerktechnische Grundlagen
diese Weise erhält auch jedes Segment eine eindeutige Nummer und kann für den Fall, dass
eine andere Empfangs- als Sendereihenfolge vorliegt, sortiert werden. Damit kein
Paketverlust stattfindet, bestätigt der Empfänger den Erhalt von Segmenten. Dies erfolgt
derart, dass dem Sender mitgeteilt wird, welche Sequenznummer als nächsten erwartet wird.
Stellt der Sender nun fest, dass er die vom Empfänger erwartete Sequenznummer bereits
geschickt hat, trat ein Paketverlust auf und die fehlenden Pakete werden noch einmal
gesendet.
Sind die Daten ausgetauscht, wird ähnlich wie beim Start der Verbindung auch über einen 3Wege-Handshake die Verbindung abgebaut. TCP bieten noch viele weitere Funktionalitäten
wie Staukontrolle, die aber in dieser Arbeit nicht weiter von Belang sind und deshalb nur
erwähnt werden. TCP selbst braucht einige Timer vor allem, da Segmente gepuffert werden
müssen, der Zwischenspeicher, meist in Form von flüchtigen Speicher, wie RAM4, dafür aber
Ressourcen verbraucht.
Auf der anderen Seite existiert das Protokoll UDP. Dementsprechend ist der Header von UDP
wesentlich geringer als bei TCP. Dafür muss eine Anwendung, wenn gewünscht, selbst dafür
sorgen, dass die Daten gesichert beim Empfänger ankommen. Es gibt einige Dienste wie z.B.
das Domain Name System (DNS)5, die UDP benutzen und bei Ausbleiben einer Antwort vom
Empfänger einen anderen möglichen Empfänger wählen, insofern es noch Empfänger gibt, die
noch nicht gefragt wurden. Empfänger wählen, insofern es noch Empfänger gibt, die noch
nicht gefragt wurden.
2.1.2 Einteilung der Netze nach geografischer Entfernung und Zugang zum WAN
Es gibt verschiedene Möglichkeiten Netze zu kategorisieren. Eine Einteilung legt die
geografische Entfernung, die ein solches Netz umspannen kann, als Grundlagen an. Daraus
ergeben sich folgende Kategorien.
4
Die zwingende Vorrausetzung ist natürlich dass der Empfänger während der Datenübertragung mit dem
Netzwerk verbunden bleibt.
5 Das DNS-System dient dazu, einen Namen z.B. www.uni-rostock.de in eine konkrete IP-Adresse umzuwandeln.
Kapitel: Grundlagen
-4-
Grundlagen - Netzwerktechnische Grundlagen
Name
Personal Area Network
Local Area Network
Wide Area Network
Abkürzung
PAN
LAN
WAN
Geographische Ausdehnung
mehrere Meter
Bis 10km
Mehrere 1000 Kilometer
Technologien
Bluetooth
Ethernet
ATM
Tabelle 2-1 Übersicht für die Einteilung von Netzen basierend auf der geographischen Ausdehnung6
In dieser Arbeit interessiert vor allem der Punkt, an dem das lokale Netz, sei es das
persönliche zu Hause oder das Firmennetzwerk, an das WAN-Netz angeschlossen wird. Wird
DSL als Zugangstechnologie verwendet, so ist dieser Punkt der Digital Subscriber Line Access
Multiplexer (DSLAM). Dieser Punkt terminiert die Teilnehmeranschlussleitung, bündelt diese
und leitet die Daten in das WAN-Netz des Service Provider. Dieses WAN-Netz wird oft auch
als Backbone (im dt. etwa Rückgrat) bezeichnet. Als Technologie zum Teilnehmer wird eine
DSL-Technologie verwendet, wahlweise asymmetrisch, symmetrisch oder mit dem Einsatz
von Vectoring-Verfahren (ADSL, SDSL, VDSL). Als Technologie zum WAN-Netz kommt
verstärkt immer mehr Ethernet oder MPLS oder ältere Technologien wie SDH und ATM. Die
Bandbreite zum Teilnehmer ist im Allgemeinen sehr viel niedriger als die Bandbreite zum
WAN-Netz.7
Da für DSL die bestehende Infrastruktur der Telefonie verwendet wird, befinden sich die
DSLAM noch8 größtenteils in den Hauptverteilern. Diese werden auch als Indoor-DSLAM
bezeichnet. Davon gibt es in Deutschland etwas mehr als 8.000. Aufgrund des
Breitbandausbaus und der damit verbundenen geringer Entfernung zwischen Teilnehmer
und DSLAM, werden verstärkt auch immer mehr kleinere Outdoor-DSLAM installiert, die
Wahlweise in einem kleinen etwa Garagen großes Gebäude oder in einem Kabelverzweiger
untergebracht sind.
2.1.3 Topologie
Unter dem Begriff Topologie wird an dieser Stelle die logische Zusammenschaltung der
Netzwerkelemente verstanden. Eine Topologie ist immer unabhängig von der genutzten
Technologie. Für den später vorgestellten Simulator sind zwei Topologien wichtig. Das sind
zum einen die vermaschte Topologie und die Stern-Topologie. Bezogen auf den konkreten
6
Wireless-LAN kann in die Kategorie zum LAN einsortiert werden. Zwar ist die Reichweite eines einzelnen AccessPoints begrenzt aber sie werden mit einander kombinieret um auf die gleiche Ausdehnung wie das verkabelte
LAN zu kommen
7
Bei modernen FTTC-Strukturen hat der Teilnehmer mit Vectoring eine Bandbreite von 100 Mbits und der DSLAM
an das WAN-Netz bis zu 10 Gbits.
8
VDSL macht es erforderlich die DSLAM wesentlich näher an die Kunden kommen. Um die volle Bandbreite zu
nutzen, darf die Leitung nicht länger als 300 Meter sein.
Kapitel: Grundlagen
-5-
Grundlagen - Netzwerktechnische Grundlagen
Sachverhalt kann man als Netzwerkelement einen DSLAM verstehen. Die Betrachtungen
werden jedoch allgemein gehalten.
2.1.3.1 Die vermaschte Topologie
In dieser Topologie ist jedes Netzwerkelement mit mindestens einem weiteren
Netzwerkelement
verbunden.
Die
Topologie
ist
schematisch
in
der
Abbildung 2-1 dargestellt. Eine Sonderform dieser
Topologie ist das voll vermaschte Netz, in dem jedes Netzwerkelement eine Verbindung zu
jedem anderen hat. Dies ist in der Abbildung 2-2 dargestellt.
Abbildung 2-1 Ein vermaschtes Netz
Abbildung 2-2 Ein voll vermaschtes Netz
Der Vorteil eines vermaschten Netzes liegt darin, dass in aller Regel, selbst bei Ausfall eines
Elementes, der Netzwerkverkehr durch das Netz immer noch geleitet werden kann. Es ist
somit robust gegen den Ausfall eines einzelnen Teilnehmers. Dieser Vorteil wird jedoch
erkauft durch ein komplexes Routing. Mit Routing ist die Wegfindung durch das Netz gemeint.
Zum anderen wohnt dem System Komplexität inne, sodass Fehlersuche und Wartung
kostenintensiv werden können.
Kapitel: Grundlagen
-6-
Grundlagen - P2P
2.1.3.2 Die Sterntopologie
Diese Topologie ist in der Abbildung 2-3 dargestellt. Bei
dieser Struktur werden mehrere Netzwerkelement an
einem „Konzentrator“ angeschlossen. Da das so
Konzentrator
entstehende Gebilde einem Stern ähnelt, spricht man
auch von Sterntopologie. Diese Struktur verkraftet den
Ausfall eines an den Konzentrator angeschlossenen
Abbildung 2-3 Stern-Toplogie
Elementes. Es eignet sich hervorragend für Broadcast
und Multicast-Datenverkehr und der Routing-Aufwand ist gerade im Verhältnis zum
vermaschten Netz wesentlich geringer. Der Nachteil dieses System ist die starke Abhängigkeit
vom Konzentrator. Fällt dieses Element aus, so ist das Netz funktionsunfähig.
2.1.3.3 Topologie im WAN-Netz
Die Netzstrukturen in der Realität sind sehr häufig eine Mischung aus den theoretischen
Modellen. Das WAN-Netz eines Service Providers lässt sich als „vermaschte Sterntopologie“
modellieren. Dabei sind die DSLAM an einen Konzentrator angeschlossen, bilden also einen
Stern, während die Konzentratoren untereinander ein vermaschtes Netz bilden. Diese
Struktur ist die Grundlage für die spätere Simulation.
2.2 P2P
Es gibt im Aufbau von verteilten Anwendungen zwei grundlegende Modelle. Eine verteilte
Anwendung ist ein Programm, „das zum Ausführen seiner Funktionalitäten seinen eigenen
Adressraum verlassen muss“ [1]. Für gewöhnlich, aber nicht zwingend, erfolgt dabei die
Kommunikation zwischen den verschiedenen Adressräumen über ein Netzwerk.
2.2.1 Abgrenzung zum Client-Server-Modell
Eines der ersten Modelle für diese Kommunikation ist das Client-Server-Modell. Dieses Modell
ist auch heute noch das meist eingesetzte. Bei diesem Modell gibt es eine zentrale Instanz, die
alle Verwaltungsaufgaben innehat. Oft wird mit diesem Modell auch immer eine Maschine
mit viel Rechenleistung als Server verbunden, obgleich das entscheidende Merkmal die
Zentralisierung ist und eher aufgrund der Fülle von Anfragen von Clients eine leistungsfähige
Maschine als Server gewählt wird.
Kapitel: Grundlagen
-7-
Grundlagen - P2P
Eine andere Beschreibung, der bei diesem Modell verwendeten Komponenten, ergibt sich wie
folgt. Der Server bietet einen Dienst oder Funktionalitäten an, hingegen konsumiert der Client
diese. Die Kommunikation erfolgt ausschließlich zwischen Client und Server. Ein Client ist sich
nicht der Existenz anderer Clients bewusst.
Dem Server kommt in diesem Modell eine sehr wichtige Rolle zu. Ist der Server nicht
erreichbar, sind die von ihm angebotenen Funktionalitäten für das Netzwerk verloren. Aus
diesem Grund stellt er einen Single-Point-of-Failure9 (SPoF) dar.
Das zweite Modell ist das Peer-to-Peer (P2P)-Modell. Bei diesem Modell sind alle Teilnehmer
gleichwertig und die Kommunikation erfolgt direkt zwischen den Peers. Daher leitet sich der
Name Peer-to-Peer ab. Auf der anderen Seite entstehen dadurch einige Probleme. Das P2PNetz muss sich selbst organisieren. Es müssen also Mechanismen gefunden werden, wie sich
Peers gegenseitig finden. Hinzu kommt, dass solche Netze eine hohe Dynamik, wie z.B. beim
Filesharing, besitzen.
Infolge des Grundgedanken der P2P-Netze wohnen Merkmale wie Zuverlässigkeit und
Skalierbarkeit dem System inne, denn jeder Knoten kennt das Netz aus seiner Perspektive und
verlässt ein Teilnehmer das P2P-Netz, ist jeder Knoten in der Lage das Netz aus eben dieser
Sicht wieder neu zu erstellen. Die Skalierbarkeit erwächst aus der Selbstorganisation.
2.2.2 Einteilung von P2P basierten Systemen
Je nachdem, wie sich ein P2P-Netz organisiert,
P2P-Systeme
kann man diese in zwei verschiedene
Kategorien einteilen – unstrukturierte- und
strukturierte
Systeme.
Unstrukturierte
Systeme lassen sich in drei weitere Kategorien
einteilen.
unstrukturierte
zentralisierte
strukurierte
DHT basiert
dezentralisierte
Bei einem zentralisierten unstrukturierten
Netz
existiert
ein
Server,
dem
alle
hybride
Abbildung 2-4 Einteilung von P2P-Systemen
teilnehmenden Peers bekannt sind. Die
Kommunikation kann hier jedoch anders als beim Client-Server-Modell, nach dem Erfragen
9
Es gibt viele Maßnahmen um diesen Nachteile abzumildern. So ist es z.B. möglich einen Server zu clustern. Der
technische Aufwand und damit auch der finanzielle der dabei betrieben wird ist immens.
Kapitel: Grundlagen
-8-
Grundlagen - P2P
der gewünschten Peers beim Server, direkt zwischen den Peers stattfinden. Der Server
fungiert nur als Vermittler.
Anders sehen die Prinzipien bei dezentralisierten unstrukturierten Netzen aus. Bei solchen
Netzen verwalten die Peers nur Nachbarschaftslisten. Wird nach anderen Peers gesucht, muss
das Netz dementsprechend geflutet werden.
Bei hybriden unstrukturierten Netzen werden sogenannte Super-Peers gebildet. Diese Peers
kennen sowohl angeschlossene als auch weitere Super-Peers. Sucht ein Peer nach Ressourcen
stellt er seine Anfrage an den Super-Peer mit dem er verbunden ist. Findet dieser bei seinen
angeschlossenen Peers nicht das gewünschte Datum, leitet er die Anfrage an weitere SuperPeers weiter. Dieses System verhält sich ähnlich wie ein Router mit vielen direkt
angeschlossenen Netzen. Ein Gerät das außerhalb seines eigenen Netzes kommunizieren will,
sendet das Paket an den Router. Dieser entscheidet dann, wohin das Paket weitergeleitet
werden soll. Findet er ein passendes Netz, wird das Paket weitergeleitet.
2.2.3 Strukturierter Ansatz
Ein Problem bei P2P-Netzen ist das Auffinden von Peers. Angenommen sei, dass jeder Peer
jeden anderen kennen müsste. Es entsteht ein sogenanntes voll vermaschtes Netz. Bei
geringer Teilnehmeranzahl ist ein solches Netz noch zu verwalten, aber wird das Netz größer
treten viele Probleme auf, denn ein solches Netzt skaliert schlecht. Eine der Ursachen dafür
ist die hohe Dynamik, die P2P-Netzen innewohnt. Wenn jeder Peer jeden anderen kennen
würde, muss jeder Peer sich auch über die Aktualität seiner bekannten Peers kümmern.
Meldet sich ein Peer ab, ist die Wahrscheinlichkeit, dass ein anderer Peer diese Information
nicht bekommt, groß. Man stelle sich auch die Netzwerklast vor, wenn ein neuer Peer dem
Netz beitritt und alle anderen Peers antworten, denn nur so hätte der Peer die Möglichkeit
das Netz kennen zu lernen. Für große Netze müssen Methoden gefunden werden, die das
System strukturierbar machen. Distributed Hash Table (DHT)
bilden hierfür einen
Mechanismus.
Ziel von DHTs ist es, das Netz zu strukturieren, indem ein logischer Ring gebildet wird. Dabei
wird die Ringstruktur durch einen Hashwert erzeugt. Beim Hashen handelt es sich um eine
mathematische Operation, die einen beliebigen Eingangswert (z.B. eine IP-Adresse) auf eine
eindeutige Zahl abbildet. Diese Zahl wird Hashwert genannt. Im besten Falle sorgen kleine
Kapitel: Grundlagen
-9-
Grundlagen - P2P
Änderungen der Eingangswerte zu großen Änderungen des Hashwertes. Des Weiteren sollte
ein guter Hashalgorithmus nicht vom Hashwert auf den Eingang schließen lassen, jeden
beliebigen Hashwert annehmen können und eineindeutig sein. Heute eingesetzte Verfahren
in dem Bereich sind MD4 und MD5.
Da nun die Hashwerte immer eine feste Länge haben und theoretisch jeder Wert
angenommen werden kann, lässt sich ein Ring bilden, wobei der Wert nach dem
größtmöglichsten der kleinstmöglichste ist.
Im nächsten Schritt verwaltet ein Peer nur noch Informationen über eine gewisse Anzahl von
anderen Peers, wobei er die Informationen von vielen nahen und nur wenig entfernten
verwaltet. Soll nun Kontakt zu einem Peer aufgenommen werden, der dem sendenden Peer
nicht bekannt ist, sendet er einfach eine Nachricht zu dem Peer der ihm am nächsten scheint.
Dieser wiederum entscheidet, ob ihm der gewünschte Peer direkt bekannt ist oder welcher
andere Peer aus seiner Sicht am nächsten ist und meldet es dem ursprünglichen. So kann das
ganze Netz durchsucht werden.
Im nächsten Schritt wird auch für Dateien, zum Beispiel aus deren Namen, ein Hashwert
gebildet. Dabei gilt, dass ein Peer, der einen der Datei ähnlichen Hashwert hat, auch für die
Datei verantwortlich ist, also vermutlich deren Besitzer ist. Ein Beispiel folgt im nächsten
Abschnitt.
2.2.4 Kad als Implementierungsvariante von Kademlia
Kademlia ist ein P2P-basiertes Protokoll das DHTs zur Strukturierung des Overlays einsetzt
wird. Eine Implementierung dieses Protokolls ist Kad [2].
Kapitel: Grundlagen
- 10 -
Grundlagen - P2P
Als Hashalgorithmus wird MD4 eingesetzt und der zu hashende Wert ist die IP-Adresse. Als
Beispiel für den Aufbau der Routingtabelle und zum Finden von Daten soll die Fehler!
Verweisquelle konnte nicht gefunden werden. dienen.
0
0
0
1
000
001
1. Bucket
0. Bucket
1
1
0
0
010
1
011
2. Bucket
1
0
1
100
101
0
110
1
111
3. Bucket
Abbildung 2-5 Darstellung eines P2P-Netzes mit 3 Bit-Adressen und 8 Peers. Es wird der Aufbau der k-Buckets ausgehend vom
Peer mit dem Hashwert 001 dargestellt.
In diesem Netz befinden sich acht Peers, symbolisiert durch Kreise. Zur einfachen Darstellung
gehen wir davon aus, dass der Adressraum drei Bits umfasst. Der Hashwert der Peers ist in
dem Kreis dargestellt. Zur Berechnung der Distanz von zwei Peers wie auch für Daten wird die
XOR-Metrik herangezogen, das bedeutet Quell- und Zielhashwert werden XOR verknüpft.
Je geringer des Ergebnis, umso ähnlicher und damit näher, sind sich zwei Peers. Ausgehend
von diesem Ergebnis werden die Peers ihrer Entfernung nach in sogenannte k-Buckets
eingeteilt. In welches k-Bucket ein Peer einzuordnen ist, entscheidet sich über die erste
Position - vom LSB aus betrachtet - an der sich eine Eins im Ergebnis der XOR-Verknüpfung
befindet. Wir betrachten das Netz aus Sicht des Peers mit dem Hashwert 001. Daraus ergibt
sich folgende Tabelle.
Peer-Hashwert
000
001
010
011
100
101
110
111
XOR-Metrik zum Peer 001
001
000
011
010
101
100
111
110
K-Bucket
1
0
2
2
3
3
3
3
Tabelle 2-2 Ergebnisse der XOR-Verknüpfung der Peers in Fehler! Verweisquelle konnte nicht gefunden werden. aus Sicht der
Peers mit dem Hashwert 010. Entsprechend der XOR-Metrik wird dann eine Einteilung in die entsprechenden k-Buckets
durchgeführt
Kapitel: Grundlagen
- 11 -
Grundlagen - P2P
Für das Beispiel wurde eine baumartige Darstellung gewählt, um die Einteilung der k-Buckets
gut sichtbar zu machen. Eine Visualisierung hätte auch wie im Abschnitt 2.2.3 beschrieben als
Ring erfolgen können.
Man kann an dem Beispiel erkennen, dass je größer der Adressraum ist, desto mehr Peers in
wird es in entfernteren Buckets geben. Auch ergibt sich die Anzahl der Buckets direkt aus der
Größe des Adressraumes. Da MD4 und MD5 einen 128-bit breiten Hashwert liefert, hat ein
Peer im Kad-Netzwerk eine Routingtabelle die aus 128 k-Buckets besteht. Das k drückt aus,
wie viele Peers in einem Bucket gespeichert werden sollen. Bei Kad sind es zehn.
Darüber hinaus hat jeder Peer in der Routingtabelle eine Lebenszeit. Bevor die Lebenszeit
abgelaufen ist, wird überprüft, ob der Peer noch antwortet.
Damit die Routingtabelle gefüllt wird, gibt es drei verschiedene Mechanismen. Zum einen
führt ein jeder Peer, der dem Netzwerk beitreten will, einen Bootstrap aus. Dabei wird ein
bekannter Peer angesprochen. In seiner Antwort befinden sich Kontakte. Neben dem
Bootstrap gibt es noch ein Lookup Verfahren. Bei einem Lookup-Verfahren wird zu einem
Hashwert ein naher Peer gesucht. Dieser Peer erhält eine Nachricht, die den Hashwert
beinhaltet. Der Peer wird durch diese Nachricht aufgefordert, aus seiner Routing-Tabelle
Peers mit einem ähnlichen Hashwert zu finden und diese dem fragenden Peer mitzuteilen.
Man unterscheidet dabei zum einen das Verfahren des Self-Lookup, bei dem der eigene
Hashwert übertragen wird und dem Random-Lookup, in dem ein durch Zufall bestimmter
Hashwert übertragen wird.
Wird nun ein Datum gesucht, wird auch von diesem ein Hashwert gebildet. Gesetz dem Falle,
dass der Hashwert 110 wäre, würde die XOR-Verknüpfung mit dem eigenen Hashwert (001)
111 ergeben. Daraus folgt, dass der Ziel Peer, insofern bekannt, sich im dritten Bucket
befinden muss. Dementsprechend würde der Peer dieses k-Bucket durchsuchen nach dem
Peer mit der geringsten Entfernung zum Ziel suchen und den Ziel Peer dort auch finden.
Das Kademlia-Protokoll kennt zwei verschiedene Arten Dateien zu suchen - rekursiv und
iterativ. Damit der Sachverhalt mit demselben Beispiel erklärt werden kann, wird
angenommen der Peer 001 würde nicht das Bucket durchsuchen, sondern zuerst den Peer mit
dem Hashwert 100 befragen.
Kapitel: Grundlagen
- 12 -
Grundlagen - P2P
Für den Fall der rekursiven Suche, würde der suchende Peer den Peer aus seiner RoutingTabelle den für den Ziel-Hashwert am nächsten gelegenen Peer suchen. Hat dieser das Ziel
nicht in seiner Routing-Tabelle, sucht der sich wiederum dem Ziel am ähnlichsten Peer und
fordert diesen auf, nach dem Peer zu suchen. Dieser Vorgang wiederholt sich solange, bis der
Ziel-Peer gefunden wurde. Wurde dieser Peer gefunden, sendet der Peer, der ihn gefunden
hat, eine Antwort an den suchenden Peer. Diese Antwort enthält alle notwendigen
Informationen, damit die Peers sich über das Underlay verständigen können. Dazu zählen
unter anderem die IP-Adresse und der Port. Diese Informationen werden im Folgenden
Kontaktinformationen genannt. Die unten stehende Abbildung zeigt exemplarisch eine solche
Strategie.
001
Suche Peer: 111
Fragender Peer: 001
100
Suche Peer: 111
110
Ziel bekannt,
Teile fragendem Peer
(001) die Kontaktdaten
mit
Ziel nicht bekannt,
Suche nahen Peer,
Befrage Peer 110
Sender Peer 001 die Kontaktdaten
Abbildung 2-6 Beispiel für einen rekursiven Suchvorgang, bei dem der Peer 001 den Peer 110 sucht.
Im iterativen Fall, würde jeder Peer entlang des Suchpfades dem suchenden Peer eine Antwort
senden, die jeweils immer die Kontaktinformationen eines Peers beinhaltet, die näher am Ziel
sind als der vorherige. Dabei wird auch in der Routingtabelle immer nach dem ähnlichsten
Peer gesucht. Im Erfolgsfall würden dann wie bei der iterativen Suche, die Kontaktdaten des
Ziel-Peers mitgeteilt werden. Abbildung 2-7 stellt dieses Prinzip dar. Dabei wird der blaue Pfad
zuerst gewählt. Aus der Information in der Antwort wird der orangene Pfad eingeschlagen.
Suche Peer 111
001
Suche Peer: Hash 111
Peer ist mir nicht bekannt,
aber Peer 110 könnte es wissen,
Sende Kontaktdaten von Peer 110
100
110
Peer bekannt,
sende Kontaktdaten
Abbildung 2-7 Beispiel für einen interativen Suchvorgang. Bei dem der Peer 001 den Peer 110 sucht. Der zuerst gefragte Peer
100 antwortet mit einem näheren Peer. Dieser Peer wird anschließend befragt und sendet die Kontaktinformationen.
Kapitel: Grundlagen
- 13 -
Grundlagen - Verteiltes Rechnen
2.3
Verteiltes Rechnen
An dieser Stelle soll kurz geklärt werden, was unter dem Begriff Verteiltes Rechnen zu
verstehen ist. Verteiltes Rechnen ist eine Spezialisierung der Verteilten Anwendung, deren
Definition in der Einleitung zu dem Abschnitt 2.2 zu finden ist. Beim Verteilten Rechnen
arbeiten nun alle Instanzen der Anwendung an einer gemeinsamen Aufgabe. Dabei erledigen
die einzelnen Instanzen im Allgemeinen unterschiedliche Teilaufgaben.
Die Aufgabe, die durch das Verteilte Rechnen gelöst werden soll, muss sich grundlegend in
Teilaufgaben zerlegen lassen, die alle unabhängig voneinander sind. Wären die Aufgaben
abhängig, würde dies bedeuten, dass eine Teilaufgabe Ergebnisse einer anderen benötigen
würde und in Folge dessen solange warten müsste, bis die abhängige Teilaufgabe gelöst
wurde. Als Beispiel sei die Berechnung von statistischen Kenngrößen (z.B. Mittelwert und
Varianz) mehrerer Datensätze angedacht. Würde man die Aufgabe so zerlegen, dass die erste
Teilaufgabe die Berechnung des Mittelwertes aller Datensätze vorsehen würde und die zweite
Teilaufgabe die Berechnung der Varianzen, so würden Abhängigkeiten entstehen, denn die
Varianz kann erst bestimmt werden, wenn der Mittelwert bekannt ist10. Dieses Beispiel hätte
in dieser Form keinen Vorteil gegenüber der sequenziellen Berechnung durch nur eine
Maschine. Würde man hingegen die Aufgaben derart einteilen, dass jede Maschine einen
Datensatz bekäme, wäre die Aufgabe für das verteilte Rechnen geeignet und die Berechnung
der gesuchten Größe würde wesentlich schneller vorliegen als bei dem gewöhnlichen
sequenziellen Ansatz.
Neben dieser Vorrausetzung an die Aufgabe bedarf es noch weitere Schritte damit eine
Aufgabe durch ein verteiltes Rechnen System gelöst werden kann. Dazu zählen vor allem
Anforderungen an die Koordination der einzelnen Teilnehmer. Man kann die diese in die
folgenden drei Punkte einteilen.
ο‚·
Finden der verfügbaren Geräte
ο‚·
Verteilen der Aufgabe an die verfügbaren Geräte
ο‚·
Einsammeln der berechneten Ergebnisse
1
2
Für die Berechnung wird die Formel: 𝜎 2 = ∑𝑁
𝑖=0(π‘₯𝑖 − π‘₯Μ… ) angewandt. Es gibt Verfahren die Varianz und
𝑁
Mittweltwert in einem Durchlauf schätzen
10
Kapitel: Grundlagen
- 14 -
Grundlagen - Verteiltes Rechnen
Auf eine allgemeine Beschreibung dieser Koordinierungsaufgaben wird verzichtet.
Stattdessen wird im Abschnitt drei gezeigt, wie das System DuDE diese Aufgaben löst.
2.3.1 Stand der Technik
2.3.2 P2P-Vorteile gegenüber Client-Server-Ansatz
Es wurde gezeigt, dass die Koordinierung der einzelnen Teilnehmer eine große
Herausforderung beim Verteilten Rechner darstellt. Bei dem Client-Server-Ansatz wird dies
meist durch eine zentrale Instanz, dem Server, geregelt. Dabei melden sich die potenziellen
Clients beim Server an beziehungsweise ab. Daher weiß der Server zu jedem Zeitpunkt, welche
Teilnehmer für eine Aufgabe verfügbar wären. Die für eine Aufgabe notwendigen Dateien
befinden sich entweder direkt auf dem Server beziehungsweise können durch ihn
bereitgestellt werden oder werden, wenn die Aufgabe verteilt wird, den Teilnehmern direkt
geschickt. Wurde eine Teilaufgabe gelöst, so sendet der Client seine Ergebnisse an den Server.
Auch in diesem Szenario stellt der Server ein SPoF dar. Ein P2P-Netz hingegen muss sich selbst
organisieren und ist robust gegen den Ausfall einzelner Peers. Nimmt die Anzahl der
Teilnehmer zu und die Reaktionszeit des Systems soll die gleiche bleiben, so muss
zwangsweise die Leistung des Server mitwachsen und zwar für jeden einzelnen Teilnehmer,
der hinzukommt. P2P-Netze hingegen skalieren wesentlich besser, was die Organisation
betrifft.
Ein weiterer Nachteil des Client-Server-Modells ist der Fakt, dass ein Server, was die
Netzwerkbandbreite angeht, einen Flaschenhals bildet. Bei P2P-Netzen und ihrem
dezentralen Charakter wird dies vermieden.
Dadurch, dass keine sehr leistungsfähige Maschine mehr benötigt wird und alle Teilnehmer
im P2P-Netz von ihrer Leistung auch stark heterogen sein können, nimmt es zum einen den
Kostendruck und ermöglicht zum anderen auch Teilnehmer mit einzubeziehen, die im ClientServer-Modell nicht teilnehmen hätten können.
Kapitel: Grundlagen
- 15 -
DuDE-Konzept - Verteilen von Daten
3 DuDE-Konzept
In diesem Kapitel wird das DuDE-Konzept dargestellt. Dieses Konzept wurde an der Universität
Rostock entwickelt und stellt ein Verfahren dar, um mit Hilfe eines dezentralen Ansatzes
Statistiken der Zugangsknoten (DSLAM) zu berechnen. Das System ist dezentral sowohl
bezogen auf die Koordinierung des Verteilten Rechnen als auch die Datenhaltung11.
Als Daten werden in diesem Falle die Logeinträge der Zugangsdaten bezeichnet. Das sind
Dateien, die Informationen zur Auslastung von beispielweise CPU, RAM oder Paketverlust
beinhalten. Durch das Anfertigen von Statistiken, basierend auf diesen Daten, kann man
Erkenntnisse zur Auslastung des Netzes und der verwendeten Zugangsknoten erhalten, die
dann als Planungsgrundlagen für spätere Investitionen dienen können. Des Weiteren kann
sich auch ein Angriff auf das Netz aus diesen Statistiken feststellen lassen.
Hinzu kommt, dass die meisten Zugangsknoten ungenutzte Ressourcen haben, die sich zum
Berechnen der Statistiken eignen würden.
Dabei wird das Kademlia-Protokoll um Fähigkeiten zum Verteilen von Sitzungsdaten und zum
Verteilten Rechnen erweitert. Das hält zum einen den zu erwartenden Overhead klein und
sorgt für Stabilität, da ein Protokoll eingesetzt wird, welches sich in der Praxis bewährt hat
und die Grundlage vieler weiterer Anwendungen ist.
3.1 Verteilen von Daten
DuDE ist ein vollkommen dezentrales System. Dementsprechend muss auch die Datenhaltung
dezentral erfolgen. Da immer die Möglichkeit besteht, dass ein Peer das Netz verlässt, verteilt
der Peer seine Sitzungsdaten periodisch oder wenn bestimmte Ereignisse eintreten, die die
alten Daten für ungültig erklären, so dass ein Neuverteilen notwendig wird.
Zum Verteilen wird eine Datei in n Datenstücke und m Kodierungsstücke geteilt. Unter der
Annahme, dass der Knoten mit der ID 2 seinen Log-Datei für den RAM verteilen wird, so würde
er die Teile derart benennen: „Knoten 2 RAM_n.log“. Die Kodierungsstücke würden in der
Nummerierung einfach weiter laufen. Anschließend wird aus diesem Namen der Hashwert
gebildet. Danach wird nach mindestens k Knoten gesucht, deren Hashwert dem Hashwert der
11
Damit das System funktioniert muss ein bekannter Peer definiert sein oder durch einen Broad bzw. Multicast
ermittelt werden. Nimmt man den bekannten Peer an, so ist das System nicht vollständig dezentral.
Kapitel: DuDE-Konzept
- 16 -
DuDE-Konzept - Prinzipieller Ablauf
Daten ähnlich sind. Diese Knoten werden angewiesen, die Dateien zu speichern. Dieser
Datenverkehr wird über TCP abgewickelt, um zu gewährleisten, dass die Daten gesichert und
vollständig beim Ziel-Peer ankommen.
Ein Peer hat also dementsprechend immer eigene vollständige Dateien und kann darüber
hinaus noch Dateistücke von anderen Peers bekommen. Je größer die Werte für n, m und k
gewählt werden, umso größer wird die Datenverfügbarkeit und je mehr Datenverkehr wird
erzeugt. Auf eine genaue Rechnung wird an diese Stelle auf die Arbeit von [3] verwiesen.
3.2 Prinzipieller Ablauf
In diesem Abschnitt wird davon ausgegangen, dass die Daten bereits redundant im Netz
verteilt sind und das Netz bereits konvergiert ist, also jeder Peer ausreichend andere Peers
kennt. Für dieses Beispiel sollen die Statistiken für die Werte von RAM, CPU und Paketverlust
für alle Zugangsknoten berechnet werden. Dies ist der Sachverhalt, welcher auch Grundlage
in der später beschriebenen Simulation ist. Das System DuDE könnte aber auch zum Beispiel
nur die RAM-Auslastung von bestimmten Knoten berechnen.
Ein jeder Knoten bekommt eine eindeutige Identifikation, die aus dem Präfix „Knoten “ und
einer Nummer besteht, welche bei null startet und bis n-1 Teilnehmer durchnummeriert wird.
Aus dieser Identifikation wird der Hashwert gebildet.
Folgende Schritte werden durchgeführt:
1. Ermitteln des Job-Schedulers
2. Teilen des Jobs in einzelne Tasks
3. Finden der Task-Watcher
4. Verteilen der Aufgabe
5. Ein jeder Task-Watcher sammelt die notwendigen Dateien
6. Die Berechnung werden durchgeführt
7. Die Ergebnisse werden an den Job-Scheduler gesendet
8. Sind alle Task gelöst, ist der Job beendet
Nachfolgend werden die Schritte detailliert beschrieben. Soll eine Aufgabenstellung
durchgeführt werden, verbindet sich ein Administrator mit einem beliebigen Zugangsknoten.
Diesem Knoten wird eine Aufgabenstellung mitgeteilt. Mit Aufgabenstellung ist in diesem
Kapitel: DuDE-Konzept
- 17 -
DuDE-Konzept - Prinzipieller Ablauf
Zusammenhang gemeint, dass RAM, CPU und Paketverlust von beispielsweise allen
Zugangsknoten bestimmt werden soll. Aus dieser Aufgabenstellung wird später der Job
generiert. Dieser Zugangsknoten sendet eine Nachricht an alle Peers in seiner Routingtabelle.
Durch diese Nachricht werden die Peers aufgefordert ihre Ressourcen-Metrik zu berechnen
und diese dem fragenden Peer mitzuteilen. Zu diesem Zeitpunkt wird ein Ressourcen-Timer
gestartet.
Mit Ressourcen-Metrik ist eine Zahl gemeint, die verschiedene Werte bezüglich der aktuellen
Auslastung des Zugangsknoten verrechnet und damit ein Maß bildet, wie leistungsstark der
Zugangsknoten zum aktuellen Zeitpunkt ist und damit wie viel Verantwortung er innerhalb
von DuDE übernehmen kann. Denkbar wäre auch, wenn der errechnete Wert einen
Schwellwert unterschreitet, dass keine Antwort gesendet wird.
Sobald der Peer seine Antwort gesendet hat, wechselt er in einen Zustand, der verhindert,
dass der Peer auf irgendeine DuDE-bezogene Nachricht antwortet. Dies ist notwendig, da im
System auch mehrere Jobs parallel abgearbeitet werden können. So wird auf einfache Weise
eine Gruppe von Peers an einen Job gebunden. Damit die Peers nicht für immer blockiert sind,
wird ein Timer gestartet, der nach Ablauf den Ausgangszustand wieder herstellt.
Ist der Ressourcen-Timer abgelaufen oder haben alle gefragten Peers geantwortet, werden
alle ankommenden Antworten mit einem Entsperren beantwortet und somit nicht mehr
akzeptiert und der fragende Peer wertet die Antworten aus. Der Peer, der die höchste
Ressourcen-Metrik hatte, wird zum sogenannten Job-Scheduler gewählt, indem ihm eine
Nachricht geschickt wird. Diese Nachricht beinhaltet auch, den zu bearbeitenden Job. Die
Aufgabe des Job-Scheduler ist es, den Job zu verwalten und zu überwachen. Alle anderen
Peers die an der Wahl teilgenommen haben, aber nicht gewählt wurden, erhalten eine
Nachricht, die sie wieder in den Ausgangszustand versetzt. So sind diese Peers wieder
freigegeben. Ebenso wird auch der fragende Peer selbst freigegeben.
Der Job-Scheduler wechselt zuerst in einen Zustand, in dem er auf Ressourcen Anfragen
anderer Peers nicht antwortet. Er ist an die Aufgabe gebunden. Anschließend wird die Aufgabe
in einzelne Tasks geteilt. Dabei bezieht sich ein Task immer nur auf einen bestimmten
Kapitel: DuDE-Konzept
- 18 -
DuDE-Konzept - Prinzipieller Ablauf
Datentyp und eine bestimmte Anzahl von Peers. Umfasst das Netz beispielsweise 800012
Teilnehmer und ein Task darf nicht mehr als 300 Peers beinhalten, so würden es 8000*3 (RAM,
CPU, Paketverlust) / 300 = 80 Task entstehen.
Ist der Job in die einzelnen Task geteilt, sucht der Job-Scheduler nach Ressourcen. Dieser
Vorgang kann äquivalent zu der Suche nach Ressourcen zur Wahl des Job-Schedulers
verstanden werden. Befinden sich in der Routing-Tabelle weniger Peers als ein Schwellwert,
so wird die Suche nach Ressourcen rekursiv ausgeführt. Dabei kontaktieren die Peers, die eine
Nachfrage nach Ressourcen hatten, ebenso alle Peers in ihrer Routing-Tabelle. Damit das Netz
nicht geflutet wird, wird die Anzahl der Schritte begrenzt. Der Schwellwert errechnet sich aus
der Anzahl der Task erhöht um einen Sicherheitsfaktor der in Prozent angeben wird.
𝑆 = π‘‡π‘Žπ‘ π‘˜π΄π‘›π‘§π‘Žβ„Žπ‘™ ∗ (1 + π‘†π‘–π‘β„Žπ‘’π‘Ÿβ„Žπ‘’π‘–π‘‘π‘ πΉπ‘Žπ‘˜π‘‘π‘œπ‘Ÿ)
Der Sicherheitsfaktor ist notwendig, da nicht davon ausgegangen werden kann, dass alle
gefragten Peers auch antworten.
Der Job-Scheduler wertet die Metriken aus. Die Tasks werden dann anschließend auf die Peers
mit den höchsten Metriken verteilt, in dem sie eine Nachricht mit den Tasks erhalten. Alle
anderen Peers die geantwortet haben, aber für die keine Task übrig war, werden dazu wieder
freigegeben.
Erhalten Peers eine Nachricht, die einen Task beinhaltet, werden diese zu Task-Watchern
befördert. Auch in diesem Zustand wird nicht auf Ressourcenanfragen von anderen Peers
geantwortet. Der Task selbst beinhaltet Informationen zu dem Dateityp, auf den sich die
Aufgabe bezieht und die Identifikationen der Peers, von denen die Informationen gesammelt
und berechnet werden sollen. Der Task-Watcher beginnt dann mit der Suche nach den
Dateien. Die Suche wird detailliert im nächsten Abschnitt erklärt. Ist die Suche nach den
Dateien beendet, wird die Berechnung durchgeführt. Ist auch diese beendet, wird dem JobScheduler das Ergebnis mitgeteilt. Der Task-Watcher wechselt danach wieder in den
Anfangszustand und wäre somit bereit, an einer weiteren Berechnung teilzunehmen.
12
Wenn die Anzahl der Zugangsknoten im gesamten Netz nicht bekannt sind, sollte dieser Wert größer als real
gewählt werden. Bei dem Abschnitt „Einsammeln von Daten“ wird auf ein Verfahren eingegangen, dass in
solchen Fällen die Suche terminiert.
Kapitel: DuDE-Konzept
- 19 -
DuDE-Konzept - Prinzipieller Ablauf
Hat der Job-Scheduler von jedem Task-Watcher die Ergebnisse, werden diese dem
Administrator mitgeteilt und auch der Job-Scheduler begibt sich wieder in den
Ausgangszustand und steht für die verteilte Berechnung wieder bereit. Sollte ein Task Watcher
nach einer bestimmten Zeit nicht geantwortet haben, geht der Job-Scheduler davon aus, dass
der Task-Watcher nicht erreichbar ist und wird erneut nach Ressourcen suchen und den Task
erneut verteilen.
Ein
Administrator PC
Administrator
beauftragt das Netz
damit eine Aufgabe zu
Peer
ID: 4
erledigen. Dazu wird
ein
Peer
ID:
6571
Peer
ID:
400
Peer
ID:
124
Übersende
Aufgabe
beliebiger
Peer
kontaktiert. In diesem
Beispiel der Peer mit
der ID 6571
Dieser beginnt mit der
Administrator PC
Suche nach Ressourcen
um den Job-Scheduler
Peer
ID: 4
Peer
ID:
6571
Kapitel: DuDE-Konzept
zu
finden.
Dabei
werden alle Peers in
Peer
ID:
124
Peer
ID:
400
seiner Routing-Tabelle
befragt.
- 20 -
DuDE-Konzept - Prinzipieller Ablauf
Die gefragten Peers
Administrator PC
antworten mit ihrer
Ressourcen Metrik. Zu
Peer
ID:
6571
Freie
Ressourcen
Peer
ID:
124
Peer
ID: 4
sehen ist, dass der Peer
mit der ID 400 nicht
Peer
ID:
400
befragt wurde, weil er
z.B. dem Peer mit der
ID 6571 nicht bekannt
ist.
Der
Administrator PC
Peer
mit
der
höchsten RessourcenMetrik wird zum Job-
Beföderung zum
Job-Scheduler
Peer
ID:
6571
Peer
ID:
124
Peer
ID: 4
Scheduler befördert. In
dem Beispiel der Peer
Peer
ID:
400
mit der ID 4.
Dieser beginnt erneut
Administrator PC
mit der Suche nach
Ressourcen.
Peer
ID: 4
Peer
ID:
6571
Kapitel: DuDE-Konzept
werden alle Kontakte
in
Peer
ID:
124
Peer
ID:
400
Dazu
seiner
Routing-
Tabelle befragt.
- 21 -
DuDE-Konzept - Prinzipieller Ablauf
Auch jetzt antworten
Administrator PC
die
gefragten
Peers
mit ihrer Ressourcen
Freie
Ressourcen
Peer
ID:
6571
Peer
ID: 4
Metrik. Zu beachten
ist, dass für den Peer
Peer
ID:
124
Peer
ID:
400
mit der ID 4, der Peer
mit der ID 400 bekannt
sei.
Der Peer mit der ID 4 ist
Administrator PC
Job-Scheduler
(orange).
Peer
ID: 4
Task RAM
Peer
ID:
6571
Task CPU
verteilt die Task an die
Peers mit der höchsten
Peer
ID:
400
Peer
ID:
124
Dieser
Ressourcen
Damit
Metrik.
werden
die
Peers mit der ID 6571
und
124
zu
Task-
Watchern.
Die
Administrator PC
Task-Watcher
sammeln die Dateien
ein und berechnen die
Peer
ID: 4
Fertig
Peer
ID:
6571
Fertig
Peer
ID:
124
Aufgabe. Haben sie die
Aufgabe
Peer
ID:
400
übersenden
berechnet,
sie
die
Aufgabe an den JobScheduler.
Kapitel: DuDE-Konzept
- 22 -
DuDE-Konzept - Einsammeln von Daten (KaDis)
Wenn
Administrator PC
alle
Task-
Watcher ihre Aufgabe
Ergebnisse
beendet haben, sendet
Peer
ID: 4
Peer
ID:
6571
der Job-Scheduler die
Ergebnisse
Peer
ID:
124
Peer
ID:
400
an
den
fragenden Admin.
Abbildung 3-1 Prinzipieller Ablauf von DuDE
3.3 Einsammeln von Daten (KaDis)
Da bei DuDE auch die Datenhaltung dezentral ist, muss jeder Task-Watcher alleine die Daten
für den Task sammeln. In dem Task selbst wird auch die Information transportiert, auf welche
Peers sich der Task bezieht. Jeder Peer hat eine eindeutige Identifikation. Es soll angenommen
werden, dass der Task besagt, dass die Statistik der RAM-Auslastung von Knoten mit der
Identifikation 300 bis 600 ermittelt werden soll.
Das Netz eines Providers kann als hinreichend stabil betrachtet werden, um im ersten Versuch
direkt nach dem Peer mit der ID zu suchen. Der Task-Watcher würde also angefangen, den
Hashwert für „Knoten 300“ zu ermitteln. Anschließend sucht er in seiner Routingtabelle nach
einem entsprechend nahen Peer. Ist der Peer selbst nicht dabei, wird entweder iterativ oder
rekursiv nach dem Ziel-Peer gesucht. Ist der Ziel-Peer noch im Netz sendet er seine
entsprechende Log-Datei direkt an den Task-Watcher. Antwortet der Ziel-Peer nach einer
bestimmten Zeit nicht, wird der Task-Watcher davon ausgehen, dass der Ziel-Peer das Netz
verlassen hat und beginnt nun nach den Teilen der entsprechenden Datei zu suchen. Dazu
würde der Hashwert der Datei also in dem Beispiel „Knoten 300 RAM_0.log“ gebildet werden
und nach einem entsprechenden nahen Peer gesucht. Dies geschieht für alle Teile. Ist auch
diese Suche erfolglos, was bedeutet, dass nicht alle für das Zusammensetzen nötigen Dateien
gefunden wurden, wird der Wert für aktuelle Verluste um eins erhöht. Würde die Datei
„Knoten 301 RAM.log“ gefunden werden, so wird dieser Wert wieder auf 0 gesetzt werden.
Hat der Wert einen bestimmten Schwellwert überschritten, wird davon ausgegangen, dass
das Netz vollständig durchsucht wurde und der Task-Watcher würde mit der Berechnung
Kapitel: DuDE-Konzept
- 23 -
DuDE-Konzept - Rollen und Zustände
starten. Dieser Algorithmus wird Kademlia Discovery (KaDis) genannt und ist schematisch in
Abbildung 3-2 dargestellt.
Task
Noch IDs übrig
Starte mit nächster
Type: RAM
Peer-IDs:
300
301
302
303
….
ο‚·
ο‚·
Frage nach der
Logdatei für RAM
Erhalte Daten
Alle IDs durchsucht
Peer gefunden
ο‚·
ο‚·
Peer
ο‚·
Bilde Hashwert
von „Knoten i".
Suche nach
Peer
Peer nicht ο‚·
gefunden
ο‚·
ο‚·
Suche nach
Datei Stücken
Bilde
Hashwert z.B.
von „Knoten
i_RAM_1.log“
Suche nach
Peers für
Dateistücke
Setze „Zähler für nicht
gefundene Dateien“ auf 0
Abbruch der Suche
Start der
Berechnung
Zähler kleiner als
Schwellwert
Genügend Stücke
gefunden
Nicht
genügend
Stücke gefunden
ο‚·
ο‚·
Zähler gleich
Schwellwert
ο‚·
Erhöhe „Zähler für
nicht gefundene
Dateien“ um eins
Abbildung 3-2 Schematischer Ablauf der Suche nach Dateien
3.4 Rollen und Zustände
In diesem Abschnitt werden noch einmal die Rollen und die Zustände innerhalb von DuDEbesprochen. In Abbildung 3-3 ist das Zustandsdiagramm dargestellt. Am Anfang befindet sich
jeder Peer in dem „Freien“ Zustand. Wird eine Anfrage nach Ressourcen gestellt, wechselt ein
Peer in den Zustand „Blockiert“. In diesem Zustand antwortet er auf keine DuDE-Nachricht
außer Beförderungsnachrichten oder Freigabenachrichten. Durch die Nachricht „Freigeben“
kehrt ein Peer wieder in den „Freien“ Zustand zurück. Durch die Nachricht „Befördern zum
Job-Scheduler“ wechselt ein Peer in den Zustand Job-Scheduler. Diesen Zustand kann der Peer
nur alleine verlassen und auch hier beantwortet er währenddessen keine DuDE-Nachricht.
Durch die Nachricht „Befördern zum Task-Watcher“ wechselt ein Peer in den Zustand „TaskWatcher“. Dieser Zustand ist mit dem Zustand „Job Scheduler“ identisch und wurde nur für
eine saubere Trennung eingeführt.
Kapitel: DuDE-Konzept
- 24 -
DuDE-Konzept - Rollen und Zustände
Aufgabe wurde berechnet
Blockiert
Frei
Ressourcen
Anfrage
Antworte auf
Ressourcen Anfragen
Starte Timer
Keine Antwort auf Ressourcen Anfragen
oder befördern zum Task-Watcher
Nachricht: „Befördern
zum Job-Scheduler“
erhalten
Job-Scheduler
Verteilen, Überwachen der Tasks
Keine Antwort auf Ressourcen Anfragen
Timer abgelaufen o.
Nachricht: „Freigeben“ erhalten
Nachricht:
„Befördern zum Task-Watcher“ erhalten
Task-Watcher
Durchführen vom Task
Keine Antwort auf Ressourcen Anfragen
Aufgabe abgeschlossen
oder abgebrochen
Abbildung 3-3 Zustandsdiagramm von DuDE
In Tabelle 3-1 werden die Rolle von DuDE genannt und ihre Funktionen erklärt.
Rolle
Job-Scheduler Sucher
Job-Scheduler
Task-Watcher
Aufgabe
Mit diesem Peer verbindet sich ein Administrator. Seine Aufgabe
ist es eine Ressourcen Suche durchzuführen und den JobScheduler zu bestimmen
Wird dynamisch ermittelt und teilt den Job in einzelne Aufgaben
und verteilt diese, sammelt diese oder verteilt sie neu, wenn eine
definierte Zeit vergangen ist und schickt das Gesamtergebnis an
den Administrator.
Sammelt die notwendigen Dateien ein, führt die Berechnungen
aus und sendet die Ergebnisse an den Job-Scheduler.
Tabelle 3-1 Überblick über die Rollen und deren Aufgabe bei DuDE
Kapitel: DuDE-Konzept
- 25 -
Simulation - Warum Eigenentwicklung?
4 Simulation
In dem nachfolgenden Abschnitt werden der Simulator und seine Funktionsweise
beschrieben. Vor allem wird kritisch auf die Modellierung eingegangen und deren
Rahmenbedingungen genannt.
4.1 Warum Eigenentwicklung?
Im Bereich P2P gibt es bereits verschiedene etablierte Simulationssoftware wie ns-2 oder
Oversim. Basierend auf der Diskussion in [3] würde nur ns-2 in Betracht kommen, da in der
Fragestellung vor allem auch das physikalische Underlay berücksichtigt werden muss.
Das Problem an ns-2 ist, dass er aufgrund der sehr genauen Abbildung das Underlays und des
Durchlaufens des gesamten TCP/IP-Protokoll-Stack zu langsam für diese Aufgabenstellung
wäre. Hinzu kommt, dass die Simulation auch nicht den TCP/IP-Protokoll-Stack benötigt. Die
Modellierung erfolgt auf einen andere Art und Weise. Es wird für diese sehr spezielle
Aufgabenstellung ein Abstraktionsniveau gewählt, das dafür sorgt, dass der Simulator
hinreichend schnell ist. Der Nachteil davon ist, dass sich der Simulator eher schlecht
beziehungsweise mit hohem Aufwand an eine andere Aufgabenstellung anpassen lässt.
Ein großes Problem bei einer Eigenentwicklung ist die Verifizierung der Ergebnisse. Um diese
zu gewährleisten, werden umfangreiche Dateien angefertigt, die detailliert über den Weg und
das Zeitverhalten eines Paketes Aufschluss geben. Anhand dieser Dateien, die später auch zur
Auswertung genutzt werden, kann eine Plausibilitätsprüfung der Ergebnisse erfolgen.
4.2 Verwendete Technologien
Die verwendete Programmiersprache ist C# im .NET-Framework. Das .NET-Framework und C#
sind Entwicklungen des Softwarehersteller Microsoft. Das .NET-Framework besteht aus zwei
großen Teilen, das ist zum einen eine umfangreiche Klassenbibliothek mit fertigen Lösungen
für z.B. Auflistungen und Serialisierung und zum anderen eine Laufzeitumgebung, die
Common Language Runtime (CLR). Die CLR ist unteranderem für Speichermanagement und
das Typsystem verantwortlich. Das .NET-Framework ist Sprach- und Plattformunabhängig13,
13
Voraussetzung dafür ist, dass es eine Implementierung für das .NET-Framework für die Plattform existiert.
Ähnlich der Virtuellen Maschine von Java. Microsoft hat bis jetzt nur eine Implementierung für die Windows
Client und Server Betriebssysteme bereitgestellt. Es existiert aber eine Implementierung auf Linux-Basis, die sich
Mono nennt.
Kapitel: Simulation
- 26 -
Simulation - Modellierung
was dadurch erzeugt wird, dass ein Zwischencode definiert wird, der Common Intermedia
Language (CIL). ).
Der C#-Compiler erzeugt CIL-Code. Erst zur Laufzeit wandelt eine
Komponente der CLR, nämlich der Just-In-Time-Compiler, den CIL-Code, in den für die
spezifische Plattform verständlichen Assembler-Code um. Die Sprachunabhängigkeit basiert
zum einem auf dem eben genannten CIL-Code und zum anderen auf einer gemeinsamen
Typdefinition, die Common Type Specification (CTS). Diese Definition ermöglicht es, dass bei
einem Wechsel der Sprache keine Typenkonvertierung stattfindet muss, da genau dieselben
Typen verwendet werden.
Microsoft selbst bietet auch eine integrierte Entwicklungsumgebung (engl. integrated
development environment (IDE)) zum Entwickeln mit dem Namen Visual Studio an. Der
Simulator selbst wurde mit der Version 2012 Professional entwickelt.
Da der zeitliche Aufwand für diese Arbeit zwölf Wochen betrug und auch aus den in Abschnitt
4.1 genannten Gründen eine Eigenentwicklung effizient ist, hat der Autor dieser Arbeit diese
Technologie gewählt, da die große Klassenbibliothek es ermöglicht, sich beim Programmieren
auf das Wesentliche zu konzentrieren. Auch bestand keine Anforderung, dass die
Simulationssoftware auf einen Unix/Linux-Umgebung lauffähig sein oder systemnah
implementiert werden muss. Ein weiter wichtiger Fakt ist, dass Multithreading im .NETFramework relativ unkompliziert möglich ist, wenn man die Klassen threadsicher auslegt und
der Simulator immens vom Multithreading profitiert.
4.3 Modellierung
In diesem Abschnitt wird erläutert, wie die Modellierung, also das Abstrahieren des DuDESystems und des Netzes, im Simulator stattfindet. Des Weiteren werden auch die
Randbedingungen für den Simulator genannt.
4.3.1 Peers
Der Simulator unterteilt den Peer in zwei Ebenen. Die obere Ebene, „Peer“ genannt,
symbolisiert alles, was mit dem Overlay zu tun hat.
Ein Peer besitzt also eine Routing-Tabelle, die in Buckets eingeteilt ist und implementiert
Logik, um diese Tabelle instand zu halten, also neue Peers in das richtige Bucket einzuordnen,
die Lebenszeit zu überwachen, wenn nötig einen Peer zu kontaktieren um zu testen, ob dieser
noch im Netz ist sowie abgelaufene Peers zu entfernen. Auch zählt dazu das BootstrappingKapitel: Simulation
- 27 -
Simulation - Modellierung
und Lookup-Verfahren. Des Weiteren implementiert auch ein Peer alle notwendige Logik für
DuDE und ist in der Lage, beliebige Nachrichten an andere Peers zu schicken.
4.3.2 Topologie
Der untere Teil eines Peers wird im Folgenden als „Node“ bezeichnet. Ein Node stellt dabei
eine Abstraktion aller physischen Komponenten eines Peers dar. Dem entsprechend kann es
immer auch Nodes geben, denen kein Peer zu geordnet ist. Umgekehrt gilt dies nicht.
Die Aufgabe eines Nodes ist, das Underlay zu darzustellen und Nachrichten mit anderen Nodes
auszutauschen. Dabei erzeugen Nodes nie selbst Nachrichten14, sondern nehmen die
Nachricht ihrer übergeordneten Peers entgegen und stellen diese im Netz zu. Für den
Simulator wird die Topologie aus Abschnitt 2.1.3.3 angenommen. Dabei sind die DSLAM an
einen Konzentrator angeschlossen und die Konzentratoren sind untereinander vermascht. 15
Die Modellierung erfolgt derart, dass ein Node Nachbarn haben kann. Mit diesem Nachbarn
verbindet ihn eine „Physical Line“. An diesem Modell sind Eigenschaften wie Verzögerung und
maximale Last hinterlegt. Beim Generieren der Topologie können neben der Anzahl der Nodes
noch weitere Parameter festgelegt werden. Dazu zählen maximale und minimale Verzögerung
der Leitung, sowie durchschnittliche Anzahl der DSLAM an einem Konzentrator und die
durchschnittliche Anzahl der Verbindungen zwischen den Konzentratoren.
Des Weiteren wird davon ausgegangen, dass die minimale Verzögerung zwischen den
Konzentratoren auftritt und die maximale zwischen einem DSLAM und einem Konzentrator.
Dies soll dem Sachverhalt der unterschiedlichen Bandbreiten Rechnung tragen. Genauso kann
die Verzögerung als Maß für sonstige Aktivitäten im Netz verstanden werden, die die
Zustellung von allen Nachrichten des System DuDE verzögert.
Damit ein Node einem anderen eine Nachricht zukommen lassen kann, müssen die Wege
bestimmt werden. Dazu verfügt auch ein Node über eine Routing-Tabelle. Diese ist in keinerlei
Weise mit der Routing-Tabelle eines Peers zu verwechseln, sondern ist eher mit der eines
realen Routers zu vergleichen. Darin wird eine Zuordnung zwischen Ziel und Node getroffen,
die auf dem Weg zum Ziel das nächste Element wäre.
14
Zum Testen der Topologie existiert eine Ping-Methode, bei der Nodes sich direkt Nachrichten schicken, die
aber in der Simulation nie aufgerufen wird.
15
Darüber hinaus ist aus auch möglich ein vermaschtes Netz als Topologie zu wählen
Kapitel: Simulation
- 28 -
Simulation - Modellierung
Die Wegfindung durch ein auf diese Weise generiertes Netz erfordert einen Algorithmus. In
der Praxis kommen verschiedene Protokolle für das Routing innerhalb eines WAN-Netzes
eines Providers vor. Für die Simulation wurde auf eine Art Link-State Protokoll implementiert.
Bei solchen Routing-Protokollen kennt ein jeder Teilnehmer das gesamte Netz aus seiner
Perspektive und trifft eigenständig Entscheidungen, wie der beste Weg durch das Netz ist.
Dabei werden Nachbarschaftstabellen gepflegt.
Wenn verschiedene Wege zu einem Ziel führen, wird der Weg präferiert, der die geringsten
Kosten zu einem Ziel hat. Im Simulator sind die Kosten mit der Anzahl der Hops identisch.
Da ein solches Verfahren schlecht mit steigender Anzahl von „Nodes“ skaliert, werden „Areas“
eingeführt. Ein normaler Node in einer Area, die keine Verbindung zu anderen Areas hat, wird
Inner-Area-Node genannt und kennt alle anderen Nodes in der Area. Nodes, die Verbindungen
in mehrere Areas haben, werden als Border-Nodes bezeichnet. Border-Nodes haben
Kenntnissen von allen anderen Border-Nodes unabhängig der Area. Möchte ein Inner-AreaNode ein Ziel in einer anderen Area erreichen, werden alle Border-Router der Area kontaktiert
und es wird die Route übernommen, welche die geringsten Kosten aus der Summe zum
Border-Router und vom Border-Router in die entsprechende Area hat. So kennt man Ende
eine jede Node, alle Ziele in der eigenen Area und einen Weg in jede andere Area. Dieser
Algorithmus ist an den Routing-Algorithmus des Protokolls Open Shortest Path First (OSPF)
angelehnt.
Nachfolgend ist der Sachverhalt für die Kostenermittlung innerhalb einer Area detailliert
dargestellt. Für das Beispiel wird das Netz aus Sicht von „Node 0“ analysiert. Die für einen
Schritt wichtigen Nodes sind blau hinterlegt; alle anderen grau.
Node
ID: 2
Node
ID: 0
Node
ID: 3
Konzentrator 1 ID: 10
Konzentrator 2 ID: 20
Konzentrator 3 ID:30
Kapitel: Simulation
Node
ID: 4
Im ersten Schritt wird die
Entfernung zu sich selbst
bestimmt.
Routing-Tabelle:
Ziel
Kosten NextHop
0
0
0
Node
ID: 5
- 29 -
Simulation - Modellierung
Node
ID: 2
Node
ID: 0
Node
ID: 3
Konzentrator 1 ID: 10
Konzentrator 2 ID: 20
Konzentrator 3 ID:30
Node
ID: 2
Node
ID: 0
Node
ID: 3
Konzentrator 1 ID: 10
Node
ID: 0
Node
ID: 3
Konzentrator 1 ID: 10
Node
ID: 5
Node
ID: 4
Konzentrator 2 ID: 20
Konzentrator 3 ID:30
Node
ID: 2
Node
ID: 4
Node
ID: 5
Node
ID: 4
Konzentrator 2 ID: 20
Konzentrator 3 ID:30
Node
ID: 5
Jetzt sollen die Ziele von allen
Nachbarn erfragt werden. Es
gibt
zurzeit
nur
einen
Nachbarn. Der Konzentrator
mit
der
ID
10.
Routing-Tabelle:
Ziel
Kosten NextHop
0
0
0
10
1
10
Jetzt werden alle Nachbarn von
Node
10
befragt
und
entsprechend in die RoutingTabelle
eingefügt.
Routing-Tabelle:
Ziel
Kosten NextHop
0
0
0
10
1
10
2
2
10
20
2
10
30
2
10
Auch jetzt werden wieder die
Nachbarn
erfragt.
Da
Konzentrator 1 mit der ID 10
bereits befragt wurde, wird
dieser nicht erneut befragt. Der
Konzentrator hat als Nachbarn
ebenfalls den Konzentrator 2.
Dieser hätte aber jetzt die
Kosten
3
und
wird
dementsprechend nicht in die
Routing-Tabelle
eingefügt.
Damit sieht ist die RoutingTabelle fertig
Ziel
Kosten NextHop
0
0
0
10
1
10
2
2
10
20
2
10
30
2
10
3
3
10
4
3
10
5
3
10
Abbildung 4-1 Ermittlung des Weges für ein Netz innerhalb einer Area
Dieser Vorgang müsste für jeden Node in der der Area wiederholt werden. Der Vorgang würde
ebenso abbrechen, wenn der nächste Nachbar nicht mehr in derselben Area wäre. Die BorderKapitel: Simulation
- 30 -
Simulation - Modellierung
Nodes füllen ihre Border-Node-Routing-Tabelle auf dieselbe Weise, nur eben bezogen auf
andere Border-Nodes.
In Abbildung 4-2 ist eine Topologie gezeigt, die mehrere Areas hat. Mit IA sind der Abbildung
Inner-Area-Nodes bezeichnet. Das B steht für Border-Node.
Area 0
IA
10
Area 1
B
121
B
19
IA
114
B
117
Area 2
B
0
IA
90
Outer-Area-Routing-Tabelle
Node 10:
Ziel
Kosten NextHop
Area 1 2
121
Area 2 2
117
Outer-Area-Routing-Tabelle
Node 117:
Ziel
Kosten NextHop
Area 1 3
10
Area 2 1
0
Outer-Area-Routing-Tabelle
Node 114:
Ziel
Kosten NextHop
Area 0 2
19
Area 2 5
19
Abbildung 4-2 Beispiele für die Outer-Area-Routing-Tabelle von verschiedenen Nodes
4.3.3 Daten
Die Modellierung der Daten ist simpel gehalten. Sie verfügen über eine Größe und einen
Datentyp (RAM, CPU, Paketverlust etc.). Aus dem Datentyp und der Knotenidentifikation wird
der Name der Datei erstellt.
Die Größe einer Datei wird über einen Zufallsgenerator bestimmt, obgleich die Maximal- und
Minimalgröße für jeden Datentyp angegeben werden kann. Die Zufallsvariable ist dabei
gleichverteilt. Darüber hinaus lässt sich eine Datei teilen und aus Teilen wieder
zusammensetzen.
Dem Simulator kann neben dem periodischen Verteilen auch eine durchschnittliche Rate
mitgeteilt werden, in dem die Dateien verteilt werden sollen. Dies modelliert das Auslösen
von Ereignissen, die ein Erneuern der Log-Dateien nach sich ziehen würden.
Kapitel: Simulation
- 31 -
Simulation - Modellierung
4.3.4 Jobs und Tasks
Auch diese Teile des DuDE-Systems sind simpel gehalten. Ein Job besteht aus Tasks. Der Job,
der vom Administrator erstellt wird, enthält dabei zwar auch schon Tasks z.B. die Berechnung
der CPU-Statistik von allen Peers. Diese entsprechen aber nicht den später verteilten
Statistiken. Sobald ein Job-Scheduler gewählt wurde, beginnt dieser die vorhandenen Tasks
entsprechend der maximalen Anzahl von Peers pro Task zu teilen. Diese Tasks werden dann
später verteilt. Die Teilung erfolgt dabei in regelmäßigen Abständen. Beinhaltet der Job
beispielsweise die Berechnung der CPU- und RAM-Auslastung von allen Zugangspunkten und
das Netz umfasst 1000 Peers und eine Aufgabe soll nicht mehr als 400 Peers umfassen, so
würden die Aufgaben entsprechend der Tabelle 4-1 geteilt werden.
Nr.
1
2
3
4
5
6
Type
RAM
RAM
RAM
CPU
CPU
CPU
Peers
0-400
400-800
800-1000
0-400
400-800
800-1000
Tabelle 4-1 Aufteilung des Jobs in seine Task am Beispiel RAM- und CPU-Auslastung von 1000 Peers bei einer maximal Größe
von 400 Peers pro Aufgabe
4.3.5 Berechnung von Tasks und Ressourcen-Metrik
Hat ein Task-Watcher alle für die Aufgaben benötigten Dateien eingesammelt, beginnt die
Berechnung. Dies wird derart simuliert, dass pro Dateityp und Datei eine bestimmte Anzahl
von Rechenschritten benötigt wird. Die Gesamtanzahl von Rechenschritten für eine Aufgabe
ist also das Produkt aus den gefundenen Dateien und der pro Datei notwendigen
Rechenschritte. Ein Node wiederrum verfügt über eine Größe, die besagt, wie viele
Rechenschritte pro Zeiteinheit abgearbeitet werden können. Diese Größe wird an den Node
gebunden, da dies mehr etwas Physisches als Logisches P2P-Element ist. Diese Art der
Modellierung soll den Kennwerten Million Instructions Per Second (MIPS) bzw. Floating Point
Operations Per Second (FLOPS) entsprechen.
Für die Ressourcen-Metrik wird folgende Formel angewandt.
𝑀 = π‘˜1 ∗ π‘“π‘Ÿπ‘’π‘–π‘’π‘Ÿ 𝑅𝐴𝑀 + π‘˜2 ∗ πΆπ‘ƒπ‘ˆ 𝐿𝑒𝑖𝑠𝑑𝑒𝑛𝑔 + π‘˜3 ∗ (1 − 𝑅𝐴𝑀 π΄π‘’π‘ π‘™π‘Žπ‘ π‘‘π‘’π‘›π‘”) + π‘˜4 ∗ (1
− πΆπ‘ƒπ‘ˆ π΄π‘’π‘ π‘™π‘Žπ‘ π‘‘π‘’π‘›π‘”)
Formel 4-1 Berechnung der Ressourcen
Kapitel: Simulation
- 32 -
Simulation - Funktionsweise des Simulators (Wie schickt Peer A an Peer B eine Nachricht)
Dabei stellen die Faktoren π‘˜1 bis π‘˜4 Gewichtungen der einzelnen Komponenten dar, die
beliebig angepasst werden können.
Die Parameter die in der Formel 4-1 vorkommen sind Eigenschaften eines Nodes. Diese
werden zufällig über die Nodes verteilt. Die Verteilung entspricht dabei einer
Normalverteilung16. Die Standardabweichung und der Mittelwert sind dabei einstellbar.
4.4 Funktionsweise des Simulators (Wie schickt Peer A an Peer B eine Nachricht)
Alle im Simulator vorkommenden Zeiten werden als Einheitszeiten dargestellt. Dabei kann
definiert werden, wie groß eine Einheitszeit später sein soll. Diese Zeit stellt die Schrittweite
eines Simulationsschrittes dar. In der eigentlichen Simulation wird später Schritt für Schritt
simuliert. Bei jedem Schritt verringern die Peers zum Beispiel die Lebenszeit ihrer Kontakte in
der Routing-Tabelle. Des Weiteren basiert das gesamte Nachrichtensystem auf diesen
Zeitschritten.
Möchte ein Peer eine Nachricht senden, so wird diese zuerst in einen Peer internen Puffer
geschrieben. Fährt die Simulation einen Schritt weiter, werden diese Nachrichten an die
darunter liegenden Node weitergegeben. Die Node wiederum liest für jede Nachricht im
Eingangs-Buffer, der durch den Peer oder anderen ankommende Nachrichten anderer Nodes
gefüllt wird, aus dem Ziel-Peer die Ziel-Node aus und schaut in seiner Routing-Tabelle nach,
was der Next-Hop ist. Sollte er selbst das Ziel sein, wird die Nachricht in den Eingangs-Buffer
des Peer geschrieben. Da der Next-Hop immer ein Nachbar ist und alle Nodes mit Physical Line
verbunden sind, kann der Node die Verzögerung ermitteln. Anschließend wandert die
Nachricht in den Ausgangs-Buffer mit einem Vermerk auf die noch zu wartenden Zeit.
Neben dem Auslesen des Eingangs-Buffers wird auch der Vermerk der Wartezeit der
Nachrichten im Ausgangs-Buffer um eine Einheit dekrementiert. Ist der Wert kleiner oder
gleich null, wird die Nachricht an die nächste Node geschickt und landet in deren EingangsBuffer. Es wird jedoch pro Zeitschritt jeweils nur eine Nachricht auf einer Leitung verschickt.
Dadurch kann es passieren, dass Nachrichten länger als die angegeben Verzögerung im
Ausgangs-Buffer verbleibet.
16
Das .NET-Framework besitzt keine Klasse um eine Normalverteilung zu erzeugen, dafür aber eine Klasse die
eine Gleichverteilung erzeugt. Mit Hilfe der Box-Müller Transformation lassen sich daraus eine normal verteilte
Zufallsvariable berechnen.
Kapitel: Simulation
- 33 -
Simulation - Funktionsweise des Simulators (Wie schickt Peer A an Peer B eine Nachricht)
Auch ein Peer prüft in jedem Zeitschritt seine Nachrichten im Eingangs-Buffer und reagiert
dementsprechend. In Abbildung 4-3 ist die Kommunikation für einen Ping beispielhaft
dargestellt. Es wird davon ausgegangen, dass zur selben Zeit keine anderen Peers
kommunizieren
Buffer Peer 789
0
Eingang
Ausgang
Type: Ping
Quelle-Peer: 789
Ziel-Peer: 432
Peer ID:
432
Peer ID:
789
Node
ID: 5
Verzg: 2
Node
ID: 0
Verzg: 4
Node
ID: 5
1
Node
ID: 7
Peer ID:
432
Peer ID:
789
Verzg: 2
Node
ID: 0
Verzg: 4
Der Peer mit der ID 789 möchte den
Peer 432 einen Ping senden. Im ersten
Schritt wird diese Nachricht erzeugt und
in den Ausgangs-Buffer vom Peer
gelegt. Der Zeitschritt ist in der oberen
linken Ecke dargestellt.
Node
ID: 7
Im nächsten Zeit-Schritt wandert die
Nachricht vom Ausgangs-Buffer des
Peers in den Eingangs-Buffer vom
dazugehörigen Node.
Buffer Node 5
Eingang
Ausgang
Type: Ping
Quelle-Peer: 789
Ziel-Peer: 432
Peer ID:
432
Peer ID:
789
Node
ID: 5
1
Verzg: 2
Node
ID: 0
Verzg: 4
Node
ID: 7
Noch im selben Zeitschritt wird ein
Eingangs-Buffer ausgewertet. Für jede
Nachricht im Eingangs-Buffer wird der
Next-Hop ermittelt und eine dem
entsprechende Wartezeit ein.
Buffer Node 5
Eingang
Ausgang
Ziel-Node: 7
Next-Hop: 0
Wartezeit: 2
Kapitel: Simulation
- 34 -
Simulation - Funktionsweise des Simulators (Wie schickt Peer A an Peer B eine Nachricht)
Peer ID:
432
Peer ID:
789
Node
ID: 5
3
Node
ID: 0
Verzg: 2
Node
ID: 7
Verzg: 4
Für die nächsten beiden Zeitschritte
passiert nichts. Ist die Wartezeit bei 0
angekommen, wird die Nachricht an
den nächste Node geschickt und ladet
dort entsprechend im Eingangs-Buffer.
Buffer Node 0
Eingang
Ausgang
Ziel-Node: 7
Peer ID:
432
Peer ID:
789
Node
ID: 5
3
Verzg: 2
Node
ID: 0
Node
ID: 7
Verzg: 4
Noch im selben Zeitschritt wird die
Nachricht im Ausgangs-Buffer von Node
0 verschoben. Node 0 hat das Ziel
ausgewertet, den nächsten Hop
ermittelt und die Wartezeit eingefügt
Buffer Node 0
Eingang
Ausgang
Ziel-Node: 7
Next-Hop: 7
Wartezeit: 4
Peer ID:
432
Peer ID:
789
Node
ID: 5
7
Node
ID: 0
Verzg: 2
Verzg: 4
Node
ID: 7
Die nächsten 4 Zeitschritte passiert
nichts. Ist die Wartezeit vergangen, wird
die Nachricht zur Node mit der ID 7
zugestellt.
Buffer Node 7
Eingang
Ausgang
Ziel-Node: 7
Buffer Peer 432
7
Peer ID:
789
Eingang
Type: Ping
Quelle-Peer: 789
Ziel-Peer: 432
Node
ID: 5
Verzg: 2
Node
ID: 0
Ausgang
Peer ID:
432
Verzg: 4
Node
ID: 7
Node 7 hat festgestellt, dass die
Nachricht für ihn bestimmt war und
leitete die Nachricht in den EingangsBuffer vom Peer mit der ID 432 weiter.
Im nächsten Zeitschritt, also Zeitschritt
8 würde der Peer seinen Eingangspuffer
lesen und entsprechend antworten.
Abbildung 4-3 Modellierung der Kommunikation zwischen zwei Peers
Auf diese Art und Weise wird versucht das physikalische Verhalten von Netzkoppelelementen
wie Router und Switches nachzubilden, die sich bezogen auf die Buffer genauso verhalten. Die
Kapitel: Simulation
- 35 -
Simulation - Möglichkeiten des Simulators
Verzögerungszeit in diesen Geräten entsteht, weil der Eingangs-Buffer schneller gefüllt als das
Nachrichten verschickt werden können.
Ein Problem an dieser Modellierung ist, dass davon ausgegangen wird, dass jede übertragene
Nachricht aus genau einem Segment, einem Packet und einem Frame besteht. Für alle UDPNachrichte, mag dies noch gelten, aber für die Übertragung von Log-Dateien trifft dieses nicht
mehr zu.
4.5 Möglichkeiten des Simulators
Der Simulator bietet einige Möglichkeiten um das Verhalten zu steuern. So kann beispielweise
eine Verlustrate von Paketen pro Sekunde angegeben werden. Der Verlust wird derart
modellieret, dass einer Node mitgeteilt wird, dass diese ein Paket aus dem Ausgangs-Buffer
entfernen soll. Bei einer TCP basierte Übertragung kann kein Paketverlust auftreten. Um dies
zu verwirklichen, werden ausschließlich Pakete aus dem Buffer entfernt, die mit UDP
transportiert werden.
Um zu verhindern, dass alle Peers ähnliche Timer haben, besteht die Möglichkeit eine Rate
vorzugeben in denen die Peers dem Netzwerk beitreten. Treten alle Peers zur selben Zeit bei,
kann es vorkommen, dass das Netz geflutet wird. Dieses Verhalten erhöht die Dauer der
Simulation signifikant.
Um den Startzeitpunkt von einem Job festzulegen, gibt es zwei Möglichkeiten. Entweder wird
eine Zeitspanne angegeben, die aussagt wie viele Sekunden nach dem Start der Simulation
der Job verteilt werden soll oder man gibt eine Zeitspanne, die sich auf den Beitritt des letzten
Peers in das Netzwerk bezieht. Letztes hat den Vorteil, dass die Simulationszeit verkürzt wird.
Diese Einstellung soll ein konvergiertes Netz symbolisieren.
Darüber hinaus ist der Simulator auch in der Lage ein dynamisches Netz abzubilden. Dazu gibt
es die Option das Peers das Netz nur temporär verlassen um beispielsweise einen Neustart
durchzuführen oder dauerhaft. Ebenso ist es möglich eine Generationsrate von Peers
vorzugeben.
4.6 Parameter der Simulation
Um bei der Simulation viele Freiheitsgrade zu haben, basiert der Simulator auf Einstellbaren
Parametern. Tabelle 4-2 zeigt eine Auswahl der Parameter.
Kapitel: Simulation
- 36 -
Simulation - Wie werden Ergebnisse produziert?
Name im Simulator
DataParts
Erläuterung
Anzahl der Datenstücke die bei der Teilung einer Datei
entstehen sollen
CodingParts
Anzahl der Kodierungsstücke die bei der Teilung einer
Datei entstehen sollen
MinPeerAmountForShareData
Minimale Anzahl an Peers, die ein und dasselbe
Dateistück erhalten sollen
CPUSpeedWeigth
Gewichtung der CPU-Geschwindigkeit bei der
Ressourcen Metrik
RAMAmountWeigth
Gewichtung der RAM-Größe bei der Ressourcen Metrik
MaxAmountOfPeersForResponse Maximale Anzahl von Peers, die bei einem Lookup
(Random, Self, Bootstrap) zurückgegeben werden
sollen
DHTBits
Anzahl der Bits in der DHT-Tabelle. Dieser Wert kann
nur geändert werden, wenn ein anderer HashAlgorithmus verwendet wird.
KBucketLength
Anzahl von Peers die maximal Platz in einem Bucket
haben.
TimeOutForGettingWholeData
Die maximale Dauer die ein Task-Watcher wartet, bis
er versucht die Stücke einer Datei zu suchen
Tabelle 4-2 Übersicht über eine Auswahl der Parameter des Simulators
4.7 Wie werden Ergebnisse produziert?
Das Produzieren der Ergebnisse des Simulators basiert auf der Auswertung der Dateien, die
während der Simulation geschrieben werden. Wird eine Nachricht durch das simulierte Netz
transportiert, fügt jeder passierte Node einen Eintrag in der Route der Nachricht hinzu. Ist die
Nachricht am Ziel angekommen, wird sie aus der Liste der aktiven Nachrichten entfernt und
auf die Liste der zu speichernden Dateien hinzugefügt. Erreicht diese Liste eine bestimmte
Größe werden die Daten aus dem Arbeitsspeicher in eine Datei geschrieben.
Genauso wird mit geloggt, wenn ein Job oder ein Task begonnen und beendet wurde. Aus den
gebrauchten Zeitschritten und der realen Dauer eines Zeitschrittes lässt sich die benötigte
reale Zeit berechnen.
Der Vorteil an dieser Variante liegt darin, dass zum Beispiel auch ein zeitlicher Verlauf der
Nachrichten betrachten werden kann, selbst wann diese Funktion zur Zeit der Simulation noch
nicht implementiert war.
Zum Ende der Simulation wird zusätzlich auch das Setup sowie die Jobs als auch der Wert der
Parameter in Dateien geschrieben. Das Auswertungswerkzeug liest diese Dateien ein, erzeugt
Kapitel: Simulation
- 37 -
Simulation - Wie werden Ergebnisse produziert?
die Ergebnisse und speichert diese in einer .CSV Datei, die mit verschiedenen Programmen
wie Excel eingelesen werden kann.
Kapitel: Simulation
- 38 -
Aufgaben und Auswertung - Vergleich Client-Server-Modell
5 Aufgaben und Auswertung
Im folgenden Kapitel wird die Skalierbarkeit untersucht. Alle Daten, bis auf die
Vergleichsrechnung mit dem Client-Server-Modell, wurden durch den in Kapitel 4
beschriebenen Simulator erzeugt.
5.1 Vergleich Client-Server-Modell
Der Vergleich der Rechenzeit des Systems DuDE mit dem Client-Server-Modell ist rein
theoretischer Natur und soll nur der Orientierung dienen. Das Client-Server-Modell ist kaum
in der Lage, die Funktionalitäten von DuDE zu bieten. So müsste ein Server beispielsweise
alleine bei 8000 Teilnehmern, drei verschiedene Dateitypen mit einer durchschnittlichen
Größe von 1,2 Megabit pro Datei ein Datenvolumen von 28 Gigabyte verwalten.
An dieser Stelle möchte der Autor die Formel vorstellen, die zur Berechnung der benötigten
Zeit für das Client-Server-Modell verwendet wird. Dabei wird auf das Modell hinter der Formel
eingegangen. Es wird das gleiche, auf Rechenschritte basierende Modell angewendet, wie
auch bei dem Simulator. Die Anzahl der Rechenschritte für den Server kann dabei wie folgt
bestimmt
werden.
π΅π‘’π‘Ÿπ‘’π‘β„Žπ‘›π‘’π‘›π‘”π‘ π‘§π‘’π‘–π‘‘ =
π·π‘Žπ‘‘π‘’π‘–π‘‘π‘¦π‘π‘’π‘› ∗ π΄π‘›π‘§π‘Žβ„Žπ‘™ π‘‘π‘’π‘Ÿ 𝐷𝑆𝐿𝐴𝑀 ∗ π‘…π‘’π‘β„Žπ‘›π‘’π‘›π‘ π‘β„Žπ‘Ÿπ‘–π‘‘π‘‘π‘’ π‘π‘Ÿπ‘œ π·π‘Žπ‘‘π‘’π‘–
π‘…π‘’π‘β„Žπ‘›π‘’π‘›π‘ π‘β„Žπ‘Ÿπ‘–π‘‘π‘‘π‘’ π‘π‘Ÿπ‘œ π‘†π‘’π‘˜π‘’π‘›π‘‘π‘’
Neben der Zeit für die Berechnung muss noch die Zeit für das Sammeln der Dateien
hinzugefügt werden. Dabei wird davon ausgegangen, dass der Server alle angeschlossenen
Clients kennt, also kein Verwaltungsoverhead hinzukommt. Des Weiteren wird davon
ausgegangen, dass die Bandbreite zwischen Server und allen Clients homogen ist, die Daten
intern auch mit dieser Geschwindigkeit verarbeitet werden können und alle Dateien nach
einander zum Server transportiert werden. Es wird ein Overhead kommend vom IP-Stack und
weiteren Synchronisationsvorgängen, wie dem Anfragen nach Datei angenommen. Daraus
ergibt
sich
folgende
Formel:
π·π‘Žπ‘‘π‘’π‘–π‘”π‘Ÿöß𝑒 = ∑ πΊπ‘Ÿöß𝑒 π‘’π‘–π‘›π‘’π‘Ÿ πΈπ‘–π‘›π‘§π‘’π‘™π‘‘π‘Žπ‘‘π‘’π‘–
π·π‘œπ‘€π‘›π‘™π‘œπ‘Žπ‘‘π‘π‘’π‘–π‘‘ =
π·π‘Žπ‘‘π‘’π‘–π‘”π‘Ÿöß𝑒 ∗ π΄π‘›π‘§π‘Žβ„Žπ‘™ π‘‘π‘’π‘Ÿ 𝐷𝑆𝐿𝐴𝑀 ∗ (1 + π‘‚π‘£π‘’π‘Ÿβ„Žπ‘’π‘Žπ‘‘)
π΅π‘Žπ‘›π‘‘π‘π‘Ÿπ‘’π‘–π‘‘π‘’
Die Gesamtzeit ist dann die Summe aus der Downloadzeit und der Berechnungszeit
𝐡𝑒𝑛ö𝑑𝑖𝑔𝑑𝑒𝑍𝑒𝑖𝑑 = π·π‘œπ‘€π‘›π‘™π‘œπ‘Žπ‘‘π‘π‘’π‘–π‘‘ + π΅π‘’π‘Ÿπ‘’π‘β„Žπ‘›π‘’π‘›π‘”π‘ π‘§π‘’π‘–π‘‘
In der späteren Rechnung werden die Werte noch einmal entsprechend gesetzt und erklärt.
Kapitel: Aufgaben und Auswertung
- 39 -
Aufgaben und Auswertung - Aufbau der Simulation
5.2 Aufbau der Simulation
Die nachfolgenden Werte sind unter den nachfolgenden Bedingungen entstanden. Diese
gelten sowohl für die Untersuchung der Skalierbarkeit als auch für die Betrachtung des
Datenverkehrs.
In der Simulation wurde ein Netz mit steigender Teilnehmeranzahl simuliert. Es wurde ein
Bereich von 1000 bis 9000 Peers in 1000 Schritten abgedeckt. Dabei bestand der Job darin, für
alle Peers im Netz die Statistik für RAM-, CPU-Auslastung und Paketverlust zu simulieren. Die
Aufteilung in Tasks erfolgte in maximal 100, 200 und 300 Teilnehmern. Für den Vergleich wird
angenommen, dass der Server eine 10-mal höhere Rechenleistung als ein durchschnittlicher
Peer besitzt. Um die Leistungsfähigkeit von DuDE zu zeigen, ist auch eine Datenreihe
beigefügt, die dem Server das 100-Fache der Leistung eines einzelnen Peers zuspricht, auch
wenn diese Annahme nicht in der Praxis zutrifft. Alle weiteren Parameter für den Vergleich
können der Tabelle 5-1 entnommen werden.
Die Bezeichnung DuDE 100 bedeutet, das Ergebnis bezieht sich auf DuDE und der Job wurde
derart geteilt, dass ein einzelner Task-Watcher nur von maximal 100 anderen Peers Statistiken
berechnet. Beim Client-Server bezieht sich die Zahl hinter dem Namen auf den Faktor, wie viel
schneller ein Server rechnen kann, als ein DuDE-Peer.
Parameter
Dateitypen
Rechenschritte
Peer-Rechenschritte
Faktor
Rechenschritte pro Sekunde
Dateigröße in MB
Overhead in Prozent
Bandbreite in Mbits
Wert
3
2000
30000
10 bzw. 100
300000
3,5
0,1
1000
Tabelle 5-1 Werte der Parameter für den Vergleich Client-Server und DuDE
Es hat sich Tabelle 5-2 und das in Abbildung 5-1 dargestellte Diagram ergeben
5.3 Skalierbarkeit und Vergleich mit Client-Server (statisches Netz)
Auf die Ergebnisse bzgl. der benötigten Zeit, die durch die Simulation gewonnen wurden, ist
ein Unsicherheitsfaktor von 15% angerechnet worden. Dieser entsteht zum einen durch
Modellierungsfehler, wie der Übertragung der Daten in nur einem Paket und weiterer
Unsicherheiten.
Kapitel: Aufgaben und Auswertung
- 40 -
Aufgaben und Auswertung - Skalierbarkeit und Vergleich mit Client-Server (statisches Netz)
Teilnehmer DuDE 100 DuDE 200 DuDE 300 Client-Server 10 Client-Server 100
1000
28
47
60
51
33
2000
30
51
65
102
66
3000
32
46
62
152
98
4000
34
58
74
203
131
5000
34
43
78
254
164
6000
36
57
69
305
197
7000
55
66
75
356
230
8000
37
54
67
406
262
9000
36
58
52
457
295
Tabelle 5-2 Ergebnisse der Simulation und der Vergleichsrechnung. Alle Angaben bis auf die Teilnehmer sind in Sekunden
Skallierungsverhalten von DuDE
140,00
130,00
120,00
Zeit in Sekunden
110,00
100,00
90,00
80,00
70,00
60,00
50,00
40,00
30,00
20,00
10,00
1000
2000
3000
4000
5000
6000
7000
8000
9000
Anzahl der Zugangsknoten
DuDE 100
DuDE 200
DuDE 300
Client-Server 10
Client-Server 100
Abbildung 5-1 Skalierungsverhalten von DuDE im Vergleich zum Client-Server-Model
Sowohl in Tabelle 5-2 als auch im Abbildung 5-1 ist deutlich zu erkennen, dass das System
DuDE wesentlich besser skaliert als das Client-Server-Modell. Dieses Modell, verhält sich, wie
in der Modellierung angenommen, linear. Der begrenzende Faktor bei diesem Modell ist die
Bandbreite. Dennoch lässt sich erkennen, dass gerade im Bereich unter 2000 Teilnehmer der
schnellere Server fast genauso wenig Zeit benötigt wie das System DuDE. Dies unterstreicht
die Annahme, dass sich ein solches System erst ab einer großen Anzahl von Teilnehmern lohnt.
Betrachtet man die einzelnen DuDE-Kurven so lässt sich erkennen, dass mit steigender Anzahl
von Teilnehmern nur minimal mehr Zeit benötigt wird. So beträgt der Anstieg der
Kapitel: Aufgaben und Auswertung
- 41 -
Aufgaben und Auswertung - Skalierbarkeit und Vergleich mit Client-Server (statisches Netz)
Regressionsgraden für den Fall DuDE-100 0,0015. Dies bedeutet, dass mit 1000-Teilnehmern
mehr, nur 1,5 Sekunden mehr Zeit benötigt wird. Die Verhältnisse für die anderen DuDEKurven sind ähnlich.
5.3.1 Auswirkung des Parameters Peers Pro Task-Watcher
Im nachfolgenden wird der Parameter, der bestimmt, wie groß die maximale Anzahl von Peers
ist, von denen ein Task-Watcher die Daten einsammelt und daraus die Statistiken berechnet,
Anzahl der Peers pro Task genannt.
Es lässt sich erkennen, dass das System DuDE umso weniger Zeit benötigt, je geringer die
Anzahl der Peers pro Task ist. Dies unterstreicht den dezentralen Charakter. Tabelle 5-3 zeigt
das Verhältnis der Zeiten von DuDE-100 und DuDE-200, sowie von DuDE-100 und DuDE-300
und DuDE-200 und DuDE-300.
Teilnehmer
1000
2000
3000
4000
5000
6000
7000
8000
9000
𝑫𝒖𝑫𝑬 − 𝟐𝟎𝟎
𝑫𝒖𝑫𝑬 − 𝟏𝟎𝟎
1,7
1,7
1,4
1,7
1,3
1,6
1,2
1,5
1,6
𝑫𝒖𝑫𝑬 − πŸ‘πŸŽπŸŽ 𝑫𝒖𝑫𝑬 − πŸ‘πŸŽπŸŽ
𝑫𝒖𝑫𝑬 − 𝟏𝟎𝟎 𝑫𝒖𝑫𝑬 − 𝟐𝟎𝟎
2,1
1,3
2,1
1,3
1,9
1,3
2,2
1,3
2,3
1,8
1,9
1,2
1,4
1,2
1,8
1,2
1,5
0,9
Tabelle 5-3 Zeitliche Skalierung wenn unterschiedliche Anzahl an Peers pro Task gewählt werden
Aus der Tabelle 5-3 lässt sich entnehmen, dass die Skalierung bzgl. Anzahl der Peers pro Task
nicht linear ist. So wurde für die Berechnung der Statistiken von 8000 Peers bei der Datenreihe
DuDE-200 nur das 1,5-fache wie bei der Datenreihe DuDE-100, obgleich sich die Anzahl der
Peers pro Task verdoppelt hat. Deutlicher wird dieser Zusammenhang bei 9000 Peers und der
Messreihe DuDE-300 und DuDE-200. Hier war die benötigte Zeit für DuDE-300 10 Prozent
geringer als für DuDE-200. Des Weiteren ist zu erkennen, dass der Unterschied umso geringer
wird, je mehr Teilnehmer ein solches Netz haben.
Das wellenartige Verhalten der Kurven in Abbildung 5-1 ist dem Zufall geschuldet. Es ist
möglich, dass ein Peer als Job-Scheduler gewählt wurde, der nicht genügend andere Peers in
seiner Routing-Tabelle kannte. Dadurch wurde die Suche nach Ressourcen rekursiv ausgeführt
und es muss auf das Ablaufen des Timers gewartet werden. Diese Abweichungen dürfen nicht
Kapitel: Aufgaben und Auswertung
- 42 -
Aufgaben und Auswertung - Analyse des erzeugten Datenverkehrs
als Fehler interpretiert werden, sondern sind Ausdruck der Dynamik in einem P2P-Netz. Es
gibt Konfigurationen (Hashwerte, Position im Underlay und DuDE-Rollen), die ein sehr
günstiges Verhältnis erzeugen, wie bei dem Datenpunkt DuDE-300 und 9000 Teilnehmern und
eben solche, wie bei allen DuDE-Kurven und bei der Teilnehmeranzahl 7000.
5.4 Analyse des erzeugten Datenverkehrs
Die Funktionalitäten und die Geschwindigkeit von DuDE gehen mit einem Anstieg des
Datenverkehrs einher. Dieser Abschnitt analysiert die Daten des Simulators bzgl. des
Datenverkehrs.
Anzahl
Simulierte Zeit Datenmenge
Datenmenge pro Peer und pro
Zugangsknoten
(s)
(GB)
Sekunde (KB)
1000
54
6,04
2000
67
9,74
3000
72
13,85
4000
93
18,16
5000
89
21,53
6000
111
26,12
7000
127
30,63
8000
129
33,75
9000
140
38,02
107
70
61
47
46
37
33
31
29
Tabelle 5-4 Datenvolumen für die DuDE-200 Messreihe
In Tabelle 5-4 ist das Datenvolumen für die Messreihe DuDE-200 angegeben. Hierbei wurde
die Datenmenge um 10% erhöht, um nicht betrachtete Aspekte wie eventueller Neusendung
von Paketen durch TCP, Fragmentierungseffekt und weitere Modellierungsfehler zu
berücksichtigen. Es wird nur diese Messreihe dargestellt, da sich die anderen nicht signifikant
von dieser unterscheiden. Es ist zu erkennen, dass die Simulationszeit mit der Anzahl der
Teilnehmer zunimmt. Dies liegt zum einen daran, dass der Job länger braucht, um erledigt zu
werden und zum anderen an einer Einstellung im Simulator, denn die Rate, in der die Peers in
das Kad-Netz beitreten, ist konstant und ein Job startet immer erst, nachdem alle Peers das
Netzwerk betreten haben. Dies ist notwendig um einen Gleichtakt der Peers zu verhindern.
Dementsprechend ist die Datenrate pro Peer und pro Sekunde bei niedrigen TeilnehmerAnzahlen höher. Bei längeren Simulationszeiten relativiert sich das Datenvolumen. Deswegen
sind eher die letzten Messwerte als realistisch anzusehen. Nachfolgend sind Tabellen und
Diagramme dargestellt, die die Verteilung auf die Datenpakte innerhalb eines Durchgangs
zeigen.
Kapitel: Aufgaben und Auswertung
- 43 -
Aufgaben und Auswertung - Analyse des erzeugten Datenverkehrs
Nachrichten-Typ
DuDE-200 1000 Teilnehmer DuDE-200 8000 Teilnehmer
Größe (Byte)
Anteil
Größe (Byte)
Anteil
Bootstrap
26973
0%
215973
0%
Ping
10503
0%
122742
0%
Ping Answer
10503
0%
122742
0%
Look Up
840
0%
126
0%
Store Data
2267338752
38%
3860642564
12%
Lookup Answer
1123261
0%
11751338
0%
Find File
670800
0%
6915100
0%
Find File Answer
3630036242
62%
29063358828
88%
Get Resource Metric
4212
0%
266814
0%
Get Resource Metric Answer
5032
0%
163725
0%
DuDE Unfrozen
830
0%
1070
0%
Promote To Job Schedular
27
0%
27
0%
GetTaskMessage
15000
0%
120000
0%
Worker Information
405
0%
3240
0%
Summe
5899243380
100%
32943684289
100%
Tabelle 5-5 Verteilung der Datenmenge innerhalb eines Simulationsvorgangs. Es wird die Messreihe DuDE-200 für 1000 und
8000 Teilnehmer dargestellt
Es ist zum einen zuerkennen, dass die größten Anteile durch die Nachrichtentypen Store Data,
welches genutzt wird, um Dateistücke zu verteilen und Find File Answer, welcher genutzt wird,
um eine gefundene Datei an den fragenden Peer zu senden, hervorgerufen werden. Da am
Anfang noch einige Daten repliziert werden müssen, fallen die Store Data- Nachrichten mehr
ins Gewicht als bei der längeren Simulation
In der Abbildung 5-1 sind zwei Diagramme dargestellt, die das Verhältnis der einzelnen
Pakettypen am Gesamtdatenaufkommen zeigen.
DuDE-200 1000 Teilnehmer
DuDE-200 8000 Teilnehmer
12%
38%
62%
Store Data
88%
Find File Answer
Store Data
Find File Answer
Abbildung 5-2 Diagramm zur Darstellung der Verteilung der Datentypen am Gesamtverkehr am Beispiel der Simulationsreihe
DuDE-200 1000 Teilnehmer und DuDE-200 8000 Teilnehmer
Kapitel: Aufgaben und Auswertung
- 44 -
Aufgaben und Auswertung - Analyse des erzeugten Datenverkehrs
Da auch bei der zentralen Lösung die Daten eingesammelt werden müssten, ist nur der Teil
Store Data als Overhead zu sehen, der durch DuDE hinzugekommen ist. Die restlichen Typen
haben, wie man der Tabelle 5-5 entnehmen kann, keinen Einfluss. Dabei ist beachten, dass
der Wert der Datenmenge pro Peer und pro Sekunde im Bereich von 100 bis 30 Kilobyte liegt.
Dies ist als gering einzuschätzen. Zum Vergleich benötigt ein Video on Demand Dienst für FullHD Auflösung durchschnittlich 6 MB pro Sekunde und Teilnehmer.
Zum Schluss sei noch erwähnt, dass die angeführten Parameter für die Rechenschritte eine
Schätzung darstellen. Selbst wenn diese Schätzung von praktischen Zahlen abweichen sollte,
so ändert dies nichts an den grundlegenden Aussagen, sondern das System DuDE würde
lediglich früher oder später besser skalieren als das Client-Server-Modell. Bei den
Datenmengen, würden sich nur geringfügige Änderungen durch eine längere bzw. kürzere
Laufzeit ergeben. Auch hier würde sich die grundlegende Aussage, dass der Overhead an
Daten eher gering ist, nicht ändern.
Kapitel: Aufgaben und Auswertung
- 45 -
Zusammenfassung und Ausblick - Analyse des erzeugten Datenverkehrs
6 Zusammenfassung und Ausblick
In der vorliegenden Arbeit wurde gezeigt, dass eine P2P-basierter Ansatz nicht nur in der Lage
ist, eine Aufgabe verteilt zu berechnen, sondern dass dieses System signifikant schneller sein
kann als eine zentrale Lösung. In der Simulation war das P2P-System bis zu 12-mal schneller,
als das Client-Server-Modell. Dabei ist der benötigte Overhead bezüglich der Daten sehr klein
und beträgt pro Peer und Sekunde gerade einmal 30 Kilobyte, also ein wenig mehr als eine
mit MP3 codierte Audiodatei. Damit stellt das System DuDE für sein spezielles
Anwendungsgebiet, der Berechnung von Statistiken für Zugangsknoten von ISPs, nicht nur
eine wirkliche Alternative zu den vorherrschen Paradigmen dar, sondern ermöglicht die
Erstellung dieser überhaupt erst. Da in den nächsten Jahren die Anzahl der Zugangsknoten
weiter steigen wird, wird auch der Bedarf an einer solchen Lösung wachsen. Alle Daten für
diese Aussage, wurden mit einem eigenentwickelten Simulator, der ebenfalls in der Arbeit
beschrieben wurde, erstellt.
Eine große Stärke von P2P-System allgemein und DuDE im Besonderen, ist die Robustheit des
Systems gegenüber Ausfall eines einzelnen Knotens. Zwar wurde dies in dieser Arbeit nicht
dargelegt, aber es ist vorstellbar, dass im Fehlerfall zum Beispiel, beim Nichtauffinden einer
Datei oder dem Ausfall eines Task-Watchers, die Berechnung immer noch durchgeführt wird.
Mit einem redundanten Job-Scheduler wäre es möglich, dass selbst dieser Peer ausfallen
könnte. In diesem Punkt ist DuDE dem vorherrschenden Client-Server-Modell weit überlegen.
Hier gebe es noch Bedarf, um die Parameter für ein solches Szenario zu erforschen.
Es wäre genauso gut denkbar, DuDE von seinem speziellen Zweck zu entkoppeln und es zu
einem allgemeinen System für Verteiltes Rechnen zu entwickeln, denn die Anzahl der
verfügbaren Geräte, gerade der Internetfähigen, wird in der nächsten Dekade noch deutlich
zunehmen.
Kapitel: Zusammenfassung und Ausblick
- 46 -
Literaturverzeichnis - Analyse des erzeugten Datenverkehrs
Literaturverzeichnis
[1] G. W. A. W. S. K. Jim Waldo, „A note on distributed computing,“ in Mobile Object Systems
Towards the Programmable Internet, Berlin Heidelberg, Springer-Verlag, 1996, pp. 4964.
[2] R. Brunner, A Performance Evaluation of the Kad-Protocol, Masterarbeit, University of
Manheim, 2006.
[3] P. Danielis, Peer-to-Peer-Technologie in Teilnehmerzugangsnetzen, 2012.
[4] J. Dunkel, A. Eberhart, S. Fischer, C. Kleiner und A. Koschel, Systemarchitekturen für
Verteilte Anwendungen Client-Server, Multi-Tier, SOA, Event-Driven Architectures, P2P,
Grid, Web 2.0, München: Carl Hanser Verlag GmbH & Co. KG , 2008.
[5] X. Shen, H. Yu, J. Buford und M. Akon, Handbook of peer-to-peer networking, New York:
Springer, 2010.
[6] R. Steinmetz und K. Wehrle, Peer-to-Peer Systems and Applications, Springer, 2005.
[7] R. Graziani und A. Johnson, Routing-Protokolle und -Konzepte - CCNA Exploration,
Addison-Wesley , 2009.
[8] B. Vachon und R. Graziani, Wide Area Networks - CCNA Exploration Companion Guide,
Addison-Wesley Verlag, 2009.
[9] A. Schill und T. Springer , Verteilte Systeme Grundlagen und Basistechnologien, Berlin,
Heidelberg: Springer Berlin Heidelberg, 2012.
[10] T. Rauber und G. Rünger, Parallele Programmierung, Berlin, Heidelberg: Springer-Verlag
Berlin Heidelberg, 2007.
[11] A. S. Tanenbaum und D. J. Wetherall, Computer Networks, Bosten: Pearson, 2011.
Kapitel: Literaturverzeichnis
- 47 -
Eidesstaatliche Versicherung
Hiermit versichere ich, dass ich die vorliegende Bachelorarbeit selbstständig verfasst und
keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. Alle Ausführungen,
die anderen Schriften wörtlich oder sinngemäß entnommen wurden, sind kenntlich gemacht
und die Arbeit ist in gleicher oder ähnlicher Fassung noch nicht Bestandteil einer Studien- oder
Prüfungsleistung.
Rostock, der 31. März 2014
Herunterladen