<<

Technische Universität Ilmenau Fakultät für Elektrotechnik und Informationstechnik

Hauptseminar

Verteilung von Software und Daten in drahtlosen, vermaschten Weitverkehrsnetzen

vorgelegt von: Nikita Paul Chruscz

eingereicht am: 14. 01. 2019

geboren am:

Studiengang: Wirtschaftsingenieurwesen

Studienrichtung: Elektrotechnik

Informationstechnik / Telekommunikation

Anfertigung im Fachgebiet: Kommunikationsnetze

Fakultät für Elektrotechnik und Informationstechnik

Verantwortlicher Professor: Prof. Dr. rer. nat. Jochen Seitz

Wissenschaftlicher Betreuer: M. Sc. Matthias Aumüller Inhaltsverzeichnis i

Inhaltsverzeichnis

1 Einleitung 1

2 Grundlagen der Softwareverteilung in WANs 2 2.1 Wide Area Networks ...... 2 2.2 Softwareverteilung mit Protokollen ...... 3

3 Protokolle zur Softwareverteilung 6 3.1 FTP ...... 6 3.1.1 Aufbau und Funktionsweise von FTP ...... 6 3.1.2 Vor- und Nachteile von FTP ...... 7 3.1.3 Anwendbarkeit von FTP in WANs ...... 8 3.2 BitTorrent ...... 8 3.2.1 Aufbau und Funktionsweise von BitTorrent ...... 8 3.2.2 Vor- und Nachteile von BitTorrent ...... 11 3.2.3 Anwendbarkeit von BitTorrent in WANs ...... 11 3.3 ...... 12 3.3.1 Aufbau und Funktionsweise von Gnutella ...... 12 3.3.2 Vor- und Nachteile von Gnutella ...... 15 3.3.3 Anwendbarkeit von Gnutella in WANs ...... 15 3.4 Chord ...... 16 3.4.1 Aufbau und Funktionsweise von Chord ...... 16 3.4.2 Vor- und Nachteile von Chord ...... 20 3.4.3 Anwendbarkeit von Chord in WANs ...... 20

4 Gegenüberstellung der Protokolle 22

5 Weitere Anwendungsfälle der Protokolle 24

6 Zusammenfassung und Fazit 26

Literaturverzeichnis 28

Hauptseminar Nikita Paul Chruscz Inhaltsverzeichnis

Abbildungsverzeichnis 31

Tabellenverzeichnis 32

Abkürzungsverzeichnis 33

Erklärung 34

Hauptseminar Nikita Paul Chruscz 1 Einleitung 1

1 Einleitung

Die zunehmende Digitalisierung und Globalisierung, führt zu einem erhöhten Bedarf an digitalem Datenaustausch. Hierbei stellen Weitverkehrsnetze (engl. Wide Area Net- work, WAN) eine Form dar, um Telekommunikations- oder Computernetze über große geographische Distanz zu realisieren. Dabei kann ein WAN sich über eine Region er- strecken, ein Land oder mehrere Kontinente mit einander verbinden. Ein WAN eignet sich z.B. wenn ein Unternehmen mehr als einen Standort hat und die lokalen Netze (engl. Local Area Network, LAN) verbinden möchte [Cow12]. Im Rahmen dieser Seminararbeit werden Protokolle untersucht, die sich zum Ver- teilen von Daten und Software in drahtlosen, vermaschten Weitverkehrsnetzen eignen. Darüber hinaus, werden diese Protokolle verglichen und die einzelnen Vorteile und Nachteile der Protokolle herausgearbeitet. Zusätzlich werden weitere Anwendungsfälle in denen die Protokolle genutzt werden können ermittelt. Hierfür werden zunächst in Kapitel 2 die Grundlagen der Softwareverteilung mittels Protokollen in WANs kurz skizziert. Anschließend werden in Kapitel 3 Protokolle zur Softwareverteilung vorgestellt, für die Anwendung in WANs, zusätzlich werden hier Vor- und Nachteile der einzelnen Protokolle erarbeitet. In Kapitel 4 werden die zuvor analysierten Protokolle mittels einer Tabelle gegenübergestellt. Weiterführend werden mögliche weitere Anwendungsfälle der zuvor behandelten Protokolle ermittelt und in Kapitel 5 kurz dargestellt. Abschließend werden die Ergebnisse der Arbeit zu einem Fazit zusammengefasst (Kapitel 6).

Hauptseminar Nikita Paul Chruscz 2 Grundlagen der Softwareverteilung in WANs 2

2 Grundlagen der Softwareverteilung in WANs

Die folgenden Kapitel stellen die Grundlagen für die Seminararbeit dar. Dazu wird zu- erst das WAN vorgestellt und anschließend die Softwareverteilung mittels Protokollen.

2.1 Wide Area Networks

WANs werden genutzt um Daten über weite Distanzen zu übermitteln. Dabei kann sich ein WAN über eine gewisse Region, ein ganzes Land oder sogar über mehrere Kontinente erstrecken (auch als Global Area Network (GAN) bekannt). Ein WAN kann dabei z.B. wie in Abbildung 2.1 dargestellt, gebildet werden.

Abbildung 2.1: Beispielhaftes europaweites vermaschtes WAN

Das dargestellte WAN, ist hierbei vermascht, das ergibt sich daraus, dass jeder Kno-

Hauptseminar Nikita Paul Chruscz 2 Grundlagen der Softwareverteilung in WANs 3 ten über eine oder mehrere Kanten mit anderen Knoten direkt verbunden ist. Ein Netz in dem jeder Knoten mit jedem anderen Knoten verbunden ist, heißt voll vermaschtes Netz. Außerdem sind die dargestellten Kanten dieses WANs ungerichtet bzw. bidi- rektional, d.h., dass Daten in beide Richtungen zwischen zwei verbundenen Knoten übermittelt werden können. Dabei setzt sich, wie in Abbildung 2.1 abgebildet, ein WAN aus einzelnen LANs oder einzelnen Computern bzw. Servern zusammen. Die maximale Anzahl an Knoten ist hierbei durch die maximale Anzahl an Adressen von IPv4 (< 232) bzw. IPv6(< 2128) limitiert. Beispiele für bekannte WANs sind unter anderem:

• Das Internet, welches vermascht ist und z.B. durch Long Term Evolution (LTE) auch drahtlos verfügbar ist [Lam18].

• Highspeed Amateurradio Multimedia NETwork (HAMNET), ein ver- maschtes, funk- und kabelgebundenes IP-Netzwerk zwischen Amateurfunksta- tionen.

• Bahnnetze mit European Train Control System (ETCS), greifen auf ver- maschte WANs zu, die der Zugsteuerung, -sicherung und -disposition dienen. Dabei werden Stellwerke, Signale, Weichen und weitere Feldelement miteinander vernetzt und über Betriebszentralen zusammengefasst.

Im Rahmen des OSI 7-Schichten Modells, arbeiten WANs auf den beiden unteren Ebenen, der Bitübertragungsschicht (engl. Physical Layer) und der Sicherungsschicht (engl. Data Link Layer). Weiterhin, verwenden die Netzknoten in einem WAN die dritte Schicht, die Vermittlungsschicht (engl. Network Layer) [Don17]. Die Datenrate von WANs sind allgemein geringer als die von LANs [Cow12].

2.2 Softwareverteilung mit Protokollen

Der Begriff Softwareverteilung ist nicht eindeutig definiert. So wird der Begriff zum einen für Prozesse zur meist automatisierten Installation von Software auf -PCs und Servern verwendet [Adm13]. Zum anderen kann der Begriff Softwareverteilung aber auch die Bereitstellung von Daten bzw. Software (z.B. Installationsdateien) im Internet beschreiben [Erd06]. Softwareverteilung kann aber auch z.B. die Verteilung von Datenträgern mit Software während einer Messe sein. Im Rahmen dieser Seminararbeit wird der Begriff der Softwareverteilung genutzt, als die Distribution von Software und Daten innerhalb eines WANs, in diesem Sinn

