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://[ 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] Протокол продолжает развиваться и дополняться.

Примечания

[править | править код]
  1. en:Annalee Newitz. Sharing the Data. Metro, Silicon Valley's Weekly Newspaper. Metro Publishing Inc (июль 2001). Дата обращения: 24 сентября 2020. Архивировано 21 января 2021 года.
  2. Хождение по мукам или Шифрование трафика в Direct Connect, ч. 3. Хабр. Дата обращения: 3 января 2022. Архивировано 3 января 2022 года.
  3. Team Elite - Hublist - White Nights of St. Petersburg. www.te-home.net. Дата обращения: 3 января 2022. Архивировано 3 января 2022 года.
  4. dchublist.ru Архивная копия от 25 декабря 2010 на Wayback Machine Статистика крупного русскоязычного хаблиста.
  5. dchublist.org Архивная копия от 3 января 2022 на Wayback Machine (англ.) Статистика крупного англоязычного хаблиста.
  6. http://adc.sourceforge.net/ADC.html Архивная копия от 24 ноября 2010 на Wayback Machine (англ.)