[ARCHIVE] Torrent : quand les petits ruisseaux font les grandes rivières.

🗓️ Note : Cet article est une archive importée de mon ancien blog. Certaines informations peuvent ne plus être à jour.

Aujourd’hui , on parle des Torrents ! Et je ne parle pas ici des d’eaux, mais d’un protocole de transfert de fichier pair à pair.

Pardon ?

Oui bon, dis comme ça… Ça fait peur ! Pour simplifier : le protocole Torrent permet d’échanger des fichiers. Le but de cet article est d’expliquer ce que c’est , et de comprendre son fonctionnement.

Préambule

Cet article est le fruit de mes connaissances personnelles et d’informations glanées ici et là sur les internets . Je vais vulgariser un sujet technique ; il y aura donc des petites inexactitudes. Je vous invite à garder cela en tête avant de commenter « Hé mais tu racontes n’importe quoi ! ».

Le protocole Torrent

Ha oui ! Ça me dit quelque chose, c’est un truc de vilain pirate informatique !
Heu… Pas vraiment… Ça reviendrait à dire que les grosse berlines allemande c’est un truc de vilain trafiquant de drogue ! Alors certes, bien que parfois certains trafiquants utilisent des grosses berlines allemandes pour les « go-fast » ; ça ne veut pas dire que toutes les autos d’outre Rhin servent à transporter des substances illicites.
Par extension : parfois le protocole torrent (comme les grosses voitures) servent à faire des choses « discutables » ; mais ce n’est pas le protocole (l’objet) en lui même qui est à blâmer mais son utilisation. (Comme bien souvent d’ailleurs…)
Du coup, je vais vous raconter une petite histoire pleine de métaphore et d’analogie pour vulgariser le sujet.

Mais c’est quoi au juste un protocole ?

Un protocole, c’est une règle à respecter. Pour s’échanger des informations, il faut que tout le monde s’accorde à respecter certaines règles, sans quoi : ça devient très rapidement le bazar.
Par analogie, quand vous envoyez un courrier, vous respecter certaines règles :  sur le devant de l’enveloppe, on précise le destinataire. Numéro, voie, code postale, et la ville. De la même manière on inscrit l‘expéditeur derrière l’enveloppe. Et enfin on appose le timbre dans un coin. Vous imaginez si chacun décidait d’écrire l’adresse à sa façon ? « Ha ba moi je vais mettre le nom de la rue derrière l’enveloppe, le numéro en bas à gauche, et le code postale sur la tranche de l’enveloppe ! ». On serait pas prêt de recevoir notre courrier !
Les six règles d’or pour une adresse précise d’après La Poste.

 

De la même manière lors d’échanges de fichiers électroniques, tout le monde respecte les mêmes règles, c’est à dire les mêmes protocoles pour s’échanger des informations sur Internet. 

Le téléchargement

Cet exemple illustrera comment se passe un téléchargement d’un fichier d’un point A vers un point B. (Pour celles et ceux qui veulent creuser le sujet, c’est une représentation très simplifié du protocole TCP)
Imaginons que Ada met à disposition un château (un fichier) et que Bob souhaite le récupérer (le télécharger).
Par la magie des internets, Bob contact Ada. « Bonjour Ada, je veux bien télécharger ton château »
(note : il n’y a bien entendu rien de magique, mais encore une fois, c’est une vulgarisation ! J’ai simplifié !)
Ada déconstruit le château pierre par pierre, les numérotes, et les envoie une par à une à Bob. Ce dernier reconstruit le tout en s’assurant d’avoir tous les blocs. Si il lui en manque un , ou si une pierre est endommagé, il peut toujours demander « Ada, tu peux me renvoyer la pierre n°42 ? Je ne l’ai pas reçu ! » . Et voilà ! Au bout de quelques minutes Bob possède son château.
Ada et Bob s’échangent les différentes briques.
Maintenant, faisons un peu de terminologie… Dans cet exemple, Ada propose un fichier ; on dit alors que c’est le serveur. Bob lui souhaite lui récupérer le fichier ; c’est le client.
Alors évidemment, dans le monde réel de la vérité vraie véritable : si j’envoie un colis à quelqu’un ; je n’ai plus le colis.  Il est déplacé du point A au point B. Je l’ai envoyé ; il est parti. Adieu !
Dans le monde numérique en revanche, Ada a toujours son château ! Elle l’a certes envoyé à Bob (il possède une copie identique), mais au final : tout le monde a un château ! Youpi !

On peut pas envoyer tout d’un coup ?

