The foundations of GNUnet are a distributed hash table (R5N), an SCTP-like end-to-end encrypted messaging layer (CADET), a public key infrastructure (GNS) and a pluggable transport system (TRANSPORT).
Using public keys for addresses and self-organized decentralized routing algorithms, these subsystems replace the traditional TCP/IP stack.
GNUnet is implemented using a multi-process architecture. Each subsystem runs as a separate process, providing fault-isolation and enabling tight permissions to be granted to each subsystem. Naturally, the implementation is a GNU package, and will always remain free software.