If-Koubou

Как бившият клиент на BitTorrent първоначално открива своите връстници?

Как бившият клиент на BitTorrent първоначално открива своите връстници? (Как да)

Когато вашият торент клиент се присъедини към рояка, за да споделя и събира файлове, как точно знае къде са всичките си връстници? Прочетете нататък, докато се придвижваме вътре в механизмите, които подлежат на протокола BitTorrent.

Днешната сесия за въпроси и отговори ни идва с любезното съдействие на SuperUser - подразделение на Stack Exchange - обединяване на уеб сайтове с въпроси и отговори.

Въпроса

Reader на SuperUser Стив В. имаше много конкретен въпрос относно системата за дистрибутирана таблица (DHT) в рамките на протокола BitTorrent:

Вече прочетох този отговор на SuperUser и тази статия в Уикипедия, но и двете са прекалено технически, за да мога да обгърна главата си.

Разбирам идеята за тракера: клиентите се свързват с централен сървър, който поддържа списък на връстници в рояк.

Разбирам и идеята за обмен на връстници: клиентите, които вече са в рояк, изпращат един на друг пълния списък на своите връстници. Ако се открият нови връстници, те се добавят към списъка.

Моят въпрос е, как действа DHT? Това е,как може нов клиент да се присъедини към рояка, без да има трактор или знанието на поне един член на рояка, за да обмени с връстници?

(Забележка: най-добре са обясненията.)

Неговият въпрос на свой ред подсказа много подробен отговор за различните функции на системата BitTorrent; нека сега да го разгледаме.

Отговорът

Сътрудникът на SuperUser Allquixotic предлага задълбочено обяснение:

Как може нов клиент да се присъедини към рояка, без да има трактор или знанието на поне един член на рояка, за да обмени с връстници?

Не можеш. Невъзможно е.*

* (Освен ако не е възел на вашетолокална мрежа се случва вече да е възел в ДХТ. В този случай бихте могли да използвате излъчващ механизъм, като Avahi, за да "откриете" този партньор и да заредите от тях. Но какте стартирайте сами? В крайна сметка ще ударите ситуация, в която трябва да се свържете с обществения интернет. А публичният интернет е единственият, а не мултикаст, така че сте останали с предварително зададени списъци на връстници.)

Препратки

BitTorrent DHT се изпълнява чрез протокол, известен като Kademlia, което е специален случай на теоретична концепция за разпределена хеш таблица.

изложение

С протокола Кадемлия, когато се присъедините към мрежата, преминавате през процедура за зареждане, което абсолютно изисква да знаете,предварително, IP адреса и порт на поне един възел, който вече участва в DHT мрежата. Проследяващото устройство, с което се свързвате например, може да е DHT възел. След като сте свързани с един DHT възел, ще продължите да изтегляте информация от DHT, която ви предоставя информация за свързаност за повече възли и след това навигирате тази "графична" структура, за да получите връзки към все повече възли, които могат да осигурят както свързаност към други възли и данни за полезния товар (части от изтеглянето).

Мисля, че вашият действителен въпрос е смел - това как да се присъедините към мрежата на Кадемлия DHT без да знаетекойто и да едруги членове - се основава на фалшиво допускане.

Простият отговор на въпроса ви с удебелен шрифт е,не, Ако не знаете каквато и да е информация за дори един хост, който може да съдържа DHT метаданни, вие сте остана без дори да започнете. Искам да кажа, може би, бихте могли да направите груб опит за откриване на IP в публичния интернет с отворен порт, който се случва да излъчва информация за DHT. Но по-вероятно е вашият BT клиент да е твърдо кодиран към някаква специфична статична IP или DNS, която се решава към стабилен DHT възел, който само осигурява метаданните на DHT.

По принцип ДХТ е само децентрализиран като свързващия механизъм и механизмът на присъединяване е доста крехък (няма начин да "излъчвате" по целия Интернет!), Така че трябва дас единичнодо отделен предварително определен източник за получаване на DHT данни), Kademlia DHT не енаистина ли децентрализирана. Не в най-строгия смисъл на думата.

Представете си този сценарий: Някой, който иска да спре P2P, изгасва и подготвя атакавсичкочесто използваните стабилни DHT възли, които се използват за зареждане с ботуши. Веднъж след като атакуват атаката си, те се появяватвсичко възли наведнъж.силен трясък; всеки един от джойнт-ъпгрейдния DHT възел е надолу всичко в един пад. Сега какво? Вие сте остана с връзка къмцентрализирани тракери за да изтеглите традиционни списъци с колеги от тези. Ами, ако нападнат и тракрите, тогава наистина сте,наистина ли до един поток. С други думи, Kademlia и цялата мрежа на BT са ограничени от ограниченията на самия интернет, тъй като има ограничен (и сравнително малък) брой компютри, които би трябвало успешно да атакувате или да правите офлайн, за да предотвратите> 90% от потребителите да се свързват с мрежата.

След като "псевдо-централизираните" възеловидни възли са изчезнали, вътрешните възли на DHT, които не се задействат, защотоникой от външната страна на ДХТ не знае за вътрешните възли, са безполезни; те не могат да въвеждат нови възли в ДХТ. Така че, тъй като всеки инчов възел се свързва с DHT с течение на времето, или поради изтласкване на компютрите, рестартиране за актуализации и т.н., мрежата ще се срути.

Разбира се, за да се справим с това, някой може да разработи patched BitTorrent клиент с нов списък с предварително определени стабилни DHT възли или DNS адреси и силно да рекламира на P2P общността да използва този нов списък. Но това би се превърнало в ситуация, в която агресорът ("възела") постепенно ще изтегли тези списъци сами и ще се насочи към смелите нови модули за зареждане, а после ще ги остави и в офлайн режим.

Не само че научихме отговора на оригиналния въпрос, но също така научихме доста за характера на системата BitTorrent и нейните уязвимости.

Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.