【发布时间】:2012-07-15 21:11:20
【问题描述】:
Mainline DHT 用于在BitTorrent 中分发对等点列表,它实现了一个称为 KRPC 的自定义 RPC 协议。 KRPC 由 BEncoded 字典组成,它们本质上是一种更紧凑的 JSON 形式。
使用 BEncode 比使用 BSON(甚至只是压缩数据)有什么好处吗?
【问题讨论】:
标签: json encoding rpc bittorrent bson
Mainline DHT 用于在BitTorrent 中分发对等点列表,它实现了一个称为 KRPC 的自定义 RPC 协议。 KRPC 由 BEncoded 字典组成,它们本质上是一种更紧凑的 JSON 形式。
使用 BEncode 比使用 BSON(甚至只是压缩数据)有什么好处吗?
【问题讨论】:
标签: json encoding rpc bittorrent bson
我怀疑bencode 的使用是出于历史原因并减轻希望实施 DHT 扩展的开发人员的负担。由于所有 BitTorrent 客户端都必须有一个有效的 bencode 实现来处理 torrent 文件(它们只是元数据的编码字典),因此使用 bencode 实现 DHT 不需要新的项目依赖项。
另外,考虑到 DHT 正在使用bencode 以及二进制编码。其中,26 字节的节点标识符字符串(20 字节用于节点 ID,6 字节用于 ipv4 地址/端口)被存储为二进制字符串(参见:http://bittorrent.org/beps/bep_0005.html#contact-encoding),因此实际上已经存在正在发生一些最小的数据压缩。
【讨论】: