Qu'est-ce que le Protocole BitTorrent?
BitTorrent est un protocole de transfert de fichiers poste-à-poste conçu par Bram Cohen pour télécharger (principalement) des fichiers volumineux par Internet. Fondamentalement, les utilisateurs de BitTorrent sont regroupés en essaims et se connectent directement entre eux pour expédier et recevoir différents morceaux d'un même fichier grâce à un relai central, appelé traqueur, qui coordonne les pairs entre eux sans connaitre le contenu des fichiers échangés.
Il en résulte une exploitation très efficace de la bande passante, ce qui permet à un très grand nombre d'utilisateurs de communiquer entre eux sans craindre la saturation.
Sous BitTorrent, le téléchargement des fichiers se fait simultanément en amont et en aval et, contrairement à d'autres protocoles de transfert de fichiers, l'efficacité est proportionnelle au nombre d'utilisateurs. Plus ces derniers sont nombreux, plus les téléchargements sont rapides.
Les fonctionnalités de BitTorrent
On retrouve dans BitTorrent toutes les fonctionnalités des clients Peer-to-Peer modernes, c'est-à-dire entre autres le téléchargement de données à partir de plusieurs clients en même temps (multisourcing), qu'ils aient ou non la totalité du fichier (hashing). On peut bien évidemment interrompre un téléchargement, et le reprendre ensuite là où il en était rendu. Il est même possible de commencer un téléchargement par FTP et de le continuer avec BitTorrent !
Parmi les autres fonctionnalités offertes par BitTorrent :
? La vérification des morceaux reçus, ce qui rend BitTorrent infaillible dans le fichier que vous obtenez au final. Il s'agira forcément du fichier d'origine, même si des clients envoient des données corrompues, ou s'il y a des problèmes réseaux.
? La possibilité de télécharger des répertoires composés de plusieurs fichiers, de sous répertoires, etc... On trouve ainsi des torrents qui contiennent déjà tous les fichiers nécessaires. Par exemple une distribution de Linux pourra contenir 3 CDs prêts à être gravés, et le lien BitTorrent permettra de télécharger les 3 fichiers isos, les 3 fichiers .cue, et un fichier readme explicatif...
Par ailleurs, même si BitTorrent ne partage pas les données de votre disque dur, rien ne vous empêche de créer votre propre .torrent pour que d'autres personnes puissent par exemple télécharger une compilation de vos photos de vacances (BitTorrent est bien plus efficace pour envoyer 300Mo de photos à 10 amis que le FTP).
L'extension .Torrent
Le point de départ de tout téléchargement est un fichier 'torrent' (appelé de la sorte car son extension est .torrent). Ce fichier torrent est très petit (quelques kilo-octets) et contient toutes les informations dont votre client a besoin pour télécharger les données réelles.
Le tracker
Le rôle du tracker est simple : diffuser les fichier ayant l'extension .Torrent & transmettre à chaque client connecté les informations nécessaire a la mise a jours des Peers et des statistique de téléchargement / émission .
Le fonctionnement de BitTorrent
La solution du partage de fichiers est d'utiliser la bande passante inutilisée des utilisateurs. En effet, plus il y a de monde qui demande le fichier, plus il y a de bande passante disponible pour uploader contrairement à ce model de transmission traditionnel.

La visualisation des échanges entre client Bittorent avec un tracker !

