Comment BitTorrent fonctionne-t-il uniquement avec les connexions sortantes?

18

Quel est le mécanisme qui permet à BitTorrent de fonctionner uniquement avec des connexions sortantes?

Autrement dit, sans redirection de port.

Le FAQ et guide BitTorrent de Brian dit:

BitTorrent fonctionnera généralement bien dans un environnement NAT (traduction d'adresse réseau), car il ne peut fonctionner qu'avec des connexions sortantes.

Est-ce que d'autres pairs fonctionnent comme serveurs de rendez-vous dans ce cas?

Peter Mortensen
la source

Réponses:

8

Pour autant que je sache, cela fonctionne en utilisant des connexions inverses - fondamentalement, votre client établit une connexion sortante qui est maintenue ouverte par la machine distante et ils pompent les données via cette même connexion.

Si tout le monde l'utilisait et que personne n'avait de ports configurés, cela échouerait très probablement. Lorsque j'ai utilisé Bittorent avec des ports désactivés, j'obtiens des vitesses horribles, mais cela fonctionne, c'est pourquoi je pense que cela fonctionne comme ça.

William Hilsum
la source
Pourquoi cette méthode entraînerait-elle des vitesses plus faibles que si les ports étaient transférés?
gsingh2011
@ gsingh2011 il y a plusieurs raisons ... la plus courante avec BT est qu'elle peut vous relayer via d'autres personnes, donc votre vitesse de téléchargement peut être limitée par la vitesse de téléchargement d'autres personnes.
William Hilsum
Pour tracker, c'est correct et ce n'est pas un problème. mais pour le téléchargement, ce n'est pas vrai. car le mécanisme de téléchargement de bit torrent doit être téléchargé à partir d'autres pairs. d'autres pairs peuvent être derrière un NAT (comme vous). Alors, comment bit torrent fonctionne-t-il derrière un NAT?
SMMousavi
4
Il s'agit d'une réponse partielle concernant les techniques générales de traversée NAT. La vraie question est: comment savez-vous que quelqu'un veut télécharger des blocs de fichiers depuis vous, puisque vous n'acceptez aucune connexion non sollicitée? Il n'y a donc que des possibilités limitées: soit le tracker vous avertit, soit vous vous connectez activement à plusieurs clients du tracker pour lancer des sessions d'appairage (afin qu'ils puissent demander des téléchargements à un moment donné), ou vous n'acceptez que les demandes des pairs que vous téléchargez activement ou ces pairs agissent comme des points de rendez-vous. Alors, quelle proposition est implémentée dans le client torrent?
KrisWebDev
5

BitTorrent fonctionne en utilisant une connexion P2P. Par conséquent, il doit y avoir un moyen de se connecter directement aux pairs. Comme vous le savez, NAT interrompt le P2P. Mais il existe une solution pour que cela fonctionne. La plupart (comme je sais tout) est basé sur le protocole STUN.

Chaque client obtient son adresse IP publique et son numéro de port temporaire (UDP) à l'aide du serveur STUN. Le serveur STUN aide le client à détecter la présence de NAT et à détecter l'IP public + le numéro de port temporaire (attribué par NAT). Le client essaie ensuite d'établir une connexion directe avec un autre pair en utilisant la technique du trou de poinçonnage (voir wikipedia ).

Si vous avez également activé UPnP, il existe également une autre solution.

Pour plus d'informations, voir NAT Traversal sur wikipedia .

SMMousavi
la source
1

Normalement, les gens se connectent à vous pour vous demander des données, et vous vous connectez aux personnes qui leur demandent des données.

Si les connexions entrantes sont impossibles, votre client sortira également et demandera activement de fournir des données à d'autres personnes (et peut le faire si des connexions entrantes sont également possibles).

Vous ne téléchargez pas autant de cette façon, mais ce n'est pas vraiment une préoccupation pour les trackers publics.

Jeffrey Aylesworth
la source