A ce stade, vous pouvez peut être vous demander pourquoi on découpe le château en plein de pierre ? On pourrait pas envoyer tout le château d’un coup ?
Pour faire simple, c’est un problème de taille de colis ! En effet, on ne peut envoyer que des colis d’une certaine taille. On ne peut donc pas envoyer le château en entier, il faut le découper en morceau plus petit pour que ça tienne dans les cartons.

Parlons des débits.

Le cas d’école

Mais prenons un autre exemple. Que se passe-t-il maintenant si deux personnes (ou deux clients si vous préférez) veulent télécharger un château en même temps ? Reprenons notre exemple précédent, et ajoutons un troisième membre dans l’histoire : C17.
Ada va déconstruire le château pierre par pierre, en les numérotant, et les envoyer une par une comme on l’a vu précédemment à Bob et à C17. Sauf que Ada ne peut envoyer qu’un nombre limité de pierre à la fois ! C’est ça qu’on appelle le débit !
Ada en tant que serveur ne peut envoyer que 100 pierre par seconde. On parle dans ce cas là de débit montant, pour téléverser des données (les envoyer si vous préférez). Par conséquent on serait tenter de dire que Ada envoie 50 pierre par seconde à Bob, et 50 à C17. Mais c’est oublier un autre petit détail …
Bob en tant que client ne peut recevoir que 30 pierres par seconde. On parle dans ce cas là de débit descendant, pour télécharger des données (les recevoir si vous préférez). Enfin; C17 en tant que client, ne peut recevoir que 60 pierres par seconde. 
On retrouve ces idées de « montant » et de « descendant » dans les termes anglais : upload (littéralement : charge montante) et download (littéralement : charge descendante)
Faisons les comptes : Ada va envoyer 30 pierres par seconde à Bob, et 60 pierres par seconde à C17. Faisons les comptes . 30 + 60 = 90 . C’est en dessous des 100 pierre par seconde que Ada peut gérer . Tout va bien !
Un petit schéma expliquant les différents flux…

Un petit imprévu

Maintenant, si tout un tas de personne veulent télécharger le fichier en même temps (plusieurs dizaines, centaines, ou milliers ; tout dépend de la capacité du réseau). Ça va commencer à poser un problème. Ada ne pouvant fournir qu’un nombre limité de pierre par seconde, si une armée de clone débarque, le débit d’Ada se retrouvera diviser par autant de personne souhaitant récupérer le fichier. Ça risque donc de devenir trééééés long. Un peu comme la buvette à la mi temps d’un match de foot (ou de quidditch).
Bien sur, on pourrait essayer de faire le nécessaire pour mettre en place une file d’attente comme à la boulangerie. C’est un peu moins la foire d’empoigne; mais si vous êtes le dernier de la file, vous allez attendre un moment quand même. Enfin (on va pas rentrer dans les détails) mais sachez que si plein de personne arrive en même temps, ça peut carrément tout casser ! C’est à dire faire planter le serveur ! Et ça, c’est pas cool !
Encore un schéma. Ada est débordée !
Conclusion : Plus il y a de gens qui télécharge ce fichier (ce château), moins il est disponible.

Une autre méthode ?

Comment faire alors pour partager le fichier de manière intelligente ? Une des solutions est l’échange de fichier pair à pair via le protocole BitTorrent. (On dit aussi Torrent).
Le principe est sur le papier simple : Plus il y a de gens qui télécharge ce fichier (ce château), plus il est disponible.
« Hein ? Mais c’est le contraire de ce que tu viens de dire ! »
Exactement ! Parce que ce protocole fonctionne de manière radicalement différente et nous permet cette « prouesse ». Reprenons notre exemple ci dessus….
Ce protocole se base sur une règle simple : chaque personne dans le processus est à la fois émettrice et réceptrice.
Ada va envoyer la première pierre du château à Bob. Bob est content, et dés l’instant ou il a récupéré cette première pierre, il peut à son tour l’envoyer à n’importe qui ! Dans notre exemple : C17.
Pendant ce temps Ada à envoyer un deuxième morceau à C17. Cette dernière dés la réception va à son tour émettre et Bob pourra en profiter.
Si on fait un petit dessin pour mieux comprendre ça donnerait quelque chose comme ça :
Tout le monde s’échange des informations, chaque personne dans le réseau devient émettrice et réceptrice.
Petit à petit chaque personne va recevoir des nouveaux morceaux. Chaque personne possédant un morceau que quelqu’un d’autre n’a pas peut alors l’échanger à son tour. Vous voyez bien  que chaque personne est à la fois émettrice et réceptrice. Par conséquent si une armée de clone débarque, et bien ça fait d’autant plus de gens qui peuvent aider à partager le château.

