Diskussion:Kademlia

Letzter Kommentar: vor 9 Jahren von GiftBot in Abschnitt Defekter Weblink

Wildes Gepinge?

Bearbeiten

Wundert es denn hier keinen, dass ein dezentrales Netzwerk keine Instanz hat, in der eine Liste steht, unter welcher IP sich noch andere Clients finden lassen?! Bei edonkey etc. gibt es ja immer eine feste Liste an bekannten Servern, aber ein dezentrales Netzwerk hat ja sowas nicht... wie finden sich also die Clients? Wird einfach wie wild nach draußen gepingt, und geschaut, wer antwortet? Allein das suchen von Clients würde ja gigantischen Traffic verursachen.

Danke, --Abdull 22:51, 24. Feb 2005 (CET)

Im Prinzip braucht man nur die IP eines einzigen Clients, welcher sich in einem Kademlia Netzwerk befindet. Dieser wird deinem Rechner dann von anderen Clients, die ihm selbst bekannt sind, berichten. Um das Beispiel Emule zu nehmen, werden ca 200 bekannte Clients beim Ende einer Session auf der HD gespeichert, welche bei Neustart wieder geladen werden, in der Hoffnung, daß wenigstens einer dieser IP's noch aktiv ist. Davon abgesehen, daß es bei Emule neben Kademlia noch das herkömmliche Servernetzwerk gibt, was es einfach macht an neue Kademlia Clients zu kommen. Siehe www.emule-project.net . -- Sulai 17:04, 25. Feb 2005 (CET)

Aussprache

Bearbeiten

Weiß eigentlich jemand, wie das genau ausgesprochen wird? (Wie ist die Betonung?) Es wäre gut, wenn die Lautschrift dabei stünde, wenn das jemand weiß..

In den beiden mir bekannten Kademlia-Implementationen, namentlich in der Original-Java-Implementation von Maymounkov und Mazières, sowie in der in eMule enthaltenen C++-Implementation, wird der Abstand zweier IDs nicht als log2(ID1 xor ID2) berechnet, sondern nur als (ID1 xor ID2).

Genau so wird es auch in der Literatur beschrieben (siehe u.a. den Weblink des Artikels). -- Oliver Gerards

Bin ich gleicher Meinung: (ID1 xor ID2) wird einfach als Integer interpretiert. Aber der Logarithmus ändert nicht's an der Reihenfolge der Resultate, nur das genaue Treffer nicht definiert sind (log(0)).

genaue treffer? abstand null wuerdest du dich ja selber treffen... jeder andere hat zwingend einen abstand von mindestens 1... in einem bit muessen sich 2 peers ja mindestens unterscheiden, das ist ja auch ein genialer sinn der funktion... Tsukasa 02:26, 10. Feb 2006 (CET)

Distributed Hash Table

Bearbeiten

Ich bin der Meinung, dass der Ausdruck da noch irgendwo rein sollte. Denn Kademlia ist eine konkrete Umsetzung davon.

Der Meinung bin ich auch. Da ich aber nicht genug Ahnung davon habe, weiß ich nicht, an welcher Stelle man das sinnvol mit DHT ergänzen könnte. Aber vielleicht kann man ja den Einleitungssatz einfach folgendermaßen ergänzen (?): "Kademlia ist ein DHT-Algorithmus zum Aufbau eines dezentralen Peer-to-Peer-Netzwerks.", oder so ähnlich. --DSK 00:47, 11. Mär 2006 (CET)
Information eingefügt.

Im Changelog kann man lesen, dass KAD 2 bereits in Emule 0.47a enthalten ist. Weiß jemand, welche Neuerungen das sein werden?

Kad 2.0 ist bereits in 0.47a enthalten, wird aber vorraussichtlich erst in der nächsten oder übernächsten Version auch aktiviert sein. Im offiziellen (englischen) eMule-Forum unter "Development > eMule Development > Kademlia-Technical aspects" hat der Entwickler genaueres erklärt: http://forum.emule-project.net/index.php?act=ST&f=68&t=98932 Offenbar muss man in diesem Bereich jedoch auch zum lesen als registrierter Benutzer angemeldet sein, um dort hinzugelangen. Ich weiß nicht, ob ich die Zeilen einfach aus dem Forum hierrein kopieren darf... Jedenfalls werden die meisten Veränderungen für den Benutzer gar nicht großartig auffallen, sind also mehr "interne" Dinge. --DSK 01:03, 11. Mär 2006 (CET)

