Intel et deux universités américaines ont communiqué cette semaine les résultats de travaux de recherche visant à accélérer les transferts de fichiers en P2P. Leur méthode, Similarity-Enhanced Transfer (SET), promet d'accélerer jusqu'à 70 % la vitesse des téléchargements. Comment est-ce possible ?

Le fondeur de microprocesseurs Intel a depuis longtemps marqué son intérêt pour les réseaux P2P. Sa filiale d’investissement a misé l’an dernier 7 millions de dollars sur Pando, un service de partage de fichiers en P2P par e-mail (concurrent direct du français Podmailer). En 2004, Intel avait également lancé son Philanthropic Peer-to-Peer Program pour aider la recherche dans le domaine du calcul distribué pour les applications médicales de type Folding@Home, qui reposent sur les mêmes architectures types que les applications de partage de fichiers.

Cette semaine, Intel a présenté officiellement une nouvelle méthode de P2P mise au point avec les Universités de Carnegie Mellon et Purdue. Selon leurs travaux, la méthode baptisée Similarity-Enhanced Transfer (SET) permettrait d’accélerer les transferts sur les réseaux P2P de 30 à 70 %. Une jolie promesse, qui repose sur l’amélioration d’une technique de mise en pièces des fichiers déjà exploitée par la plupart des applications comme eMule. Elle part du principe que plusieurs fichiers différents qui circulent sur un même réseau peuvent contenir des données similaires qui peuvent être indifféremment reprises pour reconstituer l’un ou l’autre des fichiers. Par exemple, un film original en anglais et le même film doublé en français n’ont que la bande son qui diffère. Il serait donc possible lors du téléchargement de prendre la piste vidéo à la fois sur le fichier de la VO et le fichier de la VF. Idem pour les fichiers MP3 dont seul les métadonnées (tags) ont été modifiés d’un fichier à l’autre, ou pour des versions différentes d’un même logiciel.

Une technique utilisable sur tous les réseaux P2P

Actuellement, chaque fichier sur un réseau P2P est identifié de façon unique par un code appelé « hash », calculé à partir de chaque octet du fichier. Changez un seul octet, et tout le hash est modifié, rendant impossible les échanges entre des documents identiques aux hashs différents. Pour pallier à cette lacune, La méthode SET divise chacun des fichiers en une multitude de morceaux (chunks) différents. Alors qu’eMule le fait déjà en coupant chaque fichier en morceaux de 9 Mo avant de le reconstituer (et ceci uniquement pour limiter les corruptions en cours de téléchargement), SET propose de diviser les fichiers en morceaux infimes de quelques kilo-octets seulement. Le hash de chaque petite miette est alors calculé, passé à la moulinette, et pour ne pas saturer les réseaux et capacités de calcul, un petit échantillon de quelques dizaines de hash seulement est ensuite compilé dans un ordre savamment pensé.

Cet échantillon est alors rendu public sur le réseau P2P, et chaque utilisateur qui souhaite télécharger ou partager un fichier peut comparer son propre échantillon avec celui du voisin. Avec un échantillon de seulement 30 petits morceaux, les chercheurs affirment qu’ils reconnaissent empiriquement 99 % des fichiers similaires. Si l’échantillon est suffisamment proche de celui recherché, l’ensemble des hash de tous les morceaux sont aors communiqués pour permettre les transfersts des morceaux identiques, même si dans sa totalité le fichier n’a pas le même hash.

La technique a été expérimentée sur différents réseaux P2P, dont BitTorrent, avec différents films et fichiers MP3. Grâce à SET, ils ont pu télécharger une bande annonce de 30 Mb en trois fois moins de temps qu’il en aurait fallu normalement, car ils ont su trouver des sources alternatives qui possédaient au moins 50 % de similarité. Les vitesses de transferts sur certains fichiers MP3 ont pu être accéléré de 70 %. Selon leurs simulations, la technique fonctionne le mieux sur les infrastructures réseaux les moins rapides, qui sont les plus courantes, notamment pour les connexions ADSL qui sont assymétriques. Lorsque les réseaux sont très rapides avec clients et serveurs qui communiquent à plein, le gain est minimum.

Ils encouragent chaque concepteur de logiciel de P2P à implanter leur méthode. Il y a seulement trois paramètres à définir : la taille des chunks (qui doit être un compromis entre optimisation des transferts et probabilité d’avoir des morceaux identiques), le nombre de chunks à placer dans l’échantillon (ils ont calculé que 28 morceaux leur donnait une probabilité de 90 % de trouver des fichiers qui avaient plus de 10 % de similarité), et le seuil de similarité des échantillons au dessus duquel on peut entrer en deuxième phase de transfert.

Partager sur les réseaux sociaux

Articles liés