GNUnet
GNUnet is a software framework for decentralized, peer-to-peer networking and an official GNU package. The framework offers link encryption, peer discovery, resource allocation, communication over many transports (such as TCP, UDP, HTTP, HTTPS, WLAN and Bluetooth) and various basic peer-to-peer algorithms for routing, multicast and network size estimation.

GNUnet's basic network topology is that of a mesh network. GNUnet includes a distributed hash table (DHT) which is a randomized variant of Kademlia that can still efficiently route in small-world networks. GNUnet offers a "F2F topology" option for restricting connections to only the users' trusted friends. The users' friends' own friends (and so on) can then indirectly exchange files with the users' computer, never using its IP address directly.

GNUnet uses Uniform resource identifiers (not approved by IANA, although an application has been made). GNUnet URIs consist of two major parts: the module and the module specific identifier. A GNUnet URI is of form codice_1 where "module" is the module name and "identifier" is a module specific string.

The primary codebase is written in C, but there are bindings in other languages to produce an API for developing extensions in those languages. GNUnet is part of the GNU Project. It has gained interest in the hacker community after the PRISM revelations.

GNUnet consists of several subsystems, of which essential ones are Transport and Core subsystems. Transport subsystem provides insecure link-layer communications, while Core provides peer discovery and encryption. On top of the core subsystem various applications are built.

GNUnet includes various P2P applications in the main distribution of the framework, including filesharing, chat and VPN; additionally, a few external projects (such as secushare) are also extending the GNUnet infrastructure.

GNUnet is unrelated to the older Gnutella P2P protocol. Gnutella is not an official GNU project while GNUnet is.
Q271680
software framework
Concept
Q188961
decentralized
Concept
Q161410
peer-to-peer
Concept
Q1301371
networking
Concept
Q7598
GNU
ORG
Q6554302
link encryption
UNK
Q772532
peer discovery
Concept
Q287260
resource allocation
Concept
Q8803
TCP
Concept
Q11163
UDP
MEDIA
Q8777
HTTP
Concept
Q44484
HTTPS
MEDIA
Q212607
WLAN
Concept
Q39531
Bluetooth
MEDIA
Q161410
peer-to-peer
Concept
Q22725
routing
Concept
Q899288
multicast
Concept
None
network size estimation
UNK
Q25552104
mesh network
Concept
Q863506
distributed hash table
Concept
Q176640
randomized
Concept
Q961691
Kademlia
MEDIA
Q840026
small-world network
Concept
Q285582
F2F topology
Concept
Q61694
Uniform resource identifier
Concept
Q242540
IANA
ORG
Q15777
C
Concept
Q510878
bindings
Concept
Q7598
GNU Project
ORG
Q3083944
hacker community
Concept
Q13420597
PRISM
MEDIA
None
secushare
UNK
Q49667
Gnutella
Concept
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
Q1007056
GNUnet
MISC
+2^^http://www.w3.org/2001/XMLSchema#decimal
2
NUMBER
+1^^http://www.w3.org/2001/XMLSchema#decimal
1
NUMBER
+2^^http://www.w3.org/2001/XMLSchema#decimal
2
NUMBER
+2^^http://www.w3.org/2001/XMLSchema#decimal
2
NUMBER
subclass of
developer
subclass of
programming language
developer
subclass of