【问题标题】:What is the reasoning behind BitTorrent KRPC using BEncode instead of BSON?BitTorrent KRPC 使用 BEncode 而不是 BSON 背后的原因是什么?
【发布时间】:2012-07-15 21:11:20
【问题描述】:

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

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

【问题讨论】:

    标签: json encoding rpc bittorrent bson


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 1970-01-01
      • 2018-08-31
      • 2020-01-26
      • 2016-03-31
      • 1970-01-01
      • 2021-11-01
      • 2010-10-03
      • 2018-02-28
      相关资源
      最近更新 更多