DHT магистралі - Mainline DHT

DHT магистралі деген атау Кадемлия - негізделген Таратылған хэш кестесі (DHT) қолданды BitTorrent клиенттері арқылы құрдастарын табу BitTorrent протоколы. Таратылған қадағалау үшін DHT пайдалану идеясы алғаш рет жүзеге асырылды[1][2] Azureus 2.3.0.0-де (қазір белгілі Вузе ) 2005 жылдың мамырында, ол айтарлықтай танымал болды. Байланысты емес, бірақ уақыты бірдей BitTorrent, Inc. өздерінің ұқсас DHT шығарды клиент, Mainline DHT деп аталады және осылайша таралған қадағалауды танымал етті BitTorrent протоколы. 2013 жылы Mainline DHT қолданушыларының өлшеуі 10 миллионнан 25 миллионға дейін құрайды, олардың күнделікті айналымы кем дегенде 10 миллионды құрайды.[3]

Сипаттама

DHT магистралі танымал болып табылады Kademlia DHT жобалау.[4] Құрдастарын тарату үшін DHT қолданудан бұрын, трекерлер құрдастарын табудың жалғыз әдісі болды. DHT-ді трекерлерге қолданудың басты ерекшелігі - орталықтандырылмаған тәсіл BitTorrent протоколының табиғатын қолдайды. DHT қызметі анықталған құрдастарының тізімдерін тарату арқылы жұмыс істейді SHA-1 торренттің хэші.

Пайдалану

Торренттің SHA-1 хэші инфохаш, Kademlia кілтімен синоним болып табылады, ол қосымша желіде теңдестіру (мән) табу үшін қолданылады. Үйірде құрдастарын табу үшін түйін а жібереді теңдестіру кілт ретінде инфохашпен сұрау (Kademlia-ға балама) FIND_VALUE) ең жақын түйіндерге дейін (негізгі қашықтыққа қатысты). Kademlia сияқты, егер түйін мәнді қайтармаса (қатарластар), ол қайталанатын әрекетте одан әрі жалғасады. Алайда, іздеу аяқталғаннан кейін, клиент торенттің инфохимиясына жақын идентификаторлары бар жауап түйіндеріне құрдастарымен байланыс ақпаратын енгізеді.

Төкен

Түйіндер а деп аталатын қосымша шараны қолданады жетон басқалардың торренттерге басқа хосттарға жазылмауын қамтамасыз ету. Құрбыларға арналған сұрау үшін қайтарылатын мәнге бұл мөлдір емес мән кіреді. Торап өзінің торрентті жүктеп жатқанын хабарлауы үшін, ол құрдастарына арналған соңғы сұрауда сол сұралған түйіннен алынған белгіні ұсынуы керек. Түйін торрентті «жариялауға» тырысқанда, сұралған түйін таңбалауышты сұраныстың түйінінің IP-мекен-жайына қарсы тексереді.

Mainline DHT белгісінің мәні үшін әр бес минут сайын өзгеретін құпияға біріктірілген IP-мекен-жайдың SHA1 хэшін қолданады. Он минутқа дейінгі жетондар қабылданады.

KRPC

DHL магистраліндегі түйін IP және порт тіркесімінен тұрады. Түйіндер RPC хаттама - KRPC. KRPC - бұл қарапайым хаттама, ол хабарламалар жіберетін түйіндерден (сұраулар, жауаптар мен қателер) тұрады Кодталған жоқ сөздіктер аяқталды UDP.

KRPC хабарламасы - бұл әр хабарламаға ортақ екі кілт және хабарламаның түріне байланысты қосымша кілттер бар жалғыз сөздік. Әр хабарламаның кілті болады «т» транзакция идентификаторын білдіретін жол мәнімен. Бұл транзакция идентификаторы сұрау түйіні арқылы жасалады және жауапта қайталанады, сондықтан жауаптар бір түйінге бірнеше сұраулармен корреляциялануы мүмкін. Транзакция идентификаторы екілік сандардың қысқа тізбегі ретінде кодталуы керек, әдетте 2 октет жеткілікті, өйткені олар 2 ^ 16 сұранысты жабады. Әрбір KRPC хабарламасында қамтылған басқа кілт «у» хабарламаның түрін сипаттайтын бір таңбалық мәнмен. «Y» пернесінің мәні - бірі «q» сұрау үшін, «r» жауап алу үшін немесе «е» қате үшін

Сұрақтар

Сұрауларда немесе «q» «y» мәніндегі KRPC хабарлама сөздіктерінде екі қосымша кілт бар; «q» және «a». «Q» кілтінде сұраудың әдіс атауы бар жол мәні бар. «А» кілтінде сұраныстың аргументтері бар сөздік мәні бар.

Жауаптар

Жауаптарда немесе «r» «y» мәніндегі KRPC хабарлама сөздіктерінде тағы бір «r» кілті бар. «R» мәні - қайтарылған мәндері бар сөздік. Жауап хабарламалары сұрау сәтті аяқталғаннан кейін жіберіледі.

