25
Internet Web Applications (Subject) / 6) File Sharing (Lesson)
Advertisement
- Was bezeichnet man als Filesharing? Das Verfügbarmachen von Datein, damit andere User diese über Internet oder Intranet herunterladen können
- Wie unterscheiden sich die drei Peer to Peer Arten? Centralized Alle Knoten sind an einem zentralen Knoten gebunden, welcher als Directory funktioniert Pure P2P –Decentralized, Flat Kein zentraler Knoten, jeder Knoten ist mit irendeinem Nachbar verbunden, Nachrichten werden geflooded bis sie am Ziel angekommen ist. Hybrid P2P –Decentralized, Hierarchical Es gibt Supernodes, welche Teil-Directories besitzen -> Flooding zwischen den Supernodes
- Vergleich der drei Arten von Peer to Peer Architektur! Centralized Geringer Overhead Limitierte Skalierbarkeit Fault Tolerance low, wenn eine Komponente ausfällt, fällt alles aus Geringe Komplexität Decentralized,flat hoher Overhead durch Flooding Limitiert durch Flooding Fault Tolerance high Mittlere Komplexität Decentralized,hierarchical medium Overhead, wächst mit Anzahl Superpeers Hohe Skalierbarkeit Fault Tolerance mittel, wenn Superpeer ausfällt, ist nur dessen Untermenge nicht mehr erreichbar Hohe Komplexität
- Warum eignen sich P2P eher für File Sharing? Dezentrales Datenmanagement Peers sind sowohl Client als auch Server User können auf Millionen von Datein zugreifen und verteilen Datein können direkt auf den lokalen Festplatten des Peers erreicht werden
- Wie läuft Centralized P2P ab? Napster 1) Peer registriert sich auf einem Central Server, veröffentlicht seine IP und eine Liste von Datein, welche er veröffentlichen möchte 2) Peers senden Requests an den Central Server, dieser antwortet mit einer Liste von Peers mit den angefragten Objekten 3) Nach Auswahl findet der Datenaustausch direkt zwischen den Peers statt
- Wie unterscheidet sich Decentralized P2P von C-P2P? Es gibt keinen Central Server, nur noch Peers, welche sowohl als Client als auch als Server arbeiten. (Servents)
- Wie funktioniert D-P2P? Verbindung wird mit einer "connect message" an einen Peer des Netzwerks aufgebaut, welche mit OK bestätigt wird, falls dieser joinen darf Um neue Peers zu entdecken broadcastet der Peer einen Ping. Die verbundenen Peers antworten daraufhin mit einem Pong. Um bestimmten Inhalt zu finden sendet der Peer eine Query mit einer TTL an alle seine Nachbarn. Die TTL zählt die Hops. Wird diese überschritten, so wird die Query verworfen. Hat ein Nachbar die Datei sendet er einen QueryHit.
- Vor und Nachteile von DP2P (1.)? Dezantralisiert (Kein Bottleneck und Single Point of Failure) Hauptsächlich Anonynm Hoher Traffic aufgrund der Ping und Pong Packete Nicht geschützt gegen Fire Queries Hoher Traffic durch Loops (TTL schränkt dies nur bedingt ein) QueryHit Rate ist vor allem bei großen Netzwerken durch TTL reduziert
- Wie unterscheidet sich die zweite Generation von P2P zur ersten? Es gibt sogenannte SuperNodes, welches zB. Servents mit gutem Internet sein können Jede SuperNode bekommt leaf-nodes zugewiesen (bis zu 200) -> Verringert den Nachrichten Transfer
- Wie findet man bestimmten Content im P2P der zweiten Generation? Query Message wird an SuperNode gesendet SuperNode besitzt einen Route Table und schaut dort nach, wer von den Leafs den File haben könnte SuperNode leitet Query an Leaf weiter (Query Hit wenn erfolgreich) Leafs senden bei neuer Informationen RouteTableUpdate an SuperNode um über dessen Content zu informieren Je nach TTL kann eine SuperNode auch weitere SuperNodes befragen Direkter File Transfer zwischen den Leafs möglich
- Advertisement
- Was ist ein Distributed Hast Table? Datenstruktur, die dazu genutzt werden kann, den Speicherort einer Datei in einem P2P-System zu speichern. Dabei werden (Key,Value) Paare auf alle nodes verteilt. Key: Hash Object Identifier Value: IP, Port, Node ID
- Wie lautet der Algorithmus des Distributed Hast Tables grob? Wie findet man einen bestimmten Wert? Jede Node n kennt seine Nachbarn (succesor) Jede Node managed den Adressraum s von sich selbst und seines Vorgängers Um einen Wert zu finden Initialisierte Node sucht nach einem bestimmten Wert eines Keys ("my data") Prüfen, ob Node diesen Wert selbst besitzt Wenn nicht, sende "FindValue" an den Nachfolger (succ) Hat dieser den Wert, sende diesen Wert solang an alle Nachfolger bis die initalisierte Node erreicht wird Ansonsten sende "FindValue" weiter an alle Nachfolger
- Was passiert wenn eine neue Node den Ring betritt bzw. verlässt? (DTH) Wenn eine neue Node joined , muss der zugehörige Manager dessen Adressraum aufteilen Die Neue node bekommt eine succ(n) und dessen Vorgänger updatet seine succ(n) Verlässt eine Node das Netzwerk, dann übernimmt dessen Nachfolger dessen Adressraum. Hier updatet der Vorgänger ebenso seine succ(n)
- Welche Probleme treten bei unstrukturierten P2P Netzwerken auf? Das Look-up Problem Datenelemente in einem verteilten System paltzieren und finden, was sowohl skalierbar als auch efifzient ist. Centralized P2P -> nicht skalierbar Decentralized P2P -> nicht skalierbar, keine Erfolgsgarantie (TTL)
- Wie trägt man beim Kademlia Algorithmus die Entries in die k-buckets ein? 1) Berechne die Entfernung der Binary Zahl (Node ID) zu den anderen (Entries) Bsp. 1001 1010 , 0111 -> Entfernung = 1, 2 Einfach subtrahieren (XOR) 2) Diese werden dann in die k-buckets eingetragen, in die entsprechende distance spalte
- Wie berechnet man die maximale Nummer an Schritten im Kademlia Algorithmus? Beide Zahlen addieren (XOR) und in Dezimal umwandeln Dann ld(x)
- Welche Operationen besitzt Kademlia? PING -> Dient lediglich der Ermittlung, ob ein Knoten online ist FIND_NODE -> Ermitteln der "k" nächsten Knoten zu einer Knotenadresse FIND_VALUE -> Suche und Abfragen des Wertes aus dem Schlüssel-Wert-Paares zu einem Schlüssel STORE -> Abspeichern eines Schlüssel-Wert-Paares auf einem Knoten
- Was ist der Kademlia Algorithmus? Die NodeIDs werden auf Blätter eines Binary Trees gemapped, also Nodes ohne Nachfolger Dabei stellt ein Präfix eine einzelne Node dar, der alle IDs in seinem Teilbaum verwaltet Nach jedem Hop kommt man auf einen Teilbaum, von welchem jede Node erreicht werden kann Bei der Struktur handelt es sich um einen Binary Tree Jede Node besitzt eine Liste namens k-buckets, wo benachbarte Nodes mit Distanz gespeichert sind Jede Node kennt mindestens eine Node innerhalb eines k-buckets (zb. distance 1 , distance 2) Sortiert sind diese nach "zuletzt entdeckt" (ganz unten)
- Welche Szenarien gibt es beim Update des k-Buckets? Sender Node ist bekannt -> verschiebe Node ans Ende des Buckets Sender Node ist unbekannt und k-Bucket ist voll -> Sende erst Ping an die oberste Node, wenn diese nicht antwortet verwerfe diese und füge die neue hinzu, ansonsten nicht Sender Node ist unbekannt und k-Bucket ist nicht voll -> Erstelle neue Node und schiebe diese ans Ende des Buckets
- Welche Dritte Generation File Sharing Systems gibt es? Structured P2P BitTorrent Freenet
- Was ist BitTorrent? Vor und Nachteile? BitTorrent ist ein kollaboratives Filesharing-Protokoll, das sich besonders für die schnelle Verteilung großer Datenmengen eignet. Im Gegensatz zu anderen Filesharing-Techniken setzt BitTorrent nicht auf ein übergreifendes Filesharing-Netzwerk, sondern baut für jede Datei ein separates Verteilnetz auf. Dabei werden Chunks geup und gedownloaded. + Sehr Effizientes File Sharing System + Sehr gut skalierbar aufgrund von Swarming - Tracker ist ein Single Point of Failure - Keine bestimmte Dateisuchfunktion
- Auf was basiert BitTorrent? Ein Webserver, welcher einen .torrent File anbietet Ein Tracker, welcher eine Liste der Clients/Peers führt , welche eine bestimmte Datei herunterladen Ein Client Programm welches als Peer fungiert (Leecher oder Seeder)
- Welche Methoden gibt es um die Effizienz von BitTorrent zu improvisieren? - Datei wird in Chunks unterteilt und kann dann von verschiedenen Peer heruntergeladen werden - Client lädt den File von verschiedenen Peers gleichzeitig runter (Swarming) - Während ein Peer ein File herunterlädt, bietet er Chunks davon schon zum Download an
- Wie läuft ein Datenaustausch über BitTorrent ab? Die Torrent Datei wird von BitTorrent Client gefetched (Web Server, Peer) Der Tracker, welcher zuständig für die Datei ist, wird kontaktiert und sendet eine Liste an Peers , von wo Chunks der Datei heruntergeladen werden können Die Peers werden benachrichtigt und ein Request an eine List von Chunks wird gesendet Nachdem die Liste angekommen ist, sucht der Client sich aus, bei welchem Peer er nun die Chunks herunterladen möchte
- Was ist FreeNet? Dezentralisiertes, zensurfreies, anonymes und verteiltes Datenlager Im Unterschied zu BitTorrent sind die Datein verschlüsselt. Der Schlüssel ergibt sich eindeutig aus dem Hash-Wert des enthaltenen Inhalts und hat vom Aussehen her nichts mit dem Inhalt zu tun. Die Verschlüsselung erfolgt über Signed-subspace key (SSK), ein asymmetrisches Kryptosystem für einen persönlichen Namensraum, den jeder lesen, aber nur der Besitzer beschreiben kann. Nachteil ist, dass man nicht weiß, was für Datein man bereitstellt (illegal???)