2008-01-31 20:38:37 +00:00
|
|
|
{% extends "_layout.html" %}
|
|
|
|
{% block title %}I2CP{% endblock %}
|
2008-02-10 14:17:56 +00:00
|
|
|
{% block content %}
|
2008-02-10 22:43:33 +00:00
|
|
|
<p>The I2P Client Protocol (I2CP) exposes a strong separation of concerns between
|
2004-07-20 23:23:23 +00:00
|
|
|
the router and any client that wishes to communicate over the network. It enables
|
|
|
|
secure and asynchronous messaging by sending and receiving messages over a
|
|
|
|
single TCP socket, yet never exposing any private keys and authenticating itself
|
|
|
|
to the router only through signatures. With I2CP, a client application tells the
|
|
|
|
router who they are (their "destination"), what anonymity, reliability, and
|
|
|
|
latency tradeoffs to make, and where to send messages. In turn the router uses
|
|
|
|
I2CP to tell the client when any messages have arrived, to request authorization
|
|
|
|
for some tunnels to be used, and, if necessary, to notify the client that the
|
|
|
|
router is under attack and unable to operate safely.</p>
|
|
|
|
|
|
|
|
<p>As the I2CP requires all client libraries to provide an implementation of the
|
|
|
|
end to end encryption (including <a href="how_elgamalaes">ElGamal/AES+SessionTag</a>),
|
|
|
|
the protocol itself isn't likely to be adopted for normal client applications
|
|
|
|
(except for those implemented in Java that can use the existing I2P
|
|
|
|
<a href="http://www.i2p.net/javadoc/net/i2p/client/package-summary.html">SDK</a>).
|
|
|
|
Instead, applications can take advantage of the base I2CP plus the
|
|
|
|
<a href="ministreaming">streaming</a> and <a href="datagrams">datagram</a> libraries
|
|
|
|
by using the <a href="sam">Simple Anonymous Messaging</a> protocol (which does not
|
|
|
|
require clients to deal with any sort of cryptography).</p>
|
|
|
|
|
2008-02-10 14:17:56 +00:00
|
|
|
<p>While the I2CP has been quite stable since its inception in
|
|
|
|
August of 2003, there have been minor modifications on occasion.
|
2008-03-20 02:47:11 +00:00
|
|
|
Here is the
|
|
|
|
<a href="/_static/pdf/I2CP_spec.pdf">I2CP Protocol Specification Version 0.9</a>
|
|
|
|
(pdf) dated August 28, 2003.
|
|
|
|
There may have been undocumented changes to the protocol since that time.
|
2008-02-10 14:17:56 +00:00
|
|
|
</p>
|
|
|
|
|
2008-03-16 16:17:05 +00:00
|
|
|
<p>In a standard I2P installation, port 7654 is used by java clients to communicate
|
|
|
|
with the local router via I2CP.
|
|
|
|
</p>
|
|
|
|
|
2008-02-10 14:17:56 +00:00
|
|
|
{% endblock %}
|