Une petite révolution vient d’avoir lieu dans le monde du streaming vidéo et du Peer to Peer (aussi appelé P2P). En effet, le groupe de chercheurs de P2P-Next vient de créer un lecteur de vidéo, le Swarmplayer, capable de lire des vidéos en streaming sans serveur, en peer to peer. Expliquons tout d’abord ce que veulent dire ces termes « streaming » et « peer to peer », avant de s’intéresser réellement à l’innovation technologique que cela représente et les avantages que l’on peut en tirer.
Le streaming, un moyen efficace d’accèder à du contenu
La plupart du temps, le contenu auquel un utilisateur d’Internet accèder est téléchargé en entier, et peut ensuite être utilisé normalement. Cette approche est effectivement la meilleure pour de nombreuses ressources, telles que par exemple les logiciels ou les documents très légers : dans le premier cas, l’intégralité du logiciel est nécessaire pour pouvoir l’exécuter, et dans le deuxième, le temps de téléchargement est tout simplement négligeable. Le streaming est une deuxième approche d’accès à du contenu sur Internet, notamment utilisé pour la musique et les vidéos. En effet, pour regarder le début d’une vidéo ou écouter le début d’une chanson, en connaître la fin est tout bonnement inutile pour l’ordinateur. On peut ainsi commencer à regarder le début de la vidéo pendant que le reste se télécharge.
Les apports du streaming sont tout bonnement considérables. Imaginez une vidéo pesant 700 mégaoctets, comme c’est le cas la plupart du temps pour les films. Si l’on téléchargeait le film, il faudrait un temps considérable sur une connexion ordinaire (laissons les fibres optiques de côté

), jusqu’à plusieurs heures voire même une journée pour les plus lentes connexions. On peut après ce téléchargement regarder le film comme on le voulait. Avec le streaming, le téléchargement s’effectue pendant le visionnage du film : ainsi, le temps d’attente avant le début du film est moindre, et même souvent inexistant. C’est par exemple ce qui est utilisé par Youtube, Dailymotion et tous les autres sites du genre : vous pouvez d’ailleurs observer le téléchargement en direct dans une barre de progression lors de la lecture d’une vidéo.
La barre de progression de Youtube, où l'on peut distinguer la position de la lecture et du téléchargement
Un des inconvénients du streaming est qu’il oblige à recevoir les informations du serveur dans l’ordre : en effet, si on commence par télécharger la fin du film, il y a peu de chances de voir le début en même temps

