Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Netsukuku – экспериментальная система пиринговой маршрутизации, разработанная FreakNet MediaLab в 2005 году для создания распределённой сети, анонимной и свободной от цензуры, полностью независимой, но необязательно изолированной от Интернета, без поддержки серверов, интернет-провайдеров и централизованного управления. Netsukuku рассчитана на работу с до 2128 узлами без использования серверов или центральных систем, требуя минимальных ресурсов процессора и памяти. Эта mesh-сеть может быть построена на базе существующей сетевой инфраструктуры, такой как Wi-Fi. Проект находится в медленном развитии с 2005 года, оставаясь в бета-стадии и никогда не подвергаясь масштабному тестированию.
Netsukuku is an experimental peer to peer routing system, developed by the FreakNet MediaLab in 2005, created to build up a distributed network, anonymous and censorship free, fully independent but not necessarily separated from the Internet, without the support of any server, ISP and no central authority. Netsukuku is designed to handle up to 2128 nodes without any servers or central systems, with minimal CPU and memory resources. This mesh network can be built using existing network infrastructure components such as Wi Fi. The project has been in slow development since 2005, never abandoning a beta state. It has also never been tested on large scale.
Операция
По состоянию на декабрь 2011 года последние теоретические разработки по Netsukuku были представлены в магистерской диссертации автора «Масштабируемые сети mesh и проблема балансировки адресного пространства». В данном описании рассматриваются только базовые концепции теории. Netsukuku использует собственный протокол маршрутизации под названием QSPN (Quantum Shortest Path Netsukuku), который стремится быть эффективным и не создавать чрезмерной нагрузки на вычислительные ресурсы каждого узла. Текущая версия протокола – QSPNv2. Он имеет иерархическую структуру: 256 узлов объединяются в гнод (групповой узел), 256 гнодов – в ггнод (группа групповых узлов), 256 ггнодов – в гггнод и так далее. Это обеспечивает ряд преимуществ, описанных в основной документации. Протокол опирается на предположение о стационарности узлов и медленных изменениях структуры сети, поскольку для распространения изменений в сети может потребоваться несколько минут. Однако узел, присоединившийся к сети, сразу же может осуществлять связь, используя маршруты своих соседей. Когда узел подключается к mesh-сети, Netsukuku автоматически адаптируется, и все остальные узлы узнают самые быстрые и эффективные маршруты для связи с новым узлом. Каждый узел имеет одинаковые права и ограничения с другими узлами. Система доменных имен (DNS) заменена децентрализованной и распределенной системой под названием ANDNA (Аномальная анархия доменных имен Netsukuku). База данных ANDNA включена в систему Netsukuku, поэтому каждый узел содержит такую базу данных, занимающую не более 355 килобайт памяти. Упрощенно, ANDNA работает следующим образом: для разрешения символического имени хост применяет к нему хеш-функцию. Хеш-функция возвращает адрес, по которому хост обращается с запросом на разрешение, сгенерированным хешем. Обращенный узел получает запрос, ищет в своей базе данных ANDNA адрес, связанный с именем, и возвращает его запрашивающему хосту. Регистрация работает аналогично: например, предположим, что узел X хочет зарегистрировать адрес FreakNet.andna. X вычисляет хеш имени и получает адрес 11.22.33.44, связанный с узлом Y. Узел X связывается с Y, прося зарегистрировать 11.22.33.44 как свой. Y сохраняет запрос в своей базе данных, и любой запрос на разрешение хеша 11.22.33.44 будет возвращать адрес X. Протокол несколько сложнее, поскольку система предоставляет пары открытый/закрытый ключ для аутентификации хостов и предотвращения несанкционированных изменений в базе данных ANDNA. Кроме того, протокол обеспечивает избыточность базы данных для устойчивости к сбоям и предусматривает миграцию базы данных при изменении топологии сети. Протокол не предусматривает возможности отзыва символического имени; после определенного периода неактивности (в настоящее время 3 дня) оно просто удаляется из базы данных. Протокол также предотвращает регистрацию одним хостом чрезмерного количества символических имен (в настоящее время 256 имен), чтобы предотвратить использование спамерами большого количества терминов для киберсквоттинга.
As of December 2011, the latest theoretical work on Netsukuku could be found in the author's master thesis Scalable Mesh Networks and the Address Space Balancing problem. The following description takes into account only the basic concepts of the theory. Netsukuku uses a custom routing protocol called QSPN (Quantum Shortest Path Netsukuku) that strives to be efficient and not taxing on the computational capabilities of each node. The current version of the protocol is QSPNv2. It adopts a hierarchical structure. 256 nodes are grouped inside a gnode (group node), 256 gnodes are grouped in a single ggnode (group of group nodes), 256 ggnodes are grouped in a single gggnode, and so on. This offers a set of advantages main documentation. The protocol relies on the fact that the nodes are not mobile and that the network structure does not change quickly, as several minutes may be required before a change in the network is propagated. However, a node that joins the network is immediately able to communicate using the routes of its neighbors. When a node joins the mesh network, Netsukuku automatically adapts and all other nodes come to know the fastest and most efficient routes to communicate with the newcomer. Each node has no more privileges or restrictions than the other nodes. The domain name system (DNS) is replaced by a decentralised and distributed system called ANDNA (Abnormal Netsukuku Domain Name Anarchy). The ANDNA database is included in the Netsukuku system, so each node includes such database that occupies at most 355 kilobytes of memory. Simplifying, ANDNA works as follows: to resolve a symbolic name the host applies a function Hash on its behalf. The Hash function returns an address that the host contacts asking for the resolution generated by the hash. The contacted node receives a request, searches in its ANDNA database for the address associated with the name and returns it to the applicant host. Recording works in a similar way: for example, let's suppose that the node X wants to register the address FreakNet. andna; X calculates the hash name and obtains the address 11.22.33.44 associated with node Y. The node X contacts Y asking to register 11.22.33.44 as its own. Y stores the request in its database and any request for resolution of 11.22.33.44 hash, will answer with the X's address. The protocol is a little more complex than this, as the system provides a public/private key to authenticate the hosts and prevent unauthorized changes to the ANDNA database. Furthermore, the protocol provides redundancy in the database to make the protocol resistant to failure and also provides for the migration of the database if the network topology changes. The protocol does not provide for the possibility of revoking a symbolic name; after a certain period of inactivity (currently 3 days) it is simply deleted from the database. The protocol also prevents a single host from recording an excessive number of symbolic names (at present 256 names) in order to prevent spammers from storing a high number of terms to perform cybersquatting.