2012-07-16 6 views
5

Mainline DHTは、ピアのリストを配布するためにBitTorrentで使用され、KRPCというカスタムRPCプロトコルを実装します。 KRPCはBEncoded辞書で構成されています。これは本質的にJSONのよりコンパクトな形式です。BSONの代わりにBEncodeを使用するBitTorrent KRPCの背後にある理由は何ですか?

BEncodeをBSONのようなもの(または単にデータを圧縮しているもの)に使用する利点はありますか?

答えて

3

私は、bencodeが歴史的な理由から使用されており、DHT拡張機能を実装したい開発者の負担を軽減すると考えています。すべてのBitTorrentクライアントでは、bencodeのトレントファイル(単にメタデータのbencoded辞書)を処理するための実装が必要であるため、bencodeでDHTを実装するには、新しいプロジェクトの依存関係は必要ありません。

また、DHTがbencodeとバイナリエンコーディングを使用しているとします。とりわけ、26バイトのノード識別子文字列(node-idの20バイト、ipv4アドレス/ポートの6バイト)はバイナリ文字列として格納されています(http://bittorrent.org/beps/bep_0005.html#contact-encoding参照)。起こっているデータ圧縮。

関連する問題