ピアのリストを配布するためにBitTorrentで使用されるMainline DHTは、 KRPC と呼ばれるカスタム RPC プロトコルを実装します。KRPC は、基本的に JSON のよりコンパクトな形式である BEncoded 辞書で構成されています。
BSON のようなもの (または単にデータを圧縮すること) よりも BEncode を使用する利点はありますか?
ピアのリストを配布するためにBitTorrentで使用されるMainline DHTは、 KRPC と呼ばれるカスタム RPC プロトコルを実装します。KRPC は、基本的に JSON のよりコンパクトな形式である BEncoded 辞書で構成されています。
BSON のようなもの (または単にデータを圧縮すること) よりも BEncode を使用する利点はありますか?
bencode
これは歴史的な理由で使用されており、DHT拡張機能を実装したい開発者の負担を軽減していると思います。すべてのBitTorrentクライアントは、bencode
トレントファイル(メタデータの単純にコード化された辞書)を操作するための実用的な実装を持っている必要があるため、DHTを実装するためにbencode
新しいプロジェクトの依存関係は必要ありません。
また、DHTがbencode
バイナリエンコーディングとともに使用していることを考慮してください。特に、26バイトのノード識別子文字列(ノードIDの場合は20バイト、ipv4アドレス/ポートの場合は6バイト)がバイナリ文字列として保存されています(http://bittorrent.org/beps/bep_0005.htmlを参照)。 #contact-encoding)なので、事実上、すでに最小限のデータ圧縮が行われています。