BitTorrent À propos de I2P

Cette page a été mise à jour pour la dernière fois en janvier 2017 et il est précis avec la version 0.9.28 du routeur I2P.

Il existe plusieurs clients BitTorrent et Trackers sur I2P. Comme l’adressage I2P utilise une destination au lieu d’IP et de port, les modifications requises dans le logiciel Tracker et Client pour fonctionner sur I2P sont mineures. Ces modifications sont spécifiées ci-dessous. Observez soigneusement les lignes directrices pour la compatibilité avec les clients et les suiveurs précédents I2P.

Cette page spécifie les détails du protocole commun à tous les clients et suiveurs. Les clients et les traqueurs spécifiques peuvent mettre en œuvre d’autres fonctionnalités ou protocoles uniques.

Les ports logiciels client et Tracker supplémentaires sont les bienvenus pour i2p.

annonces

Les clients, ils incluent généralement un faux port de paramètre = 6881 dans l’annonce, par compatibilité avec les suiveurs précédents. Les trackers peuvent ignorer le paramètre port (port) et ne doivent pas en avoir besoin.

Le paramètre IP est la base 64 de la destination du client, à l’aide de la base I2P 64 – ~ Alphabet. Les destinations sont de plus de 387 octets, avec lesquelles la base 64 est de plus de 516 octets. Les clients ajoutent généralement « .i2p » à la destination de base 64 pour maintenir la compatibilité avec les anciens trackers. Les trackers ne doivent pas nécessiter d’ajouter « .i2p » à la fin.

D’autres paramètres sont les mêmes que dans la norme BitTorrent.

Les destinations actuelles I2P pour les clients sont de 387 octets ou plus (516 ou plus avec le codage de base64). Un maximum raisonnable à supposer, pour l’instant, est de 475 octets. Comme le suivi doit décoder la base64 pour produire des réponses compactes (voir ci-dessous), le suivi doit probablement décoder et rejeter la base 64. Il est annoncé.

La réponse de type par défaut n’est pas compacte. Les clients peuvent demander une réponse compacte avec le paramètre Compact = 1. Une trackerpodría, mais ce n’est pas une exigence, retourne une réponse compacte à la demande.

aux nouveaux développeurs de clients I2P est fortement encouragée à mettre en œuvre des publicités sur leur propre tunnel au lieu de la proxy http du client au port 4444. Ce faisant est autant plus efficace et permet au suivi d’appliquer des destinations (voir ci-dessous).

Aucun client ou des suiveurs I2P connus qui ne supportent actuellement les réponses ADS / UDP.

non -Compact traqueur réponses

La réponse non compacte est comme la norme BitTorrent, avec un « IP » I2P.

Trackers incluent généralement une clé de faux port ou utilisez le port de publicité. , pour la compatibilité avec les clients précédents. Les clients doivent ignorer le paramètre port (port) et ne doivent pas la demander.

La valeur de la clé IP est la base 64 de la destination du client, comme décrit ci-dessus. Les trackers ajoutent généralement « .i2p » à la fin de la destination de base 64 s’il ne figurait pas sur la propriété intellectuelle de la publicité, par la compatibilité avec les clients précédents. Les clients ne doivent pas demander un suffixe « .i2p » dans les réponses.

D’autres clés et valeurs de réponse sont les mêmes que dans la norme BitTorrent.

Compact Tracker répond

Dans la réponse compacte, la valeur de la clé de dictionnaire des « homologues » est une seule chaîne d’octets, dont la longueur est un multiple de 32 octets. Cette chaîne contient des hachages SHA-256 de 32 octets concaténés des destinations de pairs binaires. Cet `Hash` (identifiant unique) doit être calculé par le suivi, sauf s’il utilise une application à destination (voir ci-dessous), auquel cas l’identifiant (` Hash`) livré dans le HTTP X-I2P-DESTHASH ou X- Les en-têtes I2P -Destb32 peuvent être convertis en binaires et stockés. La clé des paires (`homologues`) peut être absente ou la valeur des paires peut avoir une longueur-zéro zéro.

Bien que le support de la réponse compacte soit facultatif pour les clients et les traqueurs, il est fortement possible. Recommandé car il réduit la taille de la réponse nominale d’environ 90%.

Application à destination

Certains clients torrent de I2P, bien qu’elles n’apparaissent pas tous, annoncent leurs propres tunnels. Les trackers peuvent choisir d’empêcher la triche en leur demandant et vérifiant la destination du client à l’aide des en-têtes ajoutés par le tunnel HTTP I2PTUNnel Server. Les en-têtes sont X-I2P-DENTHASH, X-I2P-DENTB64 et X-I2P-DESTB32, qui sont des formats différents pour les mêmes informations. Ces en-têtes ne peuvent pas être déformés par le client. Un tracker exigeant des destinations n’a pas besoin du paramètre d’annonce IP du tout.

