Protocole BitTorrent

17
1 Protocole BitTorrent Ingénieurs 2000 – Année 2004/2005 - Ludovic LELION

description

Protocole BitTorrent. Ingénieurs 2000 – Année 2004/2005 - Ludovic LELION. Sommaire. Présentation Fonctionnement Démonstration Export de données Avantages / Inconvénients Conclusion. Présentation : Généralités. Protocole de type " Peer to Peer " Inventé par Bram Cohen Objectif - PowerPoint PPT Presentation

Transcript of Protocole BitTorrent

Page 1: Protocole  BitTorrent

1

Protocole BitTorrent

Ingénieurs 2000 – Année 2004/2005 - Ludovic LELION

Page 2: Protocole  BitTorrent

2LELION Ludovic – 09/12/2004

Sommaire

1. Présentation2. Fonctionnement3. Démonstration4. Export de données5. Avantages / Inconvénients6. Conclusion

Page 3: Protocole  BitTorrent

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 …)

Page 4: Protocole  BitTorrent

4LELION Ludovic – 09/12/2004

Présentation : Glossaire

Torrent

Client

Seeder

Leecher

Tracker

Page 5: Protocole  BitTorrent

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

Page 6: Protocole  BitTorrent

6LELION Ludovic – 09/12/2004

Fonctionnement : Architecture

TRACKER

Fichier .torrent

SEEDER SEEDER

LEECHER LEECHER

Page 7: Protocole  BitTorrent

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])

Page 8: Protocole  BitTorrent

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

Page 9: Protocole  BitTorrent

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

Page 10: Protocole  BitTorrent

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

Page 11: Protocole  BitTorrent

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

Page 12: Protocole  BitTorrent

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.

Page 13: Protocole  BitTorrent

13LELION Ludovic – 09/12/2004

Fonctionnement : Algorithmes

Encouragement au téléchargementUn 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.

Page 14: Protocole  BitTorrent

14LELION Ludovic – 09/12/2004

Démonstration

Page 15: Protocole  BitTorrent

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é

Page 16: Protocole  BitTorrent

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

Page 17: Protocole  BitTorrent

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