Netsukuku

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.

Operation

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 neighbours. When a node joins the mesh network, Netsukuku automatically suits and all other nodes come to know the fastest and most efficient routes to communicate with the newcomer. The nodes have no more privileges or restrictions than other nodes.

The domain name system (DNS) is replaced by a decentralised and distributed system called ANDNA (A Netsukuku Domain Name Architecture). 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 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 to the applicant host. Recording is in a similar way. For example, let's suppose that the node X should record 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 requiring registration for 11.22.33.44 hash 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 address. The protocol is obviously more complex as the system provides a public/private key to authenticate the hosts and prevent unauthorized changes to ANDNA database. Furthermore, the protocol provides redundancy database to make the protocol resistant to any failures 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, this after a certain period of inactivity (currently 3 days) is simply deleted from the database. The protocol also prevents a single host to record an excessive number of symbolic names (at present 256 names) in order to prevent spammers to store a high number of terms commonly used or to perform actions of cybersquatting.

gollark: I'm looking into other problems and aim to make it take about a minute to solve.
gollark: Lignum, it's hard to do more while not making it too slow to auto generate.
gollark: Radians, I think.
gollark: It's how potatOS blocks browsers.
gollark: I mean, there is an easier way, but I'm not saying it.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.