Підсумок
Як новий клієнт може приєднатися до рою, не маючи трекера або знань принаймні одного члена рою, з яким обмінюватися з однолітками?
Ви не можете. Це неможливо.*
* (Якщо випадково вузол у вашій локальній мережі вже є вузлом у DHT. У цьому випадку ви можете використовувати механізм мовлення, наприклад Avahi, для "виявлення" цього однорангового інструмента та завантаження з них. Але як це вони з часом завантажуватимуться? Зрештою, ви потрапите в ситуацію, коли вам потрібно підключитися до загальнодоступного Інтернету. І загальнодоступний Інтернет є єдиним трансляцією, а не багатоадресною передачею, тому ви застрягли з використанням заздалегідь визначених списків однолітків.
Список літератури
Bittorrent DHT реалізується через протокол, відомий як Kademlia , що є особливим випадком теоретичної концепції розподіленої хеш-таблиці .
Експозиція
За допомогою протоколу Kademlia при підключенні до мережі ви проходите процедуру завантаження , яка абсолютно вимагає заздалегідь знати IP-адресу та порт хоча б одного вузла, який вже бере участь у мережі DHT. Наприклад, трекер, до якого ви підключаєтесь, може бути самим вузлом DHT. Після підключення до одного вузла DHT ви продовжуєте завантажувати інформацію з DHT, яка надає вам інформацію про підключення для більшої кількості вузлів, і ви перейдете до цієї структури "графа", щоб отримати з'єднання до більшої кількості вузлів, які можуть забезпечити обидва підключення до інших вузлів та корисних даних (шматки завантаження).
Я думаю , що ваш фактичний питання напівжирний - в тому, як приєднатися до мережі Kademlia DHT , не знаючи ніяких інших членів - заснована на помилковому припущенні.
Проста відповідь на ваше запитання жирним шрифтом - це не так . Якщо ви взагалі не знаєте жодної інформації про навіть один хост, який може містити DHT-метадані, ви застрягли - ви навіть не можете розпочати роботу. Я маю на увазі, звичайно, ви можете змусити спробувати відкрити IP-адресу в загальнодоступному Інтернеті за допомогою відкритого порту, який передає інформацію про DHT. Але швидше за все, ваш BT-клієнт жорстко кодується до певного статичного IP або DNS, який вирішує стабільний DHT-вузол, який просто надає метадані DHT.
В основному, DHT є настільки ж децентралізованим, як і механізм приєднання, і тому що механізм приєднання є досить крихким (немає жодного способу "трансляції" по всьому Інтернету! Тому вам доведеться з'єднатись з окремим попередньо призначеним хостом, щоб отримати DHT дані), Kademlia DHT НЕ дуже децентралізована. Не в найсуворішому значенні цього слова.
Уявіть собі такий сценарій: той, хто хоче, щоб P2P зупинився, виходить і готує атаку на всі часто використовувані стабільні DHT-вузли, які використовуються для завантаження. Після того, як вони здійснили свою атаку, вони виводять її відразу на всі вузли. Wham ; кожен окремий DHT-вузол завантаження знижується всім одним махом. А тепер що? Ви застрягли в підключенні до централізованих трекерів, щоб завантажити традиційні списки однолітків з них. Ну, якщо вони теж атакують трекерів, то ти справді, справдівгору за течією. Іншими словами, Kademlia та вся мережа BT обмежена обмеженнями самого Інтернету, оскільки існує обмежена кількість (і порівняно невелика) кількість комп’ютерів, на які вам доведеться успішно атакувати чи брати офлайн, щоб запобігти> 90% користувачів від підключення до мережі.
Після того, як всі псевдоцентралізовані "вузли завантаження" зникнуть, внутрішні вузли DHT, які не завантажуються, тому що ніхто з зовнішньої частини DHT не знає про внутрішні вузли , є марними; вони не можуть ввести нові вузли в DHT. Отже, оскільки кожен внутрішній вузол відключається від DHT з часом, або через те, що люди вимикають комп’ютери, перезавантажуються для оновлень тощо, мережа руйнується.
Звичайно, щоб обійти це, хтось міг би розгорнути виправлений клієнт BitTorrent з новим списком заздалегідь визначених стабільних DHT-вузлів або DNS-адрес, і голосно рекламувати спільноту P2P, щоб використовувати замість цього новий список. Але це перетвориться на ситуацію, коли агресор (вузол) поступово сам завантажуватиме ці списки та націлюватиме на нових відважних вузлів завантаження, а потім відводить їх і в офлайн.