Interested Article - Direct Connect
- 2020-03-17
- 1
Direct Connect — это частично централизованная файлообменная (P2P) сеть . DC-сеть состоит из хабов , DC-клиентов и хаб-листов. Хаб предоставляет подключившемуся к нему клиенту список подключённых пользователей, возможность использовать поиск и встроенный развитый чат . DC-клиенты соединяются с одним или несколькими хабами и могут скачивать файлы напрямую у других пользователей, подключённых к тому же хабу. Для работы используется протокол DC (NMDC), основанный на разработках фирмы NeoModus, или протокол ADC .
История
В ноябре 1999 года Джонатаном Хессом (Jonathan Hess) была основана компания NeoModus, зарабатывавшая на написанной им adware-программе « Direct Connect » . Первым сторонним клиентом был «DClite», не полностью поддерживавший протокол. Новая версия Direct Connect уже требовала простой ключ шифрования для инициализации подключения, этим автор надеялся блокировать сторонние клиенты. Ключ был взломан и автор DClite выпустил новую версию своей программы, совместимой с новым программным обеспечением от NeoModus. Вскоре код DClite был переписан, и программа была переименована в . Кроме всего прочего, её пользовательский интерфейс стал многодокументным (MDI) и появилась возможность использовать плагины для файлообменных протоколов (как в MLDonkey ). У Open Direct Connect также не было полной поддержки протокола, но появился под Java . Немного позже начали появляться и другие клиенты: DCTC ( ), DC++ и др.
Протокол
Протокол Direct Connect — текстовый, в котором команды и данные передаются простым текстом, без шифрования. В настоящее время шифрование трафика реализовано частично и возможно только в пределах некоторых хабов. Протокол не регламентирует кодировку или шрифт для клиентов или хабов.
Файлообменная часть протокола основана на концепции «слотов». Эти слоты соответствуют числу людей, которые могут качать с пользователя одновременно. Число слотов устанавливается в клиенте.
Для подключения к хабу и скачивания файлов используется протокол TCP . Поиск в активном режиме работает по UDP . Порт подключения к хабу по умолчанию: 411.
Клиенты
Оригинальный клиент назывался NeoModus Direct Connect (сокращённо NMDC). В настоящее время подавляющее большинство пользователей сети пользуется многочисленными клиентами на базе клиента DC++ .
Зачастую вся сеть именуется по названию этого клиента, что является ошибкой.
Хабы
Клиенты подключаются к одному или нескольким серверам, так называемым хабам, которые служат для поиска файлов и источников для их скачивания. На крупных хабах в пиковые часы одновременно находится несколько тысяч пользователей.
Сравнительная таблица наиболее часто используемого для создания хабов программного обеспечения :
Название | Windows | Linux | Другие ОС | Язык программирования | Лицензия | IPv6 | Интерфейс пользователя | Сайт проекта |
---|---|---|---|---|---|---|---|---|
PtokaX | Да | Да | Да: FreeBSD | C++ | GPL v3 | Да | графический (Win32), консоль | |
Verlihub | Нет | Да | Да: FreeBSD | C++ | GPL v2 | Нет | консоль | |
RusHub | Да | Да | Да: FreeBSD | C++ | GPL v3 | Да | консоль | |
FlexHub | Да | Да | Да: Qnap NAS; Synology NAS | Lua | GPL v3 | Нет | графический , консоль | |
YnHub | Да | Нет | Нет | Неизвестно | проприетарная | Нет | графический | |
DB Hub | Нет | Да | Да: FreeBSD | C | GPL | Нет | консоль | |
HeXHub | Да | Нет | Нет | Ассемблер | OSL 3.0 | Нет | графический | |
Aquila | Да | Да | Нет | C | GPL | Нет | консоль | |
Eximius | Да | Нет | Нет | C# | проприетарная | Нет | графический | |
Viper Hive | Да | Да | Да | Python | GPL v2 | Нет | консоль | |
Название | Windows | Linux | Другие ОС | Язык программирования | Лицензия | IPv6 | Интерфейс пользователя | Сайт проекта |
Теоретически, с массовым внедрением в DC-клиенты технологии DHT необходимость в хабах для работы сети может отпасть.
Хаб-листы
Хаб-лист — специальный сервер, собирающий и хранящий информацию об активных хабах. Во многих клиентах есть встроенная возможность импорта списка хабов с хаб-листа. Также многие хаб-листы ведут статистику и позволяют просматривать её через браузер .
dchub-ссылка
Обычно в ней указывается адрес и порт хаба.
Указывается в виде:
dchub://[ IP или Домен хаба]:[ порт хаба ]
При этом используемый по умолчанию 411 порт указывать не требуется.
Если хаб защищён SSL , ссылка начинается на nmdcs:// и требует обязательного указания порта, в том числе и порта по умолчанию.
Вид ссылки на пользователя хаба или папку пользователя хаба такой:
dchub://[ имя пользователя ]@[ IP или Домен хаба ]:[ порт хаба ]/[путь к файлу]/[имя файла]
После клика по такой ссылке клиент не только соединится с хабом, но и также скачает файл-лист пользователя, указанного в ссылке, и выделит в нём файл, путь и имя которого также указаны в ссылке.
Данный вид ссылки на файл может применяться, когда невозможно использовать magnet-ссылку , так как содержимое файла может измениться либо файл ещё не создан.
Отличия от других P2P-систем
Отличия от некоторых P2P-систем, построенных на других протоколах ( eDonkey , Gnutella и её форка Gnutella2 ):
- Обусловленные структурой сети
- Развитый многопользовательский чат
- Сервер сети (хаб) может быть посвящён определённой теме (например, музыке конкретного направления), что позволяет легко находить пользователей с требуемой тематикой файлов
- Присутствие привилегированных пользователей — операторов, обладающих расширенным набором возможностей управления хабом; в частности, следящих за соблюдением пользователями правил чата и файлообмена
- Просто зависящие от клиента
- Возможность скачивать целые каталоги
- Результаты поиска не только по названиям файлов, но и по каталогам
- Ограничения на минимальное количество расшаренного материала (по объёму)
- Поддержка скриптов с потенциально безграничными возможностями как на клиентской стороне, так и на стороне хаба (верно не для всяких хабов и клиентов)
- Возможность получить список файлов пользователя в виде древовидной структуры каталогов
Протокол ADC
На практике протокол Direct Connect имеет специфические проблемы, отчасти мешающие эффективному файлообмену. Авторы клиента DC++ разработали для их решения принципиально новый протокол, названный Advanced Direct Connect (ADC), цель которого — повышение надёжности, эффективности и безопасности файлообменной сети. 2 декабря 2007 года вышла окончательная версия протокола ADC 1.0 Протокол продолжает развиваться и дополняться.
Примечания
- . . Metro, Silicon Valley's Weekly Newspaper . Metro Publishing Inc (июль 2001). Дата обращения: 24 сентября 2020. 21 января 2021 года.
- . Хабр . Дата обращения: 3 января 2022. 3 января 2022 года.
- . www.te-home.net . Дата обращения: 3 января 2022. 3 января 2022 года.
- от 25 декабря 2010 на Wayback Machine Статистика крупного русскоязычного хаблиста.
- от 3 января 2022 на Wayback Machine (англ.) Статистика крупного англоязычного хаблиста.
- от 24 ноября 2010 на Wayback Machine (англ.)
Ссылки
- (англ.)
- (рус.)
- (англ.)
- 2020-03-17
- 1