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 (англ.)