Hauptseminar Nikita Paul Chruscz 2 Grundlagen der Softwareverteilung in WANs 4 wird auch der Begriff des Filesharings verwendet. Für das Übertragen von Daten werden dabei Protokolle benötigt. Konkret werden hier Kommunikationsprotokolle betrachtet, sie legen die Regeln für die Wechselwirkung zwischen Knoten eines Netzwerks bzw. deren Instanzen fest. Dabei wird durch das Kommunikationsprotokoll die zeitliche Abfolge von Interaktionen und das Format der auszutauschenden Daten zwischen Knoten definiert [Kö02]. Darüber hinaus lassen sich unterschiedliche Netzwerkstrukturen zur Softwarevertei- lung unterscheiden, diese sind in Abbildung 2.2 dargestellt. Hierbei lassen sich 3 Arten differenzieren:

1. Client-Server-Modell In einer Client-Server-Architektur, befindet sich ein zentraler Server in einem Netzwerk mit mehreren Clients. Dateien werden von berechtigten Usern auf dem Server abgelegt, bzw. von diesem heruntergeladen. Dabei kann ein Server von mehreren Clients gleichzeitig adressiert werden. Bei Bedarf kann ein Client einen von dem Server anfordern, daraufhin antwortet der Server. Eine Er- weiterung bieten vermaschte Netze, hier kann der Server den Client an Knoten mit der angefragten Datei weiterleiten, um dort die Datei direkt herunterzuladen [Ber92].

2. Peer-To-Peer mit Koordinationsserver Peer-to-Peer (P2P) beschreibt die Verbindung zwischen zwei gleichberechtigten Knoten, Peer wird synonym zu einem bekannten bzw. verbundenen Knoten ver- wendet. In einem P2P-Netzwerk mit Koordinationsserver, wird durch den zen- tralen Server eine Liste, der im Netzwerk vorhanden und angebotenen Dateien, geführt. Die Verteilung von Daten und Software erfolgt unmittelbar via P2P zwi- schen Knoten, nachdem diese durch einen Server aufeinander verwiesen wurden. Eine Erweiterung der Technik ermöglicht den Download von Dateien von meh- reren Knoten gleichzeitig, vorausgesetzt diese bieten die selbe Software an. P2P mit Koordinationserver stellt eine Erweiterung der ursprünglichen Client-Server- Modelle dar, dadurch, dass im Endeffekt eine Client-Server-Beziehung zwischen dem Knoten, der eine Datei anfragt, und dem Server besteht.

3. Peer-to-Peer vollständig dezentral Ein vollständig dezentrales P2P-Netzwerk kommt ohne Server aus. Die Zuord- nung zu den Knoten und die Verweise auf Knoten erfolgt selbstständig unter den Knoten. Die Software wird direkt von anderen Knoten heruntergeladen, auch hier ist es möglich, die Daten von mehreren Knoten gleichzeitig zu beziehen.

Hauptseminar Nikita Paul Chruscz 2 Grundlagen der Softwareverteilung in WANs 5

Abbildung 2.2: Verschiedene Netzwerkstrukturen für Filesharing

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 6

3 Protokolle zur Softwareverteilung

Die diversen Protokolle zur Softwareverteilung lassen sich zu den in Kapitel 2.2 vorge- stellten Netzwerkstrukturen für Filesharing zuordnen.

1. Client-Server-Modell Zu den Protokollen die eine Client-Server-Architektur verwenden zählen: Unix to Unix Copy Protocol, Apple Filing Protocol und Server Message Block, vorgestellt wird als Beispiel für diese Netzwerkstruktur das (FTP).

2. P2P mit Koordinationsserver Beispiele für Protokolle, die diese Struktur verwenden sind: Direct Connect, eDonkey2000-Protokoll und Napsterprotkoll, detailliert wird in Kapitel 3.2 Bit- Torrent vorgestellt.

3. Vollständig dezentrales P2P Protokolle, die auf reinem P2P ohne klassischen Server basieren sind unter ande- rem: Ares-Protokoll, Kademillia und FastTrack, genauer analysiert werden hier Gnutella und Chord.

Im Anschluss an jedes Protokoll, folgt eine Auflistung der Vor- und Nachteile, sowie eine abschließende Betrachtung hinsichtlich der Verwendung in drahtlosen, vermasch- ten WANs.

3.1 FTP

3.1.1 Aufbau und Funktionsweise von FTP

Das FTP wurde bereits 1985 konzipiert und stellt das älteste in dieser Seminararbeit analysierte Protokoll dar [PR85]. Das FTP war eines der am meisten genutzten Pro- tokolle im Internet und wird verwendet, um Daten zwischen Computern, die mit dem Internet verbunden sind zu übertragen. Dabei werden die Daten von einem Knoten bereitgestellt, der in diesem Netzwerk als FTP-Server fungiert [RG14].

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 7

FTP ist Teil der Transmission Control Protocol/Internet Protocol-Protokollfamilie (TCP/IP) und baut auf einer Verbindung basierend auf TCP auf. Die Dienste eines FTP-Servers können wie auch andere Internet-Dienste von mehreren Knoten gleichzei- tig verwendet werden. Allerdings werden im Gegensatz zu anderen Internet-Diensten mehrere Transportverbindungen zwischen einem Knoten und dem Server aufgebaut. Dabei wird bei jeder FTP-Sitzung zunächst eine Kontrollverbindung hergestellt, über die z.B. die Authentifizierung des Knotens mittels User ID und Passwort erfolgt. Über diese Kontrollverbindung laufen ebenfalls Steuerinformationen (auch Kommandos). Wenn nun eine Datei übermittelt werden soll, wird eine zusätzliche Verbindung aufge- baut. Die Kontroll- und Steuerungsverbindung erfolgt über den TCP Port 21, während der anschließende Datentransfer über den TCP Port 20 geschieht [Con04].

3.1.2 Vor- und Nachteile von FTP

Zusammengefasst ergeben sich bei FTP die in Tabelle 3.1 dargestellten Vor- und Nach- teile.

Vorteile Nachteile

+ FTP kann von jedem Knoten in ei- - Großer Sicherheitsmangel, da ge- nem Netzwerk über jeden Browser sendete Dateien, Nutzernamen und angesteuert werden und ist somit Passwörter von jedem ausgelesen einfach zugänglich werden können, der den Netzwerk- verkehr sieht + Es wird zwingend nach einem Be- nutzer mit einer eindeutigen ID ver- - Mehrere Aufforderungen werden langt, der sich mit einem Passwort durchgeführt und benötigen dabei legitimiert, um Zugriff auf die Da- eine durchgängige Verbindung ten zu bekommen - Keine Restriktionen auf ausgewähl- + Zentrale Datensicherung te Daten

- FTP ist bei hoher Nachfrage auf eine Datei von einem Servers sehr langsam

- Totalausfall sollte der Server nicht verfügbar sein

Tabelle 3.1: Vor- und Nachteile von FTP

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 8

3.1.3 Anwendbarkeit von FTP in WANs

Heute wird FTPs seltener verwendet, da es inzwischen schnellere Protokolle zur Soft- wareverteilung gibt, die in den folgenden Kapiteln vorgestellt werden. Dennoch soll erwähnt werden, dass es Erweiterungen zu FTP gibt, die sicherer sind, wie z.B. FTP über SLL (engl. FTP over TLS, FTPS) das ein verschlüsseltes FTP sendet oder SSH File Transfer Protocol (SFTP) welches Daten über ein Secure Shell Protocol (SSH) verschlüsselt. FTP werden weiterhin auch in WANs eingeschränkt verwendet, z.B. in dem WAN eines Unternehmens, um Dateien zu senden, die zu groß für Mails sind. Trotzdem, eignet sich FTP mit steigender Datenmenge und Nachfrage weniger für drahtlose, vermaschte WANs. FTP ist im Verhältnis zu anderen Protokollen wesentlich langsamer bei der Softwareverteilung. Die Tatsache, dass WANs und speziell drahtlose WANs eine, im Verhältnis zu anderen kleineren Netzen, besonders langsame Verbin- dung haben, sorgt dafür, dass das Übertragen von Daten mittels FTP in WANs sehr langsam ist. Insbesondere die Tatsache, dass FTP eine konstante unterbrechungsfreie Verbindung benötigt, ist verantwortlich dafür, dass es in einem drahtlosen (und be- sonders in mobilen) Netzwerken nicht angemessen anwendbar ist, da es vermehrt zu Verbindungsabbrüchen kommen kann.

3.2 BitTorrent

3.2.1 Aufbau und Funktionsweise von BitTorrent

