BitTorrent : le peer-to-peer, un cran plus loin

BitTorrent n’est pas simplement une solution de peer-to-peer parmi tant d’autres. Ce protocole, à la popularité grandissante, est largement utilisé dans un cadre légal comme alternative au téléchargement centralisé. Ce n’est pas la moindre de ses vertus, mais ce n’est pas la seule. Par Cyril Fiévet.

BitTorrent n’est pas simplement une solution de peer-to-peer parmi tant d’autres. Ce protocole, à la popularité grandissante, est largement utilisé dans un cadre légal comme alternative au téléchargement centralisé. Ce n’est pas la moindre de ses vertus, mais ce n’est pas la seule.
Par Cyril Fiévet.

Sommaire
Aux sources du torrent
BitTorrent pour tout et pour tous
Vers le mélange des genres
Encadré : Les principales différences entre BitTorrent et les autres réseaux de P2P
Pour aller plus loin

Dans le paysage tumultueux du P2P, BitTorrent est probablement un cas à part. Il adopte un principe simple : l’utilisateur ne télécharge plus un fichier unique se trouvant sur l’ordinateur d’un autre utilisateur, mais sur celui d’une multitude d’utilisateurs simultanément, tout en envoyant lui-même aux autres des morceaux du fichier qu’il est en train de télécharger.

C’est une différence de taille, notamment avec le fonctionnement des réseaux Gnutella ou FastTrack. Sur ceux-ci, l’utilisateur partage une partie de son disque dur (en général un répertoire) en permanence : quand il est connecté, les autres utilisateurs peuvent accéder à ce disque dur et récupérer ce qui les y intéresse. Le problème se pose dès que plusieurs personnes veulent récupérer le même fichier : une file d’attente se met en place, et chacun attend son tour pour « entrer » sur le disque dur des utilisateurs qui possèdent le fichier.

Avec BitTorrent, l’utilisateur qui télécharge un fichier le met lui-même à disposition des autres utilisateurs, au fur et à mesure qu’il le télécharge, et dès qu’il cesse de le faire (en arrêtant le « torrent »), il ne partage plus rien. Paradoxalement, le fichier étant recomposé par un nombre important de sources (tous les utilisateurs qui le téléchargent eux-même à un instant donné), son téléchargement est d’autant plus rapide qu’un nombre important de gens son intéressés par lui. En somme, avec BitTorrent, plus de gens téléchargent un fichier, et plus il est rapide de le télécharger soi-même au même moment.

Aux sources du torrent

