Pastry - Tapestry. Raimar Wagner. November 2006

Größe: px
Ab Seite anzeigen:

Download "Pastry - Tapestry. Raimar Wagner. November 2006"

Transkript

1 Pastry - Tapestry Raimar Wagner November Einleitung Das Schlagwort Peer-to-Peer ist in den heutigen Medien zu einem Synonym für Filesharing geworden, es wird jedoch meist nur die juristische und gesellschaftliche Relevanz des Themas aufgegriffen. Deren Scheitern oder Erfolg lässt sich meist in direkten Zusammenhang mit den technischen Grundlagen von Peer-to-Peer Systemen bringen, da sich ihr Design erheblich auf die spätere Leistungsfähigkeit und Zuverlässigkeit auswirkt. Auch die Wissenschaft beschäftigt sich seit geraumer Zeit mit den technischen Problemen die ein Peer-to-Peer System mit sich bringt. Die Ziele eines Peer-to-Peer Systems nach [Jan04] sind vereinfacht: Sichere Ortung: Da es per Definition keinen Server gibt, muss auf anderem Weg gewährleistet werden dass, falls ein Objekt im Netzwerk vorhanden ist, es auch gefunden wird. kürzeste Routingstrecke: Das Routing zu einem Zielknoten sollte auf dem schnellst möglichen Weg im Sinne der Nachbarschaftsmetrik 1 der darüberliegenden Schicht erfolgen. Lastausgleich: Kein Knoten im Netzwerk sollte übermäßig belastet werden. Skalierbarkeit: Das System muss auf ankommende und gehende Knoten gut reagieren können. Gleichberechtigung: Kein Knoten darf besondere wichtige Kompetenzen allein besitzen, da sonst ein Single Point of Failure 2 möglich wird. Im Folgenden will ich zwei Systeme vorstellen, die diese Eigenschaften erfüllen. Damit sind Pastry und Tapesty echte Peer-to-Peer Systeme, im Gegensatz zu hybriden Systemen wie Napster. Auf Ähnlichkeiten und den Vergleich der beiden Systeme will ich am Ende der Ausarbeitung eingehen. 2 Pastry Pastry wurde 2001 von Antony Rowstron (Microsoft Research, Cambridge, GB) und Peter Druschel (Rice University, Houston, Texas) entwickelt und veröffentlicht [RoDr01]. In Pastry wird jedem Client eine eindeutige 128-bit lange Identifikationsnummer (NodeID) zugewiesen. Dies geschieht entweder durch bildes eines Hashwerts der IP-Adresse oder durch Zufallsgeneratoren. Im Weiteren müssen wir 2 Metriken unterscheiden: 1 In unserem Fall meist die Messung der Pingzeit oder die Anzahl der Routing Hops. 2 Ein Knoten mit zuvielen Kompetenzen kann die Integrität des Netzes beschädigen, falls er ausfällt.

2 1. Nachbarschaftsmetrik : Eine Nachbarschaftsmetrik dist P (x, y) gibt den Abstand zweier Knoten x und y auf Basis von Pingzeiten oder Hops an. 2. numerische Metrik : Eine numerische Metrik dist N (x, y) gibt den Abstand zweier Knoten in Form von der numerischen Nähe von x und y wider. In der Praxis bedeutet das dass die Präfixe von N odeid(x) und N odeid(y) verglichen werden und je größer die Übereinstimmung ist, desto näher sind sich die Knoten nach der numerischen Metrik. Durch die zufällige Verteilung der NodeIDs wird gewährleistet, dass numerisch nahe Knoten nach der Nachbarschaftsmetrik gut gestreut sind. Eine Verklumpung hätte erhebliche Routingnachteile, da bei einem Ausfall von z.b. einem IP Segment möglicherweise einige Knoten komplett vom Restnetz abgeschnitten werden könnten. 2.1 Der Pastry Node Ein Pastry Node besteht aus drei Tabellen: Die Routing Table: Die für das Routing zuständige Tabelle Das Neighborhood Set: Hier ist Nähe im Sinne der Nachbarschaftsmetrik gemeint. Die Leaf Set: Hier ist Nähe im Sinne der numerischen Metrik gemeint. Abbildung 1: PastryNode nach [RoDr01] Mit der Routing Table wird später, wie der Name schon sagt, das Routing ausgeführt. Basierend auf einem Konfigurationsparameter b besteht die Routing Table aus log 2 b N Zeilen mit je 2 b 1 Einträgen. Die Zahl N entspricht im weiteren der Anzahl der möglichen Nodes im NodeID Space. Die genaue Herkunft dieser Zahlen wird bei praktischer Betrachtung klar. Des weiteren ist die NodeID dargestellt als Sequenz von Ziffern der Basis 2 b. In unserem Fall wählen wir b = 2 und einen NodeID-Bereich von 0 bis an, dann hat unsere Routing Table acht Zeilen zu je drei Einträgen. In der nullten 3 Zeile der Routing Table stehen IP- Adressen von NodeIDs, deren NodeID keinen Präfix mit der NodeID des Knotens selbst gemeinsam hat. In der ersten Zeile die IP-Adressen deren NodeID Präfix eine Ziffer mit der NodeID des Knoten gemeinsam hat und so weiter. Allgemein gesagt: Die Knoten in der Zeile n teilen mit dem Knoten selbst die ersten n Ziffern im Präfix. In jeder Zeile muss auch gewährleistet sein, dass das n + 1te Zeichen nicht doppelt vorkommt. Das Neighborhood Set enthält NodeIDs und die dazugehörigen IP-Adressen von nahen Knoten im Sinne der Nachbarschaftsmetrik. Diese Tabelle ist am Routingvorgang nicht beteiligt, aber wichtig für das Erhalten der Lokalitätseigenschaft (z.b.: beim Einfügen). Das Leaf Set enthält die numerisch nahen Knoten, die für das Routing wichtig sind. Es werden zu gleichen Teilen Knoten mit größerer und kleinerer NodeID gespeichert. Die Bezugsgröße ist hier die 3 Man zählt die Zeilen ab 0, dies ist reine Definitionssache.