BitTorrent wurde 2001 von entwickelt und ist nach dessen Aussagen einfach ein Protokoll um Dateien zu verteilen. Ähnlich wie bei FTP oder anderen Client-Server-Modellen werden Dateien über Standardinternetseiten mit einem ein- deutigen Uniform Resource Locator (URL) zugänglich gemacht. Dabei unterscheidet sich jedoch dadurch, dass kein Download zwischen einem Client und einem klassischem Server stattfindet. Im Gegenteil, wenn die Torrent Datei im Browser an- gefragt wird öffnet sich die BitTorrent-Anwendung des Knotens und dieser tritt dem BitTorrent-Netzwerk bei. Anschließend finden mehrere der selben Datei statt, indem diese in mehrere Pieces (dt. Teile) aufgeteilt wird. Diese Pieces werden zwischen den Knoten bzw. Clients mittels TCP verteilt, solange bis jeder die gleiche vollständige Datei besitzt [TH09]. Das BitTorrent Protokoll ist insbesondere für WANs interessant, da es die Kapazi- tät der Übertragungskanäle maximal ausnutzt. Insbesondere bei Dateien mit starker Nachfrage, wird die Geschwindigkeit der Datenverteilung maximiert.

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 9

Ein Server, der sog. Tracker wird genutzt um das Netzwerk zu aktualisieren, dies geschieht wenn Pieces heruntergeladen werden. Das hat zur Folge, dass kontinuierlich der Status einer Grupper von Knoten, die die gleiche Datei herunterladen (dem sog. Schwarm, engl. Swarm), aktualisiert wird. Je mehr Personen eine Datei herunterla- den, desto mehr Personen können diese Datei auch verteilen, dadurch, dass es mehr Optionen gibt, die Pieces zu erhalten (auch als Seeding bezeichnet). Daraus ergibt sich, dass im Gegensatz zu Client-Server-Netzwerken oder einfachen P2P Systemen, wie in der Vergangenheit z.B. , die Geschwindigkeit der Softwareverteilung mit steigender Nachfrage nicht sinkt, sondern sogar steigt. Somit erlaubt BitTorrent noch mehr simultane und schnellere Downloads. Der Tracker wurde so gestaltet, dass er aufzeichnet, wie viel jeder einzelne Knoten teilt und beschleunigt sogar den Download von Knoten, die besonders viel mit dem Schwarm teilen. Diese Regelung, je mehr man teilt, desto mehr kann man herunterla- den, stellt sicher, dass das Verhältnis zwischen Hoch- und Herunterladen ausgeglichener ist und die Anzahl an sog. Leeches (dt. Blutsauger, Blutegel) limitiert wird [TH09]. Das BitTorrent Protokoll baut dabei auf diversen Komponenten auf, diese und die relevanten Begrifflichkeiten sollen in der nachfolgenden Aufzählung dargestellt werden:

Torrent: Der Torrent ist eine Datei, die Informationen, über die zu verteilende Datei, enthält (die Datei endet mit .torrent). Seed: Der Seed ist der Knoten des Netzes, der die komplette zu verteilende Datei besitzt. Dabei kann es mehrere Seeds in einem BitTorrent Netz geben. Anbieter von Dateien werden auch als Seeder bezeichnet. Schwarm: Der Schwarm wird durch die Knoten gebildet, die an einer bestimmten Datei interessiert sind und an Knoten heruntergeladene Pieces weitergeben, die diese noch nicht besitzen. Tracker: Der Tracker ist ein Server der Informationen sammelt, über die im Netzwerk vorhandenen Knoten. Dieser aktualisiert seine Informationen je mehr Pieces übertra- gen werden. Er koordiniert Knoten die interessiert an Dateien sind zu den Knoten, die die Dateien besitzen. Choked: Choked (dt. ersticken, abgedrosselt) heißt der Zustand, wenn ein Knoten keine Dateien hochladen möchte. Das kann darauf zurück zuführen sein, dass bereits zu viele Verbindungen zu anderen Knoten bestehen. Interested: Interested (dt. interessiert) bezeichnet den Zustand, wenn ein Knoten den Tracker adressiert, um eine Datei herunterzuladen. Piece: Ein Piece ist ein Anteil bzw. Paket einer Datei das in einem BitTorrent Netz-

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 10 werk verteilt wird. Die Länge beträgt in der Regel eine Zweierpotenz und sollte überlegt gewählt werden, da kleine Pieces einen verhältnismäßig großen Overhead besitzen und dadurch die Übertragung einer gesamten Datei verlangsamen [TH09]. Leech: Als Leech wird ein Knoten bezeichnet, der Dateien herunterlädt aber das Tei- len von Pieces verweigert. Auch Knoten die generell etwas herunterladen werden als bezeichnet.

Diese Komponenten werden z.B. in einem BitTorrent Netzwerk wie in Abbilung 3.1 dargestellt verwendet.

Abbildung 3.1: Beispielhaftes BitTorrent Netzwerk mit Verteilung von DateiX

Dort wird die Funktionsweise des BitTorrent Protokolls dargestellt. In dem Szenario will ein Knoten (der Seed) die Datei DateiX mit den Knoten A, B und teilen. Sobald DateiX.torrent verfügbar ist, müssen Knoten A, B und C die DateiX.torrent in ihrem Browser suchen. Zunächst wird der Download von A initiiert, dieser lädt direkt via P2P vom Seed die Pieces von DateiX herunter. Anschließend starten die

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 11

Knoten B und C ihren Download, der Tracker verweist sie auf den Seed und auf die Pieces die A bereits heruntergeladen hat. Sobald weitere Pieces heruntergeladen sind aktualisiert der Tracker die Informationen über die geteilten Pieces. Dadurch wird es z.B. A möglich Pieces, die B und C besitzen aber A noch nicht, zusätzlich von B und C herunterzuladen und so die Verteilung der DateiX zu beschleunigen. Dieses gilt analog für alle Knoten im BitTorrent Netzwerk.

3.2.2 Vor- und Nachteile von BitTorrent

Die Vor- und Nachteile des BitTorrent Protokolls werden in Tabelle 3.2 zusammenge- fasst.

Vorteile Nachteile

+ Besonders schnell bei der Verteilung - Bei Dateien mit sehr geringer Nach- von stark nachgefragten Dateien frage ist ggf. FTP schneller

+ Es fällt keine Zeit für das Hochladen - Die Datenübertragungsrate hängt auf einen Server an von der Menge der fertigen und un- fertigen Downloads im Netz sowie + Die Dateien sind unabhängig von der Uploadrate der Knoten ab der Verbindungstabilität konsistent - Wenn der Tracker nicht verfügbar + Skalierbares Netzwerk ist, ist der Download über die beste- henden Verbindungen limitiert und evtl. nicht weiter möglich

Tabelle 3.2: Vor- und Nachteile von BitTorrent

3.2.3 Anwendbarkeit von BitTorrent in WANs

Das BitTorrent Protokoll ist für WANs sehr interessant, da es die Kapazität der Über- tragungskanäle maximal ausnutzen kann. Insbesondere bei Dateien mit großer Nach- frage, wird die Geschwindigkeit der Datenverteilung maximiert, so ist es möglich auch größere Dateien in angemessener Zeit herunterzuladen. Wenn in einem WAN z.B. in allen oder vielen Knoten eine Software gleichzeitig verteilit werden soll, stellt BitTor- rent eine schnelle Möglichkeit dar. Die Größe der Pieces muss jedoch bedacht gewählt werden, gerade in einem WAN können sehr kleine Pieces wieder zu einem langsameren Download führen, da sehr viel Overhead je Piece anfällt. Auf der anderen Seite steigt so auch die Anzahl an Pieces und kann dadurch wieder zu mehr Quellen, bzw. Seeds

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 12 in einem BitTorrent führen und das Herunterladen wieder beschleunigen. Im umge- kehrten Fall, fällt bei größeren Pieces weniger Overhead je Piece an und erlaubt so einen insgesamt schnelleren Download. Dadurch sinkt aber die Gesamtzahl der Pieces für eine Datei und schränkt hierduch die Möglichkeit von simultanen Downloads von mehreren Knoten bzw. Seeds ein. Zusätzlich lässt sich die Problematik mit wenig nachgefragten Dateien durch die Einbindung von sog. Webseeds reduzieren. Diese sind zusätzliche Seeds im Netzwerk die ältere bzw. weniger nachgefragte Dateien besitzen und z.B. mittels FTP übertragen, wenn nicht genügend Seeds via P2P verfügbar sind. Es gibt bereits Möglichkeiten die Zeit zur Vervollständigung von Dateien und die Verteilungsgerechtigkeit von BitTorrents speziell für drahtlose Netzwerke zu optimie- ren. Dieses geschieht z.B. dadurch, dass die Anzahl vermaschter Knoten (Nachbarn) restringiert wird, um den Overhead der Pieces zu reduzieren [SBC+08].

