2012-07-16 47 views
5

Mainline DHT, सहकर्मियों की सूचियों को वितरित करने के लिए BitTorrent में उपयोग किया गया, केआरपीसी नामक एक कस्टम आरपीसी प्रोटोकॉल लागू करता है। केआरपीसी में बीनकोडेड शब्दकोष होते हैं, जो अनिवार्य रूप से जेएसओएन का अधिक कॉम्पैक्ट रूप होते हैं।बीएसओएन के बजाय बीनकोड का उपयोग कर बिटोरोरेंट केआरपीसी के पीछे तर्क क्या है?

क्या बीएसओएन (या यहां तक ​​कि केवल डेटा को संपीड़ित करने) पर बीनकोड का उपयोग करने का कोई लाभ है?

उत्तर

3

मुझे संदेह है कि ऐतिहासिक कारणों से bencode का उपयोग किया जा रहा है और डीएचटी एक्सटेंशन को लागू करने के इच्छुक डेवलपर्स पर बोझ को हल्का करने के लिए। चूंकि सभी बिटटोरेंट ग्राहकों के पास bencode कार्यान्वयन होना चाहिए जो टोरेंट फ़ाइलों (जो मेटाडाटा के बस बेंकोड किए गए शब्दकोश हैं) के साथ काम करने के लिए कार्यान्वित हो, bencode के साथ डीएचटी को लागू करने के लिए कोई नई परियोजना निर्भरता की आवश्यकता नहीं होगी।

इसके अलावा, मान लें कि डीएचटी बाइनरी एन्कोडिंग के साथ bencode का उपयोग कर रहा है। दूसरों के बीच, 26 बाइट नोड पहचानकर्ता स्ट्रिंग (नोड-आईडी के लिए 20 बाइट, आईपीवी 4 एड्रेस/पोर्ट के लिए 6 बाइट्स) को बाइनरी स्ट्रिंग के रूप में संग्रहीत किया जा रहा है (देखें: http://bittorrent.org/beps/bep_0005.html#contact-encoding), इसलिए असल में, पहले से ही कुछ न्यूनतम है डेटा-संपीड़न हो रहा है।