Comme plusieurs clients utilisent le proxy HTTP au lieu de leurs propres tunnels pour les publicités, l’application de destination (sur le suivi) empêchera son utilisation par celles-ci. Les clients sauf si ou jusqu’à ce que les clients soient reconquis de la publicité sur leurs propres tunnels.

Malheureusement, en cultivant le réseau, il en fera également la quantité de méchanceté. Nous espérons donc que tous les trackers appliquent des destinations. Les développeurs de suivi et les clients doivent les anticiper.

Noms de serveur d’annonce

Les noms de serveur URL d’annonce dans les fichiers torrent, les normes de suivi des noms I2P. En plus des noms de serveur des livres d’adresses et des noms de serveur de base 32 « .b32.i2p », la destination de base complète 64 (avec suffixe « .i2p »] doit être prise en charge. Les trackers non ouverts doivent reconnaître leur propre serveur. Noms dans l’un de ces formats.

Pour préserver l’anonymat, les clients doivent généralement ignorer les URL publicitaires non i2p dans les fichiers torrent.

connexions entre clients

Client -Po-Connections à la clientèle Utilisez le protocole standard sur TCP. Actuellement, il n’existe actuellement aucun client I2P connu qui prend en charge la communication UTP (protocole de transport uTorrent).

I2P USA Destinations de 387 + octets pour les instructions, comme expliqué ci-dessus.

Si le client n’a que l’identifiant cryptographique (`Hash`) de la destination (telle que celle d’une réponse compacte ou du PEX (protocole d’échange peer)), vous devez effectuer une recherche de la recherche avec une base 32, ajout du suffixe « .b32.i2p » et consulter le service de noms s, qui retournera la destination complète si elle est disponible.

Si le client a la destination complète d’un couple (`peer`), il a reçu dans une réponse non compacte, il doit l’utiliser directement sur l’établissement de la connexion. NE PAS convertir une destination à un identifiant cryptographique (`Hash`) Base 32, c’est assez inefficace.

Prévention croisée à franchise rouge.

Pour préserver l’anonymat, les clients I2P BitTorrent ne prend généralement pas en charge les annonces NO-I2P ou les connexions de paires (`peers`). Les proxies à l’étranger (surproxyses`) http de I2P bloquent souvent des publicités. Aucun mandataire à l’étranger connue des sockets qui soutiennent le trafic BitTorrent.

pour empêcher l’utilisation par les clients de non-I2P via un proxy inprowward («Inproxy`) HTTTT, les suiveurs I2P bloquent souvent les annonces qui contiennent une en-tête HTTP X- Transmis pour. Les trackers doivent rejeter des annonces réseau standard avec IPv4 ou IPv6 et ne les livrer pas dans les réponses.

Le PEX (Pair Exchange Protocol) I2P est basé sur ut_pex (uTorrent PEX). Comme il ne semble pas y avoir une spécification UT_PEX formelle, il peut être nécessaire d’examiner le code source librrent pour obtenir de l’aide. C’est un message d’extension, identifié comme « I2P_PEX » dans l’extension de prise de contact (`Handshake`). Il contient un dictionnaire codé B (`Bencoded`) avec jusqu’à 3 clés, » Ajouté « , » Ajouté.f « et » Droped « (Jeté). Les valeurs « ajoutées » et « abandonnées » sont chacune une seule chaîne d’octets, dont la taille est un multiple de 32 octets. Ces chaînes d’octets sont les identificateurs cryptographiques («hachages») SHA-256 concaténates des destinations de pairs binaires (`peers`). Ceci est le même format que celui des valeurs de dictionnaire des paires dans le format de réponse compact i2p spécifié ci-dessus. Si présent, la valeur ADEDE.F est la même que dans ut_pex.

DHT

Le support DHT (table de hachage dynamique) est inclus dans le client i2psnark à partir de la version 0.9.2 . Les différences préliminaires avec la BEP 5 (proposition d’amélioration de BitTorrent 5) sont décrites ci-dessous et sont sujets à changement. Contactez les développeurs I2P si vous souhaitez développer un client avec le support DHT.