3.3 Gnutella

3.3.1 Aufbau und Funktionsweise von Gnutella

Das Konzept des Gnutella-Protkolls wurde 2000 von und Tom Pep- per erstellt. Dabei wurde nach Aussagen von Tom Pepper Gnutella in erster Linie entwickelt um Kochrezepte zu teilen. Anfänglich wurde das Protokoll als Experiment veröffentlicht, jedoch nach kurzer Zeit vom Arbeitgeber der beiden Entwickler, Ame- rica Online (AOL), eingestellt [TH09]. Gnutella ist ein dezentrales, open-source, P2P Protokoll, welches in erster Linie genutzt wird, um Verbindungen zu Knoten mit ge- suchten Dateien herzustellen [Rip02]. Ein Gnutella-Netzwerk kann dabei wie in Abbildung 2.1 oder dem reinen P2P aus Abbildung 2.2 aufgebaut sein. Da der Fokus dieser Seminararbeit auf der Softwarever- teilung liegt, wird davon ausgegangen, dass bereits ein Netzwerk aufgesetzt wurde und jeder Knoten seine Nachbarn kennt. Um mittels des Gnutella-Protokolls eine Datei zu finden und schließlich herunterzuladen, werden Pakete bzw. Deskriptoren an be- nachbarte Knoten gesendet, die diese wiederum an ihre benachbarten Knoten senden. Da jeder Knoten wie ein Server und ein Client funktioniert, werden die Knoten im Kontext von Gnutella auch Servent genannt. Ein Deskriptor setzt sich dabei aus einem generischen Header und einem Payload zusammen, der Payload definiert den auszuführenden Befehl. Der Header beinhaltet, dabei:

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 13

Deskriptor-ID: 16-byte string als einmalige Kennung. Payload-Deskriptor: Der die Art des Payloads definiert (0x00 = Ping, 0x01 = Pong, 0x40 = Push, 0x80 = Query, 0x81 = QueryHit). Time to Live (TTL): Entspricht der Anzahl Hops die ein Deskriptor weitergeleitet wird solange T T L > 0 (dabei wird die TTL um 1 reduziert bevor sie weitergeleitet wird). Hops: Zählt die Anzahl der Male die ein Deskriptor weitergeleitet wurde, d.h. Hops. Payload Länge: Die Größe in bytes des folgenden Payloads [TH09].

Im Folgenden werden die Payloads des ursprünglichen Gnutella-Protokolls vorgestellt: Ping: Wird benutzt um die Anwesenheit des eigenen Knotens im Netzwerk bekannt zu geben. Pong: Ist die Antwort eines Knotens auf einen Ping. Dieser enthält die Kontaktinfor- mationen (z.B. IP-Adresse) und die Anzahl der Dateien, die der Knoten im Netzwerk teilt. Query: Ist die Abfrage, bzw. der Suchmechanismus zum Auffinden einer Datei, dieser enthält einen Such-String. Ein Knoten der einen Treffer mit dem Such-String hat, gibt einen QueryHit zurück. QueryHit: beinhaltet eine Liste von Treffern für die Query, zusammen mit den Kon- taktdaten des Knotens. Push: verwendet einen Mechanismus, damit Knoten hinter einer Firewall ihre Dateien teilen.

Von besonderem Interesse bei der Softwareverteilung sind hier Query, QueryHit und Push. Ping und Pong dienen eher dem Beitritt in ein Netzwerk bzw. dem Ermitteln der Nachbarn, dabei werden im Gnutella-Protokoll, zufällige Netzewerke (unstruktu- riertes P2P) aufgebaut mit einer geringen Anzahl Nachbarknoten und sorgen so für ein vermaschtes Netzwerk. Die eigentliche Anwendung des Gnutella-Protokolls zur Soft- wareverteilung wird dabei durch eine Query gestartet. Diese Query setzt sich aus einer Mindestgeschwindigkeit (2 Byte, in kb/Sekunde) die ein Knoten mit QueryHit benötigt und einem Suchkriterium zusammen. Das Suchkriterium ist ein Such-String, der maximal die Länge der im Header definierten Payload Länge haben darf (abzüglich der 2 Bytes für die Mindestgeschwindigkeit) und beendet wird durch 0x00. Diese Query wird an Nachbarknoten gesendet und von diesen wiederum an ihre Nachbarknoten übermittelt, solange TTL > 0 ist. Wenn ein Knoten die Mindestgeschwindigkeit erfüllt und einen Treffer mit der Que-

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 14 ry hat, wird ein QueryHit über den zuvor genommenen Pfad zurückgegeben. Dabei definiert der Knoten mit der Datei den QueryHit mit: der Anzahl Treffern (1 Byte), seinem Port zur Datenverteilung (2 Byte), seiner IP-Adresse (4 Byte), seiner Ge- schwindigkeit (4 Byte), einem Result Set (N Byte), das Informationen über die Dateien enthält und schließlich einer Servent ID (auch User ID (UID), 5 Byte). Aus den erhaltenen QueryHits kann der Knoten, der die Query gesendet hat, einen QueryHit auswählen (dies geschieht standardmäßig automatisch) zum Herunterladen der Daten vom zugewiesenen Knoten. An diesen Knoten wird über den zuvor auch gewählten Pfad, wenn nötig, ein Deskriptor mit einem Push Payload gesendet. Dieser enthält die UID des Knotens mit der Datei, einen Teil des Result Sets aus dem Que- ryHit, der IP-Adresse und den Port des Knotens der die Query gesendet hat, um eine Verbindung herzustellen. Wenn ein Knoten zum Herunterladen der Datei ermittelt wurde, wird eine Verbin- dung mittels TCP/IP direkt zwischen den Knoten hergestellt. Sollte ein Push Befehl benötigt worden sein, wird die Verbindung von dem Knoten mit der Datei aus gestar- tet, dabei ist es entscheident, dass der Knoten der die Query gesendet hat, nicht durch eine Firewall blockiert wird. Der gesamte Ablauf des Protokolls wird zum Verständnis zusätzlich in Abbildung 3.2 präsentiert.

Abbildung 3.2: Beispielhaftes Gnutella Netzwerk mit Verteilung von DateiY

Abschließend wird die Datei über die hergestellte Verbindung mittels des Hypertext Transfer Protocols (HTTP) heruntergeladen. Dabei wird die folgende GET Anfrage gesendet: GET /get/// HTTP/1.0\\r\\n Connection: Keep-Alive\\r\\n Range: bytes=0- \\r\\n

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 15

User-Agent: Gnutella\\r\\n \\r\\n File Index und File Name werden dabei dem Result Set des QueryHits entnommen.

3.3.2 Vor- und Nachteile von Gnutella

Zusammengefasst ergeben sich die in Tabelle 3.3 gesammelten Vor- und Nachteile des Gnutella-Protokolls.

Vorteile Nachteile

+ Ausfallsicherheit, durch verteilte - Abfrage wird stark durch Verkehr Abfragen bzw. vermaschtes Netz- im Netzwerk verlangsamt werk - Suchanfrage wird mit steigender + Sehr schnelle Abfrage bei vorhande- Anzahl Hops langsamer, da die An- ner Bandbreite zahl der Anfragen im Netz steigt

+ Skalierbares Netzwerk - TTL limitiert die Suche

Tabelle 3.3: Vor- und Nachteile von Gnutella

3.3.3 Anwendbarkeit von Gnutella in WANs