3 eigene NodeID. Die Anzahl der Einträge im Leaf Set und im Neighborhood Set sind Definitionsssache und werden meist 2 b oder 2 b+1 gewählt. 2.2 Routing Das Routing beschreibt den Vorgang wie ein Knoten auf das Ankommen einer Nachricht, die nicht für ihn bestimmt ist, reagiert. Eine Nachricht ist in Pastry immer mit einer NodeID für den Empfänger (auch MessageID genannt) gekennzeichnet. Für die Weiterleitung der Nachricht werden zwei der drei vorhanden Tabellen die im Knoten vorgehalten werden gebraucht, nämlich die Routing Table und das Leaf Set. Der Algorithmus sieht wir folgt aus: 1. Vergleiche die NachrichtenID zuerst mit allen NodeIDs im Leaf Set, falls die MessageID der Nachricht in dem vom Leaf Set abgedeckten Bereich fällt wird die Nachricht sofort zugestellt. 2. Ermittele Präfixübereinstimmung i mit eigener NodeID. (z.b.: wäre bei NodeId und NachrichtenID die Präfixübereinstimmung i = 3) 3. Gehe nun in die i-te Zeile der Routing Table und wähle diejenige NodeID aus, deren i + 1-tes Zeichen mit dem i + 1-ten Zeichen der MessageID übereinstimmt. Leite nun die Nachricht an diesen Knoten weiter. 4. Falls kein so ein Knoten gefunden wird, schicke die Nachricht an den numerisch nächsten Knoten aus Leaf Set Routing Table Neighborhood Set. Nach [RoDr01] liegt die Wahrscheinlichkeit pro Nachricht dass dieser Fall auftritt zwischen 0.02 und Performance Da im ersten Fall der Knoten sofort gefunden ist und im zweiten Fall die Anzahl von Knoten mit längerem Präfix immer um 2 b sinkt, hat dieser Algorithmus eine Laufzeit von log 2 b N. Der dritte Fall kann vernachlässigt werden, da er nur selten auftritt (siehe oben). 2.3 Einfügen eines Knoten Zuerst braucht der neu hinzukommende Knoten φ die NodeID eines vorhanden Knoten ϕ, der nach der Nachbarschaftsmetrik nah sein sollte. Warum dies der Fall sein sollte wird später klar. Diesem Startknoten (hier ϕ) sendet φ eine spezielle Join-Message deren Aufgabe es ist die 3 Tabellen von φ zu füllen. Die Beitrittsnachricht hat als Zieladresse die NodeID von φ selbst. Dies garantiert dass die Nachricht die Knoten erreicht, die dem neuen Knoten nach der Umgebungsmetrik nahe sind. Das Leaf Set kann der neue Knoten einfach von dem letzten Empfänger der Beitrittsnachricht kopieren, da er φ numerisch am nächsten ist. Das Neighborhood Set lässt sich ebenfalls einfach füllen, da angenommen wird dass ϕ topologisch nah zu φ ist. Falls das nicht gegeben sein sollte, hat dies nur zur Folge dass das Netzwerk langsamer wird. Die Join-Message versucht nun die eigene NodeID zu finden. Auf dem Weg verlängert sich das gemeinsame Präfix immer weiter um eins und der Knoten kann so aus den Routing Tables der anderen Knoten die Einträge übernehmen. Anschaulich gesagt, wenn der Knoten die ersten k Stellen mit dem neu hinzugekommenen Knoten gemeinsam hat, kann dieser die ersten k Zeilen seiner Routing Table übernehmen.