Қателер

Қателер немесе «е» мәнінің «y» мәні бар KRPC хабарлама сөздіктерінде тағы бір «e» кілті бар. «Е» мәні - бұл тізім. Бірінші элемент - қате кодын көрсететін бүтін сан. Екінші элемент - қате туралы хабарлама бар жол. Қателер сұранысты орындау мүмкін болмаған кезде жіберіледі.

Маршруттау кестесі

Шелектер құрылымы Kademlia-дан басқаша. 160 шелектің тізімінің орнына BitTorrent тек бір шелектен басталады. Шелек толған кезде, екі жағдайдың бірі болуы мүмкін:

  1. Шелек бөлінген
  2. Ескі түйіндер пингтелген (Kademlia сияқты)

Бөлу дегеніміз - егер түйіннің жеке идентификаторы шелектің ауқымына енген жағдайда ғана пайда болады. Бөлінген шелектің орнына әрқайсысы ескі шелектің жартысы бар екі жаңа шелекке ауыстырылады және ескі шелектегі түйіндер екі жаңа шелекке бөлінеді.

Бұл шелектің екі артықшылығы бар:

  • 160 шелектен аз маршруттық кесте үшін аз жад қолданылады
  • Шелектерді іздеу кезінде көршілес шелектерден қосымша түйіндер алу қажет емес, себебі қазіргі шелекте жеткілікті екеніне кепілдік бар

BitTorrent протоколының кеңейтілуі

BitTorrent протоколы трекер енгізген құрдастар арасында түйінді UDP порт нөмірлерімен алмасу үшін кеңейтілді. Осылайша, клиенттер маршруттық кестелерді автоматты түрде торрент жүктеу арқылы ала алады. Трекерсіз торрентті бірінші рет жүктеуге тырысатын жаңадан орнатылған клиенттерде маршруттау кестесінде түйіндер болмайды және оларға торрент файлына енгізілген контактілер қажет болады.

DHT-ді қолдайтын құрбылар BitTorrent протоколының қол алысуымен алмасқан 8 байтты резервтік жалаулардың соңғы битін орнатады. DHT-ді қолдайтынын көрсететін қол алысу жолдасы PORT хабарламасын жіберуі керек. Ол 0x09 байттан басталады және желілік байт ретімен DHT түйінінің UDP портын қамтитын екі байттық пайдалы жүктеме бар. Осы хабарламаны алған құрдастар алынған порттағы түйінді пинге келтіруге тырысуы керек және қашықтағы теңдестірудің IP мекен-жайы. Егер пингке жауап алынған болса, түйін әдеттегі ережелерге сәйкес жаңа байланыс ақпаратын маршруттау кестесіне енгізуге тырысуы керек.

Торренттер

Трекерсіз торрент сөздігінде жоқ «жарияла» кілт. Оның орнына трекерсіз торрентте a бар «түйіндер» тізімі ретінде қызмет ететін кілт Жүктеу түйіндері (егер біз қосымша желіге қосылмаған болсақ). Бұл кілт әдетте орнатылады Қ торрент тудыратын клиенттің маршруттау кестесіндегі ең жақын түйіндер.

A «жеке» жалауша да бейресми түрде енгізілген, бұл клиенттерге пайдаланушының қалауына қарамастан орталықтандырылмаған қадағалауды пайдалануды шектеуге кеңес береді. Жалауша торренттің ақпарат бөлімінде оны ағытып, оны торенттің жеке басын өзгертпестен өшіруге болмайтындай етіп орналастырады. Тудың мақсаты - торренттердің трекерге қол жеткізе алмайтын клиенттермен бөлісуіне жол бермеу.

Іске асыру

DHT негізгі сызығы алғаш рет 4.2.0 нұсқасына енгізілген BitTorrent (бағдарламалық жасақтама) (Қараша 2005). Содан бері оны бірқатар басқа клиенттер жүзеге асырады:

Әдебиеттер тізімі

  1. ^ Джонс, Бен (7 маусым 2015). «BitTorrent DHT 10 жасқа толады». TorrentFreak. Алынған 2015-07-05.
  2. ^ «Vuze Changelog». Azureus.sourceforge.net.
  3. ^ Ван, Лян; Кангашаржу, Джусси. (2013). «Үлкен масштабты таратылған жүйелерді өлшеу: BitTorrent магистральдық DHT жағдайы» (PDF). IEEE Peer-to-Peer. Алынған 26 қазан 2013.
  4. ^ , Эндрю. «http://bittorrent.org/beps/bep_0005.html». bittorrent.org. Алынған 2015-06-10. Сыртқы сілтеме | тақырып = (Көмектесіңдер)
  5. ^ http://dev.deluge-torrent.org/wiki/About#Whataboutfeatures

Сыртқы сілтемелер