Gnutella stellt eine sinnvolle Option dar, zur Softwareverteilung in einem drahtlosen, vermaschten WAN. Bei wenigen Netzwerkaktivitäten, findet das Gnutella-Protokoll schnell die gesuchte Datei und ist nicht von einem einzigen Knoten bzw. Server ab- hängig. Außerdem stellen Ausfälle von einzelnen Knoten keine große Problematik dar, solange diese nicht die einzigen sind, die die gesuchte Datei besitzen, da das Gnutella Netzwerk vermascht ist. Bei Netzwerken mit einer sehr großen Anzahl Knoten, kann jedoch die Anzahl der Anfragen im Netzwerk, die Geschwindigkeit stark beeinträchti- gen. Eine Erweiterung, die mit diesen Problemen besser umgehen kann stellt dar. Es verfügt über deutlich schnellere Abfrage, indem es Knoten in Blätter und Hubs unterteilt (Blätter haben nur 1-2 Verbindungen zu Hubs, während Hubs mehrere hun- dert Verbindungen zu Blättern und anderen Hubs aufrecht erhalten). Zusätzlich wurde der Suchmechanismus in Gnutella2 verbessert, wodurch die limitierte Bandbreite eines WANs weniger stark beeinträchtigt wird. Durch diese Änderungen gegenüber Gnutella, skaliert das Gnutella2-Protokoll noch besser und kann so mit großen Netzwerken mit

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 16 geringer Belastbarkeit umgehen. Das Protokoll ist jedoch nicht mehr kompatibel mit Gnutella Netzwerken. Dahingegen argumentieren Verfechter von Gnutella, dass das Generic Gnutella Ex- tension Protocol (GGEP) bereits die gleichen Verbesserungen bietet, wie Gnutella2 [AFM05]. Außerdem kann durch das Query-Routing-Protokoll (QRP) die Geschwindigkeit von Suchanfragen optimiert werden. Dieses geschieht, indem zwischen Knoten der Speicher- ort der Dateien ausgetauscht wird. Dadurch, werden die Suchaktivitäten stark mini- miert. Diese Technik wird bereits in WANs von Funkamateuren verwendet [HTS03].

3.4 Chord

3.4.1 Aufbau und Funktionsweise von Chord

Chord ist ein 2001 am Massachusetts Institute of Technology entwickeltes Protokoll und Algorithmus für P2P verteilte Hashtabellen (engl. Distributed , DHT). Diese DHT erlaubt es Dateien zu suchen, abzulegen oder zu löschen. Chord wurde von den Entwicklern als sehr effiziente Komponente für P2P Softwareverteilung, gerade in sehr großen Netzwerken entwickelt [SMK+01]. Der Algorithmus von Chord wurde bereits benutzt um Dateien wie .mp3 oder .MPEG zu routen und anschließend zu teilen [MS07]. Im Gegensatz zu Gnutella hat Chord einen strukturierten P2P Ansatz. Ausschlaggebend bei Chord ist, dass Knoten und Daten über einen m-bit Identifier zugewiesen werden. Dabei muss die Anzahl der bits m festgelegt werden, m sollte groß genug gewählt werden, damit die Elemente möglichst gleichmäßig verteilt werden können. Jeder Knoten besitzt lokale Daten und publiziert diese Daten bzw. Keys im Netzwerk. Anfangs wird für jeden Knoten, das können Clients aber auch Server sein, eine Peer-ID zugewiesen. Diese Peer-ID wird über eine konsistente Hash-Funktion (konkret mittels des SHA-1 Algorithmus) ermittelt. Für Knoten wird aus der IP- Adresse und der Portnummer mittels SHA-1 ein 160-bit langer String ermittelt, dieser wird wiederum auf einen m-bit langen String gekürzt, welcher dann die (zwingend) einmalige Peer-ID (n, von engl. ) ergibt, die ein Integer-Wert zwischen 0 und 2m − 1 ist. Anlog wird eine Key-ID (k) für Dateien ermittelt, jedoch wird hier SHA-1 z.B. auf die Dateinamen angewendet. Wichtig ist, dass die Dateinamen im Chord- Netzwerk einmalig sind. Die Summe der Keys und Knoten in einem Chord-Netzwerk darf maximal 2m betragen. Nachdem jeder Knoten eine Peer-ID zugewiesen bekommen hat oder ein Knoten dem Chord-Netzwerk beitritt oder austritt, wird der Nachfolger

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 17

(engl. Successor) jedes Knotens bzw. Peers im Ring ermittelt. Dieser ist dabei der Peer der als nächstes bzw. im Uhrzeigersinn nach dem Knoten folgt. Die Zuordnung der Daten zu den Peers wird mittels eines Rings, der den Zahlenraum Z2m abbildet dargestellt. Hier wird jede Datei dem Knoten zugewiesen, der auf dem Chord-Ring, der Key-ID bzw. dem Hash-Wert in aufsteigender Zählrichtung folgt. Dadurch ist ein Peer für den Bereich zuständig, der nach seinem Vorgänger bis zu seiner eigenen Position folgt [MS07]. Dateien werden an den zuständigen Peer übertragen und können bei Bedarf, von den anderen Knoten im Netzwerk, von diesem heruntergeladen werden. Dieser erste Schritt des Chord-Protokolls ist in Abbildung 3.3 dargestellt.

Abbildung 3.3: Beispielhafter Chord-Ring mit m = 4 nach Einbindung von vier Knoten und zwei Dateien

In dieser ersten Abbildung sind vier Knoten in dem Chord-Ring vertreten, diesen wurden die Peer-IDs [N2, N6, N10, N14] zugewiesen . Ebenfalls soll auf zwei Dateien im Chord-Ring verwiesen werden, diesen wurden die Key-IDs [K3, K10] zugeteilt. Erkenntlich wird, dass N14 seinen Nachfolger N2 kennt, dies gilt analog für alle weiteren Peers. Ebenfalls wird deutlich, dass die Keys den darauffolgenden Peers zugeordnet

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 18 werden, so wird z.B. K3 dem Peer N6 zugewiesen. Zur Kommunikation bzw. Verteilung von Querys innerhalb eines Chord-Rings wer- den zwei Mechanismen (sog. Peer Pointer) unterschieden. Beim ersten (dem sog. Suc- cessor) kennt jeder Peer ausschließlich seinen Nachfolger und muss, bis zu N (Anzahl der Knoten im Chord-Ring) Hops durchführen. Der zweite Mechanismus ist wesentlich komplizierter, er verwendet eine sog. Finger-Tabelle, ermöglicht aber eine wesent- lich schnellere Verbindung zum Ziel (auch Greedy Routing genannt). Bei diesem Me- chanismus, besitzt jeder Peer m Finger-Zeiger und eine eigene Finger-Tabelle. Die Finger-Tabelle setzt sich aus zwei Spalten zusammen, dem Eintrag i (0 ≥ i ≥ m − 1) und der Adresse des zuständigen Peers für die Position f[i] = (n + 2i−1)mod2m auf dem Chord-Ring. Dieser Mechanismus ist in Abbildung 3.4 dargestellt.

Abbildung 3.4: Chord-Ring mit Finger-Zeigern und Finger-Tabelle von N10

Mittels dieses Mechanismus findet auch das Routing innerhalb des Chord-Rings statt, um Dateien aufzufinden. Bevor ein Knoten eine Query verschickt, wird in diesem Kno- ten mittels der Hash-Funktion der Hash-Wert der gesuchten Datei bestimmt. Anschlie- ßend wird die Query an den Peer weitergegeben, der am weitesten von dem Knoten entfernt ist, aber noch kleiner als die Adresse des Keys ist. Wenn das nicht möglich

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 19 ist, soll die Query an den Nachfolger weitergegeben werden. Dazu stehen dem Knoten der die Query sendet ausschließlich die Informationen aus der Finger-Tabelle und der Hash-Wert der Datei zur Verfügung. Nachdem der Knoten die Query an einen Peer weitergegeben hat, verwendet der neue Knoten wiederum seine Finger-Tabelle und wendet die vorherige Entscheidungsregel an. Dieser Algorithmus wiederholt sich, bis die Query einen Treffer hat. Dieser Routing-Prozess ist beispielhaft in Abbildung 3.5 dargestellt.

Abbildung 3.5: Routing im Chord-Ring von N10 zu K3

