Peer to Peer: Methoden zum Finden von Peers
Gibt es irgendwelche bekannten Methoden zum Auffinden von peers, ohne die Verwendung eines dedizierten zentralen server?
ie: Wenn ich habe Kollegen, die sind das trennen und wiederherstellen der Verbindung mit dem internet aber bekommen Sie eine neue IP-Adresse jedes mal, und ich möchte, um Sie zu verbinden, ohne einen dedizierten server zu registrieren.
Ich dachte über die Verwendung von peers, E-Mail-Adresse zu senden, ein manifest der angeschlossenen peers periodisch, mit einer Art von timecode -, negiert die Notwendigkeit für einen dedizierten server. Dies wäre ein fallback wenn keiner der peers verbunden sein könnte, nach dem Versuch alle bisher bekannten peer-Adressen. Aber die vorhandenen Modelle von der Suche nach Gleichaltrigen vorzuziehen wäre.
InformationsquelleAutor der Frage Andrew Turner | 2008-11-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt keinen Weg, um mit zumindest einem ersten peer um mehr zu entdecken.
Voll P2P-Protokolle wie Gnutella oder Gnutella2, oder das einfachere Overnet (berühmt durch den Storm Worm), basierend auf jedem client mit einem start-up-Liste mit ein paar Kollegen. Diese können von einem web-basierten automatisierten tracker zum Beispiel. Der client entdecken Sie das gesamte Netz oder Teile davon durch Fragen andere Kollegen weitere Adressen, zum Beispiel beim delegieren einer Datei suchen.
Wenn Sie können nicht wirklich jede Art von einer zentralen Ressource, die besten können Sie tun ist, suchen Sie das erste peer durch die ausgestrahlten Nachrichten und letztlich die IP-Adresse Scannen. Der erste Ansatz ist gut-bedeutet aber in mindestens 98% der Fälle nicht nachzugeben keine Ergebnisse. Der spätere Ansatz, natürlich, ist der Missbrauch des internet, sowie in den meisten Ländern illegal.
Würde ich wirklich überdenken, dass eine Art von einem zentralen tracker. Es kann etwas so einfaches wie ein PHP-Skript auf einen webserver (das gnutella-Netzwerk, die heute gehalten wird, wird durch zehn-zwanzig solche Skripte, veranstaltet von Menschen, die sich gar nicht kennen). Und das ist sicher einfacher als E-Mail (wegen spam-Filter zumindest würde sowieso nicht funktionieren).
InformationsquelleAutor der Antwort anon6439
In den begrenzten Fall von peers in einem intranet, ist es möglich, senden Sie ein broadcast-UDP-Nachricht an einen bekannten port-Fragen für die Kollegen zu berichten.
InformationsquelleAutor der Antwort Oddthinking
Nutzen Sie alle vorhandenen forum, wo die Daten können geschrieben werden. Denke geheimen IRC-channel, die Einbettung von Daten in Fotos und Buchung zu Foto-sharing-Webseiten 4chan?, jede Website, die erlauben würde, Ihre Bewerbung an login-und post-Daten ohne captia Anmeldungen usw.
http://chatzilla.hacksrus.com/faq/#password
Andere Strategie könnte sein, die eingebettete Nachrichten in digitalen Währung Transaktionen. Wählen Sie eine billige Münze, die wahrscheinlich zu hängen, um ... DOGE oder MOND Münze vielleicht. Bauen wallet-Funktionen in Ihre app. so dass Sie veröffentlichen können Mikro-Transaktionen hin und her zwischen Adressen, die Ihre app steuert. Es wäre immer noch ein Miner-Gebühr, aber dies ist nur Bruchteile von Pfennigen. Auch wenn Sie später verbieten Sie das hinzufügen von Metadaten zu Transaktionen, die Sie machen könnte eine Transaktion entspricht Ihre IP-Adresse in der MOND, und verwenden vanity-Adressen in den MOND-Münze für Ihre app. wie, wenn ein neuer Knoten online geht, es weiß, was zu suchen, die die blockchain-2daMOON%bootStr@pM3. SENDEN - 104.003021133 MOON IP = 104.3.21.133 nicht eine teure Angelegenheit.
InformationsquelleAutor der Antwort user6265
Drei Möglichkeiten, aus der Spitze von meinem Kopf, aber Sie sind immer gehen zu müssen, einige zentrale server, um die Verbindung zu starten, es sei denn, Sie gingen mit option 3.
In Ihrem Beispiel, Sie hätten immer noch eine Art zentraler server, auf dem die peers, würde registriert werden; das Protokoll ist der einzige Unterschied.
InformationsquelleAutor der Antwort GalacticCowboy
Den BitcoinQT client verwendet eine Vielzahl von Methoden zu finden, Knoten, einige von Ihnen möglicherweise nützlich für Sie sein.
Satoshi-Client Die Ermittlung Der Knoten
IRC wird nicht mehr verwendet, aber vielleicht werden die meisten einfach zu implementieren:
InformationsquelleAutor der Antwort David
Um es einfach zu sagen Nein, es gibt keine Möglichkeit, dies zu tun, ohne einen zentralen Server.
Wenn Sie dies tun wollen, müssen Sie einfach einen oder mehrere zentrale Server, ob durch dynamische dns-oder nicht. Die Kunden brauchen eine Methode, um zu entdecken, wo Sie eine Verbindung herstellen soll, und der einzig wirklich sinnvolle Weg, dies zu tun ist mit Ihrem eigenen server, der im einfachsten Fall ist es nur senden muss, um eine IP-Adresse in der Antwort.
Virtuellen Server kann für etwa $15/Monat, die IMO wesentlich billiger, als zu versuchen, zu verwenden oder zu missbrauchen, jemand anderes die Bandbreite.
[Bearbeiten].
Um es einfach auszudrücken, es ist eine andere Art und Weise, wie folgt.
Nach einigen überlegungen denke ich, was ich tun würde, ist zu benennen eine Reihe von Kollegen, die als cluster Controller und die Nutzung eines dynamischen DNS-Dienst, damit andere peers zu entdecken, die cluster-Controllern.
Wählen Sie einen dynamic DNS-Anbieter-ich nenne es myc.ath.cx (ich Benutze http://www.dyndns.com/).
Jeder peer in der Lage sein muß, sich zu einem cluster controller. Ein cluster-controller enthält eine Liste aller anderen peers verbunden.
Wenn ein peer gestartet wird, sieht es bis myc.ath.cx und versucht zu verbinden. Wenn keine Verbindung hergestellt werden kann, innerhalb einer Frist, sagen wir 30 Sekunden, dauert es über die Registrierung von DNS-Eintrag.
Peer entdecken möchte, andere Kollegen können einfach Abfragen myc.ath.cx und eine Liste wird zur Verfügung gestellt werden
Alle peers sind verantwortlich für die regelmäßige herunterladen der Liste von peers, im Falle Sie benötigen, um die cluster-Steuerung.
Den cluster controller wird in regelmäßigen Abständen eine Abfrage der DNS-Eintrag - ob sich das geändert hat von ihm die IP-Adresse dann weiß es, dass es nicht mehr auf die cluster-Steuerung - damit wird die Verbindung zum cluster controller, die derzeit über den DNS-Eintrag und geben Sie es in die Liste der bekannten hosts.
Den cluster controller wird in regelmäßigen Abständen Kontakt hosts auf der Liste, um sicherzustellen, dass Sie noch gültig sind.
InformationsquelleAutor der Antwort Richard Harrison
Alte Frage, aber ich habe darüber nachgedacht, dieses problem selbst, so wird ad meine 2 Cent. Kurz gesagt, ein zentraler server ist nicht erforderlich, wenn ein Knoten bewusst ist, die mindestens eine gültige peer. Neue Knoten Hinzugefügt werden müssen, um das Netzwerk von jedem aktuellen Mitglieds (z.B. eingeladen, oder Knoten laicht anderen Knoten, je nach Anwendung).
Unter der Annahme, dass
Agenten verfolgen peers; die Größe dieses Adressbuch und wie Einträge verwaltet werden, hängt von der Art des Systems; z.B. wie lange Kollegen verbunden bleiben, wenn peers stabile Adressen
Agenten teilen peer-Informationen mit anderen peers
zumindest einige Agenten verfügbar bleiben für relativ lange Zeiträume, relativ zur Frequenz-Knoten-Verbindung zu Netzwerk zu aktualisieren Adressbuch (oder Knoten haben Adressen stabil)
neben der peer-Adressen, die Verfügbarkeit von Informationen wird auch verfolgt (viele Optionen hier, abhängig von Ihrem system. Beispiele sind: ob peer hat eine stabile Adresse, wenn Sie das Letzte mal gesehen, einige Verfügbarkeit Metrik, content - /service-Typ-Informationen, Adresse-gültig-bis-Zeitpunkt (sofern bekannt)
neuen Agenten initialisiert sind, mit mindestens einer gültigen peer (muss nicht sein, ein zentraler Knoten, kann ein Gültiger Knoten)
Vertrauen Mechanismen werden erforderlich, wenn sich bösartige peers eine Möglichkeit
Wenn ein peer online ist, fragt es den peers im peer-Tabelle, um herauszufinden, welche aktiv sind und vielleicht löscht abgelaufene dynamische Adressen. Knoten, Austausch von peer-Informationen und kann sich verbanden sich. Das peer discovery/Börse kann weiter eine bestimmte Anzahl von hops, oder per random-walk bis zu peer-Liste, wenn es in ausreichender Größe und/oder Qualität.
Ein paar mehr details:
Knoten verbinden und teilen peer-Informationen mit Häufigkeit, wie oft die Knoten-Adressen ändern, also Adressbuch nicht veralten und Knoten getrennt wird, weil keiner der ehemaligen Kollegen sind erhältlich an deren Letzte bekannte Adressen
Knoten kann eine Einschränkung der Anzahl der peers, die Sie akzeptieren, zu vermeiden, die Tendenz zur Zentralisierung rund um den stabilsten Knoten.
Knoten sollte selektiv sein, über die peers, die Sie halten; D. H. diejenigen, in denen Sie wahrscheinlicher sind, zum Austausch von Daten (z.B. Gewicht, basierend auf der Geschichte)
Knoten links können asymmetrische oder symmetrische je nach Anwendung
InformationsquelleAutor der Antwort Edward Kirton
Ihre Versand-E-Mail enthält einen dedizierten server verwenden, obwohl; die peer E-Mail-server, um genau zu sein.
Grob, ich glaube nicht, dass es möglich ist, ohne über irgendeine Art von dedizierten storage-oder server (der die E-Mail-Ansatz, wenn auch schräg), es sei denn, Sie sind in der Lage, zu charakterisieren, die Anbindung an das internet, dass Ihre Kollegen verwenden.
Grundsätzlich, wenn Sie eine Reihe von X Anzahl der peers, die eine Verbindung für die Y Höhe der Zeit, und Sie sind dann aus dem Netz für Z Höhe der Zeit... im wesentlichen, Sie können bauen eine Wahrscheinlichkeit Gleichung darüber, wie wahrscheinlich es ist, dass die Menge der peers, die Sie zuletzt kontaktiert ist immer noch verfügbar, wo die Wahrscheinlichkeit, Ansätze 1 (für einen gegebenen Satz von X -, Y-und Z-oben), können Sie wahrscheinlich erhalten ein peer-to-peer-Netzwerk ohne die Verwendung von storage.
Vielleicht mehr im Geist; statt einer "dedizierten zentralen server", verwenden Sie einfach das Kostenlose online-service, um anzugeben, eine peer-Liste. Einrichten einer yahoo-Gruppe, oder so ähnlich; Kunden können automatisch nachschlagen und erhalten ein peer-Adresse aus, die zur Abfrage einer Reihe von Kollegen, die client kann kodiert werden mit der Authentifizierungs-Beitrag an die Gruppe, und kann die post in regelmäßigen Abständen Ihre IP-Adresse, so dass andere können verlangen, dass der Satz von bekannten aktiven peers.
Wenn Sie möchten, zu bekommen, wirklich knifflig wird, können Sie im Grunde steganographic Methoden zu verstecken peer Standort-Informationen. I. e. Holen Sie sich eine google-Suche nach "blah"; hier finden Sie die erste Website in den Ergebnissen aufgeführt, die eine ungeschützt (kein CAPTCHA) message-board; finde die Dritte (oder was auch immer) post, der beginnt mit "Unzweifelhaft" (oder was auch immer), und finden Sie die Kopfzeile der ersten Nachricht, und da gibt es die IP-Adresse eines Peers. Wenn das nicht funktioniert, gehen Sie die Liste der Suchbegriffe auf den nächsten.
Aber das ist hinterhältig. 🙂
InformationsquelleAutor der Antwort Paul Sonier
Konnte Sie re-verwenden Sie ein bestehenden dedizierten server, die für den Zweck?
Ich denke insbesondere von der Registrierung der peers mit einer Dynamischen DNS, aber wenn Sie bereit waren, sich ein wenig hässlicher, sharing Zugriff auf einen bekannten Hotmail-Konto oder Google-Doc oder ähnliches.
InformationsquelleAutor der Antwort Oddthinking
Können Sie entweder ein zentrales Verzeichnis oder irgendeine Art von broadcast-Protokoll zur service discovery. Vorausgesetzt, dass Sie könnte bekommen Sie von Google indiziert, Sie könnte sich vorstellen, ein system, wobei jeder peer einen Webauftritt mit einige einzigartige, seltene Wörter, die auf eine bestimmte Seite. Anschließend können Sie mit den Google-Suchergebnissen auf der Grundlage dieser Wörter zu identifizieren, die potenziellen Kollegen. Dies würde im wesentlichen ein (laut und langsam) internet ausgestrahlt.
Wenn die Struktur der Seite wurde ein bekanntes Muster oder die persönlichen Verbindungsdaten, peer, es wäre einfach Sie zu unterscheiden in den Suchergebnissen. Mit solch einem öffentlichen Verzeichnis, lässt Sie offen auf kompromittierten Knoten in dem Netzwerk, das gebildet wird, aber das ist ziemlich viel wahr von jedem P2P-Netzwerk fehlen einige Sicherheits-Mechanismus.
Abrufen der web-Seiten gecrawlt und mit einem höheren Ranking bei Google (oder andere Suchmaschinen) für Ihre Besondere Arkane set von Suchbegriffen wäre der trick. Ich denke, der kann ein paar Möglichkeiten, aber Sie sind nicht diejenigen, die ich verwenden würde. Für einen legitimen service, ich würde eher zu verbringen das Geld, oder finden Sie eine Kostenlose web-site, die funktionieren könnte als ein Verzeichnis.
InformationsquelleAutor der Antwort tvanfosson
Was ist mit anderen P2P-system speziell für die Rückverfolgung von online-peers von anderen P2P Systeme?
Dann reduzieren wir das problem der Suche nach Kollegen, für alle neuen P2P system einfach Suche nach Gleichaltrigen für das 'main' - P2P-system, das Ihnen die Adressen von online-peers für das system, das Sie interessiert sind, mit...
InformationsquelleAutor der Antwort Ethan
Dies ist die typische Verwendung einer verteilten hash-Tabelle Algorithmus. Ich würde vorschlagen, Blick auf etwas, das wie Gebäck. Es nutzt ein overlay-Netzwerk (Application layer network) auf anderen Ebenen.
Jeder Knoten hat eine GUID, die verwendet wird, um route requests über die peer-Netzwerk.
InformationsquelleAutor der Antwort Steve
Wenn Sie loooking für eine bereits bestehende, zentrale server sehen dann die metaserver-Eintrag auf der Seite hier:
http://martindevans.appspot.com/
Sie können sich registrieren, peers und es dann anderen peers zu finden. Dies ist offensichtlich ein zentraler server, aber es erfordert keine Wartung auf Ihrer Seite.
InformationsquelleAutor der Antwort Martin