В контакте!

Нет, речь пойдёт не о социальных сетях, набивших оскомину педагогам и руководителям. Написать эту статью побудила другая статья - "Побоище" (см. "КВ" №14), в которой её автор рассуждает о рассадниках контрафактного содержимого и о преследовании пользователей этих рассадников. Впрочем, речь пойдёт не о трекерах, а о том, как без них обойтись.


Немного этики

О сущности p2p-технологии "Вести" писали неоднократно. Поясню читателям-новичкам, надеюсь, такие есть. Обычно пользователи Интернета имеют так называемые "динамические" IP-адреса, получаемые от провайдера. Эти адреса действительны только для текущего подключения. Поэтому Петя не может установить виртуальное соединение с компьютером Вовы. Зато компьютер продвинутой Маши, заключившей с провайдером специальный договор, имеет постоянный IP-адрес, о чём предприимчивая Маша широковещательно сообщает. Узнав о Маше, Вова и Петя связываются через Интернет с Машей, которая сообщает Пете адрес Вовы, и наоборот. Теперь компьютеры Вовы и Пети могут общаться друг с другом напрямую, а парни стали пирами, т.е. "равными" в переводе с английского. Возникшая виртуальная сеть называется p2p (от "пир-ту-пир"), компьютер Маши принято называть p2p-центром, а компьютеры Вовы и Пети - узлами.

Если Маша профессионально занимается автоматизацией соединений между пирами по протоколу BitTorrent, то Машу называют владельцем торрент-трекера. Грубо говоря, трекер - это сводник пиров. Сводничество не всегда этично, но само по себе не правонарушение. Трекер не содержит ни контрафактных файлов, ни прокачивает их через себя. Трекеру также безразлична информация, содержащаяся в идентификаторах скачиваемых файлов, хотя справедливости ради надо сказать, что идентификатор скачиваемого файла пакуется вместе с адресом трекера в файл метаданных, имеющий расширение .torrent и называемый "торрент". Правонарушение совершает не трекер, а создатель торрента контрафактного файла, что, кстати, может сделать и пользователь, например, посредством программы Torrent Builder. Но пользователи Интернета обычно недостаточно подготовлены и слишком ленивы, чтобы самостоятельно создавать торренты. Поэтому в погоне за популярностью Маша предлагает регистрироваться у неё на сайте и скачивать с него торренты, естественно, привязанные к её трекеру. Если на поверку окажется, что выложенные Машей торренты идентифицируют контрафактные файлы, то Маша трактуется правоохранительными органами как подстрекатель к обмену контрафактом, и трекер закрывают по решению суда. Справедливо! Маша должна быть законопослушной!

Увы, законопослушности Маши может оказаться недостаточно. Прокол в том, что грамотный пользователь может подставить чрезмерно доверчивую Машу, запустив самодельный торрент контрафакта, на что в ответ по решению не особо грамотного суда трекер может быть закрыт. Пользователи почти всегда выходят сухими из воды: копаться в их динамических IP-адресах хлопотно. Сообщения о судебных исках против десятков тысяч пользователей торрентов, думается, не более, чем утки, хотя отдельные прецеденты имеются. Обычно страдает трекер. Внезапный останов трекера весьма неприятен для пиров, начавших скачивать что-либо объёмное. К такой же неприятности приводят и технические отказы трекера, и блокировка его домена. Короче, централизованная p2p-сеть ненадёжна по многим причинам.

 

Выход не только в децентрализации, как многие думают, но и в слабо связанной многоцентровости. Простой и эффективный выход - Direct Connect (DC, прямое соединение) и его развитие DC++ с переложением на пиров ответственности за обмен информацией. Рамки газетной статьи не позволяют рассматривать другие p2p-технологии, хотя они того, несомненно, заслуживают.


Что такое DC?

