Mainline DHT中的BitTorrent用于分发对等方列表,它实现了称为KRPC的自定义RPC协议。 KRPC由BEncoded字典组成,这些字典本质上是JSON的更紧凑形式。

使用BEncode优于BSON(甚至只是压缩数据)有什么好处吗?

最佳答案

我怀疑出于历史原因使用bencode是为了减轻希望实现DHT扩展的开发人员的负担。由于所有BitTorrent客户端必须具有有效的bencode实施方案才能使用torrent文件(它们是元数据的简单编码字典),因此使用bencode实施DHT不需要新的项目依赖项。

另外,请考虑DHT正在使用bencode和二进制编码。其中,26字节的节点标识符字符串(20字节用于node-id,6字节用于ipv4地址/端口)被存储为二进制字符串(请参见:http://bittorrent.org/beps/bep_0005.html#contact-encoding),因此实际上已经存在一些最小的数据压缩。

07-26 09:34