GNUnet

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:57, 28 декабря 2016.
GNUnet
GNUnet 1.png
Разработчики: Команда разработчиков GNUnet
Выпущена: 2001
Предыдущий выпуск: 0.10.1 / 8 April 2014 года; 4 years ago (2014-04-08)
Написана на: C
Операционная система: Кроссплатформенное программное обеспечение
Лицензия: GNU General Public License
Веб-сайт gnunet.org

GNUnet - это программный пакет для безопасного peer-to-peer соединения, не нуждающегося в серверах. Проект GNUnet возник в 2001 году и был вдохновлён целым рядом технических идей, призванных обеспечить безопасный файлообмен в пиринговых (P2P) сетях.

Введение

GNUnet является не просто файлообменной сетью. Основная цель проекта - создание надежной, открытой, равноправной и анонимной (т.е. недоступной цензуре и контролю) системы обмена информацией. Планируется предоставление множества интернет-услуг, а GNUnet стремится стать платформой для разработки децентрализованных сервисов следующего поколения.

Основные технические вопросы работы GNUnet подробно описаны в ряде научных публикаций. Среди этих идей — улучшенное кодирование содержимого (ECRS) и новый протокол анонимной маршрутизации (gap). Вы можете найти все материалы на сайте gnunet. Когда началась работа над GNUnet, были изучены существующие системы (в частности, Freenet и Mnet) на основе которых можно было бы начать новую работу. Однако задуманная система слишком отличалась от существовавших реализаций, чтобы строить GNUnet на основе одной из существовавших систем.

Первый реализованный сервис позволяет обмениваться файлами (анонимно и без какой либо цензуры). Анонимность обеспечивается за счет того, что исходящие от узла сети сообщения неотличимы от чужих сообщений, в передаче которых участвует узел. Все узлы действуют как маршрутизаторы, установленные между ними соединения шифруются, а уровень использования пропускной способности канала поддерживается постоянным. GNUnet использует простую, основанную на избытках экономическую модель для выделения ресурсов. Узлы в GNUnet следят за поведением друг друга, с уважением к использованию ресурсов; узлы, которые больше дают сети награждаются лучшим обслуживанием. GNUnet продолжает развиваться: появляются новые идеи и улучшается программный код. Часто улучшения GNUnet являются результатом дискуссий с разработчиками других проектов. Наверное, один из наиболее известных таких проектов — это Tor — децентрализованная сеть, действующая как анонимный прокси для TCP трафика с низкой латентностью. Tor спроектирован как универсальное решение, и в нем отсутствуют некоторые возможности специфичные для анонимного файлообмена, например поиск, дублирование данных, параллельная загрузка с нескольких узлов.

Кроме всего прочего, впечатляет список протоколов, которые может использовать GNUnet для передачи. Это стандартные tcp и udp, и необычные для p2p http (причем может работать и через прокси) и smtp. Ко всему прочему GNUnet вполне хорошо работает за NAT.

Текущая версия 0.8.0c написана на С (однако существует проект реализации GNUnet на Java), работает под ОС GNU/Linux, BSD, Mac OS X, Solaris, Windows и распространяется под лицензией GNU GPL. В данный момент в проект входит демон gnunetd, несколько библиотек и два фронтенда: gnunet-gtk и gnunet-qt (соответственно написанные с использованием GTK и Qt).

Сервисы и модули GNUnet

Для идентификации объектов и сервисов GNUnet использует URI (Uniform Resource Identifiers). Любой объект в сети GNUnet идентефицируется с помощью URI, который в текущей версии выглядит как gnunet://module/identifier, где module - имя модуля сети, а identifier - уникальный хеш, идентефецирующий сам объект.

File Sharing и ECRS

Самым популярным и наиболее стабильным сервисом GNUnet является File Sharing, предназначенный для анонимного децентрализованного файлообмена. Он позволяет искать, выкладывать и скачивать как отдельные файлы, так и целые каталоги. Благодаря сложному механизму роутинга запросов и ответов пользователь не может знать, от кого он принимает или кому передаёт файл.
В GNUnet можно настраивать степень анонимности от 0 (не анонимно) до бесконечности. По умолчанию используется 1. Передаваемые файлы закодированы с помощью ECRS (An Encoding for Censorship-Resistant Sharing) и обрабатываются соответствующим модулем.

Другие сервисы

В GNUnet также существует простейший чат, и планируются ещё несколько служб, например, анонимная P2P-почта.

Недостатки

Основная проблема - это очень высокая задержка, низкая скорость работы и достаточно высокое потребление ресурсов. Это - цена, которую приходится платить за децентрализованность и шифрование. Так, поиск редкого контента может длиться часами, а прежде чем начнется его скачивание может пройти еще много часов, да и скорость скачивания будет не на высоте. Однако, это пробоема всех децентрализованных сетей, и чем более децентрализованна она, тем более усугубляется эта проблема (так, eDonkey показывает чуть лучшие результаты, а не децентрализованный torrent намного более лучшие). Остается надеяться что в будущем, с увеличением пропускной способности сетей и производительности компьютеров эта проблема будет становится все менее актуальной.

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

Примечания

  • GNUnet [Электронный ресурс]: Facilitating the free flow of information for the GNUnet community / Дата обращения: 31.10.2016. — Режим доступа: https://gnunet.org/forum/
  • GNUnet [Электронный ресурс]: GNUnet.org bugtracking / Дата обращения: 31.10.2016. — Режим доступа: https://gnunet.org/bugs/my_view_page.php

Источники

  • GNUnet [Электронный ресурс]: Официальный сайт GNUnet / Дата обращения: 31.10.2016. — Режим доступа: https://gnunet.org/
  • GNU [Электронный ресурс]: Страница GNUnet на сайте GNU / Дата обращения: 31.10.2016. — Режим доступа: http://www.gnu.org/software/gnuprologjava/
  • GNUnet [Электронный ресурс]: Документация GNUnet / Дата обращения: 31.10.2016. — Режим доступа: https://gnunet.org/book?xlang=Russian/
Файловые архивы
  • GNUnet [Электронный ресурс]: Subversion-репозиторий проекта GNUnet / Дата обращения: 31.10.2016. — Режим доступа: https://gnunet.org/svn/
  • FTP проекта GNU [Электронный ресурс]: FTP проекта GNUnet / Дата обращения: 31.10.2016. — Режим доступа: ftp://ftp.gnu.org/gnu/gnunet/