Advanced Direct Connect
Advanced Direct Connect (ADC) — протокол для пиринговых сетей, основанный на протоколе Direct Connect (DC). ADC-клиенты подключаются к центральному серверу и обмениваются файлами напрямую между участниками сети.
| Эту статью следует викифицировать.
Пожалуйста, оформите её согласно правилам оформления статей.
|
Содержание |
[править] История создания
Протокол ADC был создан как логическое развитие протокола Direct Connect c целью устранения его недостатков. Инициатором создания нового протокола стали Jacek Sieka в сотрудничестве с Jan Vidar Krey’s DCTNG был подготовлены черновики стандарта. Первая версия протокола появилась в 2004 году, а первый официальный релиз состоялся 1 декабря 2007 года. 2 декабря 2007 года вышла окончательная версия протокола ADC 1.0[1].
В версии 1.0 реализованы (описаны) следующие функции:
- разные шары для каждого хаба (также поддерживается некоторыми клиентами и в NMDC);
- реальная идентификация каждого пользователя (на практике идентификатор легко сменить, т.к. он генерируется по mac адресу);
- изменение псевдонима пользователя без необходимости переподключения (весьма сомнительное приемущество);
- непосредственный поиск между клиентами (на 18 февраля 2012 ни в одном DC клиенте не реализован);
- улучшенная вместимость хаба (но не больше чем на NMDC хабах, т.к. объем трафика увеличился за счет передачи идентификаторов CID, SID, специфичной структуры команд, каждый блок сопровождается 2-х байтовым заголовком, а также множества параметров дополнений);
- передача, защищённая паролем (Tiger Hash) (при включении сильно нагружается процессор, поэтому на практике не используется);
- Кодировка UTF-8 (поддерживается также и NMDC протколом).
На практике протокол ADC показал гораздо большую гибкость, нежеле чем NMDC, однако усугубил проблемы:
- большого исходящего от хабов трафика.
- излишнюю централизованность и сильную вычислительную нагрузку на центр (хабы), главным образом из-за излишней частоты передачи команд.
А также были наложены ограничения на масштабируемость в 1 048 576 пользователей (ограничение 20 битного SID'а). Из-за данных качеств администраторы хабов не торопятся переводить свои хабы на данный протокол.
[править] Серверное ПО
[править] ADCH++
ADCH++ — это хаб для сетей использующих ADC-протокол. Он работает на Windows / Unix платформах, поддерживает скрипты lua и python, а также плагины написанные на С++. Начиная с версии 2.5.2 добавлена поддержка выполнения плагинов от PtokaX
Для хаба активно разрабатывается графический интерфейс в проекте ADCH++ GUI.
Сайт проекта ADCH++ GUI в данное время не актуален((
[править] DSHub
DSHub написан на кроссплатформенном языке программирования Java (требуется JRE 1.6 и новее). Может управляться через консоль на сервере, графический интерфейс, чат ADC клиента. Имеется возможность осуществлять фильтрацию чата\личных сообщений\поиска через механизм chatcontrol с использованием regex правил. Хаб находится в активной разработке. На данный момент ПО хаба достаточно стабильно и подходит для организации хабов до 1000 пользователей (на лето 2008 г.). Имеется интерфейс для расширений на языках Java и python. В январе 2009 года автор приостановил работу над данным хабом.
[править] luadch
luadch — ADC-хаб, написанный на C, C++, Lua и функционирует в операционных системах MinGW/MSYS/NT/2000/XP и Linux/BSD/UNIX-like. Для сценариев используется язык Lua, что позволяет легко вносить дополнительный функционал. Имеются небольшие проблемы со стабильностью (в версии 0.08). Подходит для организации хабов до 1000 пользователей и выше.
[править] µHub
µHub(micro-Hub) — ADC хаб написанный на C под лицензией GPLv3. Работает в операционных системах Linux,Solaris,BSD и других. В Windows работают до версии 0.3.х (работы по портированию ветки 0.4 ведутся). Имеет только базовый функционал для p2p. Крайне нетребователен к ресурсам — при 350 пользователях занимает в памяти несколько десятков килобайт ОЗУ. Возможна работа на устройствах поддерживающих ПО OpenWRT. Начиная с версии 0.3.2 поддерживает шифрование server-client, так называемую ADCS-mode. Начиная с версии 0.4.0 будет введена система плагинов с простым API. Тестовый хаб автора: adcs://adc.extatic.org:1511 Тестовый win32 хаб: adc://babylon.aab21pro.org:412
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 123 uhub 15 0 5984 4636 1044 S 0.0 0.9 4:08.93 uhub
Инструкция по настройке и запуску | Быстрый запуск в Ubuntu | Пакеты для Debian и Ubuntu
[править] EADC
EADC-hub(Erlang ADC) — ADC хаб написанный на Erlang. Реализация ADC не является полной, есть команды чата и поддержка плагинов (на языке Erlang). Компиляция возможна на всех платформах поддерживаемых Erlang, включая Windows, Linux, Mac OS X. (Однако код TIGER написан на C, что требует установки компилятора C). Возможности языка Erlang позволяют хабу иметь свойства подобные Ejabberd, в частности кластеризацию и обновление кода не останавливая сервер.
[править] StarLet ADC
StarLet ADC Hub — ПО ADC хаб-а под OpenVMS соответствие со спецификацией ADC 1.0, написан на C с использованием средств OpenVMS, что обуславливает высокую нагрузочную способность хаба, а также надёжность функционирования, в настоящий момент находится в разработке. Тестовая P2P-сеть, поддерживаемая StarLet ADC Хаб-ом — доступна по ссылке [adc://adc.deltatel.ru:412] (Nick/Username и пароль может быть любым и непустым). StarLet ADC — доступен в исходных текстах.
Одной из отличительных возможностей Хаб-а является «виртуальная P2P-сеть», что позволяет строить P2P-сети на одной платформе (OpenVMS Cluster) для различных групп пользователей.
Рабочий каталог проекта StarLet ADC
[править] Клиентское ПО
[править] Примечания
[править] Ссылки
- The ADC Project
- ADC Protocol (англ.)
- Протокол ADC (перевод Setuper) (рус.)
- ADC Extensions
- ADCPortal — Discussion Forum for ADC Developers / Enthusiasts (English Speaking Community)