4 2.4 Löschen eines Knotens In einem dezentral organisierten Netz muss gewährleistet werden, dass Knoten ordnungsgemäß aus dem System gelöscht werden. So ist gewährleistet dass keine Nachrichten ins Leere laufen. Hier kommt nun das Neighborhood Set zum tragen, denn hier sind alle topologisch nahen Knoten verzeichnet. Jeder Knoten sendet in periodschen Abständen eine Art Ping an die Knoten im Neighborhood Set, denn hier ist die Laufzeit eines Lebenssignals am kürzesten. Falls nun ein Knoten nicht antwortet, wird eine Nachricht an die NodeID des betreffenden Knoten geschickt. Diese erhält nun ein Knoten in dessen Leaf Set der tote Knoten steht. Dieser wird gelöscht und alle anderen Knoten im Leaf Set erhalten eine Nachricht diesen Knoten zu löschen. Falls es sich nun bei einem Routingvorgang rausstellt, dass ein Eintrag der Routing Table defekt ist, muss dieser repariert werden. Dazu werden nach und nach die anderen Knoten in der selben Zeile der Routing Table nach ihrem Eintrag an dieser Stelle befragt. Falls ein Eintrag passt wird dieser übernommen. Falls nun in der gesamten Zeile kein Knoten diesen Eintrag vorhält wird in der nächsten Zeile inspiziert und so weiter. 2.5 Objektmanagement Um das Management von Objekten vergleichen zu können wird in [Her02] beschrieben wie Past, eine Anwendung des Pastry Algorithmus, Objekte verwaltet. In Past wird einem Objekt ein Hashwert zugeordnet und dann das Objekt an den, dem Hashwert numerisch nächsten Knoten geschickt. Von dort aus wird die Datei noch an k Nachbarknoten verteilt. So ist statistisch eine gute Verteilung des Objekts gewährleistet. 2.6 Experimentelles In [RoDr01] werden noch ausführliche Experimente mit Pastry dokumentiert. Die wichtigsten Punkte sind: Skalierung: Die Anzahl der Hops zur Anzahl der Knoten verhält sich logarithmisch. Das kann als optimal bezeichnet werden. Die meisten Knoten konnten in einem großen Netz über nur 4 Hops erreicht werden, kein Routingvorgang hat mehr als 5 Hops gebraucht. Distanz: Die Distanz zweier Knoten ist um nur 30-40% größer als bei direktem Routing. Sie nimmt auch bei steigender Knotenmenge nicht zu. 3 Tapestry Tapestry wurde 2001 von Ben Y.Zhao, John D. Kubiatowicz und Anthony D. Joseph von der University of California in Berkely (CA) entwickelt und veröffentlicht [ZhKuJo01]. Dieses System besteht ebenfalls aus Knoten (englisch Nodes), die ebenfalls durch NodeIDs gekennzeichnet sind. In Tapestry sind diese NodeIDs 40-stellige Hexadezimalzahlen zur Basis 16. Die NodeIDs werden ebenfalls zufällig mittels Hashing vergeben. 3.1 Der Tapestry Node und das Objekt Der Tapestry Knoten hat im Gegensatz zu einem Pastry Knoten nur eine Tabelle: die sogenannte Neighborhood Map. Dort sind, nach Leveln geordnet, die Nachbarknoten gespeichert. Die Level geben an, ab der wievielten Stelle sich die NodeID von der eigenen NodeId unterscheidet. Bei Level

5 4 ist die 4. Stelle eine andere (Siehe Abbildung 2). Der numerisch nächste Knoten in einem Level wird primärer Knoten genannt. Diese werden aktiv beim Routing benutzt, die restlichen Einträge dienen nur der Ausfallsicherheit. Jeder Knoten hält auch noch Referenzen, sogenannte Vorgänger-Zeiger (im englischen backpointer) auf Knoten die auf ihn verlinken. Diese Verweise sind aber nur für das Einfügen von Knoten relevant. Bei Tapestry gibt es, im Gegensatz zu Pastry, eine ausgefeilte Objekt-Behandlung. Objekte sind Dateien oder Pakete mit Inhalt die ausgetauscht werden sollen. Jeder Knoten der ein Objekt vorhält nennt man Speicher-Server (im englischen Storage-Server). Jedes Objekt hat eine Menge von sogenannten Wurzel-Knoten (im englischen Root-Peers) deren Aufgabe die Verwaltung der Links der Speicher-Server ist. Im System existiert eine Funktion M aproots(ϑ) die für jeden Knoten ϑ die zugehörigen Wurzel-Knoten zurückgibt. Die genaue Funktionsweise dieses Algorithmus wird im Abschnitt Surrogate-Routing beschrieben. 3.2 Routing Abbildung 2: Tapestry Knoten 4231 frei nach [Roe05] Das übermitteln von Nachrichten in Tapestry geht ähnlich von statten wie bei Pastry. Wenn eine Nachricht an einen Knoten ζ weitergeleitet werden soll, wird in der Neighborhood Map der Knoten gesucht dessen NodeID in den meisten Stellen mit der NodeID von ζ übereinstimmt. So kommt die Nachricht dem Knoten ζ in jeden Schritt um ein Stelle in der NodeID näher. 3.3 Surrogate Routing Objektbereistellung Falls ein Knoten nun ein Objekt in das Netzwerk einbringt besteht die erste Aufgabe darin bei dem Wurzel-Knoten bekannt zu machen dass er nun als Speicher-Server fungiert. Dazu werden als erstes die eindeutigen Wurzel-Knoten mittels MapRoots( ) bestimmt. Nun wird an die Wurzel-Knoten eine Nachricht geschickt, dass ein neuer Speicher-Server vorhanden ist. Alle Knoten, die die Nachricht auf dem Weg zum Wurzel-Knoten passiert, speichern nun auch ein Tupel aus Referenz auf den Speicher- Server und der ObjektID. Die Referenzen auf Speicher-Server verfallen nach einiger Zeit, sodass der Speicher-Server diese Prozedur in regelmäßigen Abständen wiederholen muss Objektsuche Falls nun ein Knoten ein Objekt sucht bestimmt er als erstes die dazugehörigen Wurzelknoten. Nun schickt er eine Nachricht an die Wurzel-Knoten in denen er die Adressen der Speicher-Server anfordert. Da die Nachricht aber über mehrere andere Knoten geht ist sehr wahrscheinlich dass einer der Knoten zwischen dem Wurzel-Knoten und dem Anfordernden Knoten schon eine Referenz auf den Speicher-Server vorliegen hat. Das kommt daher dass ja beim Bekanntmachen des Speicher-Servers mit dem Wurzel-Knoten alle Knoten die auf dem Weg zwischen den beiden liegen auch eine Referenz auf den Speicher-Server speichern. In so einem Fall wird die Nachricht sofort an den Speicher-Server weitergeleitet.

