DHT

Автор Сообщение
Angelion ®

Стаж: 14 лет
Сообщений: 7
Откуда: Уфа

Создавать темы Angelion ® написал(а)
25-Дек-2009 19:01
Зачем он нужен? Что это?
Профиль  ЛС 
Zerocool56

Стаж: 14 лет
Сообщений: 65
Откуда: Оренбург

Создавать темы Zerocool56 написал(а)
25-Дек-2009 19:13 (спустя 12 минут)
Angelion гугль у нас не в моде?
DHT (англ. Distributed Hash Table — «распределённая хеш-таблица») — это класс децентрализованных распределённых систем, обеспечивающих эффективный поиск, для хеш-таблицы имеющих вид: (имя, значение), которые распределены по неким узлам.

Клиенты с поддержкой DHT образуют общую DHT сеть и помогают друг другу найти участников одних и тех же раздач.

Поддержка DHT есть в клиентах Mainline, µTorrent, KTorrent, BitSpirit, BitComet, rTorrent, Deluge и FlashGet. В Azureus есть собственная реализация DHT, то есть Azureus клиенты образуют свою собственную отдельную DHT сеть (однако, установив плагин Mainline DHT, пользователь Azureus полноценно участвует одновременно в 2 DHT-сетях — AzureusDHT и MainlineDHT).

Функции

И DHT и PEX фактически выполняют основную функцию трекера — помогают участникам файлообмена узнать друг о друге. Они могут:
Помочь участникам быстрее найти друг друга
Например, на раздаче есть пир X с недоступным портом. К раздаче подключается пир Z, который сам начать соединение с X не может и вынужден ждать, пока Х о нём узнает сам. Х только что обращался к трекеру и в следующий раз собирается это сделать через час.
Но вот пир Y в очередной раз обращается к трекеру и узнаёт про нового пира Z. При этом Y сам давно уже соединён и занимается файлообменом с X, поэтому он через PEX сообщает X адрес этого нового пира. Теперь X может начать соединение к Z.
Снизить нагрузку на трекер
Некоторые клиенты, например, Azureus, получая адреса пиров через DHT или PEX, реже обращаются за списком пиров на трекер.
Поддержать участников вместе в периоды недоступности трекера
Известно, что если трекер является единственным источником информации о пирах, то при его неработоспособности раздача постепенно останавливается. Клиенты помнят уже известные списки адресов других пиров, но постепенно эти списки устаревают — некоторые пользователи отключаются от раздачи, у некоторых меняется IP адрес, а новые пользователи не могут подключиться к раздаче вообще.
PEX позволяет несколько замедлить процесс распадения роя участников, а DHT позволяет полностью заменить трекер, то есть даже подключаться к раздаче новым участникам.
DHT позволяет раздавать вообще без трекера
Такая раздача называется trackerless. Торрент для неё создаётся без адреса трекера и клиенты находят друг друга через DHT сеть.
При участии в trackerless-раздачах БТ клиенты приобретают определённое сходство с eMule, использующим сеть KAD.

Private key

На публичных (открытых) трекерах, где каждый желающий может скачать торрент и участвовать в раздаче, DHT и PEX служат на благо всех участников.

Частным (закрытым) трекерам в первую очередь важно, чтобы в раздачах могли участвовать только зарегистрированные пользователи, и чтобы они соблюдали определённые правила. При первом обращении клиента частный трекер имеет возможность не допустить его к раздаче, просто не сообщая ему адреса других клиентов-участников. Поэтому для закрытого трекера важно, чтобы клиенты не получали эти адреса через DHT/PEX.

DHT и PEX появились в клиентах Azureus и BitComet примерно летом 2005 года. Администраторы многих частных трекеров были недовольны такой новой функциональностью, и поэтому стали запрещать на трекере эти новые версии клиентов.

Тогда разработчики клиентов предложили новый ключ внутри торрент файла: private. Если он равен 1, то клиент обязан для этого торрента автоматически отключать DHT/PEX независимо от желания пользователя. Такой торрент называют Secure Torrent.

Практически все современные частные трекеры сами принудительно вставляют private:1 во все торренты, выкладываемые на трекере, а также запрещают несколько устаревших версий клиентов, поддерживающих DHT или PEX, но еще не знающих про private key. Пользователи трекера просто не могут на раздачах использовать DHT/PEX, и проблемы нет.

Отметим, что присутствие private key изменяет infohash торрента, поэтому выреза?ть его из торрент файла бесполезно — другие клиенты изменённый торрент всё равно не признают.

