1 / 17

Protocole BitTorrent

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

tam
Télécharger la présentation

Protocole BitTorrent

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Sommaire • Présentation • Fonctionnement • Démonstration • Export de données • Avantages / Inconvénients • Conclusion

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

  4. Présentation : Glossaire • Torrent • Client • Seeder • Leecher • Tracker

  5. 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

  6. LEECHER LEECHER SEEDER SEEDER Fonctionnement : Architecture TRACKER Fichier .torrent

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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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.

  13. Fonctionnement : Algorithmes • Encouragement au téléchargement Un client envoie en priorité aux clients chez qui il télécharge le plus rapidement • Rarest First Envoi en priorité les parties les plus rares • Optimistic Unchoking Toutes les 30s, un client devient "Unchoked". Un nouveau client a 3 fois plus de chance d’être sélectionnée.

  14. Démonstration

  15. 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é

  16. 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

  17. Conclusion • Protocole très efficace • Améliorations possibles • Différents clients • Azureus • BitTornado • jAne (bientôt) • Concurrence • Slurpie • PDTP ou Squall • Bittorrent 2

More Related