Outre cette efficacité, constatée à l’utilisation, la technologie suscite un fort engouement dans la communauté des développeurs. BitTorrent a d’ailleurs été conçu et développé à l’origine par Bram Cohen, un informaticien alors âgé de 25 ans, qui en a fait la première démonstration en juillet 2001, lors de DefCon, une fameuse réunion annuelle – et anticonformiste – de hackers (http://wired.com/news/culture/0,1284,45248,00.html).

Cohen a livré les codes et les principes de BitTorrent à la communauté, qui s’en est approprié les fondements. Contrairement à d’autres outils qui émanent d’entreprises, notamment Kazaa (Sharman Networks), LimeWire (LimeWire LLC) ou eDonkey (MetaMachine), il n’existe pas véritablement de démarche commerciale associée à BitTorrent qui est avant tout un protocole d’échange, au même titre que FTP ou HTTP. L’outil initial de Cohen, longuement modifié et adapté, n’a d’ailleurs commencé à être largement utilisé qu’à partir de 2003.

L’utilisation de BitTorrent requiert un client compatible. Il en existe une bonne vingtaine aujourd’hui, en général conçus spécifiquement pour cela, et la plupart en OpenSource (par exemple Azureus, http://azureus.sourceforge.net). Le client sert à accéder aux « torrents » et ainsi à télécharger les fichiers correspondants.

Un torrent est un fichier particulier de faible poids (quelques dizaines de Ko) fournissant des indications (méta-données) sur le fichier auquel il correspond, et la façon de le reconstituer à partir des morceaux collectés – via BitTorrent – chez les autres utilisateurs. Les échanges pair à pair entre les utilisateurs sont gérés par un serveur, qui joue le rôle de « traceur » (« tracker ») : en ouvrant le fichier « .torrent », l’utilisateur contacte le serveur qui l’informe – de façon automatique – des endroits où se trouvent les autres utilisateurs qui téléchargent le même fichier.

Il convient d’insister sur le fait que le « torrent » ne contient aucun morceau du fichier qu’il sert à télécharger. Et le « traceur » n’a aucune idée de ce que contient le fichier. Le torrent et le traceur permettent juste à l’utilisateur, via son client, de dialoguer avec d’autres personnes sur le réseau qui téléchargent le même fichier. En outre, les données qui s’échangent entre le traceur et les utilisateurs sont très peu volumineuses (elles consistent pour l’essentiel en des pointeurs vers des adresses IP) et même si le traceur cesse d’être actif en cours de téléchargement, ce dernier peut continuer, de pair à pair (dans ce cas, le nombre de pairs n’évoluera plus dans le temps, cependant).

Ce principe de fonctionnement diffère donc des autres système d’échanges. Un client BitTorrent n’affiche rien au démarrage. Pour fonctionner, il doit donc être alimenté avec des adresses de torrents disponibles. De ce point de vue, un client BitTorrent s’apparente beaucoup à un navigateur web, pour lequel les pages Html et leurs URL seraient remplacées, respectivement, par des fichiers volumineux de format quelconque et des « torrents ».

Comme on l’imagine, il existe de multiples sites web dont l’unique fonction est de publier en permanence des adresses de torrents. De nouveaux sites de ce genre apparaissent – ou ferment – régulièrement, mais certains (comme Suprnova, http://suprnova.org) se sont imposés comme des références en la matière, et recensent plusieurs milliers de torrents, classés par genres et permettant de télécharger des fichiers de toutes natures, piratés pour la plupart. Dans une interview le mois dernier (http://www.slyck.com/news.php?story=475), le créateur de Suprnova, « Sloncek », affirmait que son site attirait 420 000 visiteurs uniques par jour (le site est hébergé en Slovénie, et il en assure lui-même la maintenance). De même, il existe un moteur de recherche calqué sur Google et ne produisant que des torrents en résultat des requêtes effectuées (Bitoogle, http://www.bitoogle.com). Une recherche portant sur le mot « Nemo » y fournit instantanément une soixantaine de liens pointant vers des torrents, tous ou presque permettant de télécharger des versions pirates du dessin animé de Pixar.

BitTorrent pour tout et pour tous

Mais, bien qu’il est largement utilisé aujourd’hui dans le cadre d’échanges illégaux de fichiers, rien ne prédispose BitTorrent à demeurer l’apanage du P2P illégal.

On constate d’ailleurs qu’il existe des sites regroupant des listes de torrents « légaux » (Par exemple « Legal Torrents », http://www.legaltorrents.com), comportant aussi bien des fichiers musicaux mis à disposition par les labels qui en possèdent les droits d’exploitation que les derniers livres de Lawrence Lessig, placés dès l’origine sous licence Creative Commons.
De plus, le procédé est de plus en plus utilisé par des sites communautaires abritant de multiples applications (notamment Sourceforge, http://sourceforge.net), comme alternative au téléchargement à partir d’un serveur centralisé.

BitTorrent peut ainsi être utilisé très facilement par tout producteur de contenu, quel qu’il soit. Il constitue même, et ce n’est pas le moindre de son intérêt, une alternative sérieuse aux solutions classiques, pour mettre à disposition du public des fichiers de grande taille. Le principal atout de la solution est d’épargner le (ou les) serveur(s) de l’entreprise, ainsi que sa bande passante : à l’instar du principe du grid, la charge correspondant au téléchargement est répartie entre les utilisateurs qui récupèrent le fichier de pair et à pair, et en ne faisant – dès que le cercle vertueux a été engagé – que très peu appel au serveur qui a délivré le fichier pour la première fois.

En outre, plusieurs applications disponibles permettent de créer soi-même des torrents, voire de jouer le rôle de traceur, pour un fichier qu’on voudrait mettre à disposition. La solution est donc peu coûteuse et autorise de petites entreprises à devenir diffuseurs de gros fichiers, à un nombre illimité de personne ou presque.

Vers le mélange des genres

Par bien des aspects, BitTorrent est donc la brique qui manquait pour « prolonger » le P2P et en faire une solution efficace utilisable dans un environnement professionnel ou personnel.

La technologie se prête aussi particulièrement bien à son intégration avec d’autres technologies existantes. Comme pour d’autres systèmes d’échanges, certains développeurs travaillent par exemple à la conception de plug-ins permettant de combiner messagerie instantanée et mise à disposition de torrents. Chacun aurait sa « buddy-list » correspondant à une liste d’amis, qui serait complétée par la liste de leurs torrents (produits ou trouvés par eux).

Mais le principal intérêt de BitTorrent réside peut-être dans son couplage avec RSS (cf. « RSS, une alternative au Web ? », http://fing.org/index.php?num=4325,4). Contrairement aux autres réseaux d’échanges, qui pourraient difficilement conserver une trace historisée de l’ensemble des fichiers qui se trouvent sur le disque dur de chaque utilisateur, BitTorrent se prête très bien à cela. Les sites qui fournissent des listes de torrents ne font que publier à échéance régulière des URI, regroupées de façon thématiques en fonction de la nature des fichiers correspondants.

Il est donc particulièrement pertinent de disposer de fils RSS, fonctionnant comme autant d’alertes quant à la mise à disposition des utilisateurs de fichiers à télécharger. Dans son agrégateur RSS, l’utilisateur consulte la liste, et lorsqu’un fichier l’intéresse, il n’a plus qu’à cliquer pour initier le téléchargement via son client BitTorrent.

La simplicité (et la puissance) du procédé a conduit certains observateurs à le comparer à une nouvelle forme de « magnétoscope virtuel » couplé à « un guide des programmes » d’un genre nouveau. On pourrait en effet imaginer qu’un utilisateur compose lui-même un fil RSS dédié à son acteur favori. Il serait alors averti en temps réel de la mise à disposition par d’autres utilisateurs d’un film mettant en scène cet acteur, et n’aurait plus qu’à cliquer pour le télécharger. Appliqué à d’autres fonctions que le piratage, le procédé, plus généralement, permettrait de centraliser simplement la mise à disposition de documents de toutes natures, proposés par de multiples entreprises ou organismes, et téléchargeables en P2P, sans utiliser de serveurs centralisés.

Cyril Fievet

Encadré : Les principales différences entre BitTorrent et les autres réseaux de P2P Il existe plusieurs « réseaux P2P », correspondant à des protocoles bien distincts, et supportés par des applications diverses. Bien que le terme « réseau » soit employé, il correspond ici, simplement, au fait que des clients applicatifs utilisent le même protocole pour communiquer et échanger (il n’y a bien sûr pas de réseau physique autre que l’internet entre les utilisateurs).

Quelques uns des principaux réseaux sont :

. BitTorrent, utilisable par exemple via Azureus, Burst, BT++ ou le client « officiel » BitTorrent
. eDonkey, utilisable par exemple via les applications eMule ou Shareaza
. FastTrack, utilisable par exemple via Kazaa, Grokster, iMesh ou Poisoned
. Gnutella, utilisable par exemple via Morpheus, Limewire ou Poisoned

Comme nous l’avons dit, les différences entre les différents réseaux (et en particulier entre BitTorrent et les autres) sont de deux natures : commerciales et techniques.

Au plan commercial, les principaux réseaux (ou protocoles), à commencer par FastTrack et eDonkey, ont été développé à l’origine par des entreprises. Cela n’implique pas que les clients respectifs pour s’y connecter soient tous de nature commerciale, mais beaucoup le sont. Kazaa, qui a initié le développement de FastTrack, existe soit sous la forme d’un logiciel payant, soit intègre des spywares et des adwares, qui « espionnent » ce que fait l’utilisateur, alimentant des bases de données à caractère marketing dont l’exploitation aide à financer le développement du logiciel. Du reste, Sharman Networks, qui détient aujourd’hui la propriété de Kazaa, n’hésite pas à poursuivre d’éventuels concurrents, au motif de la contrefaçon de son logiciel et de la violation du copyright qui y est attaché… Rien n’empêcherait de commercialiser un client BitTorrent, mais on constate que, depuis son origine, la technologie et ses dérivés sont tous « libres », et proposés en OpenSource.

Au plan technique, les différences tiennent aux principes de base des différents protocoles, et sont de plusieurs natures : la manière de localiser les pairs, le téléchargement proprement dit, et le partage de ce que chaque utilisateur possède sur son disque dur.
Sur FastTrack, le fonctionnement du « réseau » est proche de celui du web et du DNS : on établit une liste des adresses IP des utilisateurs, assortie des fichiers « partageables » sur leurs ordinateurs. Ces listes sont initialement stockées dans des « super noeuds » du réseau (en pratique, des ordinateurs disposant d’une bonne bande passante). Puis de nouveaux super noeuds sont ajoutés de proche en proche, au fur et à mesure qu’ils apparaissent. Chaque utilisateur qui utilise un client FastTrack va donc consulter, via une recherche indexée, la liste des fichiers disponibles, dans le contenu partagé par les utilisateurs indexés par les noeuds. De plus, lorsqu’un utilisateur a identifié un fichier qui l’intéresse chez un utilisateur sur le réseau, il peut en général consulter l’intégralité du dossier partagé par cet utilisateur. Enfin, il partage lui-même l’intégralité d’un répertoire donné de son disque dur. Même s’il est possible de télécharger simultanément à partir de plusieurs sources (il faut pour cela avoir vérifié au préalable qu’il s’agissait bien du même fichier sur ces différentes sources, via des algorithmes ad hoc), l’efficacité du système est donc amoindrie par le nombre d’utilisateurs qui téléchargent en même temps le même fichier.
Gnutella fonctionne de la même manière ou presque, mais tous les ordinateurs jouent le rôle de « noeuds », ce qui limite encore davantage l’efficacité du système, mais accroît son caractère « décentralisé » (donc difficile à fermer…).
A l’inverse BitTorrent fonctionne sur la base de « torrents » qui ne concernent chacun qu’un fichier précis. Le protocole est très efficace puisque à un instant donné, tous les utilisateurs d’un groupe donné (ceux qui ont chargé un torrent donné, dont les échanges sont coordonnés par le traceur) se concentrent sur le partage d’un seul fichier. Ce partage est forcément à double sens (toute personne qui télécharge un fichier aide les autres à le télécharger) et se fait selon un ordre quelconque (on ne télécharge pas un fichier selon un ordre séquentiel, mais selon les bits qui sont disponibles).
BitTorrent et eDonkey présentent de fortes similitudes : eDonkey repose sur un modèle client-serveur étendu (tous les clients peuvent devenir serveur) mais également sur la possibilité de récupérer les fichiers morceaux par morceaux, à partir de plusieurs sources.
Enfin, on notera que sur BitTorrent le « premier traceur », c’est-à-dire le premier serveur qui assure la mise à disposition initiale d’un fichier, n’est pas anonyme.

Pour en savoir plus

Le site officiel BitTorrent, par son créateur : http://bitconjurer.org/BitTorrent/
FAQ (par Brian Dessent, en anglais) : http://www.dessent.net/btfaq/
Un guide complet (Ratiatum.com, en français) : http://www.ratiatum.com/p2p.php?id_dossier=1356

À lire aussi sur internetactu.net

0 commentaires

  1. Au lieu de ratiatum dont les logiciels analysés sont peu nombreux et l’audience limitée, je vous propose de jeter un oeil sur framasoft, sité dédié au « libre » qui ne se contente pas de copier du contenu mais en créé. Sur bittorrent, on pourra aller là: http://www.framasoft.net/article2080.html

  2. Encore une fois, ne comptez pas sur nous pour alimenter les querelles de chapelles. Le fait de citer un site ne veut rien dire à l’encontre de ses concurents.

  3. trois questions de non-technicien producteur de contenu: est-ce que c’est facile à installer pour le non-spécialiste, est-ce qu’il y a des exemples en français, est-ce qu’il y a un mode d’emploi (mode d’installation) compréhensible par le non-initié?
    Last: est-ce que des groupes comme indymedia pourraient proposer ce service?

  4. Esque moi en tant que citoyen canadien quebecois ais-je le droit de me partir un site internet distriuant des fichier de type *.torrent ?