5

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

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

4

1 回答 1

3

我怀疑这bencode是出于历史原因并减轻想要实现 DHT 扩展的开发人员的负担。由于所有 BitTorrent 客户端都必须有一个有效的bencode实现来处理 torrent 文件(它们只是元数据的编码字典),因此实现 DHTbencode不需要新的项目依赖项。

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

于 2012-08-03T14:43:58.440 回答