In der letzten Abbildung wird der Routing Prozess dargestellt, von der Peer-ID N10 zur Datei mit der Key-ID K3 die dem Peer mit der ID N6 zugewiesen ist. Bei diesem Szenario, will N10 die Datei abfragen mit dem Key K3, die Adresse der Datei ist N10 über die Hash-Funktion bekannt. Dazu versendet N10 eine Query an den am weitesten entfernte Peer den K10 erreichen kann, aber gleichzeitig kleiner ist als die Position 3 im Chord-Ring. Diese ist N2, welche wiederum versucht die Query weiterzuleiten, diesmal steht N2 kein Peer zur Verfügung der kleiner ist als 3, deshalb wird die Query an den Nachfolger N6 weitergegeben, der zuständig ist für K3 und somit einen Treffer an N10

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 20 signalisiert. Das heißt, dass am Ende 2 Hops benötigt wurden, um die Datei zu finden. Insgesamt, ist so ein deutlich schnelleres Routing möglich, da als Erwartungswert nur noch O(log(N)) Hops benötigt werden [MS07]. Wohingegen, wenn die Query immer nur an den Nachfolger weitergegeben wird, bis zu O(N) Hops nötig sind.

3.4.2 Vor- und Nachteile von Chord

Chord erlaubt eine wesentliche Verbesserung des Routings gegenüber Gnutella, dazu sind die Vor- und Nachteile in Tabelle 3.4 zusammengefasst.

Vorteile Nachteile

+ Sehr schnelles Routing durch DHT - Dateien müssen erst im Chord- Netzwerk hochgeladen und verteilt + Ermöglicht ausgeglichene Datenver- werden teilung - Bei Aus- und Eintritt sowie Aus- + Sehr gut skalierbares Netzwerk, fall (Churn) einzelner Knoten muss sehr große Teilnehmerzahl möglich die Ringstruktur mit Querverweisen + Keine Abhängigkeit von einzelnen aktualisiert werden Knoten, geringe Fehleranfälligkeit

+ Hash-Werte verändern sich nicht

Tabelle 3.4: Vor- und Nachteile von Chord

3.4.3 Anwendbarkeit von Chord in WANs

Chord stellt eine sehr schnelle Möglichkeit dar, um Dateien in einem drahtlosen, ver- maschten WAN zu finden. Dabei kann Chord gut mit sehr vielen Teilnehmern umgehen (wichtig großes m wählen) und benötigt aufgrund der DHT und Hash-Funktion nur eine sehr geringe Anzahl an Hops, um eine Datei zu finden und anschließend eine Ver- bindung herzustellen. Dadurch, wird die stark limitierte Bandbreite eines drahtlosen WANs nicht durch eine große Anzahl von Abfragen belegt. Allerdings, muss sichergestellt werden, dass die Nachfolger und Zuteilung der Daten im Netz aktualisiert sind. Dazu sollte der Churn reduziert werden, da ansonsten diverse Anfragen gesendet werden um die Informationen im Chord-Ring zu aktualisieren. Diese Aktualisierung sowie der Beitritt von neuen Knoten wird in [SMK+01] und [MS07] beschrieben. Speziell in einem drahtlosen WAN sollte daher bei der Verwendung von

Hauptseminar Nikita Paul Chruscz 3 Protokolle zur Softwareverteilung 21

Chord sichergestellt werden, dass m groß genug gewählt wird und nicht zu viel Churn auftritt. Das Chord-Protokoll stellt an sich keine Funktion zur Verfügung mittels der Daten übertragen werden, jedoch ein sehr effizientes Routing zu Daten. Für die Anwendung von Chord wird außerdem eine Anwendung / Client benötigt, dieser kann wiederum ein Protokoll zur Übermittlung von Daten beinhalten. In den Knoten eines Chord-Rings können ganze Dateien, sowie anteilig Pakete abgelegt werden. Darauf aufbauend, könn- te in einem vermaschten WAN z.B. BitTorrents verwendet werden um die Datenpakete (Pieces) schnell zu verteilen. Inzwischen gibt es diverse Erweiterungen zum ursprünglichen Chord-Protokoll, die unterschiedliche Teilaspekte optimieren. So kann z.B. Chord an ein Underlay-Netzwerk (z.B. das Internet) angepasst und Latenzzeiten reduziert werden [MS07]. Eine Erwei- terung im Chord-Ring stellen sog. Replika-Knoten dar, die Dateien zwischenspeichern, um den Verlust von Dateien durch Ausfälle von Knoten zu kompensieren. Eine Möglichkeit die auf Chord basiert und konkret für die Verteilung von Dateien in drahtlosen, vermaschten Netzwerken konzipiert wurde, wird in [AGL09] und [AGL13] mit P2PMesh vorgeschlagen. Die Architektur eines Netzwerkes mit P2PMesh setzt sich aus zwei hierarchischen Ebenen mit Knoten zusammen. Dabei wird das vermaschte Overlay Netzwerk mittels Mesh-Routern gebildet, die eine P2P Suchfunktion ermögli- chen. Die untere Ebene besteht wiederum aus mobilen Mesh-Clients bzw. Knoten die Dateien teilen, diese Knoten sind jedoch nicht für die Suche von Dateien zuständig. P2PMesh soll insgesamt drei Funktionen anbieten können. Eine Datensuchfunktion, die ungleich verteilten Verkehr in einem Netzwerk ausgleicht. Darüber hinaus sollen Downloadpfade effizienter als bei anderen P2P Protokollen ermittelt werden und ein Protokoll zur Datenverteilung beinhalten, dass sich für multi-hop drathlose vermaschte Netzwerke mit begrenzter Bandbreite eignet [AGL13]. Insbesondere der letzte Punkt, stellt einen interessanten Ausblick für die Anwendung von P2PMesh in drahtlosen, ver- maschten WANs dar. Dieser Ansatz wurde jedoch noch nicht konkret implementiert und ist bisher nur ein Konzept, daher ist abzuwarten, ob und wie eine tatsächliche Umsetzung und Implementation in realen Netzwerken erfolgt.

Hauptseminar Nikita Paul Chruscz 4 Gegenüberstellung der Protokolle 22

4 Gegenüberstellung der Protokolle

Die zuvor analysierten Protokolle zur Softwareverteilung werden in Tabelle 4.1 zusam- mengefasst und so abschließend verglichen. Dabei werden die Protokolle unterschieden anhand von den folgenden Kriterien:

• Netzwerkstruktur

• Abhängigkeit von Servern

• Stärken

• Schwächen

• Anzahl Verbindungen eines Knotens

Hauptseminar Nikita Paul Chruscz 4 Gegenüberstellung der Protokolle 23 : be- m : Ein Successor Finger-Tabelle kannte Verbindungen Chord Strukturiertes P2P Kein Server im regu- lären Sinn vorhanden, Knoten dienen als Ser- ver und Client (Ser- vent) Mit Nachfolger (und theo- retisch ein Vorgänger) Mit abhängig von der An- zahl Knoten im Chord- Ring, maximal Sehr schnelles Routing, Lastverteilung, sehr stark skalierbar, gerin- ge Fehleranfälligkeit, konsistente Adressen Viel Churn, verursacht Aktualisierungen im gesamten Netzwerk 4 : Blät- ≤ : Theo- Gnutella2 Gnutella In ter 1-2 Verbindungen mit Hubs, Hubs meh- rere 100 Verbindungen zu Hubs und Blättern Gnutella Unstrukturiertes P2P Kein Server im regu- lären Sinn vorhanden, Knoten dienen als Ser- ver und Client (Ser- vent) In retisch möglich sind beliebig viele direk- te Nachbarn, in der Praxis üblich Ausfallsicherheit durch vermaschtes Netzwerk, schnelle Abfrage mög- lich, skalierbares Netz- werk Zu viele Anfragen bele- gen schnell viel Band- breite BitTorrent P2P mit Koordinati- onsserver Tracker ist notwendig damit alle Pieces her- untergeladen werden können, Tracker in- formiert Knoten über Pieces Eine Verbindung zum Tracker + theoretisch beliebig viele Verbin- dungen möglich zu Seeds beim Herunterla- den und Hochladen von Pieces Sehr schnelle Vertei- lung von stark nachge- fragten Dateien, kein Hochladen auf Server notwendig, konsistente Dateien, skalierbares Netzwerk Ausfall des Trackers, Dateien mit sehr ge- ringer Nachfrage laden langsamer herunter Tabelle 4.1: Gegenüberstellung der Protokolle zur Softwareverteilung FTP Client-Server-Modell Ohne Verbindung zum Server Totalausfall, kei- ne Softwareverteilung möglich Eine Verbindung zwi- schen Server und Kno- ten Einfacher Zugang, Identifikation des Cli- ents nötig, zentrale Datensicherung Ausfall des Servers, limitierte Bandbrei- te, Unterbrechungen der Client-Server- Verbindung Netzwerkstruktur Serverabhängigkeit Anzahl Verbindun- gen eines Knotens Stärken Schwächen