Среди p2p-технологий DC старше Торрента лет на 10, что, по компьютерным меркам, очень много. Так, может быть, не стОит обращать внимание на эту древность? Попробуем разобраться, вникнув в отличия и особенности, так как DC-технология всё ещё здравствует и даже развивается, невзирая на наличие полностью децентрализованных p2p-технологий. Откуда такая живучесть? Почему прямой коннект не убит, как некогда был убит Фидонет? Дело в том, что Фидонет никогда не был p2p-технологией и не позволял автоматизировать поиск интересующих вас файлов. DC вобрал в себя лучшие качества Фидонета, p2p и... домовых сетей. Согласитесь, что приятно познакомиться с пользователями, початиться, в т.ч. и приватно, порыться в их шарах (читается шАрах), т.е. файлах, предлагаемых к скачиванию. Ведь там точно есть много интересного! Можно также вбросить в сеть запрос на поиск нужного файла, и ответственность не ложится на владельцев сети - не они инициаторы. Разве вам не хочется пожить в электронной стране? Ведь нравятся людям домовые сети, а тут - целый мир! (По секрету: с Линуксом это совершенно безопасно.)

Если говорить упрощённо, то DC - это технология автоматизации поиска и скачивания расшаренных файлов, а также никнейм-знакомств пиров. Многие считают DC чем-то заумным и не пользуются этой технологией, но на самом деле всё не так сложно, если овладеть базовыми понятиями и навыками. Как и в других p2p-технологиях, здесь тоже есть сервер-сводник, но тут он называется "хаб". DC-клиент может искать файл в шарах сразу по нескольким хабам, в этом главное отличие DC от торрент-технологии c одним трекером. Закрытие одного или нескольких хабов не перечёркивает всю затею. За хабами присматривают администраторы, к которым можно обратиться за помощью; похоже на сисопов, не так ли?


Немного теории

Обратиться к хабу можно посредством программы DC-клиента с помощью простой ссылки на хаб, которая имеет вид:

dchub://[адрес хаба]:[порт хаба]

где адрес хаба - это либо 4 октета, либо доменное имя; порт хаба - это номер порта, открытого на хаб-машине. Пример ссылки на хаб: dchub://rushub.myftp.org:1111. Ссылки с одинаковыми адресами, но с разными портами - это разные ссылки. Хабы часто посвящены определённой тематике. Ссылки на хабы и описания хабов можно найти в списках, которые можно скачать с веб-сайта hublist.org и множества других, нужно только поискать с ключевым словом "hublist". Поисковики выдают более полусотни страниц, содержащих веб-адреса сайтов со списками, каждый из которых описывает несколько сотен хабов. Отдельный хаб обычно обслуживает от десятков до нескольких тысяч пользователей, каждый из которых, в среднем, расшаривает несколько десятков гигабайт. Список хабов представляет собой XML-файл, сжатый компрессором bzip2, и имеет имя hublist.xml.bz2. Ссылки на хаб расширяются до ссылок на файлы:

dchub://[ имя пользователя ]@[ адрес хаба ]:[порт хаба ]/[путь к файлу]/[имя файла]

После клика по такой ссылке DC-клиент соединяется с хабом, скачивает список файлов пользователя и ставит нужный файл в очередь на закачку. Прямые ссылки используются для скачивания конкретного файла от конкретного пользователя. Но сначала файл отыскивают. Искать файл внутри хаба можно по ключевому слову или словосочетанию в имени файла, что в настоящее время считается несколько устаревшим способом, гораздо продуктивнее искать файлы по так называемым магнет-ссылкам. Пример магнет-ссылки:

magnet:?xt=urn:tree:tiger: ME7Y6WGGFWZK6KJPJTEOZQWDB5GI722ATELWT7Q &xl=1471090688&dn=Shooter.avi

Здесь три параметра, разделённых амперсандами: xt - самодостаточный URN-идентификатор файла в виде "тигрового" хеш-кода, xl - точный размер файла в байтах, dn - имя файла. Основным параметром является хеш-код, по которому файл ищется и по которому определяется "небитость" файла. Размер файла нужен для скачивания, а имя используется лишь для индикации и может произвольно изменяться в пределах языковых локалей DC-клиента. Последний по вашему желанию создаст магнет-ссылку на любой расшаренный файл, но его DHT (Distributed Hash Table) будет иметь тип tiger.

