2012-07-16 38 views
5

Mainline DHT, được sử dụng trong BitTorrent để phân phối danh sách các đồng nghiệp, triển khai giao thức RPC tùy chỉnh có tên KRPC. KRPC bao gồm các từ điển được mã hóa, về cơ bản là một dạng JSON nhỏ gọn hơn.Lý do đằng sau BitTorrent KRPC sử dụng BEncode thay vì BSON là gì?

Có lợi ích gì khi sử dụng BEncode trên thứ gì đó như BSON (hoặc thậm chí chỉ nén dữ liệu) không?

Trả lời

3

Tôi nghi ngờ rằng bencode đang được sử dụng vì lý do lịch sử và làm giảm gánh nặng cho các nhà phát triển muốn triển khai tiện ích mở rộng DHT. Vì tất cả các máy khách BitTorrent phải thực hiện bencode để làm việc với các tệp torrent (chỉ đơn giản là các từ điển mã hóa siêu dữ liệu), việc triển khai DHT với bencode sẽ không yêu cầu phụ thuộc dự án mới.

Ngoài ra, hãy xem xét DHT đang sử dụng bencode cùng với mã hóa nhị phân. Trong số những người khác, chuỗi nhận dạng nút 26 byte (20 byte cho nút-id, 6 byte cho địa chỉ/cổng ipv4) đang được lưu trữ dưới dạng chuỗi nhị phân (xem: http://bittorrent.org/beps/bep_0005.html#contact-encoding), do đó, có hiệu lực, đã có một số nén dữ liệu đang diễn ra.