Still working to recover. Please don't edit quite yet.

Netsukuku

From Anarchopedia
Jump to: navigation, search

Netsukuku is the name of an experimental peer-to-peer routing system, developed by the FreakNet MediaLab, born to build up a distributed network, censorship-free, fully independent but not necessarily separated from Internet, without the support of any server, ISP and no central authority. It does not rely on a backbone router, or on any routing equipment other than normal network interface cards.

Basic idea

Netsukuku aims to build a fully distributed network that doesn't rely on single points of failure as the actual Internet. The main idea is to build a system that can be built and be maintained autonomously. It is designed to handle a very large number of nodes with minimal CPU and memory resources. This mesh network can be built using existing network infrastructure components such as WiFi.

Netsukuku routing protocol builds the appropriate routes that connects all the computer on the mesh, replacing the level 3 of the OSI model with another routing protocol called QSPN (Quantum Shortest Path Netsukuku).

Also, the domain name system is replaced by a decentralised and distributed system called ANDNA (A Netsukuku Domain Name Architecture).

Netsukuku was born from the idea to create a pure net that takes advantage of being distributed for creating and maintaining itself autonomously. The network itself can survive node loss without interrupting the service in the network. Note that for a completely dynamic network, it would require a constant update to the routes and this goes against the scalability and stability requirements of Netsukuku.

Since Netsukuku is not a P2P net built upon the Internet it handles routes differently. It is a physical network and it is a dynamic routing system designed to handle 2^128 nodes without any servers or central systems.

How it works

Netsukuku is aimed to be able to run with minimal effort and resources, so instead of solving heavy computational problems with routing calculation and yet be scalable up to 2^128 nodes (using IPv6) it uses a routing protocol called QSPN.

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 privileges or restrictions than other nodes; they are all part of the network and contribute to its expansion and efficiency, being all equal.

Whenever the number of its nodes grows, the network changes its shape and the routes keep on improving, automatically removing unnecessary links using disjoint routes. Redundant routes are removed in order to free memory for non-redundant ones. Keeping redundant routes in the kernel routing table isn't optimal, because if one of the routes fail there is a high probability that all the other redundant routes will fail too.

The usual protocols and algorithms for the dynamic routing are usually used to create small and medium networks, like OSPF, RIP or BGP, and use different algorithms to find the best way to reach a node in a network. These protocols require a relevant CPU and memory consumption, and for this reason that the Internet routers are often specially dedicated computers. It would be impossible to adopt one of these protocols to create and maintain a very big mesh network.

Hierarchical topology

Routing tables tend to grow big on huge networks. Even if we store just one route to reach one node and even if this route costs one byte, we would need 1GB of memory for a network composed by 10^9 nodes, the current Internet.

For this reason, is necessary to structure the network in a convenient topology. Netsukuku 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.

Advantages on hierarchical topology are described in the main documentation of the Netsukuku theory.

QSPN

The current version of the protocol is QSPNv2.

QSPN assumes two things:

  • Mobile nodes aren't supported by the current theory. This is based on the fact that WiFi mesh routers doesn't change their location very often. This is a valid assumption however; usually the routes are plugged to external antennas or mounted on the roofs.
  • The network isn't updated quickly. Several minutes may be required before all the nodes become aware of a change in the network, such as new joined nodes, more efficient routes have become available. However, when a node joins the network it can reach all the other nodes from the very first instant using the routes of his neighbours.

The routing algorithm must be capable of finding the routes without overloading the network of the resources of the node. But since QSPN alone wouldn't be capable of handling the whole network because it would still require too much memory, it is necessary to structure the network in a convenient topology.

Since in each level there is a maximum of 256 (g)nodes, QSPN will always operate on a maximum of 256 (g)nodes. We just need to be sure that the algorithm works as expected on every case of a graph composed by less or equal to 256 nodes.

A Netsukuku Domain Name Architecture

The A Netsukuku Domain Name Architecture (ANDNA) is a distributed system of naming and management of names, that plays the same role the DNS does. The ANDNA database is included in the Netsukuku system, so each node includes such database that, at worst scenario may occupy 355 kilobytes of memory.

Simplifying, ANDNA works as follows:

To resolve a symbolic name the host applies a function hash on it. 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.

            
	    Node X
      ip: 123.123.123.123
      hash(hostname: "FreakNet.andna" ) == 11.22.33.44
					   ||
					   ||
					 Node Y
				     ip: 11.22.33.44
			   {	[FreakNet.andna in the database of node Y]    }
			   {hash_11.22.33.44 ---> 123.123.123.123}

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.

Use

The goal of Netsukuku network is the realization of an infrastructure that not having to rely on the usual Internet infrastructure is more economical and independent, allowing access to network users unable to pay a regular fee to ISPs. The designers of the network think they can achieve this parallel network relying heavily on wireless networks that have a range of several kilometers.

Another possible use of the Netsukuku network would be the realization of cellular networks without the input of telephone operators. This application starts from the consideration that the network algorithms require reduced resources and therefore can easily run on existing phones, though for real applications in this regard are at present only theoretical.

Related items

External links

This article contains content from Wikipedia. Current versions of the GNU FDL article Netsukuku on WP may contain information useful to the improvement of this article WP