在Mainline DHT中用于分发对等列表的BitTorrent实现了一个名为KRPC的自定义RPC协议。 KRPC由BEncoded词典组成,它本质上是一种更紧凑的JSON形式。
使用BEncode比BSON(或者甚至只压缩数据)有什么好处吗?
答案 0 :(得分:3)
我怀疑bencode
因历史原因而被使用,并减轻了想要实施DHT扩展的开发人员的负担。由于所有BitTorrent客户端都必须具有工作bencode
实现才能使用torrent文件(这些文件只是元数据的简化字典),因此使用bencode
实现DHT将不需要新的项目依赖性。
另外,请考虑DHT正在使用bencode
以及二进制编码。其中,26字节节点标识符字符串(节点标识为20字节,ipv4地址/端口为6字节)存储为二进制字符串(请参阅:http://bittorrent.org/beps/bep_0005.html#contact-encoding),因此有效,存在已经发生了一些最小的数据压缩。