Русская Википедия: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 | ![]() |
![]() |
![]() |
C++ | Шаблон:Бесплатно | ![]() |
графический (Win32), консоль | www.ptokax.org |
Verlihub | ![]() |
![]() |
![]() |
C++ | Шаблон:Бесплатно | ![]() |
консоль | www.verlihub-project.org |
RusHub | ![]() |
![]() |
![]() |
C++ | Шаблон:Бесплатно | ![]() |
консоль | mydc.ru/rushub/ |
FlexHub | ![]() |
![]() |
![]() |
Lua | Шаблон:Бесплатно | ![]() |
графический, консоль | www.flexhub.org |
YnHub | ![]() |
![]() |
![]() |
![]() |
проприетарная | ![]() |
графический | ynhub.org |
DB Hub | ![]() |
![]() |
![]() |
C | Шаблон:Бесплатно | ![]() |
консоль | sourceforge.net |
HeXHub | ![]() |
![]() |
![]() |
Ассемблер | Шаблон:Бесплатно | ![]() |
графический | nemesis.te-home.net |
Aquila | ![]() |
![]() |
![]() |
C | Шаблон:Бесплатно | ![]() |
консоль | sites.google.com |
Eximius | ![]() |
![]() |
![]() |
C# | проприетарная | ![]() |
графический | en.rs2soft.nl |
Viper Hive | ![]() |
![]() |
![]() |
Python | Шаблон:Бесплатно | ![]() |
консоль | 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] Протокол продолжает развиваться и дополняться.
Примечания
Ссылки
- Описание протокола DCШаблон:Ref-en
- Описание протокола DCШаблон:Ref-ru
- Описание протокола ADC v1.0Шаблон:Ref-en
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ dchublist.ru Шаблон:Wayback Статистика крупного русскоязычного хаблиста.
- ↑ dchublist.org Шаблон:WaybackШаблон:Ref-en Статистика крупного англоязычного хаблиста.
- ↑ http://adc.sourceforge.net/ADC.html Шаблон:WaybackШаблон:Ref-en