k-Buckets?

Bearbeiten

Das Paper von Maymounkov und Mazières erwähnt k-Buckets, welche für das Routing von Meldungen herangezogen werden. Das ist m.E. ein ziemlich essentieller Bestandteil von Kademlia. Die Information fehlt aber im Artikel vollständig.

Funktionsweise

Bearbeiten

Der Abschnitt zur Funktionsweise ist unverständlich und - fasst man diesen Diskussionsbeitrag zusammen - in weiten Teilen falsch. Unter http://sarwiki.informatik.hu-berlin.de/Kademlia findet sich ein Wiki mit einer sehr guten Beschreibung der Funktionsweise. Kann dieser übernommen werden?

In weiten Teilen falsch? Kannst du das bitte präzisieren? Hier in der Diskussion wurde doch eigentlich nur die Metrik angezweifelt. Den Link, den du hier geschrieben hast, finde ich gut und (mehr oder weniger) verständlich, trotzdem würde ich nicht einfach den Wikipediaartikel durch diesen Artikel ersetzen, jedoch kann man ihn vielleicht als Weblink setzen? --DSK 10:56, 8. Jun 2006 (CEST)
Na gut, mir ist eben auch etwas aufgefallen, was möglicherweise falsch ist (s.u.): --DSK 00:45, 28. Jul 2006 (CEST)
Ich finde den Abschnitt auch unverständlich. dh. man kann natürlich nicht sagen das er in weiten Teilen falsch ist. Dazu müßte man ihn schon verstehn. Ok, als Beispiel siehe 'Distanz': der Begriff wird eingeführt und dann erst im übernächsten Abschnitt erklärt. --195.30.60.7 12:37, 13. Jul. 2007 (CEST)Beantworten


Ich bin mir nicht sicher, ob der 3. Abschnitt unter Funktionswseise ganz richtig formuliert ist:

"Ein Knoten, der dem Netz beitreten möchte, muss zuerst einen „Bootstrapping“ genannten Prozess durchlaufen: In dieser Phase erhält der Algorithmus vom Benutzer (oder aus einer gespeicherten Liste) die IP-Adresse eines Knotens, der bereits im Kademlia-Netz bekannt ist. War der Knoten noch nie zuvor im Netz, berechnet er eine zufällige ID [...]"

Der letzte Satz bezieht sich doch auf den eigenen Knoten/Kad-Client, und nicht auf den, der bereits verbunden ist, oder? Das geht irgendwie nicht ganz klar daraus hervor.

Weiter:

"War der Knoten noch nie zuvor im Netz, berechnet er eine zufällige ID, die noch nicht vergeben wurde. Diese verwendet er bis zum Verlassen des Netzes."

Mit der zufälligen ID dürfte doch wohl der 32-stellige Hexadezimal-Hash (also die Node-ID) gemeint sein. Ich kenne Kademlia nur von eMule, und weiß nicht ob es in anderen Applikationen vielleicht anders gehandhabt wird. Ich bin mir aber ziemlich sicher, dass der Hash, nachdem er auf zufälliger Basis berechnet wurde, nicht mehr geändert wird. Bei einem Doppelklick auf den "Benutzer"-Abschnitt in eMules Statusleiste bekommt man mehr Informationen. Dieser Hash, der da unter "Kademlia" steht (also die Node-ID) bleibt bei mir immer gleich, ändert sich also nicht, beim Verlassen bzw. Neubetreten des Netzes. Aus diesem Grund frage ich mich, wie der Client eine Node-ID erstellen kann, die noch nicht vergeben wurde. Natürlich kann der Client überprüfen, ob die erstellte ID bereits vorhanden ist; wenn sie das aber nicht ist, heißt das doch nicht, dass es sie nicht gibt, schließlich kann ein Knoten, der diese ID besitzt auch gerade offline sein. Wie soll das also überprüft werden? Wenn dann der Knoten allerdings wieder online ginge, hätten 2 Knoten dieselbe ID, ist das möglich? --DSK 00:45, 28. Jul 2006 (CEST)

