/ / Hogyan fedezi fel egy Bittorrent ügyfél társait?

Hogyan fedezi fel a Bittorrent ügyfél először társait?

Amikor a torrent kliens csatlakozik a rajhoz, hogy megosszákés összegyűjti a fájlokat, hogyan tudja pontosan, hol vannak társai? Olvassa tovább a BitTorrent protokollt alátámasztó mechanizmusok belsejében.

A mai Kérdések és Válaszok ülése a SuperUser jóvoltából jött létre - a Stack Exchange alcsoportja, amely egy közösségi irányítású kérdés és válasz webhelyek csoportosítása.

A kérdés

A SuperUser olvasónak, Steve V.-nek egy nagyon konkrét kérdése volt a BitTorrent protokollon belüli elosztott hasítótábla (DHT) rendszerről:

Már elolvastam ezt a SuperUser választ és ezt a Wikipedia cikket, de mindkettő túlságosan technikai ahhoz, hogy valóban körülvegyem a fejem.

Megértem a nyomkövető gondolatát: az ügyfelek egy központi szerverhez kapcsolódnak, amely rajta tartja a társak listáját.

Megértem a kortárs csere gondolatát is: a rajban lévő ügyfelek egymásnak elküldik társaik teljes listáját. Ha új társakat fedeznek fel, akkor felkerülnek a listára.

Az a kérdésem, hogyan működik a DHT? Vagyis Hogyan csatlakozhat egy új ügyfél a rajhoz nyomkövető vagy a raj legalább egy tagjának tudása nélkül, hogy kicseréljék egymást?

(Megjegyzés: a legjobb magyarázat az egyszerű magyarázat.)

Kérdése valóban részletes választ adott a BitTorrent rendszer különféle funkcióiról; nézzük meg most.

A válasz

A SuperUser közreműködője, az Allquixotic alapos magyarázatot kínál:

Hogyan csatlakozhat egy új ügyfél a rajhoz nyomkövető vagy a raj legalább egy tagjának ismerete nélkül, hogy kicseréljék egymást?

Nem tudod. Ez lehetetlen.*

* (Hacsak nincs csomópont a helyi hálózat előfordul, hogy már egy csomópont a DHT-ben. Ebben az esetben egy műsorszóró mechanizmust, például az Avahi-t használhatja ennek a társnak a „felfedezésére”, és elindulás céljából. De hogyan? ők bootstrap magukat? Végül olyan helyzetbe kerül, amikor csatlakoznia kell a nyilvános internethez. És a nyilvános internet csak az egyszemélyes küldésű, nem a multicast-küldés, tehát ragaszkodik az előre meghatározott társak listájához.)

Irodalom

A Bittorrent DHT Kademlia néven ismert protokollon keresztül valósul meg, amely az Elosztott hash tábla elméleti koncepciójának különleges esete.

Kiállítás

A Kademlia protokoll segítségével, amikor csatlakozik a hálózathoz, elindít egy bootstrapping eljárást, amely feltétlenül megköveteli, hogy tudd, előlegként, legalább egy csomópont IP-címe és portjamár részt vesz a DHT hálózatban. A nyomkövető, amelyhez például csatlakozik, maga is DHT csomópont lehet. Ha csatlakozik egy DHT-csomóponthoz, akkor tovább tölti le az információkat a DHT-ből, amely további csomópontokhoz nyújt kapcsolódási információkat, majd navigál az adott „gráf” struktúrán, hogy kapcsolatokat kapjon egyre több csomóponthoz, akik mindkettőt képesek biztosítani kapcsolat más csomópontokkal és hasznos teher adatok (a letöltés darabjai).

Úgy gondolom, hogy valódi kérdése merészben van - az, hogy hogyan tudsz tudomás nélkül csatlakozni a Kademlia DHT hálózatához bármimás tagok - téves feltételezésen alapulnak.

A kérdésre félkövérrel megválaszolt egyszerű válasz: nem te. Ha egyáltalán nem tud semmilyen információtakár egy olyan host is, amely tartalmazhat DHT metaadatokat, elakad - még csak nem is indulhat el. Biztos vagyok benne, hogy brutális erőszakkal próbálhatja felfedezni egy IP-t a nyilvános interneten egy nyitott porttal, amely a DHT-információkat sugározza. De valószínűbb, hogy a BT-kliens egy bizonyos statikus IP-re vagy DNS-re van kódolva, amely egy stabil DHT-csomóponttá alakul, amely csak a DHT-metaadatokat szolgáltatja.

Alapvetően a DHT csak annyira decentralizált, mint a csatlakozási mechanizmus, és mivel a csatlakozási mechanizmus meglehetősen törékeny (nincs mód az „internetes sugárzásra” az egész interneten! Tehát unicastegy előre előre kijelölt gazdagépre a DHT-adatok megszerzéséhez), a Kademlia DHT nem igazán decentralizált. Nem a szó legszigorúbb értelmében.

Képzelje el ezt a forgatókönyvet: Valaki, aki azt akarja, hogy a P2P leálljon, kialszik és támadást készít minden általánosan használt stabil DHT csomópontok, amelyeket a rendszerindításhoz használnak. Miután megtámadták a támadást, folytatják azt minden csomópontok egyszerre. Wham; minden egyes indító DHT-csomópont egy lépésben lefelé van. Most mi? Elakad a csatlakozással központosított nyomkövető letöltheti a társak hagyományos listáit. Nos, ha meg is támadják a követőket, akkor tényleg igazán egy patak fölé. Más szavakkal: a Kademlia és a teljes BT hálózat korlátozódik maga az internet korlátozásaiba, mivel véges (és viszonylag kis) számú számítógép létezik, amelyeket sikeresen meg kell támadni vagy offline módba kell hozni, hogy meghaladja a> 90% -ot. a felhasználók csatlakozhatnak a hálózathoz.

Miután a „pszeudo-központosított” rendszerindító csomópontok már eltűntek, a DHT belső csomópontjai, amelyek nem indulnak el, mert A DHT külső oldalán senki sem ismeri a belső csomópontokat, használhatatlanok; nem tudnak új csomópontokat behoznia DHT. Tehát, mivel minden belső csomópont idővel leválasztja a DHT-t, akár azért, mert az emberek leállítják a számítógépeiket, újraindítják a frissítéseket, stb., A hálózat összeomlik.

Persze, hogy ezt megkerülje, valaki megtehetitelepítsen egy javított BitTorrent-ügyfelet egy előre meghatározott stabil DHT-csomópontok vagy DNS-címek új listájával, és hangosan hirdetjen a P2P-közösség számára, hogy helyette ezt az új listát használja. De ez egy „ütés-egy-anya” helyzet lesz, amikor az agresszor (a csomópont-evő) fokozatosan letölti ezeket a listákat, és megcélozza a bátor új bootstrapping csomópontokat, majd offline állapotba helyezi őket is.

Nem csak az eredeti kérdésre adott választ választottuk meg, hanem egy kicsit megtanultuk a BitTorrent rendszer természetét és sebezhetőségét is.


Van valami hozzá a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne további válaszokat olvasni más tech-hozzáértésű Stack Exchange-felhasználóktól? Nézze meg a teljes beszélgetési szálat itt.