Стек I2P представляет собой многоуровневую архитектуру, обеспечивающую анонимную связь. Каждый уровень добавляет специфические возможности поверх нижележащих. Смотрите Индекс технической документации для получения дополнительной информации о каждом компоненте.
Уровень Интернета
IP - Internet Protocol позволяет адресовать хосты в обычном интернете и маршрутизировать пакеты через интернет с использованием доставки по принципу “наилучшие усилия”.
Транспортный уровень
- TCP - Протокол управления передачей обеспечивает надежную доставку пакетов в правильном порядке
- UDP - Протокол пользовательских датаграмм обеспечивает ненадежную доставку пакетов без гарантии порядка
Транспортный уровень I2P
Зашифрованные соединения между router’ами (пока не анонимные):
Уровень туннелей I2P
Обеспечивает полностью анонимные зашифрованные tunnel соединения:
- Tunnel сообщения - Зашифрованные I2NP сообщения и зашифрованные инструкции для их доставки
- I2NP сообщения - Протокольные сообщения со слоистым шифрованием для многоузлового анонимного маршрутизации
Уровень Garlic в I2P
Обеспечивает зашифрованную и анонимную доставку I2P-сообщений от точки к точке:
- Garlic messages - Обёрнутые I2NP сообщения для анонимной доставки
I2P клиентский уровень
- I2CP - I2P Control Protocol позволяет приложениям получать доступ к сети I2P без необходимости использовать API router напрямую
Транспортный уровень I2P End-to-End
- Streaming Library - Обеспечивает надежную доставку в правильном порядке, аналогично TCP
- Datagram Library - Обеспечивает ненадежную доставку, аналогично UDP
Слой интерфейса приложений I2P
Дополнительные интерфейсы для разработчиков приложений:
- I2PTunnel - Туннелирует TCP-соединения в I2P и из I2P
- SAMv3 - Протокол Simple Anonymous Messaging для приложений, не использующих Java
Прокси-слой приложений I2P
Прокси для стандартных интернет-протоколов:
- HTTP - Прокси для веб-браузинга
- IRC - Прокси для Internet Relay Chat
- SOCKS - SOCKS4/4a/5 прокси
- Streamr - UDP прокси для потокового вещания
Приложения
Приложения могут взаимодействовать с I2P на различных уровнях:
Streaming/Datagram приложения: - I2P-совместимые приложения, использующие streaming или datagram библиотеки напрямую
SAM-приложения: - Приложения на любом языке, использующие протокол SAM
Приложения специально для I2P: - Приложения, разработанные специально для I2P (I2PSnark, SusiMail и т.д.)
Стандартные интернет-приложения: - Обычные приложения, использующие I2P прокси (веб-браузеры, IRC клиенты и т.д.)
Схема стека

Примечание: SAM может использовать как потоковую библиотеку, так и датаграммы.