Le fonctionnement de BitTorrent peut s'expliquer en imaginant un groupe de personnes autour d'une table où chacun souhaite obtenir la copie d'un même livre en s'exprimant et en écoutant ce que les autres offrent et demandent. A annonce qu'il détient les pages 1-12, 25, 42-51, et 85. C, D et E ne les ont pas toutes. B annonce à son tour qu'il dispose des pages 13-24, 31-37, et 62-73. A, D et E souhaiteraient recevoir quelques-unes de ces pages, etc. Tous se concertent et conviennent à des échanges mutuels. Le partage s'effectue ainsi jusqu'à ce que chaque participant finisse par obtenir une copie complète du livre.
Il existe un autre intervenant autour de cette table que nous appellerons « S ». Ce dernier possède une version complète du livre et n'a besoin de rien provenant des autres. Sa seule mission est de distribuer les pages qu'aucun autre membre de l'essaim ne possède.
Dès leur entrée dans l'essaim, les nouveaux arrivants doivent lui demander leurs premières pages, toujours différentes d'un pair à l'autre. Très rapidement, les membres de l'essaim disposent, tous ensemble, de la majeure partie du livre, même si personne n'a encore le livre entier. Voilà comment « S » arrive à partager son livre, sans devoir fournir une copie individuelle à chacun des intéressés. Il lui suffit de distribuer des parties différentes à des personnes différentes et elles n'auront qu'à se les échanger entre elles par la suite.
Note : Dans le jargon de BitTorrent, « S » est un diffuseur (seeder).
L'url de l'annonce
Dans chaque fichier .torrent est contenue l'adresse d'un (ou plusieurs) tracker(s) sur lequel ce 'torrent' est enregistré. Lorsque votre client démarre, il va dialoguer avec le tracker pour le prévenir qu'il est maintenant en train de télécharger ce fichier.
En réponse, le tracker lui envoie une liste d'autres personnes qui sont sur le même fichier. A intervalle régulier, votre client met à jour le tracker, en lui disant où vous en êtes dans le téléchargement, ce que vous avez téléchargé, envoyé, et de la même façon en réponse, le tracker vous redonne une liste de clients chez qui télécharger le fichier... Les données que vous communiquez au tracker sont purement statistiques, un client mentant sur la quantité de données envoyées ne verra pas son téléchargement s'accélérer.
Grâce à la liste envoyée par le tracker, votre client se connecte aux autres utilisateurs, et commence à télécharger. Dès
que vous avez reçu un morceau complet, vous commencez vous aussi à envoyer des données aux autres. Sur une même connexion, BitTorrent est capable de recevoir et d'envoyer simultanément des données à un même client. Chaque client mesure ainsi à quelle vitesse les autres lui envoient des données, et propose en priorité aux plus rapides de leur envoyer des données. Toutes les 10 secondes, votre client BitTorrent évalue les personnes les plus rapides. Par ailleurs, dans le but de tester tous les clients, toutes les 30 secondes vous essayez quelqu'un "au hasard" pour voir si en lui envoyant des données, il ne vous en enverrait pas en retour.
Bien évidemment les autres clients peuvent se connecter chez vous quand le tracker leur donne votre identification (la plupart des trackers renvoient environ 50 adresses d'autre clients à chaque fois qu'ils sont contactés). Il n'y a pas de différence de traitement entre un client chez qui vous vous êtes connectés et un client qui s'est connecté chez vous. Chacun peut à la fois envoyer et recevoir des données à travers cette connexion.
On distingue cependant généralement deux types de clients : les clients (peers) et les sources (seeds). La seule différence entre une source et un client "normal", c'est que la source dite "seed" dispose de la totalité du fichier. C'est tout. Donc quelqu'un disposant de 99.9% est un 'client' et quelqu'un disposant de 100% devient qualifié de source.
Les utilisateurs se demandent souvent comment leur téléchargement peut avancer alors qu'ils ne sont connectés à aucune source. Cela arrive souvent, par exemple lorsqu'il n'y a encore qu'une seule source, la source initiale. N'oubliez pas en effet que grâce aux technologies multisourcing et hashing implantées dans BitTorrent, vous pouvez télécharger depuis tout le monde, client ou source ; les clients auxquels vous êtes connectés étant peut-être, eux, connectés directement à une source...
Les principaux clients Bittorrent
Le protocole de BitTorrent étant ouvert, il existe de nombreux clients alternatifs. La plupart sont open-source et gratuits, un seul client à ce jour est un produit commercial, toujours gratuit.
µTorrent : L'un de client les plus populaire
Azureus : Un client java qui fonctionne sous Windows, Linux et Mac OS X.
ABC : Yet Another Bittorrent Client : un client qui utilise la base de The Shadow et fourni une interface graphique très complète.
Autres clients a venir...
Autres Utilitaires BitTorrent
TorrentSpy ? Un outil pour rechercher des torrents spécifiques sur les traqueurs, d'y voir l'information méta, de calculer l'adressage, de créer des fichiers .torrent destinés à la diffusion en amont, etc.
TorrentHarvester ? Un outil pour rechercher des torrents spécifiques sur les traqueurs, de visiter le canal IRC, si applicable
Autres utilitaires a venir...
La diffusion (seeding)
La diffusion est le processus de se connecter à un torrent quand vous disposez d'un fichier complet.
Il y a deux façons de diffuser :
-
En laissant votre client ouvert à la fin du téléchargement en aval. Une fois que vous détenez un fichier complet, vous devenez un diffuseur auprès des autres clients reliés à l'essaim. Vous téléchargez ainsi en amont vers d'autres utilisateurs jusqu'à ce que vous fermiez votre client BitTorrent.
-
En cliquant sur un lien torrent (ou en exécutant un fichier .torrent sauvegardé), puis en choisissant le nom d'un fichier déjà complet, BitTorrent vérifie le fichier, se rend compte qu'il est déjà complet et maintient sa connexion au traqueur en tant que diffuseur.
Garder votre client ouvert à la fin d'un téléchargement en aval
Il est toujours bien vu de laisser son client ouvert aussi longtemps que possible, car cela vient en aide à tous les pairs. Certaines communautés émettent des directives quant au débranchement, typiquement après que le rapport des octets reçus, versus les octets envoyés, atteint 1:1, 2 :1, 3 :1 ou 24 heures après la fin du téléchargement en aval, etc.
Facteurs qui influencer votre vitesse de téléchargement.
Règles fondamentales :
- "Moins je télécharge de torrents, plus je vais vite" :
En France, on dispose principalement de deux vitesses de connexions à haut débit, l'ADSL avec un upload à 128kbps, et l'ADSL avec un upload à 256kbps (sur Paris avec Free, la vitesse d'envoi des données serait officieusement de 384kbps). Sur une ligne à 128kbps, si vous ne faites que du BitTorrent, vous pouvez lancer 1 ou 2 téléchargements en même temps. Sur une 256kbps, 2 ou3... Au final plus vous allouez d'upload (vitesse d'envoi) à un torrent, plus il ira vite.
- Limitez votre upload :
Ca peut paraître contraire à la première règle, mais si vous ne le faites pas BitTorrent va complètement saturer votre ligne, et sur une connexion asymétrique (type ADSL) vous ne pourrez plus rien faire. Votre vitesse de téléchargement en pâtira aussi, et au final vous y perdez tout. En fonction des clients, l'optimum se situe entre 3kB/s et 5kB/s en dessous de votre ligne (c'est-à-de entre 11kB/s et 13kB/s d'upload Max pour une ligne avec 128kbps d'upload).
- Ouvrez le port approprier sur votre routeur ou firewall :
Laisser les autres se connecter à soi peut paraître anodin, mais pensez que généralement les connexions les plus rapides ne sont pas accessibles de l'extérieur. Ce sont donc elles qui se connecteront chez vous et si vous ne leur permettez pas, vous perdez des connections potentiellement performantes. Bittorrent est "juste", mais pour qu'une ligne 512/128 soit exploitée totalement, il faut bien des clients avec un gros upload pour compenser notre faiblesse à nous...
La plupart des clients vous laissent régler le nombre d'upload simultanés. Sans trop rentrer dans les détails, essayer de garder une vitesse d'upload par client supérieure à 2kB/s, donc si vous allouez 10kB/s à Bittorrent, définissez un maximum de 5 uploads simultanés (encore une fois ceci n'étant valable que si vous faites un seul téléchargement).
Comment augmenter la vitesse de téléchargement en aval?
Voici quelques orientations pour obtenir des connexions rapides avec BitTorrent.
Il peut arriver qu'un traqueur affiche des erreurs de temps mort à cause d'une surcharge en période de pointe. N'oubliez surtout pas que la qualité de votre connexion, les bouchons aux heures de pointe, etc. peuvent aussi affecter le débit en aval autant qu'en amont. Traqueurs et clients sont habituellement situés dans des fuseaux horaires différents où les heures de pointe sont également divergentes.
-
Si vous utilisez un réseau NAT, assurez-vous que les ports de BitTorrent soient réacheminés vers l'ordinateur où roule votre client BitTorrent pour que soient autorisées les connexions entrantes provenant de vos pairs. Autrement, seules les connexions sortantes seront débloquées.
-
Si vous utilisez un logiciel pare-feu, assurez-vous que votre client BitTorrent dispose des autorisations d'accès appropriées. Dans certains cas, il faudra définir le (s) port (s) TCP entrants et sortants utilisés par votre client BitTorrent.
-
Vérifiez que le torrent est « actif ». Utilisez, de préférence, un client expérimental amélioré qui affiche le nombre de pairs et diffuseurs auxquels vous êtes connecté (ex. ABC, Azureus, µTorrent, etc.). Vérifiez aussi le statut du torrent (en utilisant, par exemple, TorrentSpy ou en consultant les statistiques du site Web) pour vous assurer que d'autres personnes sont aussi connectées à l'essaim. Pour obtenir une vitesse acceptable, l'essaim d'un torrent doit être composé d'au moins quelques personnes branchées les unes aux autres. Plus il y a de pairs, plus le transfert est rapide.
-
Parfois, la limitation du débit en amont est proportionnel à celui de l'aval. Cela vaut particulièrement pour les connexions asymétriques telles que LNPA et câble où la largeur de la bande sortante est beaucoup plus petite que celle qui entre, ce qui explique des débits très élevés en aval et plus bas en amont. Cela incombe à la nature même de TCP/IP où chaque paquet reçu doit être confirmé par un petit paquet sortant. Si la connexion sortante est saturée par les données de BitTorrent, le décalage des paquets TCP/IP augmente au point d'en affecter l'efficacité.
-
Utilisez un client qui vous permet de limiter le débit du téléchargement en amont et paramétrez-le à environ 80 % du maximum observé ou 80 % de votre bande passante en amont. Ainsi, le débit en amont des torrents « sains » ne sera pas compromis et vous éviterez d'étrangler votre connexion tout en profitant d'une bonne vitesse en aval.
Lorsque les pairs sont peu nombreux, vous obtiendrez généralement un débit plus élevé en aval en augmentant le débit en amont au plus haut point possible avant de saturer votre connexion ? soit le niveau fatidique de 80 % (±).
Notez que si vous sélectionnez une vitesse en amont trop lente, vous ralentirez aussi le téléchargement en aval. Il est donc préférable de respecter, à la lettre, la philosophie poste-à-poste en partageant avec pairs et compères, comme il se doit.
-
Assurez-vous que votre réseau permet les connexions sortantes nécessaires au bon fonctionnement de BitTorrent. Certains réseaux (ex. des écoles ou lieux de travail, etc.) sont protégés par coupe-feu et les connexions passent par un serveur-substitut (proxy) où seuls les ports très connus sont ouverts. Hélas, il existe trop de scénarios possibles pour les énumérer tous. Toutefois, si vous essayez de télécharger un torrent « actif » et que votre client rapporte qu'il n'existe ni pair, ni diffuseur, il y a de fortes chances qu'il s'agisse d'un problème de coupe-feu ou de serveur-substitut.
Étranglement de la connexion durant les téléchargements à haut débit
Ce problème n'a pas encore été résolu. Il semble qu'il s'agisse d'un bogue de micrologiciel (firmware) affectant les modems LNPA/Câble ou les routeurs. Les forums de discussion à ce propos indiquent que les transferts s'effectuent sans problème quand les débits de téléchargement sont bas. Certains utilisateurs disent avoir réglé ce problème en arrêtant le transfert quand il atteint un débit trop rapide, puis de le remettre en marche.
Une limitation du débit de téléchargement en aval est beaucoup plus difficile à paramétrer que le débit en amont parce qu'il est facile de contrôler le débit des paquets sortants, tandis que le débit des paquets arrivants est défini par les systèmes d'origine, les routeurs et les passerelles tout au long du chemin d'accès. Toutefois, un logiciel peut réaliser un effet de limitation du débit de plusieurs manières ? il suffit d'abandonner quelques paquets lorsqu'ils atteignent une vitesse trop rapide, ce qui aura pour effet de résister à la pile TCP/IP de l'expéditeur en quelque sorte.
-
Le logiciel commercial Netlimiter permet de limiter individuellement les programmes et les connexions autant en amont qu'en aval. Toutefois, les débits en amont affichés par ce logiciel ne reflètent pas toujours fidèlement ceux de BitTorrent.
-
Le nombre de connexions ne se corrèle pas directement avec la vitesse des téléchargements, car un client peut être connecté à des pairs très lents ou limité à un ou deux pairs très rapides seulement. Les paramètres de la ligne de commande qui affectent le débit des téléchargements sont les suivants :
(voir également les Arguments de la ligne de commande.)
--min_peers n
Cette commande détermine le nombre minimum de pairs auxquels BitTorrent peut se connecter avant qu'il cesse d'en davantage au traqueur. La valeur n de défaut est 20.
--max_initiate n
Cette commande définit l'instant où le client devrait cesser d'entreprendre de nouvelles connexions vers les pairs. La valeur n de défaut est 40.
Il est possible que cette commande n'affecte que les connexions sortantes, c.-à-d. que le client continuera d'accepter de nouvelles connexions au-delà du nombre défini, mais il n'initiera plus de connexions sortantes.
--request_backlog n
Cette commande définit le nombre de requêtes de téléchargement en aval pouvant être mis dans la queue. La valeur n de défaut est 5. Un réglage inférieur à cette valeur devrait diminuer l'efficacité et la vitesse des téléchargements.
À titre d'exemple, vous pourriez essayer les paramètres --min_peers 5 --max_initiate 10 --request_backlog 3 et voir si cela allège les débranchements sporadiques et autres problèmes afférents.
Messages d'erreurs affichés par BitTorrent
La meilleure chose à faire lorsque vous éprouvez des problèmes de connectivité est de patienter simplement. Il peut arriver qu'un traqueur soit hors ligne, surchargé ou lent à répondre (souvent en raison d'une forte demande ou même d'attaques DDoS très sévères (acronyme de Denial of Service). Certains torrents peuvent prendre un certain moment avant d'atteindre une vitesse de croisière. La patience est une vertu! Cela dit, vous trouverez ci-dessous des messages d'erreurs typiques accompagnés d'explications.
Il peut arriver que vous receviez un message d'erreur (en rouge) quand le client éprouve de la difficulté à se connecter au traqueur Il est normal qu'il continue de réessayer. Un téléchargement peut même progresser normalement et avec succès, malgré un message d'erreur. Notez la durée de l'erreur. Si elle dépasse 5 ou 10 minutes, ignorez-la! Les éditions plus récentes des clients rendent « caducs » les messages d'erreur après 5 minutes afin de résoudre cette situation.
Problem getting response info - [Errno 2] No such file or directory: "C:Documents and Sett..."
[Problème de réception d'une explication- [Errno 2]. Le fichier ou répertoire est inexistant : "C:Documents and Sett..."]
Pour quelque raison, il arrive parfois qu'Internet Explorer ne sauvegarde pas correctement le fichier torrent dans le répertoire des dossiers Internet temporaires. La solution semble être de cliquer de droite sur le lien et de choisir le menu Sauvegarder sous... pour sauvegarder le fichier torrent sur disque, puis de double cliquer sur le fichier pour lancer le client. Le fait de vider le cache d'Internet Explorer peut aussi aider à ce que ce problème ne se reproduise pas. Ce problème semble être lié aux fichiers .torrent dont les noms sont encadrés de crochets « [ ] ».
Too many args - 0 max.
[Trop d'arguments - 0=Maximum.]
Cette erreur signifie que la ligne de commande est mal définie. Passez à la section Arguments de la ligne de commande et assurez-vous que les arguments vers le programme BitTorrent incluent --responsefile "%1".
A piece failed hash check, re-downloading it
[Un morceau a échoué le calcul de l'adressage, reprise du téléchargement.]
Ce message bénin peut être ignoré sans risque. Il signifie qu'un morceau du fichier reçu sera téléchargé de nouveau parce qu'il a échoué le calcul de l'adressage. La cause probable de cette erreur s'explique par quelqu'un qui a mal utilisé l'option "skip hash check" (ignorer le calcul de l'adressage).
bad data from tracker - [données corrompues provenant du traqueur -]
Cette erreur peut être ignorée la plupart du temps. Elle semble se produire quand un traqueur est surchargé ou, du moins, boiteux.
Problem connecting to tracker - timeout exceeded
[Problème de connexion au traqueur - temps mort échu]
Problem connecting to tracker - HTTP Error 503: Connect failed
[Problème de connexion au traqueur - Erreur HTTP 503: Connexion échouée]
Problem connecting to tracker - [Errno socket error] (10061, "Connection refused")
[Problème de connexion au traqueur - [Erreur de douille Errno] (10061, « Connexion refusée »]
Problem connecting to tracker - (111, 'Connection refused')
[Problème de connexion au traqueur - (111, « Connexion refusée »]
Un problème s'est produit lors de la communication avec le traqueur. Les traqueurs sont souvent surchargés et les connexions peuvent parfois échouer. La meilleure chose à faire est d'être patient et de garder le client ouvert. Si vous remarquez que cette erreur se produit souvent, essayez d'augmenter le temps mort sur les requêtes HTTP (HTTP request timeout) en ajoutant le paramètre "--http_timeout 120" (le défaut est de 60 secondes). Voir la section Arguments de la ligne de commande pour en savoir davantage.
Problem connecting to tracker - HTTP Error 400: Not Authorized
[Problème de connexion au traqueur - Erreur HTTP 400 : Accès interdit ou autorisation refusée.]
Ce message indique que les administrateurs du traqueur ne permettent pas à ce torrent d'utiliser leur traqueur. À titre d'exemple, certains traqueurs ne traqueront que les torrents publiés sur leur propre forum ou site Web. Cela indique habituellement que le torrent est périmé. Visitez le site Web associé au traqueur et essayez de trouver un torrent plus actualisé.
Problem connecting to tracker - HTTP Error 404: Not Found
[Problème de connexion au traqueur - Erreur HTTP 404 : Fichier introuvable.]
Ce message indique qu'il s'agit probablement d'un torrent périmé. Essayez de repérer un nouveau lien vers ce torrent.
Problem connecting to tracker - HTTP Error 407: Proxy Authentication Required
[Problème de connexion au traqueur - Erreur HTTP 407 : L'authentification du substitut est requise.]
Ce message indique que vous devez définir un pseudonyme et un mot de passe pour votre serveur-substitut afin de pouvoir communiquer avec le traqueur. Voir cette section pour en connaitre davantage.
Les Source : TEKNOPHOBE.COM ,Olivier Chalouhi , Ratiatum.