6 3.3.3 Surrogate Routing Das Tapestry System kann nur funktionieren wenn M aproots( ) immer die selben Wurzel-Knoten zurückliefert. Hier kommt das sogenannte Surrogate Routing (zu deutsch Stellvertreter-Routing ) zum tragen. Die NodeIDs der Wurzel-Knoten werden durch verschiedene Hashfunktionen oder Varianten bestimmt. Nun kann aber vorkommen dass die so errechnete NodeID des Wurzel-Knotens nicht existiert. Beim Routing auf solche nicht existenten Wurzel-Knoten können die Nachrichten auf Löcher in den Neighborhood Maps stoßen. In so einem Fall wird das erste Zeichen das nicht geroutet werden kann um eins erhöht und dann erneut ab diesem Knoten das Routing versucht. Dies wird solang wiederholt bis kein Knoten mehr in dem momentanen Level oder den darüberligenden Leveln zu finden ist. So ist gesichert dass MapRoots( ) immer die selben Wurzel-Knoten zurückgibt. 3.4 Einfügen von Knoten Falls ein neuer Knoten α das Tapestry System betritt braucht er einen Zugangsknoten β, über den er Zugang zum Netz bekommt. α sucht nun im Netz nach der eigenen NodeID und erreicht so seinen Stellvertreter-Knoten. Auf dem Weg von α zu seinem Stellvertreter-Knoten bekommt α alle Neighborhood Maps aller Knoten dazwischen. Aus diesen Knoten extrahiert der Algorithmus die besten Knoten für die eigene Neighborhood Map unter Berücksichtigung der toplogischen Parametern Bekanntmachen eine neuen Knoten Da einige Knoten möglicherweise auch Löcher in ihrer Neighborhood Map haben können, in die unser α passen könnte, ist es nun die Aufgabe von α seine Existenz anderen Knoten mitzuteilen. Wie wir noch aus dem Abschnitt Surrogate Routing wissen, wurden dort für nicht existierende Knoten Nachfolger gesucht. Falls nun nach unserem neuen Knoten α gesucht wurde finden wir die Knoten mit einem Loch in der Neighborhood Map indem wir die Vorgänger-Zeiger des Knoten Nachfolgers zurücklaufen und dort den neuen Knoten α eintragen. Da laut experimentellen Messung das Surrogate Routing in der Mehrzahl der Fällen [ZhKuJo01] nach 2 Hops beendet ist, genügt es in den allermeisten Fällen die Vorgänger-Zeiger 3 Schritte zurückzuverfolgen. Des weiteren wird eine Nachricht an alle primären und sekundären Nachbarn geschickt und diesen die Gelegenheit gegeben einen vorhanden Knoten in der Neighborhood Map durch α zu ersetzen. Hier ist primär die topologische Entfernung von Bedeutung. 3.5 Löschen von Knoten Das Löschen von Knoten ist dank der Vorgänger-Zeiger trivial, da so alle auf einen Knoten zeigenden Knoten informiert werden können. 4 Vergleich Wenn man Pastry und Tapestry vergleicht fällt einem Zuerst auf, dass der eigentlich Aufwand für verschiedene Operationen auf dem Papier identisch ist [Jan04]: System Einfüge-Kosten Routing-Hops Balance Pastry O(log 2 (N)) O(log(N)) ja Tapestry O(log 2 (N)) O(log(N)) ja