. Cela a posé un problème aux chercheurs de P2P-Next, pour une raison venant des fondements même du Peer to Peer que je vais maintenant vous expliquer.
Le fonctionnement simplifié du streaming, en un schéma.
Le Peer to Peer, un système de communication décentralisé
On dit trop souvent que le Peer to Peer est illégal, même parfois dans les journaux télévisés. Cependant, cette affirmation est fausse : le Peer to Peer en lui-même est quelque chose de tout à fait légal et très utilisé dans le monde du libre. C’est le téléchargement via le Peer to Peer de fichiers illégaux ou sujets aux droits d’auteurs qui est illégal et réprimandé. Cependant, pour contrer le téléchargement illégal, certains FAI (Fournisseurs d’Accès Internet, dont les plus connus sont par exemple Free, Orange ou Neuf) brident le téléchargement en Peer to Peer, empêchant ainsi son utilisation aussi bien pour des choses légales qu’illégales.
En réalité, le Peer to Peer est une méthode de téléchargement qui s’oppose à ce que l’on appelle le direct download (en français, « téléchargement direct »). Alors que dans le cas du direct download (aussi appellé DDL), le téléchargement se fait directement du serveur central à votre ordinateur, le Peer to Peer permet de décentraliser la source de données.
En effet, utiliser un unique serveur central a un inconvénient très simple : la bande passante est très limitée et coûte plutôt cher : pour un serveur limité à 100 mégabits par seconde (soit 12,5 mégaoctets par seconde), comme c’est souvent le cas, il est difficile que 15 personnes téléchargent à pleine vitesse : comme tout le monde se connecte au même endroit pour récupérer les données, le serveur gère toutes les connexions et tous les envois de données.
Les trois clients téléchargent depuis le serveur en direct download
Pour contrer ce problème, il y a deux solutions. La première, la plus utilisée, est le BWB, plus communément appellé Bandwidth Balancing. Il permet de répartir les connexions entre plusieurs serveurs, de manière optimale, pour éviter de tout concentrer sur un serveur central. Cette solution est néanmoins très coûteuse car elle nécessite un nombre de serveur suffisant pour gérer tous les téléchargements.
La deuxième est ce que l’on appelle le Peer to Peer : en gros, aucun serveur (ou presque) n’est utilisé pour le téléchargement, tout se déroule entre les gens qui veulent accèder au fichier. En effet, imaginons qu’un client A et un client B ont déja téléchargé la vidéo, et qu’un client C la veuille également. Le client C va demander à un serveur central « Peux-tu me dire chez qui je peux télécharger ? », et le serveur central lui donnera les informations pour se connecter chez A et B en même temps, répartissant ainsi la connexion. C’est le principe de base du Peer to Peer. Après, de nombreuses choses sont mises en place pour par exemple augmenter la vitesse de téléchargement, vérifier l’intégrité des données téléchargées, etc.
Les trois clients se répartissent les connexions
Le protocole (c’est à dire l’ensemble de règles de communication) le plus utilisé actuellement pour le Peer to Peer est le protocole Bittorrent. Il est utilisé notamment par de nombreux projets Open Source pour diffuser leurs nouvelles versions sans surcharger leurs serveurs, dont par exemple Ubuntu (dont les mises à jour surchargent les serveurs), ou pour des jeux gratuits tels que Savage ou Urban Terror.
Un des inconvénients du Peer to Peer est qu’il est cependant impossible de réaliser du streaming : en effet, le principe du P2P est ce qu’on appelle le rarest-first : les premiers morceaux du fichier qui seront téléchargés seront ceux que l’on trouve le moins chez les gens, pour éviter une situation de bloquage où des bouts de fichiers ne peuvent être trouvés chez personne. De plus, la vitesse de téléchargement en P2P est souvent trop variable pour cela. C’est pour cela que le projet de P2P-Next, Swarmplayer, qui permet de lire des vidéos en streaming en utilisant Bittorrent, s’annonce comme une vraie révolution dans le domaine.
La combinaison de Bittorrent et du Streaming : SwarmPlayer
Plusieurs lecteurs de vidéo utilisent déja du Streaming diffusé par Peer to Peer. On peut notamment citer Joost, Vuze ou Octoshape (qui a notamment été utilisé récemment par Blizzard pour diffuser la vidéo du trailer de Diablo 3). Cependant, les protocoles utilisés par ces trois logiciels sont fermés et non libres. Ainsi, aucune intéropérabilité n’est possible et un seul lecteur est disponible. De plus, du contenu diffusé par Octoshape ne marchera pas avec Joost par exemple. C’est pour cela que P2P-Next, au fil de ses recherches, s’est basé sur le protocole Bittorrent pour la partie Peer to Peer : en effet, il a plusieurs avantages. Tout d’abord, c’est le protocole le plus utilisé actuellement, et celui qui possède le plus de clients (citons par exemple µTorrent, KTorrent, Bitcomet, Azureus, etc.). C’est également un protocole ouvert et documenté, ce qui permet à de nombreuses personnes de le modifier à leur guise.
Le SwarmPlayer est le client Bittorrent de P2P-Next, permettant donc le streaming de vidéos. Il est actuellement en période de test, et n’a donc pas encore énormément de fonctionnalités. Il se base sur deux composants distincts : le client Bittorrent Tribler, programmé en langage Python, et le lecteur de vidéo VLC. Ces deux composants sont donc intimement liés dans le SwarmPlayer, qui téléchargera et fournira les données à VLC.
Pour réaliser ce streaming en Peer to Peer, de nombreuses modifications ont été apportées à la gestion du protocole Bittorrent dans le SwarmPlayer. Tout d’abord, on utilise la méthode du « Give to Get » pour forcer les gens à rediffuser la vidéo : plus l’utilisateur envoie de données, plus il en recevra en retour

. Cette méthode est d’ailleurs déja utilisé par de nombreux clients Bittorrent.
Ensuite, la vérification de l’intégrité des données est modifiée, passant d’un système de hash des différentes parties du fichier à un système plus évolué de cryptographie par courbe elliptique : en effet, cette modification était nécessaire pour gérer le cas où les images arrivent par exemple d’une caméra, et qu’on ne peut pas savoir à l’avance ce qui arrivera.
Enfin, les développeurs utilisent ce qu’ils appellent une « sliding window » pour permettre d’outrepasser la limite de Bittorrent qui empêche d’avoir un nombre illimité de paquets. C’est pourtant le cas pour un flux vidéo récupéré d’une caméra. Pour cela, SwarmPlayer va simuler un nombre de paquets fixes, qui seront retéléchargés ensuite avec des données différentes.
Liens et références
Voilà qui conclut cette news plutôt longue, mais qui relate un fait qui va probablement bouleverser le monde du Peer to Peer, et qui permettra à des gens de diffuser leurs vidéos facilement sur un réseau décentralisé, pour ainsi ne pas dépendre de sites comme Youtube. Cependant, il est légitime de se demander l’impact qu’auront ces recherches sur le téléchargement illégal en Bittorrent, qui ne sera ainsi que facilité.
Bonne visite sur le Site du Zéro

.