С магнет-ссылками работают многие p2p-клиенты, в частности, и торрент-клиенты. Там используется не "тигровый" хеш, а другой. Некоторые веб-браузеры (та же "Опера") "подхватывают" магнет-ссылки, т.е. при клике по ней согласно DHT определяют, к какому p2p-клиенту она относится, и запускают тот из клиентов, который назначен по умолчанию. Если DHT=tiger, то запускается DC-клиент. Некоторые p2p-клиенты умеют работать с любыми DHT, подробнее см. таблицу совместимости в конце статьи на ru.wikipedia.org/wiki/Magnet-ссылка. Магнет-ссылки - мощное оружие p2p-технологий и удобный способ сослаться на файл: не надо писать что-то вроде: "Я такой-то щас в онлайне, есть суперский файл такой-то в папке такой-то, берите, тока быстро, скоро уйду!". Вместо этого оставляется магнет-ссылка, которая позволяет другим пользователям добавить этот "суперский" файл в очередь закачки с тем, чтобы при появлении источника закачка бы началась автоматически. При этом не имеет значения, был ли за это время файл перемещён или переименован.

Вообще-то существует два протокола для прямых коннектов: NCDC и ADC соответственно для чистого DC и DС++. Соотносятся они между собой подобно языкам программирования C и С++. Т.е., если клиент работает с DC++, то он будет поддерживать и DC-протокол, но не наоборот. Историю протоколов рассказывать не буду, кто желает - может посмотреть в Википедии по ключу Direct Connect.


Устанавливаем DC-клиент

В настоящее время существует около полусотни DC-клиентов, о них можно почитать в dccp.ru или в dconnect.info. Для ОС Windows я бы рекомендовал воспользоваться клиентом FlylinkDC++ (flylinkdc.ru), для ОС Linux - клиентом freedcpp. Впрочем, это субъективные предпочтения. Установочный пакет freedcpp для вашего компьютера и ОС можно подобрать на tehnick-8.narod.ru/freedcpp. Большой форум по клиенту freedcpp можно почитать здесь: code.google.com/p/freedcpp/issues/detail?id=9. Для чистого DC очень неплох кроссплатформенный Valknut, он есть в репозиториях для ОС Ubuntu, но лучше установить последний стабильный релиз, правда, после 2008г. развитие этого клиента остановлено. Для установки Valknut под Ubuntu потребуется посетить:

fileland.ru/file_id-241853 - пакет библиотеки dclib-0.3.23.deb для "интела"

fileland.ru/file_id-241854 - deb-пакет клиента Valknut для "интела".

Для компьютера "амд" индексы будут оканчиваться на 65 и 66, соответственно. Скачиваем и устанавливаем установщиком пектов gdebi. В общем, выбор DC-клиентов большой, но имеет смысл выбирать только среди многопоточных клиентов.


Работаем с DC-клиентом

Установив клиент, открываем его "Помощь" и внимательно читаем, так как настройки для разных клиентов могут иметь свои специфические детали. Тем не менее, алгоритмы настройки у разных клиентов схожи, кратко опишу.

При установке DC-клиента автоматически создаётся его рабочая папка. Не трогайте её! Вам потребуется самостоятельно, с помощью файлового менеджера или командной строки, создать в домашней директории только папку загрузки, куда вы будете скачивать файлы. Для безопасности создавайте папку загрузки только в домашней директории. Начинать первичную настройку клиента надо именно с указания клиенту папки загрузки, чтобы отсутствие её не тормозило дальнейшие действия. Настраиваем также языковую локаль или кодировку.

Настраиваем свои данные, для чего в меню настройки выбираем "Идентификация" (или "Персональная информация"). Заполняем поле ника, он же и ник поиска, а также свой электронный почтовый адрес. В поле "Описание" вбиваем что-нибудь типа "много всего", в поле префикса "Отошёл" вбиваем без кавычек префикс "AFK", в поле "Скорость" выбираем тип вашего модема, например, DSL, или указываем скорость обмена в килобайтах. Сообщение "Отошёл" может быть любым, но таким, чтобы пользователи смогли понять, что вас возле компьютера нет.

Расшариваем свои файлы, иначе на первом же входе в хаб вам ткнут сообщением вроде "you can't download ... unless you share XX GB". Поэтому находим вкладку или меню "Шары", входим в неё, жмём "добавить", а затем указываем папки, содержимым которых вы можете поделиться. Целесообразно пометить чекбокс "не шарить скрытые файлы", чтобы нечаянно не расшарить ОС. После нажатия "ОК" клиент вычислит хеш-коды расшаренных файлов и проиндексирует их. На современных компьютерах хеширование занимает примерно 2 минуты на гигабайт. В результате расшаривания в рабочей директории DC-клиента создаётся список файлов files.xml.bz2, содержащий хеш-коды файлов, но не сами файлы. Именно этот список считывается у пользователя хабом, сами файлы хаб не интересуют. При добавлении в шару новых файлов она заново не индексируется, индексируется только новое.