7 Abbildung 3: Nodesuche nach Node 022 Des weiteren fällt sofort ins Auge dass die Routingmechanismen sich vom Prinzip her sehr ähnlich sind, da sie beide auf dem selben Prinzip, dem sogenannten Plaxton Routing 4 basieren. Doch wenn man sich die Systeme genauer anschaut sind einige Unterschiede zu erkennen. Es ist zu erkennen dass Pastry mehr auf heuristische Methoden setzt deren Funktion aber dennoch durch Experimente gut nachgewiesen ist. Tapestry dagegen ist wesentlich analytischer aufgebaut, aber damit auch komplizierter [Sch06]. Es fällt besonders auf dass Pastry selbst kein wirkliches Objekt-Management besitzt. Dies wird vollständig der Implementierung überlassen (z.b.: Past). Insbesondere die Past-Implementierung achtet viel weniger auf die Organisation von Objekten als es Tapestry tut. In Pastry sind daher Duplikate von Dateien möglich ohne dass eine Kontrollinstanz davon etwas mitbekommt. Das Verteilen basiert darauf, dass ein Objekt in einem Bereich des Netzes gestreut wird in dem später andere Knoten suchen werden. Solche eher unsicheren Algorithmen bezeichnet man als heuristisch. Tapestry dagegen hat ein ausgeklügeltes System aus verschiedenen Knotentypen die es ermöglicht die Verteilung von Dateien besser zu kontrollieren und bei massiven Anfragen auf einzelne Dateien flexibler reagieren kann. Bei Past wird in dem Fall eine große Nachrichtenkaskade auf ein bestimmtes Knotengebiet zukommen, während bei Tapestry diese Kaskade durch Referenzen in anderen Knoten abgeschwächt wird. Auch haben Experimente gezeigt [Roe05] dass es kein perfektes Peer-to-Peer-System gibt. Keines der Systeme kann bei minimaler Anzahl an Hops mit minimaler Bandbreite auskommen, auch nicht Konkurrenten wie Chord oder Can. Es ist immer ein Trade-Off zwischen Leistung und Kosten. 5 Fazit Die in der Einleitung geforderten Eigenschaften erfüllen beide Systeme mit Bravour. Diese beiden Systeme sind eine neue Generation von Peer-to-Peer Systemen und logische Weiterentwicklungen von System der alten Generation wie Napster. Der Verzicht auf die Hybridität bringt ernorme Ausfallsicher, geschickte Routing-Algorithmen erzeugen angemessende Geschwindigkeit und die Erweiterbarkeit ist durch variable Strukturen gesichert. Inbesonders die Beachtung der zugrundeliegenden Netzwerkstruktur macht beide Algorithmen sehr schnell. Tapestry hebt sich durch sein Objektmanagement-System zusätzlich in den Vordergrund, ist aber im Vergleich zu Pastry wesentlich komplizierter. Dennoch sind einigene Probleme noch ungelöst; so ist bei beiden Systemen kein Ansatz zum erkennen und behandeln von potentiell systemschädigenden Knoten vorhanden. Des Weiteren kann beim Aufall einer großen Anzahl von Knoten es immer noch zu Instabilitäten kommen. Neue Tendenzen zeigen dass Peer-to-Peer-Systeme immer mehr Einfluß im Internet bekommen wer- 4 Dieser Algorithmus basiert darauf, dass das Routing sich an den aufsteigen Präfixen der NodeIDs orientiert. Die Laufzeit von O(log(N)) wird an der Abbildung 3 deutlich. Das Ganze ähnelt der Suche in einem binären Suchbaum.

8 den, und das nicht nur im illegalen Bereich. Inbesondere Linux Distributionen werden heute schon über Peer-to-Peer-Systeme angeboten um die Server zu entlasten. Literatur [ZhKuJo01] Ben Y.Zhao, John D. Kubiatowicz, Anthony D. Joseph, Tapestry: An Infrastructure for Fault-tolerant Wide-area Location and Routing, University of California, Berkely, [RoDr01] Antony Rowstron, Peter Druschel, Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems, Microsoft Resarch (Cambridge, UK), Rice University (TX), 2001 [Jan04] Peter Janacik, Theorie von Peer-to-Peer-Netzwerken: Tapesty, Seminararbeit, Universität Paderborn, PJANACIK.pdf [Sch06] Christian Schindelhauer, Skript zur Vorlesung Peer-to-Peer-Netzwerke SS06, Universität Freiburg, vorlesung/peer-to-peer-s06/skript/p2pb00k.pdf [Her02] Andre Herms, Seminararbeit - Pastry, Universität Magdeburg, uni-magdeburg.de/bs/lehre/wise0102/sem_bs/t13/pastry.pdf [Roe05] Holger Röder, Peer-to-Peer Internet Systeme, Hauptseminar Autonomic Computing, Universität Stuttgart, vs/lehre/lehrveranstaltungen/hauptseminare/ws0405/autonomic_ Computing_termine/dateien/Roeder_P2P_2.pdf

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 10. Vorlesung 28.06.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Inhalte Kurze Geschichte der

Mehr

Inhalte der Vorlesung (vorläufig)

Inhalte der Vorlesung (vorläufig) Vorlesung P2P Netzwerke 5: Pastry Dr. Dominic Battré Complex and Distributed IT Systems dominic.battre@tu berlin.de berlin de Inhalte der Vorlesung (vorläufig) Einleitung Was ist P2P? Definition Einsatzgebiete

Mehr

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung 1 Kapitel III Skalierbare Peer to Peer-Netzwerke Tapestry von Zhao, Kubiatowicz und Joseph (2001) Netzw erke 2 Tapestry

Mehr

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 8. Vorlesung 14.06.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Inhalte Kurze Geschichte der

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 16. Vorlesung 29.06.2006 schindel@informatik.uni-freiburg.de 1 Skip-Net J. Aspnes and G. Shah. Skip graphs, 2003 SkipNet: A Scalable

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 12. Vorlesung 14.06.2006 schindel@informatik.uni-freiburg.de 1 Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter

Mehr

Laptop A location aware peer-to-peer overlay network

Laptop A location aware peer-to-peer overlay network Laptop A location aware peer-to-peer overlay network Chi-Jen Wu, De-Kai Liu and Ren-Hung Hwang Seminar peer-to-peer Netzwerke Prof. Dr. Christian Schindelhauer 29. Juli 2009 Überblick Was ist Laptop? Aufbau

Mehr

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 7. Vorlesung 05.06.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Lookup in CAN Verbindungsstruktur:

Mehr

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 12. Vorlesung 12.07.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Aufbau Viceroy Knoten in Viceroy

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Bayeux. Dirk Ewerlin

