Catégorie : Comprendre     Tags :      0 Commentaire

    Retrouvez cet article dans : Linux Pratique 41

    BitTorrent est un système de distribution de fichiers au travers d'un réseau informatique, permettant des téléchargements rapides et assurant une bonne disponibilité, grâce à une multiplication des sources de téléchargement.

    En cela, le fonctionnement diffère sensiblement d'une plate-forme de téléchargement classique (FTP ou HTTP, avec un serveur central) dans le sens où celle-ci, lorsque la demande pour un fichier particulier est importante, sature rapidement et devient moins accessible, d'où l'intérêt de disposer d'un ou plusieurs miroirs. Au contraire, l'idée de BitTorrent est que tout individu téléchargeant un fichier devient également distributeur du fichier (ou de la portion de fichier) en sa possession. Ainsi, dès qu'un fichier BitTorrent commence à être téléchargé, les sources se multiplient, la disponibilité s'améliore et les débits de transmission demeurent intéressants, malgré le succès du fichier. En quelque sorte, BitTorrent est une solution de distribution d'autant plus efficace que la demande est écrasante.

    Fonctionnement de base

    Le principe est assez simple, et déjà éprouvé par les autres systèmes P2P. Lors d'un téléchargement classique, vous récupérez le fichier du début à la fin, en une seule fois, à partir d'une source unique. S'il y a une erreur, une interruption de la connexion ou un aléa quelconque, la plupart du temps (à moins d'utiliser un outil permettant de reprendre le téléchargement
    là où il s'était interrompu) l'opération est perdue et il faut recommencer à zéro. Dans le cadre du BitTorrent, le fichier distribué est découpé en blocs, qu'il est possible de rapatrier un à un, dans le désordre et même depuis plusieurs sources différentes.
    Ainsi, si pour une raison ou une autre, la connexion avec un distributeur est interrompue, le téléchargement des autres blocs en provenance des autres distributeurs se poursuit.

    Petit lexique rapide

    • Leech : Une sangsue est un client souhaitant télécharger un fichier, mais qui n'a rien à partager en retour.
    • Peer : Un pair est un client disposant d'une fraction ou de la totalité d'un fichier, et le partageant avec les autres.
    • Seed : Une graine est un client disposant de la totalité d'un fichier et le partageant avec les autres.
    • Swarm : Un essaim est composé des pairs et des graines partageant tout ou partie d'un fichier.

    L'intérêt de BitTorrent est que dès qu'un client (sangsue) télécharge un bloc complet, il le met automatiquement à disposition des autres sangsues, et devient par là même un pair et intègre l'essaim des sources susceptibles de fournir des blocs du fichier. Lorsqu'il l'aura récupéré dans son intégralité, il deviendra une graine supplémentaire. Ce système très simple garantit que plus un fichier est populaire, plus il sera facile de le télécharger par d'autres personnes également intéressées. En d'autres termes, en cas de demande élevée, au lieu d'effondrer les capacités d'émission de la source, celles-ci se multiplient pour garantir une disponibilité qui sera toujours la plus satisfaisante possible. Qui plus est, le système encourage le partage en favorisant les téléchargements de ceux qui partagent beaucoup. Ainsi, quelqu'un qui ne partage pas ou très peu recevra moins de blocs que ceux qui partagent beaucoup.
    Bien sûr, le système BitTorrent est particulièrement attractif pour les clients reposant sur des connexions permanentes à l'Internet, en particulier ceux disposant de débits en émission et réception importants, car ce n'est plus le débit d'un serveur central qui est le facteur limitant dans la rapidité des échanges des fichiers, mais celui des lignes téléphoniques reliant le client à la Toile.
    Lorsqu'un client BitTorrent souhaite télécharger un fichier, il commence par interroger un serveur " central "

    Petit lexique rapide

    • Scrape : Demande par un client auprès d'un pisteur pour connaître le nombre de pairs et de sangsues pour le fichier recherché.
    • Tracker : Serveur distant qui comptabilise le nombre de pairs et de sangsues d'un essaim, en contact régulier avec les clients ; à noter que le pisteur se contente de faire les mises en relation, mais ne propose pas lui-même de fichier à télécharger.

    pour connaître les pairs et sangsues relatifs à ce fichier. Il est également en mesure d'afficher le nombre de copies complètes du fichier mises à disposition par l'essaim, ainsi que le taux de partage. Idéalement, un taux d’un pour un indique que tous ceux qui téléchargent le fichier le mettent également à disposition, ce qui est le signe d'une bonne diffusion, rapide et de qualité du fichier.

    Naissance, vie et mort d'un torrent

    Lorsqu'un fichier est mis à disposition la première fois (cas d'une graine unique), s'il y a beaucoup de demandes de téléchargement à la fois, le client étant limité dans sa capacité d'émission, il risque de s'écouler un temps considérable avant qu'un nombre certain de graines supplémentaires, capables de proposer le fichier dans son intégralité, apparaissent, pouvant ainsi freiner considérablement la diffusion globale du fichier, malgré un nombre de pairs (proposant des tronçons du fichier) pouvant être considérable. Pour y pallier, la graine d'origine peut se voir attribuer le rôle spécifique de super graine qui consiste à envoyer des blocs et à attendre la confirmation que les sangsues qui l'ont téléchargée les distribuent à leur tour avant de mettre à disposition les blocs suivants. Cette méthodologie oblige les sangsues à être partie prenante dans la diffusion des fichiers et par conséquent à devenir elles-mêmes des graines. Cette méthode de diffusion n'est toutefois à employer que lorsqu'il n'y a qu'une seule graine ou un nombre très limité
    de graines.

    Petit lexique rapide
    Superseed : Une super graine est une graine qui ne diffusera les blocs suivants d'un fichier qu'après s'être assurée que le client sangsue a également mis à disposition les blocs en sa possession, pour faciliter leur diffusion initiale.

    Lorsque suffisamment de demandes ont été satisfaites, le système BitTorrent tend donc à garantir qu'il y a proportionnellement autant d'offres et le fichier présente alors une assez haute disponibilité. Il n'y a donc pratiquement pas de files d'attente : les téléchargements d'un fichier peuvent débuter quasi instantanément.
    Les demandes pour les fichiers les plus populaires sont donc assez facilement résolues. Mais au bout d'un certain temps, lorsque la demande pour un fichier s'essouffle, il est également moins partagé (les utilisateurs étant amenés à faire du ménage sur leurs disques durs) et sa disponibilité diminue progressivement, jusqu'à ce que le torrent se tarisse. On parle alors de la mort d'un torrent, qui peut survenir aussi bien après quelques jours, heures ou semaines de disponibilité. C'est pour cela qu'il devient courant de laisser un torrent " ouvert " pour transformer la graine en serveur de distribution classique.

    Création d'un torrent

    La création d'un torrent n'est pas des plus compliquées. Pour l'essentiel, il sera nécessaire de spécifier un tracker pour votre torrent. Il en existe de nombreux, mais certains présentent des contenus pas forcément licites. Pour faire simple, retenez l'existence de Linux Tracker : http://linuxtracker.org/.
    Pour la création du torrent, vous pouvez vous en remettre à un outil simple et austère comme CreateTorrent : il s'agit d'un utilitaire en ligne de commande qui permet de créer un torrent à partir d'un fichier unique ou à partir d'un répertoire. Il est possible de se le procurer sur http://www.createtorrent.com/. Après l'avoir téléchargé et désarchivé, une simple succession de commandes ./configure, make et make install suffit à l'installer. Les paquets openssl, libssl et libssl-dev seront probablement nécessaires à l'installation. urpmi ou apt-get vous permettront bien sûr de satisfaire aisément ces dépendances.
    Son usage est relativement simple, puisqu'il suffit de définir un tracker, la source du contenu, et enfin le nom du torrent. Par exemple :

    createtorrent -a http://linuxtracker.org/announce.php mon_fichier/ mon_fichier.torrent

    permet de référencer votre torrent sur Linux Tracker.

    Les outils officiels
    Les inventeurs de BitTorrent proposent bien sûr leurs propres outils de téléchargement et de diffusion des torrents. Pour vous les procurer, vous pouvez vous rendre sur le site officiel http://www.bittorrent.com/download.html et télécharger le paquet .rpm ou .deb.

    Conclusion

    L'objectif de cet article était d'expliquer simplement ce que sont les torrents, comment ils fonctionnent et comment les créer. Il est à considérer comme un exercice de vulgarisation, qui offre une base de connaissances satisfaisante à la description de KTorrent, un client de téléchargement de torrents pour KDE.

    Retrouvez cet article dans : Linux Pratique 41

    Posté par Olivier Saraja (olivS) | Signature : Olivier Saraja  | Article paru dans

    Laissez une réponse

    Vous devez avoir ouvert une session pour écrire un commentaire.