Hauptseminar Nikita Paul Chruscz 5 Weitere Anwendungsfälle der Protokolle 24

5 Weitere Anwendungsfälle der Protokolle

Die vorgestellten Protokolle, können alle für die Verteilung von Daten oder Software in WANs verwendet werden. Allerdings bieten sie auch noch weitere Anwendungsfälle in WANs. FTP kann zum Sichern von Dateien in einem Netzwerk verwendet werden. In diesem Fall ermöglicht die zentrale Architektur und die leichte Bedienung über einen Browser eine unkomplizierte Einrichtung. BitTorrents sind in der Vergangenheit häufig kritisiert worden, da sie bevorzugt verwendet werden, um urheberrechtliche Werke (z.B. Filme, Musik oder Programme) illegal zu verbreiten. Das ist darauf zurückzuführen, dass der Verkehr mittels P2P ge- schieht und so nicht direkt nachzuvollziehen ist, welche Dateien zwischen zwei Knoten ausgetauscht wurden. Außerdem wird für jede Datenübertragung ein eigenes Netzwerk aufgebaut, dabei weiß nur der Tracker welche Knoten in diesem Moment im Netzwerk beteiligt sind und somit sind die Knoten für außenstehende Teilnehmer unsichtbar [Urh]. Inzwischen gibt es für BitTorrent aber weitere Anwendungsfälle außerhalb von der einfachen Softwareverteilung. So wurde bereits 2007 von Bram Cohen dem Entwick- ler von BitTorrent angedeutet, dass Video-Streaming aufbauend auf dem BitTorrent- Protokoll möglich sein soll [Ern07]. Seit 2013 ist die erste Beta des BitTorrent Strea- ming Protokolls verfügbar. Anwendungen wie das oder bieten einen Media Player mit Video-Streaming über das BitTorrent Streaming Pro- tokoll an, es gibt aber auch Plugins zu klassischen BitTorrent Clients die das Video- Streaming über BitTorrents ermöglichen, wie z.B. Torrents-Time. Gnutella wird ausschließlich, als Such-Protokoll innerhalb eines P2P-Netzwerks oh- ne zentrale Steuerung verwendet. Das Gnutella-Netzwerk war bis 2010 das am meisten verwendete P2P-Netzwerk mit zwischenzeitlich 40% Marktanteil. Zu den beliebtesten Clients zählen LimeWire, und [TH09]. Auch Gnutella als P2P- Netzwerk wurde wegen vermehrt illegalem Filesharing kritisiert.

Hauptseminar Nikita Paul Chruscz 5 Weitere Anwendungsfälle der Protokolle 25

Chord wurde entwickelt mit der Intention als Komponente in P2P-Netzwerken ver- wendet zu werden. Dabei wurden die folgenden weiteren Anwendungsfälle für Chord identifiziert [SMK+01]:

• Cooperative Mirroring: In einem verteilten System arbeiten z.B. mehrere Softwareentwickler, die alle eine eigene Veröffentlichung teilen möchten. Diese können Chord verwenden, um die Veröffentlichungen der anderen zu spiegeln (engl. mirroring) und so gemeinsam zu arbeiten, ohne die gespiegelte Veröffent- lichung zu verändern. Auf diese Weise kann Chord auch zur Lastverteilung und Sicherung verwendet werden. So ist es einem Knoten möglich seine Daten auf mehrere Peers zu verteilen, anstelle eines zentralen Servers und dadurch die Verfügbarkeit der Daten sicherzustellen.

• Time-Shared Storage: Wie bereits in Kapitel 3.4.1 dargestellt, werden wenn ein Knoten dem Netzwerk beitritt die Dateien im Netzwerk gleichmäßig auf alle Knoten verteilt. Diese Tatsache ermöglicht ein verteiltes Dateisystem, wel- ches unter anderem auch der Datensicherung dient, z.B. für Knoten die nicht durchgängig mit dem Netzwerk verbunden sein können.

• Distributed Indexes: Ist ein Ansatz, um eine Suche mittels Schlüsselwörter ähnlich wie bei Gnutella oder Napster zu ermöglichen. Ein Schlüssel kann dabei von einem gesuchten String abgeleitet werden und der dazugehörige Wert kann eine Liste mit Knoten sein, die die Daten anbietet.

• Large-Scale Combinatorial Search: Z.B. in der Kryptoanalyse. Schlüssel sind Lösungskandidaten für ein Problem und jede Schlüsselzuordnung zu einem ver- antwortlichen Knoten, wird als Lösung bewertet.

Hauptseminar Nikita Paul Chruscz 6 Zusammenfassung und Fazit 26

6 Zusammenfassung und Fazit

WANs benötigen Protokolle, die mit der Herausforderung, die eine limitierte Datenrate darstellt, umgehen können. Dabei eignen sich manche Protokolle besser als andere für die Softwareverteilung. Außerdem muss berücksichtigt werden, wie genau das WAN aufgebaut und genutzt wird. Ältere Protokolle, wie das FTP eignen sich nur bedingt für drahtlose, vermaschte WANs, da ein zentraler Server und eine durchgängige Verbindung benötigt werden. Insbesondere, wenn die Software von mehreren Knoten gleichzeitig heruntergeladen wird, wird die Bandbreite eines WANs stark beansprucht und der Download sehr langsam. Aufgrund dieser Tatsachen und weil es nicht für vermaschte WANs geeignet ist stellt es keine sinnvolle Alternative zu den folgenden Protokollen dar. BitTorrent, Gnutella und Chord sind vielversprechende Protokolle zur Softwarever- teilung in WANs. Unter Berücksichtigung der Digitalisierung und Trends, wie dem Internet der Dinge, bieten die Protokolle eine Möglichkeit in WANs Daten trotz ge- ringer Bandbreite schnell zu übertragen und Netze mit extrem vielen Teilnehmern aufzubauen. BitTorrents bieten eine Möglichkeit die gesamte Bandbreite eines WANs zu nutzen und stellt insgesamt eine sinnvolle Alternative für drahtlose, vermaschte Netzwerke dar. Besonders wenn eine Software auf alle Knoten eines WANs verteilt werden soll, kann durch das Seeding ein sicherer Download gewährleistet werden, da durch den Ausfall eines einzelnen Knotens kein Totalausfall eintritt. Allerdings entsteht beim Verwenden von BitTorrents eine Abhängigkeit von einem Tracker, dieser stellt auch ein Risiko für einen Totalausfall dar. Darüber hinaus, werden Dateien, die z.B. nur im Besitz eines Seeds sind und eine geringe Nachfrage haben nur langsam heruntergeladen. Daher eignet sich BitTorrent insbesondere dann für ein WAN, wenn die Software von vielen Knoten nachgefragt wird oder an viele Knoten gleichzeitig verteilt werden soll. Gnutella bzw. Gnutella2 eignen sich sehr gut in WANs mit sehr vielen Knoten. Sie ermöglichen durch ihren vermaschten Aufbau eine sichere Verbindung und ermitteln über das Result Set die schnellsten Verbindungen zum Herunterladen einer Datei. Das

Hauptseminar Nikita Paul Chruscz 6 Zusammenfassung und Fazit 27

Risiko, dass ein Serverausfall zu einem Totalausfall führt, besteht mangels Servern in dieser Architektur nicht. Zu beachten ist, dass es auch BitTorrent Clients gibt wie z.B. Shareaza, die das Gnutella-Protokoll unterstützen, wodurch auf beide Protokoll zurückgegriffen werden kann. Das Chord-Protokoll erlaubt eine sehr ausgeglichene Datenverteilung und einen sehr ausgeglichenen Suchalgorithmus mittels Finger-Tabellen im Netzwerk. Es eignet sich für vermaschte WANs mit sehr vielen Teilnehmern. Es sind weitere Untersuchungen nö- tig, um festzustellen, wie Chord in realen WANs funktioniert. Es bietet jedoch, unter den vorgestellten Protokollen, den größten Vorteil in Netzen mit den meisten Teil- nehmern. Dies ist besonders zukunftsträchtig angesichts der anstehenden Ansprüche wie dem Internet der Dinge, mit steigenden Zugriffszahlen und Abfragen. Außerdem bietet P2PMesh einen vielversprechenden Ausblick für die Verwendung in drahtlosen, vermaschten WANs.

