5 votes

Quelle est la raison pour laquelle BitTorrent KRPC utilise BEncode au lieu de BSON ?

El Mainline DHT utilisé dans BitTorrent pour distribuer des listes de pairs, met en œuvre un protocole RPC personnalisé appelé KRPC. KRPC se compose de dictionnaires BEncoded, qui sont essentiellement une forme plus compacte de JSON.

Y a-t-il un avantage à utiliser BEncode plutôt que quelque chose comme BSON (ou même simplement à compresser les données) ?

3voto

gsk Points 409

Je soupçonne que bencode est utilisé pour des raisons historiques et pour alléger la charge des développeurs qui souhaitent mettre en œuvre l'extension DHT. Étant donné que tous les clients BitTorrent doivent disposer d'un serveur de bencode pour travailler avec des fichiers torrent (qui sont simplement des dictionnaires de métadonnées codés en binaire), en implémentant la DHT avec bencode ne nécessiterait aucune nouvelle dépendance du projet.

De plus, considérez que la DHT utilise bencode ainsi que le codage binaire. Entre autres, la chaîne d'identifiant de nœud de 26 octets (20 octets pour l'identifiant de nœud, 6 octets pour l'adresse ipv4 / port) est stockée sous forme de chaîne binaire (voir : http://bittorrent.org/beps/bep_0005.html#contact-encoding ), donc, en fait, une compression minimale des données est déjà en cours.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X