Bayeux. Dirk Ewerlin Bayeux Dirk Ewerlin Inhalt Einleitung Routing & Loaklisierung Basisstruktur Erweiterung der Skalierbarkeit Fehlertolerante Paketzustellung Einleitung Multicast-Lösung auf Anwendungsebene über Unicast-

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 9 (28.5.2014) Hashtabellen III Algorithmen und Komplexität Offene Adressierung : Zusammenfassung Offene Adressierung: Alle Schlüssel/Werte

Mehr

Rolf Wanka Sommersemester 2007 11. Vorlesung 05.07.2007 rwanka@cs.fau.de

Rolf Wanka Sommersemester 2007 11. Vorlesung 05.07.2007 rwanka@cs.fau.de Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 11. Vorlesung 05.07.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Inhalte Kurze Geschichte der

Mehr

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 5. Vorlesung 24.05.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Zusammenfassung Internet als

Mehr

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. B*-Bäume 1 B*-BÄUME Beobachtung: Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. Es gibt keinen Grund, warum man nicht einen Index über einem Index haben sollte, und

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

Randomisierte Datenstrukturen

Randomisierte Datenstrukturen Seminar über Algorithmen DozentInnen: Helmut Alt, Claudia Klost Randomisierte Datenstrukturen Ralph Schäfermeier 13. 2. 2007 Das Verwalten von Mengen, so dass ein schneller Zugriff auf deren Elemente gewährleistet

Mehr

Chord. Zusätzliche Quelle: Christian Schindelhauer, Vorlesung: Algorithmen für Peer-to-Peer-Netzwerke

Chord. Zusätzliche Quelle: Christian Schindelhauer, Vorlesung: Algorithmen für Peer-to-Peer-Netzwerke Chord Zusätzliche Quelle: Christian Schindelhauer, Vorlesung: Algorithmen für Peer-to-Peer-Netzwerke Peer-to-peer Netzwerke Peer-to-peer Netzwerke sind verteilte Systeme: ohne zentrale Kontrolle oder hierarchische

Mehr

Software ubiquitärer Systeme

Software ubiquitärer Systeme Software ubiquitärer Systeme 13. Übung Constantin Timm Arbeitsgruppe Entwurfsautomatisierung für Eingebettete Systeme Lehrstuhl für Informatik 12 TU Dortmund constantin.timm@cs.tu-dortmund.de http://ls12-www.cs.tu-dortmund.de/staff/timm/

Mehr

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens h 1 2 j = 2 h 1 j=0 interne Knoten enthalten kann. EADS 86/600 Beweis: Induktionsanfang: 1 ein AVL-Baum der Höhe h = 1 enthält

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 Bruder-Bäume, B-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei Wörterbuchoperationen

Mehr

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

11 Peer-to-Peer-Netzwerke

11 Peer-to-Peer-Netzwerke 11 Peer-to-Peer-Netzwerke Überblick Gnutella Freenet Chord CAN Pastry 11.1 11.1Überblick Grundform des Internet (1969-1995) Informationsanbieter Informationskonsument 11.2 11.1 Überblick Web-dominiertes

Mehr

Informatik II: Algorithmen und Datenstrukturen SS 2015

Informatik II: Algorithmen und Datenstrukturen SS 2015 Informatik II: Algorithmen und Datenstrukturen SS 2015 Vorlesung 8b, Mittwoch, 17. Juni 2015 (Balancierte Suchbäume) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 6 (7.5.2018) Dictionaries, Binäre Suche, Hashtabellen I / Yannic Maus Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary:

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

Mehr

Kooperatives Multimedia Streaming

Kooperatives Multimedia Streaming Kooperatives Multimedia Streaming Untersuchung der herkömmlichen Systeme auf kooperative Ansätze Marcel Kühne (10.05.04) Gliederung Hauptseminar ----- Technische Universität Ilmenau ----- Fachgebiet Telematik

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 9 (25.5.2016) Hashtabellen II, Binäre Suchbäume I Algorithmen und Komplexität Hashtabellen mit Chaining Jede Stelle in der Hashtabelle

Mehr

Referat zum Thema Huffman-Codes

Referat zum Thema Huffman-Codes Referat zum Thema Huffman-Codes Darko Ostricki Yüksel Kahraman 05.02.2004 1 Huffman-Codes Huffman-Codes ( David A. Huffman, 1951) sind Präfix-Codes und das beste - optimale - Verfahren für die Codierung

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Theorie von Peer-to-Peer-Netzwerken: Tapestry

Theorie von Peer-to-Peer-Netzwerken: Tapestry Theorie von Peer-to-Peer-Netzwerken: Tapestry Peter Janacik pjanacik@upb.de Institut für Informatik, Universität Paderborn Seminar Perlen der Theoretischen Informatik AG Algorithmen und Komplexität 11.

Mehr

Muster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N

Muster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N 2 von 15 Aufgabe 1: Suchbäume (14 ) Betrachten Sie den folgenden Suchbaum. A B C D E F G H I J K L M N O P R (a) (1 Punkt ) Geben Sie die Höhe des Knotens F an. (b) (1 Punkt ) Geben Sie die Tiefe des Knotens

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen. Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Logische Datenstrukturen

Logische Datenstrukturen Lineare Listen Stapel, Warteschlangen Binärbäume Seite 1 Lineare Liste Begriffe first Funktion: sequentielle Verkettung von Datensätzen Ordnungsprinzip: Schlüssel Begriffe: first - Anker, Wurzel; Adresse