Hauptseminar Nikita Paul Chruscz Literaturverzeichnis 28

Literaturverzeichnis

[Adm13] Admin-Magazin: Admin-Magazin - Softwareverteilung. ://www. admin-magazin.de/Themen/Softwareverteilung. Version: 2013. – De- fintion von Softwareverteilung des Admin-Magazins [Online; zuletzt abge- rufen am 08.01.2019]

[AFM05] Aggarwal, Vinay ; Feldmann, Anja ; Mohr, Sebastian: Implementa- tion of a P2P System within a network simulation framework. Technische Universität München, 2005. – Erschienen in: ECCS P2P-Complex Work- shop

[AGL09] Asaad, Amr A. ; Gopalakrishnan, Sathish ; Leung, Victor: Peer-to- Peer File over Wireless Mesh Networks. IEEE, 2009. – Erschienen in: IEEE Pacific Rim Conference on Communications, Computers and Si- gnal Processing

[AGL13] Asaad, Amr A. ; Gopalakrishnan, Sathish ; Leung, Victor: Exten- ding P2PMesh: topology-aware schemes for efficient peer-to-peer data sha- ring in wireless mesh networks. https://onlinelibrary.wiley.com/doi/ abs/10.1002/wcm.1115. Version: 5, 2013. – Erschienen in: Wireless Com- munications and Mobile Computing, S. 483-499. Online; zuletzt abgerufen 12.01.2019

[Ber92] Berson, Alex: Client-server architecture. McGraw-Hill, 1992. – No. IEEE- 802

[Con04] Conrads, Dieter: Telekommunikation: Grunlagen, Verfahren, Netze. 5. Vieweg+Teubner Verlag, 2004 (Informationstechnik). – Kapitel 4.2.9.2

[Cow12] Cowley, John: Communication and Networking. 2. Springer, 2012 (Un- dergraduate Topics in Computer Science). – Kapitel 5

[Don17] Donner, Andreas: Was ist ein WAN (Wi- de Area Network)? https://www.ip-insider.de/

Hauptseminar Nikita Paul Chruscz Literaturverzeichnis 29

was-ist-ein-wan-wide-area-network-a-711503/. Version: 2017. – [Online; zuletzt abgerufen am 09.01.2019]

[Erd06] Erdmann, Fokko: Softwareverteilung und -Bereitstellung im Internet und Netzwerk auf Basis der J2EE-Architektur. Universität Lüneburg, 2006 http://opus.uni-lueneburg.de/opus/volltexte/2006/368/. – Defin- tion von Softwareverteilung im Rahmen der Diplomarbeit [Online; zuletzt abgerufen am 08.01.2019]

[Ern07] Ernesto: BitTorrent launches Ad Suppor- ted Streaming. https://torrentfreak.com/ -launches-ad-supported-streaming-071218/. Version: 2007. – [Online; zuletzt abgerufen am 14.01.2019]

[HTS03] Hu, Tim H. ; Thai, Binh ; Seneviratne, Aruna: Supporting Mobile Devices in Gnutella Network with Mobile Agents. IEEE, 2003. – Erschienen in: Proceedings of the Eighth IEEE Symposium on Computers and Communications. ISCC 2003

[Kö02] König, Hartmut: Protocol Engineering: Prinzip, Beschreibung und Ent- wicklung von Kommunikationsprotokollen. 1. Vieweg+Teubner Verlag, 2002. – Kapitel 2

[Lam18] Lammle, Todd: CompTIA Network+ Study Guide: Exam N10-007, 4th Edition and Networking. 4. Sybex, 2018 (Undergraduate Topics in Com- puter Science)

[MS07] Mahlmann, Peter ; Schindelhauer, Christian: Peer-to-Peer-Netzwerke. Springer, Berlin, Heidelberg, 2007 (EXAMEN). – Kapitel 5

[PR85] Postel, Jon ; Reynolds, J.: FILE TRANSFER PROTOCOL (FTP). https://tools.ietf.org/html/rfc959. Version: 1985. – [Online; zuletzt abgerufen am 09.01.2019]

[RG14] Rhodes, Brandon ; Goerzen, John: Foundation of Python Network Pro- gramming. 3. Apress, Berkeley, CA, 2014. – Kapitel 17

[Rip02] Ripeanu, Matei: Peer-to-peer architecture case study: Gnutella network. IEEE, 2002. – Erschienen in: Proceedings First International Conference on Peer-to-Peer Computin.g S. 99-100

Hauptseminar Nikita Paul Chruscz Literaturverzeichnis 30

[SBC+08] Sbai, Mohamed K. ; Barakat, Chadi ; Choi, Jaeyoung ; Hamra, An- war A. ; Turletti, Thierry: Adapting BitTorrent to Wireless Ad Hoc Networks. Springer, Berlin, Heidelberg, 2008. – Erschienen in: ADHOC- NOW 2008: Ad-hoc, Mobile and Wireless Networks. S. 189-203

[SMK+01] Stoica, Ion ; Morris, Robert ; Karger, David ; Kaashoek, M. F. ; Balakrishnan, Hari: Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications. ACM, 2001. – Erschienen in: Proceedings of the 2001 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications. S. 149-160

[TH09] Taylor, Ian J. ; Harrison, Andrew B.: From P2P and Grids to Services on the Web. Springer, London, 2009. – Kapitel 10, 13

[Urh] Urheberrecht.de: BitTorrent: Schnelle Downloads und illegales Files- haring. https://www.urheberrecht.de/bittorrent/. – [Online; zuletzt abgerufen am 13.01.2019]

Hauptseminar Nikita Paul Chruscz Abbildungsverzeichnis 31

Abbildungsverzeichnis

2.1 Beispielhaftes europaweites vermaschtes WAN ...... 2 2.2 Verschiedene Netzwerkstrukturen für Filesharing ...... 5

3.1 Beispielhaftes BitTorrent Netzwerk mit Verteilung von DateiX . . . . . 10 3.2 Beispielhaftes Gnutella Netzwerk mit Verteilung von DateiY ...... 14 3.3 Beispielhafter Chord-Ring mit m = 4 nach Einbindung von vier Knoten und zwei Dateien ...... 17 3.4 Chord-Ring mit Finger-Zeigern und Finger-Tabelle von N10 ...... 18 3.5 Routing im Chord-Ring von N10 zu K3 ...... 19

Hauptseminar Nikita Paul Chruscz Tabellenverzeichnis 32

Tabellenverzeichnis

3.1 Vor- und Nachteile von FTP ...... 7 3.2 Vor- und Nachteile von BitTorrent ...... 11 3.3 Vor- und Nachteile von Gnutella ...... 15 3.4 Vor- und Nachteile von Chord ...... 20

4.1 Gegenüberstellung der Protokolle zur Softwareverteilung ...... 23

Hauptseminar Nikita Paul Chruscz Abkürzungsverzeichnis 33

Abkürzungsverzeichnis

AOL ...... America Online DHT ...... ETCS ...... European Train Control System FTP ...... File Transfer Protocol FTPS ...... FTP over SLL GGEP ...... Generic Gnutella Extension Protocol HAMNET ...... Highspeed Amateurradio Multimedia NETwork HTTP ...... Hypertext Transfer Protocol IP ...... Internet Protocol LAN ...... Local Area Network LTE ...... Long Term Evolution P2P ...... Peer-to-Peer QRP ...... Query-Routing-Protokoll Servent ...... Server und Client SFTP ...... SSH File Transfer Protocol SHA ...... Simple hash algorithm SSH ...... Secure Shell Protocol TCP ...... Transmission Control Protocol TTL ...... Time to Live UID ...... User ID URL ...... Uinform-Rresource-Locator WAN ...... Wide Area Network

Hauptseminar Nikita Paul Chruscz Erklärung 34

Erklärung

Die vorliegende Arbeit habe ich selbstständig ohne Benutzung anderer als der angege- benen Quellen angefertigt. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlich- ten Quellen entnommen wurden, sind als solche kenntlich gemacht. Die Arbeit ist in gleicher oder ähnlicher Form oder auszugsweise im Rahmen einer oder anderer Prü- fungen noch nicht vorgelegt worden.

Ilmenau, den 31. 12. 2011 Nikita Paul Chruscz

Hauptseminar Nikita Paul Chruscz