Linux -- это интересно

BitThief


Рубрика: Интернет ПО
Метки: | |
Просмотров: 5101

BitTorrent клиент с интересными возможностями...


BitThief — клиент для BitTorrent сетей написанный на Java, созданный в рамках научно исследовательской работы Distributed Computing Group из ETH Zurich (Германия) под руководством профессора Роджера Уоттенхофера (Roger Wattenhofer).

BitThief — это одна из частей проекта направленная на изучение эгоистичного поведения в файлообменных сетях (линчерства). Подразумевается что файлообменные сети основываются на равноправии всех участвующих в обмене, то есть каждый участник одновременно является и клиентом, и сервером. Но оказалось что всё далеко не так!

Есть и личеры (от английского leecher, от leech — пиявка) — пользователи в различных файлообменных сетях (Gnutella, eDonkey, BitTorrent, KaZaA) пользующийся ресурсами предоставляемыми другими, но сами не дающие использовать свои.

Личеры скачивая большие объёмы информации не отдают достаточного количества данных другим пользователям. Обычно это бывает когда пользователь по незнанию или специально уменьшает исходящий трафик, так же когда он недостаточно долго остаётся на раздаче файла после окончания скачивания.

Отсутствие у пользователей стимула вносить собственные ресурсы в работу сети могут привести к полному краху или нарушению работы самой системы файлообменных сетей. Поэтому для полностью децентрализованной системы важно включить протоколы, которые гарантируют равнозначное распределение ресурсов между всеми участниками.

BitThief - первоначально создавался как полностью линчерский клиент, но только для изучения того как не внося собственных ресурсов по полной использовать ресурсы других! И как оказалось, в результате исследования, протокол BitTorrent не в состоянии предотвратить такое поведение клиента и не обеспечивает контрмер против недобросовестных участников своей сети.

Более детальные результаты исследования (англ): HotNets 2006 research paper.

Разработчики BitThief утверждают что протокол BitTorrent должен быть изменен, для более эффективного предотвращения линчерства. Группой был спроектирован протокол T4T / tit-for-tat (зуб за зуб), смысл работы которого заключается в принципе "сколько ты мне, столько я тебе". И получается что T4T в какой то мере достигает поставленной цели (равноправия всех участвующих в обмене).

Для более детального ознакомления есть научно-исследовательская работа (англ): P2P 2007 research paper.

На данный момент клиент BitThief не только предоставляет возможность быть линчером (при соответствующих настройках), а разнообразная статистика позволяет детально изучить этот процесс, но может работать как обычный BitTorrent клиент и дополнительно использовать наработки протокола T4T (чтобы справедливо обмениваться информацией с пользователями сети).

Версия 0.1.7 клиента BitThief стала первым доказательством того что правильный (взаимовыгодный) обмен в BitTorrent сети возможен и эффективен, для всех добросовестных участников обмена. В BitThief версии 0.3.0 добавлена полная поддержка протокола T4T (плюс некоторые другие особенности).

BitThief во время работы выявляет 20-ку наиболее активных участников сети и далее основной обмен происходит с ними. Участники обмена подозреваемые в линчирстве, на какое то время, игнорируются или получают пустышки (уведомление об отсутствии требуемой им части файла).

Общие настройки клиента:

- Limit Connection Number — общее ограничение числа соединений.

- Limit Traffic Speed — максимальная скорость загрузки/отдачи клиента.

- Check For Update — проверка наличия новой версии при запуске.

- Upload Statistics — разрешение передавать статистику загрузок на webserver BitThief (никакие анкетные данные или информация о загруженных файлах не передаются. А эти данные помогут разработчикам в исследованиях).

Настройки закачки:

- Upload Data — если не отмечено, то BitThief вообще не будет отдавать данных другим участникам сети (функция линчерства). Если отмечено то BitThief будет вести себя как любой другой клиент BitTorrent-сетей.

- Upload Slots — количество соединений на отдачу.

- Use Tit-for-tat Protocol — использование функций протокола T4T (участие в равноправном обмене).

- Listening Port — используемый TCP-порт (откройте этот порт в своем брандмауэре).

- Download Pieces In Order — последовательная загрузка файла (обычно используется чтобы начать смотреть фильм до окончания загрузки).

- Initial Announce Interval — интервал между запросами клиента.

- Share Ratio — желаемое соотношение скачанного и отданного для этой закачки.

Поскольку BitThief это научный проект (хоть и не так активно как в начале, но исследования продолжаются), разработчики просят разрешить клиенту иногда передавать данные на webserver проекта. Передаваемые клиентом данные содержат только информацию о времени требуемого для загрузки файлов различного размера. И в ней не содержится ничего для определения что именно было загружено.

BitThief частично использует код Azureus, как Azureus он и представляется трекерам.

Для работы требуется версия Java 1.5 (или более новая).

Страница проекта

Оставьте комментарий!
Используйте нормальные имена.Войти через loginza
Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



 
(обязательно)