1Sep

Hogyan működik egy bittorrent kliens kezdetben felfedezni a társait?

Amikor a torrent kliens csatlakozik a rajhoz, hogy megosszák és összegyűjtsék a fájldarabokat, pontosan honnan tudja, hol vannak társaik? Olvasson tovább, miközben a BitTorrent protokoll alá tartozó mechanizmusokon belül piszkálunk.

A mai kérdés &A válaszüzenet a SuperUser - a Stack Exchange megosztottságának köszönhetően - a Q & A webhelyek közösségi szintű csoportosítása.

Az

kérdőív SuperUser olvasója Steve V. nagyon konkrét kérdést fűzött a BitTorrent protokollon belül elterjedt Hash Table( DHT) rendszerhez:

Már olvastam ezt a SuperUser választ és ezt a cikket, de mindkettő túl technikai számomra, hogy ténylegcsavarja be a fejemet.

Megértem egy tracker gondolatát: az ügyfelek csatlakoznak egy központi kiszolgálóhoz, amely fenntartja a társaik listáját.

A peer exchange eszméjét is megértem: az ügyfelek már egy csapatban elküldik társaik teljes listáját egymásnak. Ha új társait felfedezik, akkor a listához hozzáadják őket.

A kérdésem az, hogy működik a DHT?Vagyis,

, hogyan tud egy új kliens csatlakozni egy rajhoz anélkül, hogy tracker lenne, vagy legalább egy tagjának ismerete volna a társaik cseréjéhez?

( Megjegyzés: az egyszerű magyarázatok a legjobbak.)

Kérdése viszont igen részletes választ adott a BitTorrent rendszer különböző funkcióiról;nézzük meg most.

Az

válasz A SuperUser közreműködője, az Allquixotic mélyreható magyarázatot nyújt:

Hogyan tud új kliens csatlakozni egy csapathoz anélkül, hogy tracker lenne, vagy legalább egy, a raj másik tagja tudta volna, hogy társaikkal válthasson?

Nem tudsz. Nem lehetséges. *

* ( Ha az helyi hálózatának egyik csomópontja már nem a DHT csomópontja, ebben az esetben használhat egy közvetítési mechanizmust, például Avahi-t, hogy "fedezze fel" ezt a peer, és bootstrap őket, de hogyan bootstrap magukat? Végül meg kell találni egy olyan helyzetet, ahol csatlakozni kell a nyilvános interneten, és a nyilvános internet csak unicast, nem multicast, így megragadtaz

Referenciák

A Bittorrent DHT-t Kademlia néven ismert protokollal valósítják meg, ami egy elterjedt hash tábla elméleti koncepciójának speciális esete.

kiállítás

A Kademlia protokollt használva, amikor csatlakozik a hálózathoz, egy bootstrapping eljáráson megy keresztül, amely feltétlenül megköveteli, hogy az előre megismerje az -t, legalább egy olyan csomópont IP-címét és portját, amely már részt vesz a DHT hálózatban. A tracker, amelyhez például csatlakozik, maga lehet DHT csomópont. Miután egy DHT-csomóponthoz csatlakozott, akkor folytassa a DHT-ből származó adatokat, amelyek több csomópont számára biztosítják a kapcsolódási információkat, majd navigálhat a "gráf" struktúrában, hogy egyre több csomópontra kapcsolódjon,más csomópontokhoz való csatlakozás és a hasznos adatok( a letöltés darabjai).

Úgy gondolom, hogy a tényleges, félkövér kérdés - az, hogy hogyan csatlakozhat a Kademlia DHT hálózathoz anélkül, hogy az -t bármely többi tagja tudná - hamis feltevésen alapul.

Az egyszerű válasz a kérdésére félkövéren, nem .Ha egyáltalán nem tudsz semmilyen információt egy DHT metaadat tartalmát magukban foglaló egyik gazdagról, akkor elakadtál - még csak el sem kezdheted.Úgy értem, biztos lehetsz benne, hogy megpróbálsz felfedezni egy IP-t a nyilvános interneten egy nyílt porttal, amely a DHT információk küldésére szolgál. De valószínűbb, hogy a BT-kliense keményen kódolódik egy bizonyos statikus IP-re vagy DNS-re, amely egy stabil DHT-csomóponthoz jut, ami csak a DHT-metaadatokat tartalmazza.

Alapvetően a DHT csak annyira decentralizált, mint a csatlakozási mechanizmus, és mivel az összekapcsolási mechanizmus meglehetősen törékeny( nincs mód a "sugárzásra" az egész interneten keresztül!), Így az unicast -t kell egy egyedi előre meghatározott hosthozkap a DHT adatok), Kademlia DHT nem valóban decentralizált. Nem a szó legszigorúbb értelmében.

Képzeld el ezt a forgatókönyvet: Valaki, aki a P2P-et meg akarja állítani, elindul, és támadást készít a összes általánosan használt, stabil DHT csomópontra, amelyet bootstrapáláshoz használnak. Miután megtették a támadást, az összes all csomópontot egyszerre vetítik. Wham ;minden egyes bootstrapáló DHT csomópont egy csapásra esik le. Most mi? Elakadtál az központosított trackerek összekapcsolásával, hogy letöltsd a társaid hagyományos listáját. Nos, ha megtámadják a trackereket is, akkor tényleg, tényleg fel egy patakot. Más szóval, a Kademlia és az egész BT hálózat korlátozottan korlátozódik az interneten, mivel létezik olyan véges( és viszonylag kicsi) számú számítógép, amelyet sikeresen megtámadna vagy az offline állapotban kellene megakadályoznia, hogy megakadályozza a & gt; 90A felhasználók% -a csatlakozik a hálózathoz.

Ha az "ál-centralizált" boot-csomó csomópontok mind elmentek, a DHT belső csomópontjai, amelyek nem bootolnak, mert a DHT külső oldalán senki sem tudja a belső csomópontokról, , használhatatlan;nem hozhatnak új csomópontokat a DHT-be. Tehát, mivel az egyes belső csomópontok az idő múlásával kapcsolódnak a DHT-hez, akár számítógépeiket bezáró személyek, frissítések újraindítása stb. Miatt, a hálózat összeomlik.

Természetesen, hogy ez megkerülhessen, valaki áttelepített BitTorrent klienst helyezhet el előre meghatározott stabil DHT csomópontok vagy DNS-címek új listájával, és hangosan hirdetni tud a P2P közösségnek, hogy ezt az új listát használja. De ez egy "mámoros" helyzet lett, ahol az agresszor( a csomópont) fokozatosan letölti ezeket a listákat, és célozza meg a bátor új rendszerindító csomópontokat, majd vegye le őket offline állapotban is.

Nemcsak megtanultuk a választ az eredeti kérdésre, hanem egy kicsit megtudtuk a BitTorrent rendszer jellegét és sebezhetőségét is.

Van valami a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.