1Sep

Hvordan opdager en Bittorrent-klient oprindeligt sine jævnaldrende?

click fraud protection

Når din torrentklient forbinder sværmen med at dele og samle filstykker, hvordan præcist ved det, hvor alle sine jævnaldrende er? Læs videre, når vi popper rundt i de mekanismer, der undergraver BitTorrent-protokollen.

Dagens Spørgsmål &Svar session kommer til os høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drevet gruppe af Q & A-websteder.

Spørgsmål

SuperUser læser Steve V. havde et meget specifikt spørgsmål om DHT-systemet( Distributed Hash Table) i BitTorrent-protokollen:

Jeg har allerede læst dette SuperUser-svar og denne Wikipedia-artikel, men begge er for tekniske for mig at virkeligSæt hovedet rundt.

Jeg forstår ideen om en tracker: Klienter forbinder til en central server, der opretholder en liste over jævnaldrende i en sværm.

Jeg forstår også ideen om peer-udveksling: Klienter, der allerede er i en sværm, sender den komplette liste over deres jævnaldrende til hinanden. Hvis nye jævnaldrende opdages, tilføjes de til listen.

Mit spørgsmål er, hvordan virker DHT?Det vil sige,

instagram viewer
, hvordan kan en ny klient slutte sig til en sværm uden enten en tracker eller kendskabet til mindst et medlem af sværmen til at udveksle jævnaldrende med?

( Bemærk: simple forklaringer er bedst.)

Hans spørgsmål spurgte igen et rigtigt detaljeret svar om de forskellige funktioner i BitTorrent-systemet;lad os tage et kig på det nu.

Svaret

SuperUser bidragyder Allquixotic tilbyder en dybtgående forklaring:

Hvordan kan en ny klient slutte sig til en sværm uden enten en tracker eller kendskabet til mindst et medlem af sværmen til at udveksle kolleger med?

Du kan ikke. Det er umuligt. *

* ( Medmindre en knude på dit lokalnetværk sker med at være en node i DHT, kan du i så fald bruge en udsendelsesmekanisme som Avahi til at "opdage" denne peer, og bootstrap fra dem. Men hvordan har de bootstrap sig? Til sidst vil du ramme en situation, hvor du skal oprette forbindelse til det offentlige internet. Og det offentlige internet er unicast-only, ikke multicast, så du sidder fastved at bruge forudbestemte lister over jævnaldrende.)

Referencer

Bittorrent DHT er implementeret via en protokol kendt som Kademlia, som er et specielt tilfælde af teoretisk koncept for et Distributed hashbord.

Exposition

Med Kademlia-protokollen går du igennem en bootstrapping procedure, som absolut kræver, at du ved på forhånd , IP-adressen og porten på mindst en node, der allerede deltager i DHT-netværket. Den tracker, som du forbinder til, kan f.eks. Være en DHT-knude. Når du er tilsluttet en DHT-knude, fortsætter du med at downloade information fra DHT, som giver dig forbindelsesoplysninger til flere noder, og du navigerer derefter på den "graf" struktur for at opnå forbindelser til flere og flere noder, som kan give beggetilslutning til andre noder, og nyttelastdata( brikker af download).

Jeg tror, ​​at dit egentlige spørgsmål med fed skrift - det, hvordan du tilmelder dig et Kademlia DHT-netværk uden at vide nogen andre -medlemmer - er baseret på en falsk antagelse.

Det enkle svar på dit spørgsmål med fed skrift er, , du ikke .Hvis du slet ikke kender nogen information om endnu en vært, der kan indeholde DHT-metadata, sidder du fast - du kan ikke engang komme i gang. Jeg mener sikkert, at du kunne brute force forsøg på at opdage en IP på det offentlige internet med en åben port, der sker for at udsende DHT information. Men mere sandsynligt er din BT-klient hardkodet til en bestemt statisk IP eller DNS, som løser en stabil DHT-knude, som kun leverer DHT-metadata.

Dybest set er DHT kun decentraliseret som tilslutningsmekanismen, og fordi tilslutningsmekanismen er ret skør( der er ingen måde at "transmittere" over hele internettet! Så du skal unicast til en individuel forordnet vært tilfå DHT data), Kademlia DHT er ikke virkelig decentraliseret. Ikke i strengeste forstand.

Forestil dig dette scenario: Nogen, der ønsker, at P2P skal stoppe, går ud og forbereder et angreb på alle almindeligt anvendte stabile DHT noder, som bruges til bootstrapping. Når de har iscenesat deres angreb, forår de det på alle knuder på én gang. Wham ;hver enkelt bootstrapping DHT-knude er helt ned i et fald. Hvad nu? Du sidder fast i forbindelse med centraliserede trackere for at downloade traditionelle lister over jævnaldrende fra dem. Nå, hvis de også angriber trackersne, så er du virkelig, virkelig op i en bæk. Med andre ord er Kademlia og hele BT-netværket begrænset af begrænsningerne af internettet selv, idet der er et begrænset( og forholdsvis lille) antal computere, som du med succes skulle angribe eller tage offline for at forhindre & gt; 90% af brugere fra at oprette forbindelse til netværket.

Når de "pseudo-centraliserede" bootstrapping noder er væk, er DHT's indvendige noder, som ikke bootstrapper, fordi ingen uden for DHT'en ved udvendige noder , er ubrugelige;de kan ikke bringe nye knuder ind i DHT.Så som hver indre node afbryder fra DHT over tid, enten på grund af at folk lukker deres computere, genstarter for opdateringer mv., Vil netværket falde sammen.

Selvfølgelig for at komme rundt om dette, kunne nogen distribuere en patched BitTorrent-klient med en ny liste over forudbestemte stabile DHT-noder eller DNS-adresser, og højlydt annoncere til P2P-fællesskabet for at bruge denne nye liste i stedet. Men dette ville blive en "whack-a-mole" -situation, hvor aggressoren( node-eateren) gradvist ville downloade disse lister selv og målrette mod de modige nye bootstrapping noder og derefter tage dem offline også.

Ikke alene lærte vi svaret på det oprindelige spørgsmål, men vi lærte også en smule om karakteren af ​​BitTorrent-systemet og dets sårbarheder.

Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.