Включаем режим мультискачивания и автопоиск новых источников. Также в поле "Задержка поиска", если оно есть, указываем в секундах время, после которого начнётся поиск источников. Если файл найдется у нескольких пользователей (возможно, источники будут в разных хабах), то и качаться он будет сразу из нескольких источников, что обеспечивает высокую скорость скачивания.

На вкладке "Отдачи" ограничиваем число слотов раздачи, например, ставим 5. Ограничиваем скорость раздачи, так как канал не резиновый, например, ставим 50 кБайт/с.

Как показывает практика, наибольшие затруднения вызывает настройка подключения (вкладка или меню "Подключение" или, возможно, "Соединение"). Активный режим позволяет качать отовсюду, но требует прямого соединения по портам. При пассиве визави сам даёт вам порты, чтобы вы у него могли скачивать. Этот режим используется тогда, когда что-то мешает: маршрутизатор или просто плохо настроенный файрвол. По умолчанию всегда включен актив, оставляем. Если потом скачивание не будет работать, надо будет переключиться на пассив. В поле "IP-адрес" вбиваем свой IP-адрес. В более-менее продвинутых клиентах есть кнопка "IP-адрес", вбивающая этот адрес. ВАЖНО! Так как ваш IP-адрес динамический, то в некоторых "тупых" клиентах эту настройку потребуется делать каждый раз после очередного вхождения в Интернет. Адреса портов, установленные по умолчанию, не трогаем.

Существует несколько способов подключения к хабу, это также зависит от конкретного клиента. Некоторые впервые запускаемые клиенты вообще могут не знать никаких адресов хабов. Хабы добавляются списком или поодиночке. Более "продвинутые" клиенты из конъюнктурных соображений сразу после установки уже имеют "на борту" от единиц до сотен адресов хабов, остаётся только выбирать. Чтобы добавить одиночный хаб, находим вкладку или меню "Список хабов" и жмём кнопку с "Добавить". В поле "Хост" вбиваем ссылку на хаб, остальные поля заполняем в соответствии с описанием хаба или оставляем пустыми, сохраняем список хабов. Не рекомендуется добавлять хаб, на котором вы ещё не бывали, сразу в закладки (фавор), так как, возможно, это будет трактовано как ламерство, что может затруднить регистрацию.

Чтобы войти в хаб, дважды кликаем по нужной строчке в списке хабов. Если до этого вы всё настроили верно, то попадаете внутрь хаба. На левой панели вы увидите лог подключения к хабу, за которым при удачном подключении идёт чат пользователей, а на правой панели - список пользователей.

Если вы подключились к хабу впервые, то сначала надо пообщаться с ботом хаба. Чтобы узнать правила, принятые внутри хаба, в поле сообщений наберите +rules и нажмите клавишу ввода. Работающий хаб обязательно вам ответит. При затруднениях набирайте +help или +faq. Теперь надо зарегистрироваться. Для этого в поле сообщений набираете +regme. Возможно, вас сразу зарегистрируют, что маловероятно, возможно, бот попросит вас связаться в привате с одним из администраторов хаба, что более вероятно.

После того, как вас зарегистрировали, о чём вас известят, вы получаете доступ к шарам других пользователей и возможность поиска файлов в пределах хаба, на котором зарегистрировались. При щелчке правой кнопкой по пользователю в выпадающем меню выбирайте "Список файлов". Сначала запустите поиск по имени файла. Если есть сомнения, то свяжитесь в привате с владельцем шары. Правый щелчок по файлу в списке откроет выпадающее меню, в котором выбирайте "Скопировать магнет". В буфере вашего компьютера окажется магнет-ссылка, вбивайте её в строку поиска с помощью Shift+Ins или Ctrl+V, жмите "Искать". Всё, остальное клиент сделает сам. Если открыто много хабов, то закачка распространится и на них. Уважайте других пользователей в чате. Неуважение ведёт к "автобану". Это не автострада, это предоставленная обиженному пользователю возможность не пускать вас к себе. Удачи!