Mehr

ContainerDatenstrukturen. Große Übung 4

ContainerDatenstrukturen. Große Übung 4 ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne

Mehr

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer

Mehr

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer

Mehr

t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen.

t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen. .3 B-Bäume t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen. Wird der t-äre Baum zur Verwaltung von Daten

Mehr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr 3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:

Mehr

GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN

GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN Informationssysteme - Indexstrukturen I: B-Bäume und ihre Varianten Seite 1 GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN Leiter des Proseminars: Dr.Thomas Bode Verfasser

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April

Mehr

Algorithmen & Datenstrukturen Midterm Test 2

Algorithmen & Datenstrukturen Midterm Test 2 Algorithmen & Datenstrukturen Midterm Test 2 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:

Mehr

Mehrwegbäume Motivation

Mehrwegbäume Motivation Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 18. März

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Sortierte Folgen Maike Buchin 30.5., 1.6., 13.6.2017 Sortierte Folgen Häufiges Szenario: in einer Menge von Objekten mit Schlüsseln (aus geordnetem Universum) sollen Elemente

Mehr

Verteilte Systeme Übung T5

Verteilte Systeme Übung T5 Verteilte Systeme Übung T5 IP- Multicast Exkurs W M-Übertragung an der ETH Nachbesprechung T5 Vorbesprechung T6 Ziele IP-Multicast Exkurs Eine praxistaugliche Technologie aufzeigen I P -Multicast = rel.

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1 Binärer Suchbaum Außerdem wichtig: Struktur der Schlüsselwerte! 2 Ordnungsstruktur Linker

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

Hauptdiplomklausur Informatik März 2001: Internet Protokolle

Hauptdiplomklausur Informatik März 2001: Internet Protokolle Universität Mannheim Fakultät für Mathematik und Informatik Lehrstuhl für Praktische Informatik IV Professor Dr. W. Effelsberg Hauptdiplomklausur Informatik März 200: Internet Protokolle Name:... Vorname:...

Mehr

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: 1 Aufgabe 8.1 (P) (2, 3)-Baum a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: Zeichnen Sie, was in jedem Schritt passiert. b) Löschen Sie die Zahlen 65, 70 und 100 aus folgendem

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 15. Vorlesung 28.06.2006 schindel@informatik.uni-freiburg.de 1 Evaluation der Lehre im SS2006 Umfrage zur Qualitätssicherung und -verbesserung

Mehr

Virtuelle Präsenz. Peer to Peer Netze. Bertolt Schmidt

Virtuelle Präsenz. Peer to Peer Netze. Bertolt Schmidt Virtuelle Präsenz Peer to Peer Netze Bertolt Schmidt Übersicht Einleitung Begriffserklärung; Unterschied zu Client/Server Benötigte Infrastruktur Unterscheidung Pure Hybrid P-2-P Klassifizierung Probleme

Mehr

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = + Definition Gnutella Ein -to--netzwerk ist ein Kommunikationsnetzwerk zwischen Rechnern, in dem jeder Teilnehmer sowohl Client als auch Server- Aufgaben durchführt. Beobachtung: Das Internet ist (eigentlich

Mehr

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

19.07.2007. Inhalte der Vorlesung. Ziele der Vorlesung. Dr. Felix Heine Complex and Distributed IT-Systems felix.heine@tu-berlin.

19.07.2007. Inhalte der Vorlesung. Ziele der Vorlesung. Dr. Felix Heine Complex and Distributed IT-Systems felix.heine@tu-berlin. Vorlesung P2P Netzwerke 1: Einführung Dr. Felix Heine Complex and Distributed IT-Systems felix.heine@tu-berlin.de Inhalte der Vorlesung Einleitung Was ist P2P? Definition Einsatzgebiete Unstrukturierte

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Die Höhe von binären Suchbäumen Ausarbeitung zum Seminar zu Stochastischen Rekursionsgleichungen im WS 2011/2012

Die Höhe von binären Suchbäumen Ausarbeitung zum Seminar zu Stochastischen Rekursionsgleichungen im WS 2011/2012 Die Höhe von binären Suchbäumen Ausarbeitung zum Seminar zu Stochastischen Rekursionsgleichungen im WS 011/01 Sandra Uhlenbrock 03.11.011 Die folgende Ausarbeitung wird, basierend auf Branching Processes

Mehr

Organic Computing: Peer-to-Peer-Netzwerke

Organic Computing: Peer-to-Peer-Netzwerke Organic Computing Peer-to-Peer-Netzwerke Rolf Wanka Sommersemester 2015 rwanka@cs.fau.de Inhalte Kurze Geschichte der Peer-to-Peer- Netzwerke Das Internet: Unter dem Overlay Die ersten Peer-to-Peer-Netzwerke

Mehr

Teil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1

Teil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1 Teil : Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume (Wiederholung aus Prog 2) Bäume: Begriffe, Eigenschaften und Traversierung Binäre Suchbäume Gefädelte Suchbäume Ausgeglichene

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 26. März

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

IP routing und traceroute

IP routing und traceroute IP routing und traceroute Seminar Internet-Protokolle Dezember 2002 Falko Klaaßen fklaasse@techfak.uni-bielefeld.de 1 Übersicht zum Vortrag Was ist ein internet? Was sind Router? IP routing Subnet Routing

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Projektierung und Betrieb von Rechnernetzen

Projektierung und Betrieb von Rechnernetzen Projektierung und Betrieb von Rechnernetzen Versuch : Router-Konfiguration Vorbetrachtungen Im Rahmen des Praktikums sind einige Begriffe bzw. Fragen zum Thema Router zu klären: Was ist ein Router? Router

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode

Mehr

Tutorübung zur Vorlesung Grundlagen Rechnernetze und Verteilte Systeme Übungsblatt 7 (3. Juni 7. Juni 2013)

Tutorübung zur Vorlesung Grundlagen Rechnernetze und Verteilte Systeme Übungsblatt 7 (3. Juni 7. Juni 2013) Technische Universität München Lehrstuhl Informatik VIII Prof Dr-Ing Georg Carle Dipl-Ing Stephan Günther, MSc Nadine Herold, MSc Dipl-Inf Stephan Posselt Tutorübung zur Vorlesung Grundlagen Rechnernetze

Mehr

5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)?