Ich habe den Abschnitt jetzt entsprechend angepasst. Es ist übrigens meines Wissens durchaus möglich, das mehrere Clients die selbe ID benutzen. Ob sich das nun irgendwie negativ aufs Netz auswirkt, weiß ich nicht. --DSK 19:51, 31. Aug 2006 (CEST)


Hi. Das mit der unbenutzten ID ginge schon, zumindest praktisch. Theoretisch nicht. Schaue dazu mal bei GUID/UUID vorbei. Desweiteren ist wohl "Diese verwendet er bis zum Verlassen des Netzes." sehr mißverständlich. Das "Verlassen" bedeutet hoffentlich, daß KAD gar nicht mehr betreten wird (eMule entfernt z.B.). Die Einleitung des Satzes stimmt aber und hebt das Mißverständliche auf: "War der Knoten noch nie zuvor im Netz, berechnet er eine zufällige ID..." -> Nach dem ersten Schließen und erneutem Starten _WAR_ der Knoten ja zuvor schon am Netz. :) --Markus Moll 23:40, 21. Jan. 2007 (CET)Beantworten

Clients: "Netze sind untereinander inkompatibel"

Bearbeiten

Ich denke nicht, dass alle Clients die hier genannt werden ein eigenes Netz haben, das zu anderen Clients inkompatibel ist. Denke da vor allem an Mldonkey und eMule.

Also eMule und eDonkey (mit Overnet) sind zueinander und auch zu den anderen inkompatibel (beachte, dass es hier ja um die Kademlia-Netze geht. Zum ed2k-Netz können natürlich beide verbinden). Das gleiche gilt für Azureus, welches meines Wissens nicht kompatibel ist mit der Kademlia-Implementierung im Original-BitTorrent (über Tracker sind natürlich auch hier beide zueinander kompatibel). Bei ML-Donkey müsstest du recht haben. Soweit ich weiß kann ML-Donkey sowohl zu eDonkeys Overnet als auch zu eMules Kad verbinden. Dass es zusätzlich noch ein eigenes Kademlia-Netz hätte, wär mir neu. Bei den restlichen Clients (VarVar, exeem, ants p2p) weiß ich es nicht, sind mir unbekannt. --DSK 00:13, 26. Aug 2006 (CEST)

Name?

Bearbeiten

Was bedeutet der Name, woher kommt er, ist es ein reiner Fantasiename, wer hat ihn sich ausgedacht? Maikel 12:40, 21. Mai 2007 (CEST)Beantworten

"clients"

Bearbeiten

Ist es ueberhaupt richtig hier von clients zu sprechen? ich meine es sind doch clients und server?

--Marenz 20:29, 12. Dez. 2007 (CET)Beantworten

Ich hab es bisher immer nur erlebt, dass Teilnehmer eines P2P-Netzes als Clients bezeichnet werden, auch in Serverlosen Netzwerken. Ob das jetzt von der Definition her richtig ist weiß ich gar nicht, aber allzu falsch wäre die Bezeichnung sicher nicht. In einer verteilten Hashtabelle sind die Benutzer technisch gesehen ja gleichzeitig Clients und auch Server, da würde ich es schon für passender halten, nur von Clients zu reden. --Erschaffung 21:25, 12. Dez. 2007 (CET)Beantworten
Vielleicht wäre die Bezeichnung "peer" anstelle von "Clients" oder "Server" am passendsten. Allerdings ist Client gebräuchlich und sicher nicht falsch, auch wenn gar kein Server da ist. -- Sulai 16:44, 13. Dez. 2007 (CET)Beantworten
So ist es, Peer ist das einzig richtige Wort für die Teilnehmer in einem serverlosen System. (nicht signierter Beitrag von 85.178.59.162 (Diskussion | Beiträge) 21:18, 24. Sep. 2009 (CEST)) Beantworten
Bearbeiten

GiftBot (Diskussion) 18:45, 27. Nov. 2015 (CET)Beantworten