Пользоваться ли?

* Все ваши торренты — с частных трекеров
Если при этом в клиенте разрешить DHT, то получится, что клиент подключается к DHT сети, тратит на это трафик, помогает другим клиентам найти нужных им пиров, но ни на одной раздаче DHT для себя не использует. Если среди других источников на раздаче нет никого с включённым DHT, DHT лучше отключить. Отключать ли DHT если последнее на раздаче доступно — ваш выбор. С одной стороны это риск потери трафика на служебный, с другой возможность докачать данные в случае сбоя трекера.
* Вы качаете раздачу с публичного трекера
Если трекер возвращает вам много пиров и их достаточно для достижения хорошей скорости скачивания, то DHT/PEX вам работает на прогресс. Его стоит включить (и в клиенте и в свойствах раздачи), это может помочь найти больше источников и быстрее подключать к ним в процессе раздачи, генерируя запросы не только на трекер (полезно в клиентах с медленным обновлением статистики (официальный, µTorrent и др.)
* Вы качаете раздачу с частного трекера без принудительного private key
Возможность использования на раздачах DHT/PEX на этих трекерах отдана на усмотрение раздающему (создателю торрента).

Данная ситуация полностью зависит от создателя торрента (он же, как правило, и инициативный сидер). Если он сам по каким-то причинам не использует DHT, то включённого DHT на раздаче вы вряд ли найдёте.

DHT и статистика

Этот раздел касается только частных трекеров, на которых private key в торренты принудительно не вставляется, и на некоторых раздачах (в зависимости от того, вставил ли раздающий сам в торрент private key) можно использовать DHT и PEX.

Часто встречается мнение, что включённый в клиенте DHT влияет на учёт статистики клиента трекером, например «раздавал через DHT, значит статистика шла мимо трекера». Это неверно.

Во-первых, DHT/PEX используется только для получения адресов пиров. Ни файлообмена, ни какого-либо учёта статистики по ним не ведётся. Клиент рапортует статистику скачанного и отданного только на трекер.

То есть «раздавал через DHT» фактически означает «о некоторых (или о всех) пирах получил информацию по DHT, и вероятно некоторые пиры тоже нашли меня через DHT»

Во-вторых, хотя клиенты обычно и знают, откуда ими получены адреса пиров, ни один клиент не разделяет трафик на «полученный/отданный DHT пирам» и «полученный/отданный пирам, полученным от трекера». Даже при желании это было бы клиенту сделать затруднительно — некоторые пиры могут быть получены и от трекера и через DHT или PEX, и часто клиент не знает, как его адрес получил пир, сам начинающий к нему соединение.

Клиент рапортует трекеру суммарные данные об объёмах им скачанного и отданного всем пирам, с которыми он общался, независимо от того, узнал клиент об отдельных пирах через трекер, DHT или PEX, или тот пир вообще начал соединение сам. То есть даже если из-за DHT/PEX на раздаче появятся «левые» пользователи (не обращающиеся к трекеру), клиент всё равно сообщит на трекер всё, что у них скачал и отдал.

Правильный учёт статистики зависит только от состояния трекера: работает трекер — статистика учитывается, не работает — не учитывается. Только в случае длительно неработающего трекера DHT/PEX может играть косвенную роль, не давая постепенно затухнуть файлообмену на такой «раздаче без учёта статистики».

Механизм работы DHT

Реализация распределеной сети в БТ клиентах основана на варианте DHT, называемом Kademlia. А вообще говоря, DHT (Distributed hash table) означает децентрализованную распределенную систему для объединения большого количества постоянно исчезающих и появляющихся узлов и эффективной передачи сообщений между ними. На основе DHT структур строят разные более сложные системы, такие как P2P файлообмен, кооперативное веб кеширование, DNS сервисы и т. п.

DHT использует UDP протокол. БТ клиенты слушают тот же UDP номер порта, который они используют для входящих TCP соединений. Если вы активно используете DHT, то открытие этого UDP порта для доступа снаружи желательнo, но не обязательно — DHT будет работать и так.

Каждый подключённый БТ клиент является в DHT сети отдельным узлом. У него есть свой уникальный ID (идентификатор), случайно выбираемый из того же 160-битного пространства, что и infohash’ы торрентов.

Каждый узел хранит таблицу маршрутизации, содержащую контактную информацию о многих «ближайших» к нему узлах, и о нескольких более далёких. «Близость» двух узлов вычисляется из «сходства» их ID, и не имеет никакого отношения к их географической близости.

Когда узел хочет найти пиров для какой-то раздачи, он сравнивает infohash этой раздачи с ID известных ему узлов, и затем посылает запрос тому узлу, чей ID наиболее похож на этот infohash. Тот узел возвращает ему адрес узла, чей ID ещё ближе к infohash торрента.

Тогда наш узел посылает запрос тому новому узлу, и получает от него адрес следующего узла, чей ID ещё более похож на infohash торрента.

Таким образом, запросы от клиентов, участвующих в раздаче торрента с определённым infohash, постепенно стекаются к узлам, чьи ID наиболее похожи на этот infohash. Эти узлы помнят предыдущие запросы, и всем следующим запрашивающим узлам вернут адреса предыдущих пиров с той же раздачи.

© Wikipedia
Профиль  ЛС 
Angelion ®

Стаж: 14 лет
Сообщений: 7
Откуда: Уфа

Создавать темы Angelion ® написал(а)
25-Дек-2009 19:29 (спустя 16 минут)
пипец
Профиль  ЛС 
Zerocool56

Стаж: 14 лет
Сообщений: 65
Откуда: Оренбург

Создавать темы Zerocool56 написал(а)
25-Дек-2009 19:36 (спустя 7 минут)
Angelion что?
Не понятно?
ну тогда упрощенно в 2 словах
Деецнтрализованная сеть, в которой каждый передаёт инфу о каждом
Проще говоря, если 1 пир знает 10 уникальных компов, у которых есть нужный файл, а другой знаешь ещё 10, то оба компа. обменявшись информацией, вместе, будут знать 20 компов ...
Ну а те 20, соответственно, знают ещё и ещё, все обмениваются между собой информацией, что у кого и где есть, получается единая сеть, независимая от каких либо серверов напрямую
Профиль  ЛС 
klgz

Стаж: 14 лет
Сообщений: 24
Откуда: Уфа

Создавать темы klgz написал(а)
26-Дек-2009 11:56 (спустя 16 часов)
Angelion

Цитата:

Если же раздача является приватной то, даже включение функции DHT не даст никакого результата. Вы будете получать список пиров только из треккера.
процитировано из https://torrents-local.xyz/viewtopic.php?t=34997

Цитата:

Private key

На публичных (открытых) трекерах, где каждый желающий может скачать торрент и участвовать в раздаче, DHT и PEX служат на благо всех участников.
Частным (закрытым) трекерам в первую очередь важно, чтобы в раздачах могли участвовать только зарегистрированные пользователи, и чтобы они соблюдали определённые правила. При первом обращении клиента частный трекер имеет возможность не допустить его к раздаче, просто не сообщая ему адреса других клиентов-участников. Поэтому для закрытого трекера важно, чтобы клиенты не получали эти адреса через DHT/PEX.

DHT и PEX появились в клиентах Azureus и BitComet примерно летом 2005 года. Администраторы многих частных трекеров были недовольны такой новой функциональностью, и поэтому стали запрещать на трекере эти новые версии клиентов.
Тогда разработчики клиентов предложили новый ключ внутри торрент файла: private. Если он равен 1, то клиент обязан для этого торрента автоматически отключать DHT/PEX независимо от желания пользователя. Такой торрент называют Secure Torrent.

Практически все современные частные трекеры сами принудительно вставляют private:1 во все торренты, выкладываемые на трекере, а также запрещают несколько устаревших версий клиентов, поддерживающих DHT или PEX, но еще не знающих про private key. Пользователи трекера просто не могут на раздачах использовать DHT/PEX, и проблемы нет.
Отметим, что присутствие private key изменяет infohash торрента, поэтому выреза?ть его из торрент файла бесполезно — другие клиенты изменённый торрент всё равно не признают.
процитировано из https://torrents-local.xyz/viewtopic.php?t=57301

Своими словами добавлю:
Насколько я понимаю, этот трекер является приватным почти с начала своего существования, стало быть от функции DHT нет толку.(это мое мнение)
Профиль  ЛС 
Angelion ®

Стаж: 14 лет
Сообщений: 7
Откуда: Уфа

Создавать темы Angelion ® написал(а)
26-Дек-2009 12:29 (спустя 33 минуты)
СПАСИБО! :)
Профиль  ЛС 
Создавать темы 23-Окт-2010 18:55 (спустя 9 месяцев 28 дней)
Топик был перенесен из форума Вопросы по форуму и трекеру в форум Архив

Timur
 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 17-Май 04:53
Часовой пояс: UTC + 5