Der I2P-Stack ist ein geschichtetes Design, das anonyme Kommunikation ermöglicht. Jede Schicht fügt spezifische Fähigkeiten zu denen darunter hinzu. Siehe den Index der technischen Dokumentation für weitere Details zu jeder Komponente.
Internet-Schicht
IP - Internet Protocol ermöglicht die Adressierung von Hosts im regulären Internet und das Routing von Paketen über das Internet unter Verwendung von Best-Effort-Zustellung.
Transport Layer
- TCP - Transmission Control Protocol ermöglicht zuverlässige, geordnete Zustellung von Paketen
- UDP - User Datagram Protocol ermöglicht unzuverlässige, ungeordnete Zustellung von Paketen
I2P Transport Layer
Verschlüsselte router-zu-router Verbindungen (noch nicht anonym):
I2P Tunnel Layer
Bietet vollständig anonyme verschlüsselte tunnel-Verbindungen:
- Tunnel messages - Verschlüsselte I2NP-Nachrichten und verschlüsselte Anweisungen für ihre Zustellung
- I2NP messages - Protokollnachrichten mit geschichteter Verschlüsselung für anonymes Multi-Hop-Routing
I2P Garlic Layer
Bietet verschlüsselte und anonyme Ende-zu-Ende I2P-Nachrichtenübertragung:
- Garlic messages - Verpackte I2NP-Nachrichten für anonyme Zustellung
I2P Client-Schicht
- I2CP - I2P Control Protocol ermöglicht es Anwendungen, auf das I2P-Netzwerk zuzugreifen, ohne die router-API direkt verwenden zu müssen
I2P Ende-zu-Ende-Transportschicht
- Streaming Library - Bietet zuverlässige, geordnete Zustellung ähnlich wie TCP
- Datagram Library - Bietet unzuverlässige Zustellung ähnlich wie UDP
I2P Anwendungsschnittstellenschicht
Optionale Schnittstellen für Anwendungsentwickler:
- I2PTunnel - Tunnelt TCP-Verbindungen in und aus I2P
- SAMv3 - Simple Anonymous Messaging-Protokoll für Nicht-Java-Anwendungen
I2P Anwendungs-Proxy-Schicht
Proxies für Standard-Internetprotokolle:
- HTTP - Web-Browsing-Proxy
- IRC - Internet Relay Chat Proxy
- SOCKS - SOCKS4/4a/5 Proxy
- Streamr - UDP-Streaming-Proxy
Anwendungen
Anwendungen können mit I2P auf verschiedenen Ebenen interagieren:
Streaming/Datagram-Anwendungen: - I2P-native Anwendungen, die die Streaming- oder Datagram-Bibliotheken direkt verwenden
SAM-Anwendungen: - Anwendungen in jeder Programmiersprache, die das SAM-Protokoll verwenden
I2P-spezifische Anwendungen: - Anwendungen, die speziell für I2P entwickelt wurden (I2PSnark, SusiMail, etc.)
Standard-Internetanwendungen: - Reguläre Anwendungen, die I2P-Proxies verwenden (Webbrowser, IRC-Clients, etc.)
Stack-Diagramm

Hinweis: SAM kann sowohl die Streaming-Bibliothek als auch Datagramme verwenden.