in

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

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

La question

Le lecteur SuperUser Steve V. avait une question très spécifique sur le système DHT (Distributed Hash Table) dans le protocole BitTorrent:

J’ai déjà lu cette réponse SuperUser et cet article Wikipédia 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 maintient une liste de pairs dans un essaim.

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

Ma question est la suivante: comment fonctionne la DHT? C’est, Comment un nouveau client peut-il rejoindre un essaim sans traqueur ou sans la connaissance d’au moins un membre de l’essaim pour échanger des pairs?

(Remarque: les explications simples sont les meilleures.)

Sa question a à son tour suscité une réponse très détaillée sur les différentes fonctions du système BitTorrent; jetons un coup d’œil maintenant.

La réponse

Allquixotic, contributeur SuperUser, offre une explication approfondie:

Vous ne pouvez pas. C’est impossible.*

* (À moins qu’un nœud sur votre se trouve être déjà un nœud dans le DHT. Dans ce cas, vous pouvez utiliser un mécanisme de diffusion, tel qu’Avahi, pour «découvrir» ce pair et démarrer à partir de celui-ci. Mais comment ils bootstrap eux-mêmes? Finalement, vous vous retrouverez dans une situation où vous devez vous connecter à Internet public. Et l’Internet public est unicast uniquement, pas de multidiffusion, vous êtes donc obligé d’utiliser des listes prédéterminées de pairs.)

Références

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

Exposition

Avec le protocole Kademlia, lorsque vous rejoignez le réseau, vous passez par un amorçage , qui nécessite absolument que vous connaissiez,, l’adresse IP et le port d’au moins un nœud participant déjà au réseau DHT. Le tracker 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 des informations de connectivité pour plus de nœuds, puis vous naviguez dans cette structure «graphique» pour obtenir des connexions à de plus en plus de nœuds, qui peuvent fournir les deux connectivité à d’autres nœuds et données de charge utile (morceaux du téléchargement).

Je pense que votre question réelle est en gras – celle de savoir comment rejoindre un réseau Kademlia DHT sans le savoir toutautres membres – repose 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 qui pourrait contenir des métadonnées DHT, vous êtes bloqué – vous ne pouvez même pas commencer. Je veux dire, bien sûr, vous pouvez tenter par la force brute de découvrir une adresse IP sur Internet public avec un port ouvert qui diffuse des informations DHT. Mais plus probablement, votre client BT est codé en dur sur une IP statique ou un DNS spécifique qui se résout en un nœud DHT stable, qui ne fournit que les métadonnées DHT.

Fondamentalement, le DHT n’est aussi décentralisé que le mécanisme de jonction, et parce que le mécanisme de jonction est assez fragile (il n’y a aucun moyen de «diffuser» sur tout Internet! Vous devez donc le faire à un hôte pré-assigné individuel pour obtenir les données DHT ), Kademlia DHT n’est pas décentralisée. Pas dans le sens le plus strict du terme.

Imaginez ce scénario: quelqu’un qui veut que le P2P s’arrête sort et prépare une attaque sur les nœuds DHT stables couramment utilisés qui sont utilisés pour l’amorçage. Une fois qu’ils ont organisé leur attaque, ils la lancent sur les nœuds en même temps. ; chaque nœud DHT de bootstrap est en panne d’un seul coup. Maintenant quoi? Vous êtes coincé avec la connexion à pour télécharger des listes traditionnelles de pairs de ceux-ci. Eh bien, s’ils attaquent aussi les traqueurs, alors vous êtes vraiment dans une crique. En d’autres termes, Kademlia et l’ensemble du réseau BT sont limités par les limites d’Internet lui-même, en ce sens qu’il existe un nombre fini (et relativement petit) d’ordinateurs que vous devrez réussir à attaquer ou à mettre hors ligne pour empêcher> 90%. des utilisateurs de se connecter au réseau.

Une fois que les nœuds d’amorçage «pseudo-centralisés» sont tous partis, les nœuds intérieurs du DHT, qui ne sont pas amorçables car, sont inutiles; ils ne peuvent pas apporter de nouveaux nœuds dans le DHT. Ainsi, à mesure que chaque nœud intérieur se déconnecte du DHT au fil du temps, soit en raison de l’arrêt de leurs ordinateurs, du redémarrage pour des mises à jour, etc., le réseau s’effondrerait.

Bien sûr, pour contourner cela, quelqu’un pourrait déployer un client BitTorrent corrigé avec une nouvelle liste de nœuds DHT stables ou d’adresses DNS prédéterminés, et annoncer fortement à la communauté P2P d’utiliser cette nouvelle liste à la place. Mais cela deviendrait une situation de «coup de taupe» où l’agresseur (le mangeur de nœuds) téléchargerait progressivement ces listes lui-même, et ciblerait les nouveaux nœuds de démarrage courageux, puis les mettrait également hors ligne.

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

Avez-vous quelque chose à ajouter à l’explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d’autres utilisateurs de Stack Exchange férus de technologie? Consultez le fil de discussion complet ici.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment utiliser Amazon Music sur Twitch Live Streams

Comment utiliser Amazon Music sur Twitch Live Streams

Comment utiliser un appareil photo numérique comme webcam

Comment utiliser un appareil photo numérique comme webcam