2009-07-25 6 views
63

Se ho un torrent senza alcun tracker e ho appena avviato un client bittorent in modo da non avere ancora peer ... come faccio a sapere con chi connettermi per la prima volta nel DHT? Sembra che dovrei conoscere almeno un nodo nel DHT per iniziare ....In che modo un DHT in un client Bittorent viene "riavviato"?

+3

Tutte le risposte qui risponde solo partialy la questione. Una buona risposta completa da parte dell'8472 può essere trovata qui: http://stackoverflow.com/questions/10999786/how-pex-protocol-magnetic-links-finds-it-first-ip/11089702#11089702 – Encombe

risposta

34

Quando un client BitTorrent si connette a DHT, c'è un punto iniziale in cui va a trovare colleghi. Con il client BitTorrent originale, c'era un URL su bitorrent.com che avrebbe aiutato a far partire le cose. Ho provato a cercare il riferimento ma non sono riuscito a trovarlo. Una volta stabilite le connessioni con altri client, è possibile fare un announce sulla rete DHT per trovare peer per il torrent che si sta cercando.

Ecco un collegamento allo BitTorrent specs che parla di DHT.

Un dizionario di torrent senza tracker fa non ha una chiave "annuncia". Invece, un torrente senza tracker ha una chiave "nodi". Questa chiave deve essere impostata su K nodi più vicini nel torrent che genera la tabella di routing del client. In alternativa, la chiave può essere impostata su un nodo valido noto come uno gestito dalla persona che genera il torrent. Si prega di non aggiungere automaticamente "router.bittorrent.com" ai file torrent o aggiungere automaticamente questo nodo alle tabelle di routing dei client.

+4

Si annunciano! sulla rete DHT? Ho pensato che hai fatto un 'get_peers()' o anche l'astratto 'get()' per trovare i peer? – gsk

0

Hai bisogno di colleghi di qualche altro torrente, con cui parlare. Come hai affermato tu non hai questi non hai molto da fare ....

35

I nodi bootstrap mainline DHT sono router.utorrent.com e un CNAME ad esso, router.bittorrent.com. Porta 6881.

+8

Grazie! Questo potrebbe essere l'unico posto sul web dove gli addr completi sono forniti in testo normale. –

+2

Se si guardano i DNS, questi si risolvono nella stessa posizione con router.bittorent.com essendo un CNAME per router.utorrent.com. Sono lo stesso nodo. – anthonyryan1

3

Un client può conoscere altri peer compatibili con DHT attraverso le sue interazioni con loro. Il supporto di un pari per DHT è pubblicizzato nel suo Handshake. Una volta che un client scopre almeno un peer DHT buono e ben collegato, può navigare nel DHT per trovare coetanei DHT sempre più vicini. Ricorderà questi peer, chiamati nodi in DHT-speak, tra riavvii del software e mantenere/aggiornare l'elenco continuamente mentre è in esecuzione. Nel peggiore dei casi in cui un client non conosce buoni peer compatibili con DHT, richiederà di scaricare un torrent basato su tracker in modo che si possa eventualmente contattare alcuni peer con capacità DHT che apprende attraverso il tracker.

Aggiornamento: per il suo elenco iniziale di coetanei DHT, come sottolinea @Seppo, un client torrent può utilizzare uno o più nomi DNS hard-coded per trovare gli indirizzi di coetanei ben noti, e può anche includere un elenco hard-coded di peer come fallback finale. Una limitazione del DNS, tuttavia, non viene fornita alcuna informazione sulla porta, pertanto si presume generalmente una porta predefinita 6881, mentre altri mezzi supportano peer che operano su porte differenti.

21

grafico in fondo a questa DHT monitoring project sito mostra

  • dht.transmissionbt.com
  • router.utorrent.com
  • router.bittorrent.com

come bootstrapping coetanei

+3

BitTorrent ha pubblicato il codice sorgente in modo da poter eseguire la propria macchina di bootstrap DHT: https://github.com/bittorrent/bootstrap-dht – Encombe

14

BitTorrent, avete tre opzioni principali:

  • File Torrent: alcuni file torrent possono incorporare nodes per di collegare in DHT con (in Infatti, è consigliabile quando si crea un file torrent)
  • Hardcoding: Alcuni client torrent codificano alcuni nodi bootstrap (come quelli degli uomini a cura di stk). Questi sono solitamente gestiti da aziende e organizzazioni con server di lunga durata.
  • Conversazioni PEX/Peer: Di solito è possibile chiedere i nodi DHT alle persone da cui si scaricano altri torrent (se i client comprendono la lingua di ciascuno, ovvero alcune versioni sono incompatibili).
8

Transmission utilizza un hardcoded bootstrap node per DHT se non c'è altro modo per ottenere i coetanei:

bootstrap_from_name("dht.transmissionbt.com", 6881, bootstrap_af(session)); 

immagino ogni client Torrent usa il proprio nodo di bootstrap.

3

Per la cronaca, Deluge inoltre usa hardcoded boostrap nodes:

 self.session.add_dht_router("router.bittorrent.com", 6881) 
     self.session.add_dht_router("router.utorrent.com", 6881) 
     self.session.add_dht_router("router.bitcomet.com", 6881) 
Problemi correlati