BitTorrent or BitCrunch : Evidence of a credit squeeze in BitTorrent ?
Protocole BitTorrent
description
Transcript of Protocole BitTorrent
1
Protocole BitTorrent
Ingénieurs 2000 – Année 2004/2005 - Ludovic LELION
2LELION Ludovic – 09/12/2004
Sommaire
1. Présentation2. Fonctionnement3. Démonstration4. Export de données5. Avantages / Inconvénients6. Conclusion
3LELION Ludovic – 09/12/2004
Présentation : Généralités Protocole de type "Peer to Peer"
Inventé par Bram Cohen
Objectif Faciliter la distribution de gros fichiers en diminuant la
charge sur les serveurs
Succès croissant Nombreuses organisations proposent des
téléchargements via ce protocole (RedHat, Eclipse …)
4LELION Ludovic – 09/12/2004
Présentation : Glossaire Torrent
Client
Seeder
Leecher
Tracker
5LELION Ludovic – 09/12/2004
Fonctionnement : Bases Pas de système de recherche
Récupération d’un fichier d’informations Torrent
Téléchargement d’un ensemble de fichiers
Chaque client contient une ou toutes les parties des données à télécharger
6LELION Ludovic – 09/12/2004
Fonctionnement : Architecture
TRACKER
Fichier .torrent
SEEDER SEEDER
LEECHER LEECHER
7LELION Ludovic – 09/12/2004
Fonctionnement : Encodage du fichier Torrent (BEncoding)
Integer
Préfixé par "i" et terminé par "e" Ex : i123e (123) ou i-231e (-231)
String
Préfixé par la longueur de la chaîne, suivi d’un ":" Ex : 10:Bittorrent ("Bittorrent")
List
Préfixé par "l" et terminé par "e"Ex : li3el3:Sub4:Listee (la liste [3, ["Sub", "List"]])
Dictionarie
Préfixé par "d" et terminé par "e"Ex : d3:key5:value6:numberi7ee (le dictionnaire [key : value, number : 7])
8LELION Ludovic – 09/12/2004
Fonctionnement : Structure d’un fichier Torrent Contient les informations concernant les fichiers et le
Tracker : announce : URL du Tracker info : informations sur les fichiers
name : nom du fichier torrent files : description des fichiers
length : taille d’un fichier path : chemin d’un fichier
piece length : taille d’une partie pieces : chaîne de taille multiple de 20,
représentant le code SHA1 de chaque parties
9LELION Ludovic – 09/12/2004
Fonctionnement : Connexion au Tracker Obtenir des informations concernant les clients
connectés
Envoi d’une requête HTTP avec les paramètres : peer_id : identifiant du client info_hash : le code SHA1 du dictionnaire "info" ip : adresse IP du client port : port du client
10LELION Ludovic – 09/12/2004
Fonctionnement : Réponse du Tracker
Encodée au format BEncoding
Dictionnaire contenant : interval : Intervalle à attendre avant de contacter
le tracker peers : liste des clients connectés
ip : adresse IP d’un client peer_id : identifiant d’un client port : port d’un client
Les clients sont renvoyés de manière aléatoire
11LELION Ludovic – 09/12/2004
Fonctionnement : Communication inter clients Basé sur le protocole TCP Notion d’état :
"Choked" : toutes les requêtes seront annulées "Interested" : si le client est intéressé
Handshake pstrlen : Longueur de l’identifiant de protocole pstr : Identifiant du protocole reserved : 8 zéros info_hash : Code SHA1 du dictionnaire info peer_id : Identifiant du client (20 octets)
Messages length prefix : Longueur du message message ID : Identifiant du message payload : Contenu du message
12LELION Ludovic – 09/12/2004
Fonctionnement : Echanges Au début tout le monde est Leecher
Objectif : devenir Seeder
Lors des échanges, chaque client indique les parties qu’il a récupéré
Les Seeders envoient les parties qui ne sont pas présentes
Les Leechers s’envoient les parties récupérées
Dans la base du protocole, un client est connecté à 4 autres clients.
13LELION Ludovic – 09/12/2004
Fonctionnement : Algorithmes Encouragement au téléchargement
Un client envoie en priorité aux clients chez qui il télécharge le plus rapidement
Rarest FirstEnvoi en priorité les parties les plus rares
Optimistic UnchokingToutes les 30s, un client devient "Unchoked".Un nouveau client a 3 fois plus de chance d’être sélectionnée.
14LELION Ludovic – 09/12/2004
Démonstration
15LELION Ludovic – 09/12/2004
Export de données Partager ses fichiers sur Bittorrent
Création du fichier Torrent par les logiciels clients Choix des fichiers Choix du tracker
Envoi à un tracker
Diffuser le fichier Torrent
Rester connecté
16LELION Ludovic – 09/12/2004
Avantages / Inconvénients Avantages
Pas de files d’attentes Protocole très rapide Diminution de la charge des serveurs
Inconvénients Pas de fonction de recherche Pas de support des clients derrière un Firewall ou
un réseau NAT Démarrage lent d’un téléchargement Non persistance des données
17LELION Ludovic – 09/12/2004
Conclusion Protocole très efficace
Améliorations possibles
Différents clients Azureus BitTornado jAne (bientôt)
Concurrence Slurpie PDTP ou Squall
Bittorrent 2