كيف يقوم عميل تورنت في البداية باكتشاف أقرانه؟
عندما ينضم عميل التورنت الخاص بك إلى السرب لمشاركة وجمع قطع الملفات ، كيف يعرف بالضبط أين جميع نظرائه؟ اقرأ كما نحن كزة حول الآليات التي تدعم بروتوكول BitTorrent.
تأتي جلسة الأسئلة والأجوبة اليوم مقدمة من SuperUser-a subdivision of Stack Exchange ، وهي مجموعة مجتمعية مدفوعة من مواقع Q & A.
السؤال
كان لدى SuperUser reader Steve V. سؤال محدد للغاية حول نظام جدول التجزئة الموزع (DHT) ضمن بروتوكول BitTorrent:
لقد قرأت بالفعل جواب SuperUser وهذه مقالة ويكيبيديا ولكن كلاهما تقني للغاية بالنسبة لي للف رأسي حقا.
أفهم فكرة جهاز تعقب: يتصل العملاء بخادم مركزي يحتفظ بقائمة من الزملاء في سرب.
أفهم أيضا فكرة تبادل الأقران: العملاء في سرب بالفعل إرسال قائمة كاملة من أقرانهم لبعضهم البعض. إذا تم اكتشاف أقران جدد ، فسيتم إضافتهم إلى القائمة.
سؤالي هو ، كيف يعمل DHT؟ هذا هو, كيف يمكن لعميل جديد الانضمام إلى سرب دون تعقب أو معرفة عضو واحد على الأقل من السرب لتبادل الأقران مع?
(ملاحظة: التفسيرات البسيطة هي الأفضل).
طرح سؤاله بدوره ردًا مفصلاً عن الوظائف المختلفة لنظام BitTorrent ؛ دعونا نلقي نظرة على ذلك الآن.
الاجابة
مساهم SuperUser يقدم Allquixotic تفسيرا مفصلا:
كيف يمكن لعميل جديد الانضمام إلى سرب دون تعقب أو معرفة عضو واحد على الأقل من السرب لتبادل الأقران مع?
لا تستطيع مستحيل.*
* (ما لم تكن العقدة في حياتك شبكة المنطقة المحلية يحدث أن يكون بالفعل عقدة في DHT. في هذه الحالة ، يمكنك استخدام آلية بث ، مثل Avahi ، "لاكتشاف" هذا النظير ، وبدء التشغيل منها. لكن كيف فعلت هم bootstrap أنفسهم؟ في النهاية ، ستصل إلى موقف تحتاج فيه إلى الاتصال بالإنترنت العام. كما أن شبكة الإنترنت العامة هي أحادية البث فقط ، وليست متعددة البث ، لذا فأنت عالق في استخدام قوائم أقران محددة مسبقًا.)
المراجع
يتم تنفيذ Bittorrent DHT عبر بروتوكول يعرف باسم Kademlia ، وهي حالة خاصة من المفهوم النظري لجدول التجزئة الموزعة.
معرض
مع بروتوكول Kademlia ، عندما تنضم إلى الشبكة ، تذهب من خلال إجراء bootstrapping ، والذي يتطلب تماما أن تعرف, مقدما, عنوان IP ومنفذ عقدة واحدة على الأقل تشارك بالفعل في شبكة DHT. على سبيل المثال ، قد يكون المتعقب الذي تتصل به ، بحد ذاته عقدة DHT. بمجرد اتصالك بعقدة DHT واحدة ، تقوم بعد ذلك بتنزيل المعلومات من DHT ، والتي توفر لك معلومات اتصال لمزيد من العقد ، ثم تقوم بالانتقال إلى بنية "الرسم البياني" للحصول على اتصالات إلى المزيد والمزيد من العقد ، الذين يمكنهم توفير الاتصال بالعُقد الأخرى وبيانات الحمولة (قطع التنزيل).
أعتقد أن سؤالك الفعلي جريء - وهو كيفية الانضمام إلى شبكة Khemlia DHT دون معرفة أيأعضاء آخرين - يقوم على افتراض خاطئ.
الإجابة البسيطة على سؤالك بالخط العريض هي, لا تفعل. إذا كنت لا تعرف أي معلومات على الإطلاق عن مضيف واحد قد يحتوي على بيانات تعريف DHT ، فإنك عالق - لا يمكنك حتى البدء. أعني ، على يقين ، أنه بإمكانك تقويض القوة لمحاولة اكتشاف عنوان IP على الإنترنت العام من خلال منفذ مفتوح يحدث لبث معلومات دي إتش تي. ولكن من المرجح أن يكون عميل BT الخاص بك مشفرًا لبعض عناوين IP أو DNS الثابتة المحددة التي تحل إلى عقدة DHT مستقرة ، والتي توفر فقط البيانات الوصفية لـ DHT.
أساسا ، DHT هو فقط لامركزية مثل آلية الانضمام ، ولأن آلية الانضمام هشة إلى حد ما (ليس هناك طريقة "للبث" على الإنترنت بالكامل! الإرسالإلى مضيف معين معين مسبقًا للحصول على بيانات DHT) ، Kademlia DHT ليس كذلك هل حقا اللامركزية. ليس بالمعنى الحرفي للكلمة.
تخيل هذا السيناريو: الشخص الذي يريد أن يتوقف P2P يخرج ويجهز الهجوم الكل العقد DHT مستقرة تستخدم عادة والتي تستخدم في bootstrapping. بمجرد أن يقوموا بهجومهم ، ينطلقون عليه الكل عقد في كل مرة. إضرب. كل واحد bootstrapping عقدة DHT هو أسفل كل واحد في ضربة واحدة. ماذا الآن؟ أنت عالق في الاتصال بـ تعقب مركزي لتحميل القوائم التقليدية للأقران من هؤلاء. حسنا ، إذا كانوا يهاجمون المتتبعين أيضا ، فأنت حقا, هل حقا حتى الخور. بعبارة أخرى ، فإن Kademlia وشبكة BT بأكملها مقيدتان بالقيود المفروضة على شبكة الإنترنت نفسها ، حيث أن هناك عدد محدود (وصغير نسبيا) من أجهزة الكمبيوتر التي سيكون عليك أن تهاجمها بنجاح أو تتخذها في وضع غير متصل لمنع 90٪ من المستخدمين من الاتصال بالشبكة.
وبمجرد اختفاء عقد الإقلاع "المركزي" "pseudo-centralized" ، فإن العقد الداخلية للـ DHT ، والتي لا يتم تشغيلها لأن لا يعرف أحد من خارج DHT عن العقد الداخلية, غير مجدية؛ لا يمكنهم جلب عقد جديدة في DHT. لذا ، نظرًا لأن كل عقدة داخلية تنقطع عن DHT بمرور الوقت ، إما بسبب إغلاق الأشخاص لأجهزة الكمبيوتر ، وإعادة تشغيل التحديثات ، وما إلى ذلك ، فإن الشبكة ستنهار.
وبالطبع ، للتغلب على هذا ، يمكن لأي شخص نشر عميل BitTorrent مصحح بقائمة جديدة من عقد DHT الثابتة المحددة مسبقًا أو عناوين DNS ، والإعلان بصوت عالٍ إلى مجتمع P2P لاستخدام هذه القائمة الجديدة بدلاً من ذلك. لكن هذا الأمر سيصبح حالة "اضطجاعًا واحدًا" حيث يقوم المعتدي (العقدة) بتنزيل هذه القوائم بنفسه بشكل تدريجي ، ويستهدف عقد الإقلاع الجديدة الشجاعة ، ثم يأخذها بلا اتصال ، أيضًا.
لم نتعلم الإجابة عن السؤال الأصلي فحسب ، بل تعلمنا أيضًا قليلاً عن طبيعة نظام BitTorrent ونقاط ضعفه.
هل لديك شيء تضيفه إلى الشرح؟ الصوت قبالة في التعليقات. هل ترغب في قراءة المزيد من الإجابات من مستخدمي Stack Exchange الآخرين المحترفين بالتكنولوجيا؟ تحقق من موضوع المناقشة الكامل هنا.