La défense que DHT (table de hachage dynamique), I2P DHT n’utilise aucun bit dans les options de contact (« Handshake` »), ou dans le message port (port). Il est annoncé avec un message d’extension, identifié comme « I2P_DHT » dans l’extension de la poignée de main. Il contient un dictionnaire codé B (`Bencoded`) avec deux clés, » port « et » RPPORT « , les deux entiers.

Le port UDP (datagramme) répertorié dans l’info de nœud compact est utilisé pour recevoir une réplique (Signé) DataGamPs.C’est utilisé pour les requêtes, à l’exception des annonces. Nous appelons cela le « port de requête ». C’est la valeur « Port » à partir du message d’extension.Quiseries Utilisez I2CProtocol Number 17.

Ajout à ce port UDP, nous utilisons le second Datagramport égal au port de requête + 1. Ceci est utilisé pour recevoir des données de données (RAW) pour les réponses, l’erreur et les annonces.Ce port fournit une efficacité incroyée puisque les jetons de réponse contiennent des jetons envoyés dans la requête et ont besoin de Ne pas être signé.Nous appelons cela le « port de réponse » .C’est la valeur « RPPORT » à partir du message d’extension.Il doit être 1 + le port de requête.Respons et annonce Utiliser I2CProtocol Numéro 18.

compact Les informations de couple (`peer`) sont 32 octets (identifiant cryptographique (` Hash`) SHA256 32 octets) au lieu de 4 octets d’IP + 2 Port d’octets. Il n’y a pas de port de la paire.Dans une réponse, la clé « Valeurs » (valeurs) est une liste de chaînes, chacune contenant les informations compactes d’une seule paire.

Les informations de nœud compact sont 54 octets (20 octets de hachage SHA1 + 32 octets de hachage SHA256 + 2 octets de port) au lieu de 20 octets de hachage SHA1 + 4 octets d’IP + 2 octets de port. Dans une réponse, la clé « nœuds » (nœuds) est une chaîne d’octets unique avec des informations de noeud compact compacts.

besoin d’identifiant (`id`) noeud sécurisé: Pour que cela soit plus difficile des attaques DHT différentes (distribuées Tableau de hachage) Les 4 premiers octets de l’identifiant de nœud (`id`) doivent correspondre aux 4 premiers octets de l’identifiant cryptographique (` Hash`) de la destination, et les 2 octets suivants de l’identifiant de nœud doivent correspondre aux 2 suivants. octets du résultat de l’exploitation exclusive du hachage de destination avec le port.

Dans un fichier torrent, la clé « nœuds » du dictionnaire d’un torrent sans tracker doit être déterminée. Il pourrait s’agir d’une liste des chaînes binaires de 32 octets (HASHES SHA256) au lieu d’une liste de listes contenant une chaîne de serveur et une valeur de port totale. Alternatives: une chaîne d’octets unique avec des grades concaténées ou une liste de chaînes seules.

trackers de datagrammes (UDP)

toujours non disponible pour les clients et les suiveurs (Trackers BitTorrent) Support pour les trackers Udp.Les différences préliminaires avec le BEP 15 sont décrites ci-dessous et sont susceptibles de changer. Contact avec les développeurs I2P Si vous souhaitez développer un client ou un suivi prenant en charge des publicités sur les datagrammes.

Un tracker udp Écoute sur 2 ports. Le port « Pétition » est le port annoncé et est utilisé pour recevoir des données posées (signées), uniquement pour la demande de connexion.Le « port de réponse » utilisé pour recevoir des datagrammes sans signature (RAW, RAW) , et est le port source de toutes les réponses.Le port de réponse est arbitraire.Une client envoie et reçoit exclusivement dans un seul port. Il n’a pas encore signalé). Datagrammes propicion brute Nan une plus grande efficacité pour les réponses, puisqu’elles contiennent des informations d’identification envoyées dans la pétition et n’ont pas besoin d’être signées.

Dans la demande d’annonce, l’adresse IP de 4 octets est remplacée par un hachage de 32 octets, et le port est toujours présent, bien qu’il puisse être ignoré par le suivi. Dans la réponse de l’annonce, chaque port IP de 4 octets et 2 octets est remplacé par un hachage (informations de couple compact) de 32 octets, sans présenter aucun port . Le client envoie la demande de publicité et la demande de grattage (raclage, statistiques du torrent) au port source du package de réponse publicitaire. Demande de connexion, réponse de connexion, réponse de connexion, intervention de connexion gratte, réponse du grattage et réponse d’erreur, est le Identique que dans la (Proposition d’amélioration de BitTorrent) BEP 15.

Les adresses source dans I2P ne peuvent pas être bloquées, il est donc possible d’utiliser un protocole simplifié avec 2 paquets d’ensemble de 4, omettez la demande de connexion et la réponse. ce cas, th E Annoncer Demande serait un datagramme de replays envoyé au port de requête du tracker, et le suivi ne nécessiterait pas de port de réponse. Il serait plus efficace, il serait plus difficile de modifier un suivi existant pour prendre en charge ce mode. L’URL pour le Le suivi de mode 4-paquets utiliserait le préfixe standard « UDP: // ». L’URL d’un suivi de mode à 2 paquets modifié nécessiterait un préfixe différent si les deux modes sont suportés dans I2P.

Informations supplémentaires

  • Les normes I2P BitTorrent sont généralement discutées dans ZZZ.I2P.
  • Un graphique avec les capacités du logiciel de suivi actuel est également disponible là-bas.
  • le FAQ de l’I2P BitTorrent
  • Discusion de DHT à propos de I2P

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *