The I2P stack is a layered design enabling anonymous communication. Each layer adds specific capabilities on top of those below it. See the Technical Documentation Index for additional details on each component.
Internet Layer
IP - Internet Protocol allows addressing hosts on the regular internet and routing packets across the internet using best-effort delivery.
Transport Layer
- TCP - Transmission Control Protocol allows reliable, in-order delivery of packets
- UDP - User Datagram Protocol allows unreliable, out-of-order delivery of packets
I2P Transport Layer
Encrypted router-to-router connections (not yet anonymous):
I2P Tunnel Layer
Provides full anonymous encrypted tunnel connections:
- Tunnel messages - Encrypted I2NP messages and encrypted instructions for their delivery
- I2NP messages - Protocol messages with layered encryption for multi-hop anonymous routing
I2P Garlic Layer
Provides encrypted and anonymous end-to-end I2P message delivery:
- Garlic messages - Wrapped I2NP messages for anonymous delivery
I2P Client Layer
- I2CP - I2P Control Protocol allows applications to access the I2P network without having to use the router API directly
I2P End-to-End Transport Layer
- Streaming Library - Provides reliable, in-order delivery similar to TCP
- Datagram Library - Provides unreliable delivery similar to UDP
I2P Application Interface Layer
Optional interfaces for application developers:
- I2PTunnel - Tunnels TCP connections into and out of I2P
- SAMv3 - Simple Anonymous Messaging protocol for non-Java applications
I2P Application Proxy Layer
Proxies for standard internet protocols:
- HTTP - Web browsing proxy
- IRC - Internet Relay Chat proxy
- SOCKS - SOCKS4/4a/5 proxy
- Streamr - UDP streaming proxy
Applications
Applications can interface with I2P at various layers:
Streaming/Datagram Applications:
- I2P-native applications using the streaming or datagram libraries directly
SAM Applications:
- Applications in any language using the SAM protocol
I2P-Specific Applications:
- Applications designed specifically for I2P (I2PSnark, SusiMail, etc.)
Standard Internet Applications:
- Regular applications using I2P proxies (web browsers, IRC clients, etc.)
Stack Diagram

Note: SAM can use both the streaming library and datagrams.