5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)? 5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)? Ladefaktor: α, n aktuelle Anzahl gespeicherter Werte m Tabellengröße. Einfacher Ansatz: rehash() a z c h s r b s h a z Wenn

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr

Automotive.verstehen.gestalten.bewegen. Car2Car Systeme. Java und Peer2Peer ziehen ins Auto. 1 Adam Kovacs

Automotive.verstehen.gestalten.bewegen. Car2Car Systeme. Java und Peer2Peer ziehen ins Auto. 1 Adam Kovacs Automotive.verstehen.gestalten.bewegen Car2Car Systeme Java und Peer2Peer ziehen ins Auto 1 Agenda Peer2Peer Netzwerke Einleitung Von Client-Server zu P2P Standards und Lösungen Vor- und Nachteile Chord

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer

Mehr

Teil VII. Hashverfahren

Teil VII. Hashverfahren Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:

Mehr

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).

Mehr

Algorithmen für Ad-hoc- und Sensornetze

Algorithmen für Ad-hoc- und Sensornetze Algorithmen für Ad-hoc- und Sensornetze Übung 6 Kommunikation und Färbungen im SINR Modell (basierend auf VL11) Fabian Fuchs 17. Jan. 2015 (Version 1) INSTITUT FÜR THEORETISCHE INFORMATIK - LEHRSTUHL FÜR

Mehr

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 23.04.2004 1. Vorlesung 1 Kapitel I Netzw erke 2 Inhalte P2P-Netzwerke der 1. Generation: Napster, Gnutella, Kazaa. Moderne P2P-Netzwerke CAN,

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

Peer-to-Peer- Netzwerke

Peer-to-Peer- Netzwerke Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester 2006 14. Vorlesung 23.06.2006 schindel@informatik.uni-freiburg.de 1 Evaluation der Lehre im SS2006 Umfrage zur Qualitätssicherung und -verbesserung

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen

Mehr

19. Dynamic Programming I

19. Dynamic Programming I 495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Lookup Performanz von Verteilten Hashtabellen

Lookup Performanz von Verteilten Hashtabellen Lookup Performanz von Verteilten Hashtabellen Vortrag von Martin Christian 1.Verteilte Hashtabellen 2.Routing-Strategien 3.Lookup-Strategien 4.Replikationsstrategien 5.Zusammenfassung

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

Kürzeste und Schnellste Wege

Kürzeste und Schnellste Wege Kürzeste und Schnellste Wege Wie funktionieren Navis? André Nusser (Folien inspiriert von Kurt Mehlhorn) Struktur Straßennetzwerke Naiver Algorithmus Dijkstras Algorithmus Transitknoten Nachbemerkungen

Mehr

Verteiltes Backup. Einleitung Grundlegende Backup Techniken Backup in Netzwerken. Client/Server Peer-to-Peer

Verteiltes Backup. Einleitung Grundlegende Backup Techniken Backup in Netzwerken. Client/Server Peer-to-Peer Verteiltes Backup Einleitung Grundlegende Backup Techniken Backup in Netzwerken Client/Server Peer-to-Peer Einleitung Backup: Das teilweise oder gesamte Kopieren der in einem Computersystem vorhandenen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Programmiertechnik II

Programmiertechnik II Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision: Paar von Schlüsseln mit

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Gefädelte

Mehr

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

Algorithmen und Datenstrukturen 12

Algorithmen und Datenstrukturen 12 12. Juli 2012 1 Besprechung Blatt 11 Fragen 2 Binary Search Binäre Suche in Arrays Binäre Suchbäume (Binary Search Tree) 3 Sortierverfahren Allgemein Heapsort Bubblesort Insertionsort Mergesort Quicksort

Mehr

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007 Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 1 186.089 VO 3.0 Vorlesungsprüfung 19. Oktober

Mehr

Bäume, Suchbäume und Hash-Tabellen

Bäume, Suchbäume und Hash-Tabellen Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche

Mehr

Modul N4 Adressierung und Protokolle

Modul N4 Adressierung und Protokolle N-Netze Modul Adressierung und Protokolle Zeitrahmen 30 Minuten Zielgruppe Sekundarstufe I Inhaltliche Voraussetzung keine Lehrziel Erkennen, dass in (Computer-)Netzwerken eine eindeutige Identifizierung

Mehr