Et les débits dans tout ça ?

Pour faire simple : dans le cas d’un échange via BitTorrent, les capacités de diffusion vont s’ajouter. (En réalité, ce n’est pas tout à fait vrai. Mais pour vulgariser et en première approximation, on peut l’admettre) … Rappelez vous :
  • Ada peut envoyer 100 pierre par seconde.
  • Disons que Bob peut en envoyer 300 par seconde.
  • Et que C17 peut en envoyer 600 par secondes.
  • Total : 1.000 pierre par seconde
A eux trois ils peuvent théoriquement envoyer 1000 pierre par seconde ! 
    
Maintenant, imaginons que Dan arrive dans la partie, avec une connexion de fou furieux. Admettons qu’il puisse télécharger 1000 pierre par seconde. Nos 3 compères (Ada, Bob, C17) envoient 1000 pierre par seconde. Dan en télécharge 1000 par seconde. Résultat ? Il va pouvoir télécharger à fond les ballons et récupérer le fichier beaucoup plus rapidement que si il l’avait récupérer via un téléchargement direct chez Ada. Pas mal hein ?
Merci Lieutenant Dan !
    

Et si une armée de clone débarque ?

    Ce n’est pas vraiment un soucis. Si une armée de clone arrive pour récupérer le château. Nos 4 compères (Ada, Bob, C17 et Dan) vont envoyer à chaque clone un petit bout du château. Ces derniers vont à leur tour s’envoyer aux uns et autres. Etc… Etc… Petit à petit le réseau va se renforcer et au final tout le monde va récupérer son château dans des délais raisonnable, et sans risque de saturation !

Un peu de terminologie

Dans le cas du protocole BitTorent, les personnes qui télécharge sont appelé « Leecher » (qu’on pourrait traduire par « Ceux qui aspirent ») , et ceux qui envoient le fichier aux autres sont appelés « Seeder ». (qu’on pourrait traduire par « Ceux qui sèment » ; on retrouve l’idée de diffusion)
            

Conclusion

Sachez qu’il existe d’autres protocoles que BitTorrent, que ce soit pour des échanges pair à pair, ou via d’autres technologies. 
BitTorrent souffre malheureusement de cette mauvaise image : « Ce truc utilisé par des vilains hacker qui viennent tuer l’industrie cinématographique. »
D’une part, ce serait mentir de dire que personne n’utilise BitTorrent pour récupérer le dernier Avengers. Mais d’autre part, il ne faut surtout pas oublier qu’il permet tout un tas de chose géniale ! Comme partager des gros fichiers même avec un petit débit ridicule (une distribution Linux par exemple) ; ou partager un fichier avec des milliers de personne très rapidement. 
    
Un exemple récent : Lors du confinement nous devions remplir un petit papier à imprimer chez sois. Et ben le fichier original a été proposé sur le site du gouvernement. Tout le monde voulait le .pdf en même temps : résultat le site a planté. On en avait déjà parlé sur ce blog, mais pour un tel partage de fichier la vraie solution aurait été de proposer un échange pair à pair. Pour que chaque personne qui télécharge le fichier puisse à son tour le redistribuer.
    
Maintenant, vous savez que BitTorrent est un outil. C’est l’utilisation de l’outil qui peut être bonne ou mauvaise. Et ne tombez plus dans le panneau lorsqu’on vous dit que c’est un truc de méchant. Ça dépend de ce que l’on en fait !

Pour aller plus loin :

Quelques ressources utiles :

Les illustrations

Les illustrations de cet article ont été réalisées par Mélanie Moreau ; qui a sorti pour mois ses aquarelles. Sachez qu’elle a écrit un bouquin que vous pouvez trouver ici. (Oui, c’est Amazon, c’est mal. JE SAIS.)

Pour vous donner envie :

Deux destins, deux chemins tracés que tout oppose. Jae Ledazar, princesse déchue, se voit propulsée dans des planifications divines alors qu’elle cherche à retrouver son trône. Alam Frigjir, Magosfer en devenir capable d’user de la magie du métal, doit faire face à ses premiers émois et à des remous politiques dans l’ombre de son école. Leur avenir, qu’ils croyaient immuable, se révèlera plus chaotique que prévu : mais qui serait assez fou pour perturber le destin ?

Bouteille à la mer

Si vous aussi vous souhaitez participer à un article en proposant des illustrations, n’hésitez pas à me contacter ! (Je ne gagne pas d’argent avec ce blog, alors je vous le précise tout de suite : ça ne sera pas rémunéré !)

Photo By Matt Lamers

 

« »