Вместо заключения

Запуская порой на своём компьютере сканер работающих хабов (фича клиента), каждый раз вижу огромную хаб-Европу и отмечаю, что Беларуси там нет... Даже маленькие Словения и Латвия представлены по десятку хабов каждая. В Российской Федерации DC-контакты очень даже популярны: десятки хабов, есть громадные хабы, насчитывающие тысячи пользователей. И правильно! Общаться - так по-крупному, как в частушке: "Пускай на Солнце протуберанцы - сегодня в клубе кино и танцы!".

Михаил ГУРЧИК,
gor-mike@tut.by

Версия для печатиВерсия для печати

Номер: 

19 за 2010 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Страницы

Аватар пользователя Логик
>Как и в других p2p-технологиях, здесь тоже есть сервер-сводник, но тут он называется "хаб". DC-клиент может искать файл в шарах сразу по нескольким хабам, в этом главное отличие DC от торрент-технологии c одним трекером

А как все же идет поиск файла? - Хаб имеет базу всех ССЫЛОК на файлы, которые физически размещены у клиентов, или в процессе поиска идет постоянный запрос каждому клиенту(который в онлайн) на наличия у него требуемого файла и на основе этого "перебора" выдается конечный список юзеров, которые имеют у себя искомый файл?

Аватар пользователя Логик
Логик > А как все же идет поиск файла? - Хаб имеет базу всех ССЫЛОК на файлы,

Логично было бы, чтобы хаб, при логине юзера (клиента) прочититывал его файл files.xml.bz2 и, на основе этого файла (и др. файлов от др. клиентов), создавал бы свою базу ссылок - используемую при поиске по хабу. имхо

Аватар пользователя mike
Именно это обычно и происходит при добавлении пользователя к хабу. Хотя есть хабы, которые пускают пользователей, не расшаривших ничего. Впрочем, в следующей статье про полностью децентрализованные p2p-сети я описал поиск поподробнее. Статья уже в редакции.

Самый популярный в России DC-клиент -- это StrongDC++. Он поддерживает частичное расшаривание скачиваемого файла, т.е. уже закачанные сегменты файла доступны другим.

Аватар пользователя root
странно, что забыли о http://code.google.com/p/eiskaltdc/
Аватар пользователя mike
>Забыли о http://code.google.com/p/eiskaltdc/

Прикольно, но моё увлечение DC началось именно с "холодного льда". Впрочем, я сослался на tehnick-8.narod.ru/freedcpp, где есть тот же адрес, что и у вас, в отношении дистро Ubuntu/Kubuntu, с которыми работаю. Всё я охватить не могу, уж простите.

Аватар пользователя Логик
mike (old student) > Всё я охватить не могу, уж простите.

Ну, раз взялся за гуж...

Кстати, как я понял - DC - это гуд в Домашних Сетях.

А как в инете, как конкурент торентам, какое соотношение между этими клиентами(технологиями) - или в инете безраздельное господство торентов, а DC - так - на отшибе нишевой?

Аватар пользователя mike
>Ну, раз взялся за гуж...

Дык что -- писать книгу? :)

>А как в инете, как конкурент торентам, какое соотношение между этими клиентами(технологиями)...

Я бы не ставил так вопрос. Это РАЗНЫЕ технологии. DC -- это как бы "домовая сеть", но в Инете. По ср. с торрентами в DC даже контингенты юзеров отличаются. Торрентами вовсю пользуется и планктон, в DC планктона мало. Терпение, Логик. Следующая статья посвящена технологиям более крутым, чем торренты. Последними я не мог скачать всего Рыбака, клиентами децентрализованных p2p -- запросто! :)

Аватар пользователя Логик
mike (old student) >Дык что -- писать книгу?

Чаму нет? - Типа "Как найти и скачать по быстрому".

Аватар пользователя mike
Ага. А ещё -- как деньжат срубить по-лёгкому.
Аватар пользователя Логик
mike (old student) > А ещё -- как деньжат срубить по-лёгкому.

Ну, книга в любом случае пользовалась бы спросом. имхо

Страницы