1Sep

Jak se klientovi Bittorrent zpočátku objeví jeho vrstevníci?

click fraud protection

Když váš torrentový klient připojí roj, aby sdílel a shromažďoval soubory, jak přesně ví, kde jsou všichni jeho kolegové?Přečtěte si, jak se budeme hýbat uvnitř mechanismů, které podchycují protokol BitTorrent.

dnešní otázka &Odpověď na zasedání se k nám dostala s laskavým svolením SuperUser - podřízenou výměnou Stack Exchange, skupině webů Q & A založených na komunitě.

Otázka

Čtečka SuperUser Steve V. měla velmi specifickou otázku o systému Distributed Hash Table( DHT) v rámci protokolu BitTorrent:

Už jsem si přečetl tuto odpověď SuperUser a tento článek Wikipedie, ale oba jsou pro mě příliš technickéobtočím hlavu kolem.

Chápu myšlenku sledování: klienti se připojují k centrálnímu serveru, který udržuje seznam rovesníků v roji.

Chápu také myšlenku vzájemné výměny: klienti již v rotě posílají celý seznam svých vrstevníků navzájem. Pokud budou nalezeni noví kolegové, budou do seznamu přidáni.

Moje otázka je, jak funguje DHT?To znamená , jak se může nový klient připojit k rojům bez sledování nebo znalosti alespoň jednoho člena roje, aby si vyměnili rovesníky?

instagram viewer

( Poznámka: nejjednodušší vysvětlení je nejlepší.)

Jeho otázka následně vyvolala opravdu podrobnou odpověď o různých funkcích systému BitTorrent;Podívejme se na to teď.

Odpovědná odpověď

přispěvatel Superquix Allquixotic nabízí hluboké vysvětlení:

Jak může nový klient připojit roj bez sledování nebo znalosti alespoň jednoho člena roje, aby si vyměnil rovesníky?

Nemůžete. Je to nemožné. *

* ( Pokud se uzel na vaší místní síti již nestane uzlem v DHT, v takovém případě byste mohli použít vysílací mechanismus, jako je Avahi,, a bootstrap od nich. Ale jak se oni bootstrap sami? Nakonec, narazíte na situaci, kdy se potřebujete připojit k veřejnému Internetu. A veřejný internet je pouze unicast, ne multicast, takže jste uvízls použitím předem určených seznamů vrstevníků.)

Odkazy

Bittorrent DHT je implementován protokolem známým jako Kademlia, což je zvláštní případ teoretické koncepce distribuované tabulky hash.

Expozice

S protokolem Kademlia, když se připojíte do sítě, provedete postup bootstrapingu, který absolutně vyžaduje, abyste v předstihu věděli, IP adresa a port alespoň jednoho uzlu, který se již účastní sítě DHT.Tracker, ke kterému se připojujete, může být samo o sobě jako uzel DHT.Jakmile jste připojeni k jednomu uzlu DHT, pak budete pokračovat ve stahování informací z DHT, který vám poskytne informace o konektivitě pro více uzlů, a potom budete navigovat, že struktura "grafu" získáte připojení k více a více uzlům, kteří mohou poskytnoutpřipojení k jiným uzlům a údaje o užitečném zatížení( bloky stahování).

Myslím, že vaše skutečná otázka v tučňce - to o tom, jak se připojit k síti Kademlia DHT bez znalosti jakýchkoli ostatních členů - je založena na falešném předpokladu.

Jednoduchá odpověď na vaši otázku je tučně, nemáte .Pokud neznáte vůbec žádné informace o jednom hostiteli, který by mohl obsahovat metadata DHT, uvízl - nemůžete ani začít. Myslím, že určitě byste se mohli pokusit o brutální pokus o objevení IP na veřejném internetu s otevřeným portem, který vysílá informace DHT.Ale je pravděpodobné, že váš klient BT je pevně zakódován na nějakou specifickou statickou IP nebo DNS, která řeší stabilní uzel DHT, který právě poskytuje metadata DHT.

V podstatě je DHT pouze decentralizovaný jako spojovací mechanismus a protože spojovací mechanismus je poměrně křehký( neexistuje žádný způsob, jak "vysílat" po celém internetu!), Takže musíte unicast předat jednotlivému předem přiřazenému hostitelidostat DHT data), Kademlia DHT není skutečně decentrální .Ne v nejpřísnějším slova smyslu.

Představte si tento scénář: Někdo, kdo chce, aby P2P přestal zhasnout a připravuje útok na , všechny běžně používají stabilní uzly DHT, které se používají pro bootstrapping. Jakmile nasadí jejich útok, nařídí to na všechny uzly najednou. Wham ;každý jeden bootstrapovací uzel DHT je všude v jednom úpadku. Co teď?Budete se připojovat k centralizovaným trackerům ke stažení tradičních seznamů vrstevníků z nich. No, pokud napadnou také stopy, pak jste opravdu, opravdu do potoka. Jinými slovy, Kademlia a celá síť BT jsou omezeny omezeními samotného internetu, neboť existuje omezený( a poměrně malý) počet počítačů, které byste museli úspěšně napadnout nebo provést offline, aby se zabránilo více než 90% uživatelů se připojuje k síti.

Jakmile jsou "pseudo-centralizované" bootstrapping uzly zbaveny, vnitřní uzly DHT, které nejsou bootstrapping protože nikdo na vnější straně DHT ví o vnitřních uzlech , jsou zbytečné;nemohou přinést nové uzly do DHT.Protože se každý vnitřní uzel odpojí od DHT v průběhu času, ať už kvůli vypínání počítačů, restartování aktualizací apod., Síť by se zhroutila.

Samozřejmě, že k tomu může někdo nasadit patched BitTorrent klienta s novým seznamem předem určených stabilních uzlů DHT nebo DNS adres a hlasitě inzerovat na P2P komunitu, aby místo toho použili tento nový seznam. Ale to by se stalo "whack-a-mole" situace, kdy agresor( uzel-jedlík) postupně stahovat tyto seznamy sami, a zaměřit se na statečné nové bootstrapping uzly, pak je i offline.

Nejen, že jsme se naučili odpovědi na původní otázku, ale také jsme se trochu naučili o povaze systému BitTorrent a jeho zranitelnosti.

Musíte něco přidat k vysvětlení?Vypadněte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.