Page d'accueil » comment » Comment un client Bittorrent découvre-t-il initialement ses pairs?

    Comment un client Bittorrent découvre-t-il initialement ses pairs?

    Quand votre client torrent rejoint l’essaim pour partager et rassembler des fichiers, comment sait-il exactement où se trouvent ses pairs? Continuez à lire alors que nous fouillons dans les mécanismes qui sous-tendent le protocole BitTorrent.

    La séance de questions et réponses d'aujourd'hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté..

    La question

    Le lecteur de SuperUser, Steve V., a posé une question très spécifique sur le système DHT (Distributed Hash Table) au sein du protocole BitTorrent:

    J'ai déjà lu cette réponse du SuperUser et cet article de Wikipedia, mais les deux sont trop techniques pour que je puisse vraiment comprendre..

    Je comprends l’idée d’un tracker: les clients se connectent à un serveur central qui tient à jour une liste de pairs dans un essaim.

    Je comprends aussi l’idée d’échange entre pairs: les clients qui se trouvent déjà dans un essaim envoient la liste complète de leurs pairs les uns aux autres. Si de nouveaux pairs sont découverts, ils sont ajoutés à la liste..

    Ma question est, comment fonctionne DHT? C'est, comment un nouveau client peut-il rejoindre un essaim sans un pisteur ou la connaissance d'au moins un membre de l'essaim avec lequel échanger des pairs??

    (Remarque: des explications simples sont préférables.)

    À son tour, sa question a suscité une réponse très détaillée sur les différentes fonctions du système BitTorrent. jetons un coup d'oeil maintenant.

    La réponse

    Allquixotic, contributeur à SuperUser, offre une explication détaillée:

    Comment un nouveau client peut-il rejoindre un essaim sans un pisteur ou la connaissance d’au moins un membre de l’essaim avec lequel échanger des pairs??

    Tu ne peux pas. C'est impossible.*

    * (Sauf si un noeud sur votre réseau local se trouve déjà être un nœud dans le DHT. Dans ce cas, vous pouvez utiliser un mécanisme de diffusion, tel que Avahi, pour "découvrir" cet homologue et l'amorcer à partir de celui-ci. Mais comment ils se booter? Vous finirez par vous retrouver dans une situation où vous devez vous connecter à Internet public. Et Internet public est unicast seulement, pas multicast, vous êtes donc obligé d'utiliser des listes de pairs prédéterminées.)

    Références

    Bittorrent DHT est implémenté via un protocole appelé Kademlia, qui est un cas particulier du concept théorique d’une table de hachage distribuée..

    Exposition

    Avec le protocole Kademlia, lorsque vous rejoignez le réseau, vous suivez une procédure d’amorçage, qui exige absolument que vous sachiez, en avance, l'adresse IP et le port d'au moins un nœud participant déjà au réseau DHT. Le suivi auquel vous vous connectez, par exemple, peut être lui-même un nœud DHT. Une fois que vous êtes connecté à un nœud DHT, vous procédez au téléchargement des informations à partir du DHT, qui vous fournit les informations de connectivité pour plusieurs nœuds, puis vous naviguez dans cette structure de «graphe» pour obtenir des connexions à un nombre croissant de nœuds, qui peuvent fournir les deux. connectivité à d'autres nœuds et données utiles (morceaux du téléchargement).

    Je pense que votre question est en gras - celle de savoir comment rejoindre un réseau Kademlia DHT sans savoir toutautres membres - est basé sur une fausse hypothèse.

    La réponse simple à votre question en gras est, tu ne. Si vous ne connaissez AUCUNE information sur un seul hôte pouvant contenir des métadonnées DHT, vous êtes bloqué - vous ne pouvez même pas vous lancer. Je veux dire, bien sûr, vous pourriez tenter par la force brute de découvrir une adresse IP sur l’Internet public avec un port ouvert permettant de diffuser des informations DHT. Mais plus vraisemblablement, votre client BT est codé en dur sur une adresse IP ou DNS statique spécifique qui se résout en un nœud DHT stable, qui fournit uniquement les métadonnées DHT..

    Fondamentalement, la DHT est aussi décentralisée que le mécanisme de jonction, et parce que le mécanisme de jonction est assez fragile (il n’ya aucun moyen de «diffuser» sur l’ensemble de l’Internet! unicasthôte pré-assigné pour obtenir les données DHT), Kademlia DHT n’est pas vraiment décentralisée. Pas dans le sens le plus strict du mot.

    Imaginez ce scénario: quelqu'un qui veut que le P2P s'arrête s'éteint et prépare une attaque sur tout noeuds DHT stables couramment utilisés, utilisés pour l’amorçage. Une fois leur attaque mise en scène, ils la lancent tout nœuds tout à la fois. Pan; chaque nœud d'amorçage DHT est en panne d'un coup. Maintenant quoi? Vous êtes coincé avec la connexion à trackers centralisés télécharger des listes traditionnelles de pairs à partir de celles-ci. Eh bien, s’ils attaquent aussi les traqueurs, alors vous êtes vraiment, vraiment une crique. En d'autres termes, Kademlia et l'ensemble du réseau BT sont contraints par les limites d'Internet lui-même, en ce sens qu'il existe un nombre fini (et relativement petit) d'ordinateurs qu'il vous faudrait attaquer ou mettre hors tension avec succès pour> 90% des utilisateurs de se connecter au réseau.

    Une fois que tous les nœuds d’amorçage «pseudo-centralisés» ont disparu, les nœuds intérieurs de la DHT, qui ne démarrent pas car personne à l'extérieur de la DHT ne connaît les nœuds intérieurs, sont inutiles ils ne peuvent pas amener de nouveaux nœuds dans le DHT. Ainsi, à mesure que chaque nœud intérieur se déconnecte de la DHT au fil du temps, que ce soit en raison de personnes qui arrêtent leur ordinateur, qui redémarrent pour des mises à jour, etc., le réseau s'effondrera..

    Bien entendu, pour contourner ce problème, quelqu'un pourrait déployer un client BitTorrent corrigé avec une nouvelle liste de nœuds DHT stables prédéterminés ou d'adresses DNS, et annoncer à haute voix à la communauté P2P d'utiliser cette nouvelle liste à la place. Mais cela deviendrait une situation de type "whack-a-mole" où l'agresseur (le mangeur de nœuds) téléchargerait ces listes progressivement, ciblerait les nouveaux nœuds de démarrage courageux et les mettrait hors ligne également..

    Nous avons non seulement appris la réponse à la question initiale, mais également beaucoup appris sur la nature du système BitTorrent et ses vulnérabilités..


    Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.