BitTorrent
Connexion au Tracker
Une fois que le fichier Torrent a été récupéré, l'étape suivante consiste à se connecter sur le Tracker pour récupérer les informations sur l'ensemble des clients connectés.
Le tracker correspond à un serveur Web qui répond à des requêtes HTTP GET. L'adresse URL du Tracker a été récupérée dans le fichier Torrent (clé "annouve URL")
Les paramètres fournit dans la requête GET sont les suivants :
- info_hash: chaine de 20 octets correspondant au code de hashage du dictionnaire "info" du fichier Torrent. Ce code indique au Tracker pour quel fichier Torrent, on souhaite récupérer la liste des connectés. Ainsi il peut y avoir différentes versions d'un fichier Torrent (noms de fichier différents) circulant sur le Web, du moment que le contenu produit le même code de hashage, le Tracker le considérera comme étant identique.
- peer_id: chaine de 20 octets correspondant à l'identifiant unique du client, generé par celui-ci au démarrage de son application.
- port: Le n° de port d'écoute du client. Les ports réservés par défaut par BitTorrent étant dans la plage 6881-6889
- uploaded: Le nombre total d'octets envoyés du client, depuis que le client a envoyé une requête "started" au Tracker indiquant le début de sa session sur ce dernier.
- downloaded: Le nombre total d'octets téléchargés du client, depuis que le client a envoyé une requête "started" au Tracker indiquant le début de sa session sur ce dernier.
- left: Le nombre d'octets restant à télécharger pour le client
-
event: (Optionnel) Indique l'état du client sur le Tracker. Les différentes valeurs sont les suivantes :
- started : A effectuer sur la 1ère requête. Indique le commencement d'une session sur le Tracker.
- stopped : A effectuer au moment de la déconnexion. Indique la fin de la session sur le Tracker.
- completed : A effectuer quand le téléchargement est terminé. Permet au tracker de modifier le nombre de Seeder connectés
- ip: (Optionnel) Correspond à la véritable adresse IP (IPv4 ou IPv6) du client. Il est optionnel car le Tracker peut la déduire.
- numwant: (Optionnel) Indique combien de client on désire récupérer à partir du Tracker. Cette valeur peut etre à 0. Si elle n'est pas indiquée, par défaut 50 clients seront renvoyés.
Il est à noter que toutes les données binaires de l'URL (en particulier les champs "info_hash" et "peer_id") doivent utiliser les caractères d'échappement %nn (où nn correpond à la valeur héxadécimale de l'octet) pour tous les caractères qui ne sont pas dans 0-9, a-z, A-Z, et $-_.+!*'()