Direct Connect
Direct Connect — это частично централизованная файлообменная (P2P) сеть. DC-сеть состоит из хабов, DC-клиентов и хаб-листов. Хаб предоставляет подключившемуся к нему клиенту список подключённых пользователей, возможность использовать поиск и встроенный развитый чат. DC-клиенты соединяются с одним или несколькими хабами и могут скачивать файлы напрямую у других пользователей, подключённых к тому же хабу. Для работы используется протокол DC (NMDC), основанный на разработках фирмы NeoModus, или протокол ADC.
История
[править | править код]В ноябре 1999 года Джонатаном Хессом (Jonathan Hess) была основана компания NeoModus, зарабатывавшая на написанной им adware-программе «Direct Connect»[1]. Первым сторонним клиентом был «DClite», не полностью поддерживавший протокол. Новая версия Direct Connect уже требовала простой ключ шифрования для инициализации подключения, этим автор надеялся блокировать сторонние клиенты. Ключ был взломан и автор DClite выпустил новую версию своей программы, совместимой с новым программным обеспечением от NeoModus. Вскоре код DClite был переписан, и программа была переименована в Open Direct Connect. Кроме всего прочего, её пользовательский интерфейс стал многодокументным (MDI) и появилась возможность использовать плагины для файлообменных протоколов (как в MLDonkey). У Open Direct Connect также не было полной поддержки протокола, но появился под Java. Немного позже начали появляться и другие клиенты: DCTC (Direct Connect Text Client), DC++ и др.
Протокол
[править | править код]Протокол Direct Connect — текстовый, в котором команды и данные передаются простым текстом, без шифрования. В настоящее время шифрование трафика реализовано частично и возможно только в пределах некоторых хабов.[2] Протокол не регламентирует кодировку или шрифт для клиентов или хабов.
Файлообменная часть протокола основана на концепции «слотов». Эти слоты соответствуют числу людей, которые могут качать с пользователя одновременно. Число слотов устанавливается в клиенте.
Для подключения к хабу и скачивания файлов используется протокол TCP. Поиск в активном режиме работает по UDP. Порт подключения к хабу по умолчанию: 411.
Клиенты
[править | править код]Оригинальный клиент назывался NeoModus Direct Connect (сокращённо NMDC). В настоящее время подавляющее большинство пользователей сети пользуется многочисленными клиентами на базе клиента DC++.
Зачастую вся сеть именуется по названию этого клиента, что является ошибкой.
Хабы
[править | править код]Клиенты подключаются к одному или нескольким серверам, так называемым хабам, которые служат для поиска файлов и источников для их скачивания. На крупных хабах в пиковые часы одновременно находится несколько тысяч пользователей.[3]
Сравнительная таблица наиболее часто[4][5] используемого для создания хабов программного обеспечения:
Название | Windows | Linux | Другие ОС | Язык программирования | Лицензия | IPv6 | Интерфейс пользователя | Сайт проекта |
---|---|---|---|---|---|---|---|---|
PtokaX | Да | Да | Да: FreeBSD | C++ | GPL v3 | Да | графический (Win32), консоль | www.ptokax.org |
Verlihub | Нет | Да | Да: FreeBSD | C++ | GPL v2 | Нет | консоль | www.verlihub-project.org |
RusHub | Да | Да | Да: FreeBSD | C++ | GPL v3 | Да | консоль | mydc.ru/rushub/ |
FlexHub | Да | Да | Да: Qnap NAS; Synology NAS | Lua | GPL v3 | Нет | графический, консоль | www.flexhub.org |
YnHub | Да | Нет | Нет | Неизвестно | проприетарная | Нет | графический | ynhub.org |
DB Hub | Нет | Да | Да: FreeBSD | C | GPL | Нет | консоль | sourceforge.net |
HeXHub | Да | Нет | Нет | Ассемблер | OSL 3.0 | Нет | графический | nemesis.te-home.net |
Aquila | Да | Да | Нет | C | GPL | Нет | консоль | sites.google.com |
Eximius | Да | Нет | Нет | C# | проприетарная | Нет | графический | en.rs2soft.nl |
Viper Hive | Да | Да | Да | Python | GPL v2 | Нет | консоль | code.google.com |
Название | 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[6] Протокол продолжает развиваться и дополняться.
Примечания
[править | править код]- ↑ en:Annalee Newitz. Sharing the Data . Metro, Silicon Valley's Weekly Newspaper. Metro Publishing Inc (июль 2001). Дата обращения: 24 сентября 2020. Архивировано 21 января 2021 года.
- ↑ Хождение по мукам или Шифрование трафика в Direct Connect, ч. 3 . Хабр. Дата обращения: 3 января 2022. Архивировано 3 января 2022 года.
- ↑ Team Elite - Hublist - White Nights of St. Petersburg . www.te-home.net. Дата обращения: 3 января 2022. Архивировано 3 января 2022 года.
- ↑ dchublist.ru Архивная копия от 25 декабря 2010 на Wayback Machine Статистика крупного русскоязычного хаблиста.
- ↑ dchublist.org Архивная копия от 3 января 2022 на Wayback Machine (англ.) Статистика крупного англоязычного хаблиста.
- ↑ http://adc.sourceforge.net/ADC.html Архивная копия от 24 ноября 2010 на Wayback Machine (англ.)
Ссылки
[править | править код]- Описание протокола DC (англ.)
- Описание протокола DC (рус.)
- Описание протокола ADC v1.0 (англ.)