2012-09-11 02:40:52 +00:00
|
|
|
{% extends "global/layout.html" %}
|
2010-08-08 13:45:30 +00:00
|
|
|
{% block title %}Index to Technical Documentation{% endblock %}
|
2008-02-03 02:46:04 +00:00
|
|
|
{% block content %}
|
2009-06-14 13:22:48 +00:00
|
|
|
<h1>How does I2P work?</h1>
|
2010-08-08 13:45:30 +00:00
|
|
|
|
|
|
|
<p>
|
|
|
|
Following is an index to the technical documentation for I2P.
|
2012-05-28 15:56:53 +00:00
|
|
|
This page was last updated in May 2012 and is accurate for router version 0.9.
|
2010-08-08 13:45:30 +00:00
|
|
|
</p><p>
|
|
|
|
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.
|
|
|
|
</p><p>
|
|
|
|
The I2P Project is committed to maintaining accurate, current documentation.
|
|
|
|
If you find any inaccuracies in the documents linked below, please
|
2010-11-26 17:26:57 +00:00
|
|
|
<a href="http://trac.i2p2.de/report/1">enter a ticket identifying the problem</a>.
|
2011-06-19 20:42:58 +00:00
|
|
|
</p>
|
2010-08-08 13:45:30 +00:00
|
|
|
|
|
|
|
<h2>Index to Technical Documentation</h2>
|
|
|
|
|
|
|
|
<h3>Overview</h3>
|
2009-06-12 20:09:21 +00:00
|
|
|
<ul class="helplist">
|
2012-11-10 05:59:30 +00:00
|
|
|
<li><a href="{{ site_url('docs/how/techintro') }}">Technical Introduction</a></li>
|
2012-09-14 02:03:44 +00:00
|
|
|
<li><a href="{{ site_url('docs/how/intro') }}">A Less-Technical Introduction</a></li>
|
|
|
|
<li><a href="{{ site_url('docs/how/threatmodel') }}">Threat model and analysis</a></li>
|
|
|
|
<li><a href="{{ site_url('docs/how/networkcomparisons') }}">Comparisons to other anonymous networks</a></li>
|
2012-11-09 10:30:06 +00:00
|
|
|
<li><a href="{{ site_url('docs/protocols') }}">Protocol stack chart</a></li>
|
2011-02-22 23:36:49 +00:00
|
|
|
<li><a href="papers.html">Papers and Presentations on I2P</a></li>
|
2012-09-11 02:40:52 +00:00
|
|
|
<li><a href="{{ url_for('static', filename='pdf/i2p_philosophy.pdf') }}">Invisible Internet Project (I2P) Project Overview</a> August 28, 2003 (pdf)</li>
|
2004-07-06 23:46:37 +00:00
|
|
|
</ul>
|
2010-08-08 13:45:30 +00:00
|
|
|
|
|
|
|
<h3>Application-Layer Topics</h3>
|
|
|
|
<ul>
|
|
|
|
<li><a href="naming.html">Naming and Addressbook</a></li>
|
|
|
|
<li><a href="plugins.html">Plugins Overview</a></li>
|
|
|
|
<li><a href="plugin_spec.html">Plugin Specification</a></li>
|
2010-08-14 17:27:15 +00:00
|
|
|
<li><a href="updates.html">Router software updates</a></li>
|
2012-11-11 05:31:01 +00:00
|
|
|
<li><a href="{{ site_url('docs/applications/bittorrent') }}">Bittorrent over I2P</a></li>
|
|
|
|
<li><a href="{{ site_url('docs/api/i2pcontrol') }}">I2PControl Plugin API</a></li>
|
2012-01-28 18:33:49 +00:00
|
|
|
<li><a href="blockfile.html">hostsdb.blockfile Format</a></li>
|
2012-10-05 13:02:11 +00:00
|
|
|
<li><a href="configuration.html">Configuration File Format</a></li>
|
2010-08-08 13:45:30 +00:00
|
|
|
</ul>
|
|
|
|
|
2011-05-30 16:32:44 +00:00
|
|
|
<h3>Application Layer API and Protocols</h3>
|
2010-08-08 13:45:30 +00:00
|
|
|
High-level, easy-to-use APIs for applications written in any language to send and receive data.
|
|
|
|
<ul><li>
|
2012-11-11 05:31:01 +00:00
|
|
|
<a href="{{ site_url('develop/applications') }}">Application Development Overview and Guide</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2012-11-11 05:31:01 +00:00
|
|
|
<a href="{{ site_url('docs/api/i2ptunnel') }}">I2PTunnel</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2012-11-11 05:31:01 +00:00
|
|
|
<a href="{{ site_url('docs/api/socks') }}">SOCKS Proxy</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
|
|
|
HTTP Proxy
|
|
|
|
</li><li>
|
2011-05-16 20:51:49 +00:00
|
|
|
CONNECT Proxy
|
|
|
|
</li><li>
|
2010-08-08 13:45:30 +00:00
|
|
|
IRC Proxy
|
|
|
|
</li><li>
|
2011-05-16 20:51:49 +00:00
|
|
|
SOCKS IRC Proxy
|
|
|
|
</li><li>
|
|
|
|
Streamr Proxy
|
|
|
|
</li><li>
|
|
|
|
HTTP Bidir Proxy
|
|
|
|
</li><li>
|
2012-11-09 10:40:57 +00:00
|
|
|
<a href="{{ site_url('docs/api/sam') }}">SAM Protocol</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2012-11-09 10:40:57 +00:00
|
|
|
<a href="{{ site_url('docs/api/samv2') }}">SAMv2 Protocol</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2012-11-09 10:40:57 +00:00
|
|
|
<a href="{{ site_url('docs/api/samv3') }}">SAMv3 Protocol</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2012-11-09 10:40:57 +00:00
|
|
|
<a href="{{ site_url('docs/api/bob') }}">BOB Protocol</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li></ul>
|
|
|
|
|
|
|
|
<h3>End-to-End Transport API and Protocols</h3>
|
2010-08-08 19:52:09 +00:00
|
|
|
The end-to-end protocols used by clients for reliable and unreliable communication.
|
2010-08-08 13:45:30 +00:00
|
|
|
<ul><li>
|
2012-11-11 05:31:01 +00:00
|
|
|
<a href="{{ site_url('docs/api/streaming') }}">Streaming Library</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2011-06-26 19:09:30 +00:00
|
|
|
<a href="http://docs.i2p-projekt.de/javadoc/net/i2p/client/streaming/package-summary.html">Streaming Javadoc</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
|
|
|
<a href="datagrams.html">Datagrams</a>
|
|
|
|
</li><li>
|
2011-06-26 19:09:30 +00:00
|
|
|
<a href="http://docs.i2p-projekt.de/javadoc/net/i2p/client/datagram/package-summary.html">Datagram Javadoc</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li></ul>
|
|
|
|
|
|
|
|
<h3>Client-to-Router Interface API and Protocol</h3>
|
|
|
|
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.
|
|
|
|
<ul><li>
|
|
|
|
<a href="i2cp.html">I2CP</a> I2P Control Protocol / API overview
|
|
|
|
</li><li>
|
2010-09-13 17:43:28 +00:00
|
|
|
<a href="i2cp_spec.html">I2CP Specification</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2011-06-26 19:09:30 +00:00
|
|
|
<a href="http://docs.i2p-projekt.de/javadoc/net/i2p/client/package-summary.html">I2CP API Javadoc</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
|
|
|
<a href="common_structures_spec.html">Common data structures specification</a>
|
|
|
|
</li><li>
|
2011-06-26 19:09:30 +00:00
|
|
|
<a href="http://docs.i2p-projekt.de/javadoc/net/i2p/data/package-summary.html">Data Structures Javadoc</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li></ul>
|
|
|
|
|
|
|
|
<h3>End-to-End Encryption</h3>
|
|
|
|
How client messages are end-to-end encrypted by the router.
|
|
|
|
<ul>
|
2012-09-14 02:03:44 +00:00
|
|
|
<li><a href="{{ site_url('docs/how/elgamalaes') }}">ElGamal/AES+SessionTag</a> encryption</li>
|
|
|
|
<li><a href="{{ site_url('docs/how/cryptography') }}">ElGamal and AES cryptography details</a></li>
|
2010-08-08 13:45:30 +00:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
<h3>Network Database</h3>
|
|
|
|
Distributed storage and retrieval of information about routers and clients.
|
|
|
|
<ul>
|
2012-09-14 02:03:44 +00:00
|
|
|
<li><a href="{{ site_url('docs/how/networkdatabase') }}">Network database overview, details, and threat analysis</a></li>
|
|
|
|
<li><a href="{{ site_url('docs/how/cryptography') }}#SHA256">Cryptographic hashes</a></li>
|
|
|
|
<li><a href="{{ site_url('docs/how/cryptography') }}#DSA">Cryptographic signatures</a></li>
|
2010-08-08 13:45:30 +00:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
<h3>Router Message Protocol</h3>
|
|
|
|
I2P is a message-oriented router. The messages sent between routers are defined by the I2NP protocol.
|
|
|
|
<ul><li>
|
|
|
|
<a href="i2np.html">I2NP</a> I2P Network Protocol Overview
|
|
|
|
</li><li>
|
|
|
|
<a href="i2np_spec.html">I2NP Specification</a>
|
|
|
|
</li><li>
|
2011-06-26 19:09:30 +00:00
|
|
|
<a href="http://docs.i2p-projekt.de/javadoc/net/i2p/data/i2np/package-summary.html">I2NP Javadoc</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
|
|
|
<a href="common_structures_spec.html">Common data structures specification</a>
|
|
|
|
</li><li>
|
2011-06-26 19:09:30 +00:00
|
|
|
<a href="http://docs.i2p-projekt.de/javadoc/net/i2p/data/package-summary.html">Data Structures Javadoc</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li></ul>
|
|
|
|
|
|
|
|
<h3>Tunnels</h3>
|
|
|
|
Selecting peers, requesting tunnels through those peers, and encrypting and routing messages through these tunnels.
|
|
|
|
<ul>
|
2012-09-14 02:03:44 +00:00
|
|
|
<li><a href="{{ site_url('docs/how/peerselection') }}">Peer profiling and selection</a></li>
|
|
|
|
<li><a href="{{ site_url('docs/how/tunnelrouting') }}">Tunnel routing overview</a></li>
|
|
|
|
<li><a href="{{ site_url('docs/how/garlicrouting') }}">Garlic routing and "garlic" terminology</a></li>
|
2010-08-08 13:45:30 +00:00
|
|
|
<li><a href="tunnel-alt.html">Tunnel building and encryption</a></li>
|
2012-09-14 02:03:44 +00:00
|
|
|
<li><a href="{{ site_url('docs/how/elgamalaes') }}">ElGamal/AES</a> for build request encryption</li>
|
|
|
|
<li><a href="{{ site_url('docs/how/cryptography') }}">ElGamal and AES cryptography details</a></li>
|
2010-08-08 13:45:30 +00:00
|
|
|
<li><a href="tunnel-alt-creation.html">Tunnel building specification</a></li>
|
|
|
|
<li><a href="tunnel_message_spec.html">Low-level tunnel message specification</a></li>
|
2011-07-27 18:44:50 +00:00
|
|
|
<li><a href="unidirectional-tunnels.html">Unidirectional Tunnels</a></li>
|
2012-09-11 02:40:52 +00:00
|
|
|
<li><a href="{{ url_for('static', filename='pdf/I2P-PET-CON-2009.1.pdf') }}">Peer Profiling and Selection in the I2P Anonymous Network</a>
|
2011-11-19 16:05:39 +00:00
|
|
|
2009 paper (pdf), not current but still generally accurate</li>
|
2010-08-08 13:45:30 +00:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
<h3>Transport Layer</h3>
|
|
|
|
The protocols for direct (point-to-point) router to router communication.
|
|
|
|
<ul><li>
|
2012-11-09 10:11:48 +00:00
|
|
|
<a href="{{ site_url('docs/transport') }}">Transport layer overview</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2012-11-09 10:11:48 +00:00
|
|
|
<a href="{{ site_url('docs/transport/ntcp') }}">NTCP</a> TCP-based transport overview and specification
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2012-11-09 10:11:48 +00:00
|
|
|
<a href="{{ site_url('docs/transport/ssu') }}">SSU</a> UDP-based transport overview
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2012-11-09 10:11:48 +00:00
|
|
|
<a href="{{ site_url('docs/transport/ssu/spec') }}">SSU specification</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2012-09-14 02:03:44 +00:00
|
|
|
<a href="{{ site_url('docs/how/cryptography') }}#tcp">NTCP transport encryption</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2012-09-14 02:03:44 +00:00
|
|
|
<a href="{{ site_url('docs/how/cryptography') }}#udp">SSU transport encryption</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2011-06-26 19:09:30 +00:00
|
|
|
<a href="http://docs.i2p-projekt.de/javadoc/net/i2p/router/transport/package-summary.html">Transport Javadoc</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2011-06-26 19:09:30 +00:00
|
|
|
<a href="http://docs.i2p-projekt.de/javadoc/net/i2p/router/transport/ntcp/package-summary.html">NTCP Javadoc</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li><li>
|
2011-06-26 19:09:30 +00:00
|
|
|
<a href="http://docs.i2p-projekt.de/javadoc/net/i2p/router/transport/udp/package-summary.html">SSU Javadoc</a>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li></ul>
|
|
|
|
|
|
|
|
<h3>Other Router Topics</h3>
|
|
|
|
<ul><li>
|
2010-08-22 02:18:28 +00:00
|
|
|
<a href="jbigi.html">Native BigInteger Library</a>
|
|
|
|
</li><li>
|
2010-08-08 13:45:30 +00:00
|
|
|
Time synchronization and NTP
|
2010-08-24 01:48:03 +00:00
|
|
|
</li><li>
|
2012-01-02 13:50:52 +00:00
|
|
|
<a href="performance.html">Performance</a> (not current)
|
2012-10-05 13:02:11 +00:00
|
|
|
</li><li>
|
|
|
|
<a href="configuration.html">Configuration File Format</a></li>
|
2010-08-08 13:45:30 +00:00
|
|
|
</li></ul>
|
|
|
|
|
2012-01-02 13:50:52 +00:00
|
|
|
<h3>Developer's Guides and Resources</h3>
|
2010-08-09 01:50:42 +00:00
|
|
|
<ul><li>
|
2012-11-11 05:31:01 +00:00
|
|
|
<a href="{{ site_url('volunteer/guides/newdevelopers') }}">New Developer's Guide</a>
|
2010-08-09 01:50:42 +00:00
|
|
|
</li><li>
|
2012-11-11 05:31:01 +00:00
|
|
|
<a href="{{ site_url('volunteer/guides/newtranslators') }}">New Translator's Guide</a>
|
2010-08-09 01:50:42 +00:00
|
|
|
</li><li>
|
2010-08-09 06:42:59 +00:00
|
|
|
<a href="monotone.html">Monotone Guide</a>
|
2010-08-24 01:48:03 +00:00
|
|
|
</li><li>
|
2012-11-11 05:31:01 +00:00
|
|
|
<a href="{{ site_url('volunteer/guides/devguidelines') }}">Developer Guidelines</a>
|
2012-01-28 18:33:49 +00:00
|
|
|
</li><li>
|
2012-01-02 13:50:52 +00:00
|
|
|
<a href="http://docs.i2p-projekt.de/javadoc/">Javadocs</a> (standard internet)
|
|
|
|
Note: always verify that javadocs are current by checking the release number.
|
2010-08-24 01:48:03 +00:00
|
|
|
</li><li>
|
2012-01-02 13:50:52 +00:00
|
|
|
Javadocs inside I2P:
|
2012-03-29 15:04:18 +00:00
|
|
|
<a href="http://i2p-javadocs.i2p">Server 1</a>
|
2012-06-08 17:24:57 +00:00
|
|
|
<a href="http://i2pdocs.str4d.i2p/i2p.i2p/javadoc/">Server 2</a>
|
|
|
|
<a href="http://echelon.i2p/javadoc/">Server 3</a>
|
2012-01-02 13:50:52 +00:00
|
|
|
<!--
|
2012-01-21 02:21:53 +00:00
|
|
|
<a href="http://docs.i2p2.i2p/javadoc/">Server 4 - out of date, incomplete</a>
|
2012-01-02 13:50:52 +00:00
|
|
|
-->
|
|
|
|
Note: always verify that javadocs are current by checking the release number.
|
|
|
|
</li><li>
|
2012-05-11 17:07:56 +00:00
|
|
|
<a href="ports.html">Ports used by I2P</a>
|
|
|
|
</li><li>
|
2012-01-02 13:50:52 +00:00
|
|
|
<a href="http://update.killyourtv.i2p/mtn/">Automatic updates to development builds inside I2P</a>
|
|
|
|
</li><li>
|
2012-05-21 12:53:15 +00:00
|
|
|
<a href="manualwrapper.html">Updating the wrapper manually</a>
|
|
|
|
</li><li>
|
2012-11-13 14:02:16 +00:00
|
|
|
<a href="http://forum.i2p">User forum (I2P internal)</a>
|
2012-01-02 13:50:52 +00:00
|
|
|
</li><li>
|
|
|
|
<a href="http://zzz.i2p/">Developer forum inside I2P</a>
|
|
|
|
</li><li>
|
|
|
|
<a href="http://trac.i2p2.de/report/1">Bug tracker</a>
|
|
|
|
</li><li>
|
2012-05-28 15:56:53 +00:00
|
|
|
<a href="http://stats.i2p/cgi-bin/viewmtn/">Viewmtn inside I2P</a>.
|
|
|
|
</li><li>
|
|
|
|
<a href="https://github.com/i2p/i2p.i2p">I2P Source exported to GitHub</a>
|
|
|
|
</li><li>
|
|
|
|
<a href="http://git.repo.i2p/w/i2p.i2p.git">I2P Source Git Repo inside I2P</a>
|
|
|
|
</li><li>
|
|
|
|
<a href="https://www.transifex.net/projects/p/I2P/">Source translation at Transifex</a>
|
|
|
|
</li><li>
|
2012-01-02 13:50:52 +00:00
|
|
|
<a href="http://trac.i2p2.de/09roadmap">0.9 roadmap wiki</a> (not current)
|
|
|
|
</li><li>
|
2012-11-11 05:31:01 +00:00
|
|
|
<a href="{{ site_url('volunteer/roadmap') }}">Old roadmap</a> (not current)
|
2012-01-02 13:50:52 +00:00
|
|
|
</li><li>
|
2012-11-11 05:31:01 +00:00
|
|
|
<a href="{{ site_url('volunteer/guides/todo') }}">To Do List</a> (not current)
|
2010-08-09 01:50:42 +00:00
|
|
|
</li></ul>
|
|
|
|
|
2010-08-08 13:45:30 +00:00
|
|
|
|
2008-02-03 02:46:04 +00:00
|
|
|
{% endblock %}
|