{% extends "global/layout.html" %} {% block title %}Index to Technical Documentation{% endblock %} {% block content %}

How does I2P work?

Following is an index to the technical documentation for I2P. This page was last updated in May 2012 and is accurate for router version 0.9.

This index is ordered from the highest to lowest layers. The higher layers are for "clients" or applications; the lower layers are inside the router itself. The interface between applications and the router is the I2CP (I2P Control Protocol) API.

The I2P Project is committed to maintaining accurate, current documentation. If you find any inaccuracies in the documents linked below, please enter a ticket identifying the problem.

Index to Technical Documentation

Overview

Application-Layer Topics

Application Layer API and Protocols

High-level, easy-to-use APIs for applications written in any language to send and receive data.

End-to-End Transport API and Protocols

The end-to-end protocols used by clients for reliable and unreliable communication.

Client-to-Router Interface API and Protocol

The lowest-level API used for clients (applications) to send and receive traffic to a router. Traditionally used only by Java applications and higher-level APIs.

End-to-End Encryption

How client messages are end-to-end encrypted by the router.

Network Database

Distributed storage and retrieval of information about routers and clients.

Router Message Protocol

I2P is a message-oriented router. The messages sent between routers are defined by the I2NP protocol.

Tunnels

Selecting peers, requesting tunnels through those peers, and encrypting and routing messages through these tunnels.

Transport Layer

The protocols for direct (point-to-point) router to router communication.

Other Router Topics

Developer's Guides and Resources

{% endblock %}