Si j'ai un torrent sans trackers et que je viens de démarrer un client bittorent, je n'ai pas encore de pairs ... comment savoir avec qui me connecter en premier dans le DHT? Il semble que je devrais connaître au moins UN nœud dans le DHT pour commencer ...
Lorsqu'un client BitTorrent se connecte à DHT, il y a un endroit initial où il va pour trouver des pairs. Avec le client BitTorrent d'origine, il y avait une URL vers bitorrent.com qui aiderait à démarrer. J'ai essayé de rechercher la référence mais je ne l'ai pas trouvée. Une fois que vous avez établi des connexions avec d'autres clients, vous pouvez faire un announce
sur le réseau DHT pour trouver des pairs pour le torrent que vous recherchez.
Voici un lien vers les spécifications BitTorrent qui traitent de DHT.
Un dictionnaire torrent sans tracker n'a pas de touche "annonce". Au lieu de cela, un torrent sans tracker a une clé "nœuds". Cette clé doit être définie sur les K nœuds les plus proches dans la table de routage du client générateur de torrent. Alternativement, la clé pourrait être définie sur un bon nœud connu tel que celui exploité par la personne générant le torrent. Veuillez ne pas ajouter automatiquement "router.bittorrent.com" aux fichiers torrent ou ajouter automatiquement ce nœud aux tables de routage des clients.
La DHT principale bootstrap sont router.uTorrent.com
et un CNAME, router.bittorrent.com
. Port 6881
.
le graphique au bas de cette projet de surveillance DHT site montre
en tant que pairs bootstrapping
Dans BiTTorrent, vous avez trois options principales:
nodes
pour que vous puissiez les lier au DHT avec (en fait, il est recommandé lors de la création d'un fichier torrent)Transmission
utilise un hardcoded bootstrap node for dht s'il n'y a pas d'autre moyen d'obtenir des pairs:
bootstrap_from_name( "dht.transmissionbt.com", 6881, bootstrap_af(session) );
Je suppose que chaque client torrent utilise son propre nœud bootstrap.
Pour mémoire, Déluge utilise également nœuds boostrap codés en dur :
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)
Un client peut en apprendre davantage sur d'autres pairs capables de DHT grâce à ses interactions avec eux. Le soutien d'un pair pour DHT est annoncé dans sa poignée de main. Une fois qu'un client découvre au moins un bon pair DHT bien connecté, il peut naviguer dans le DHT pour trouver des pairs DHT plus nombreux et plus proches. Il se souviendra de ces pairs, appelés nœuds en langage DHT, entre les redémarrages du logiciel et maintiendra/mettra à jour la liste en continu pendant son exécution. Dans le pire des cas où un client ne connaît pas de bons pairs capables de DHT, il vous faudra télécharger un torrent basé sur le tracker afin qu'il puisse, espérons-le, contacter quelques bons pairs capables de DHT qu'il apprend via le tracker.
pdate: Pour sa liste initiale de pairs DHT, comme le souligne @Seppo, un client torrent peut utiliser un ou plusieurs noms DNS codés en dur pour trouver les adresses de pairs bien connus, et il peut également inclure également une liste codée en dur de pairs comme solution de rechange finale. Une limitation du DNS, cependant, aucune information de port n'est fournie, donc un port par défaut de 6881 est généralement supposé tandis que d'autres moyens prennent en charge les homologues opérant sur différents ports.
Vous avez besoin de pairs d'un autre torrent pour parler. Comme vous l'avez dit, vous ne les avez pas, vous n'avez pas grand-chose à faire ...