initial impl
This commit is contained in:
26
pages/i2cp.html
Normal file
26
pages/i2cp.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<p>The I2P Client Protocol (I2CP) exposes a strong seperation of concerns between
|
||||||
|
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>
|
||||||
|
|
||||||
|
<p>At the moment, while the I2CP has been quite stable since its inception in
|
||||||
|
August of 2003, there have been minor modifications on occation, and until the
|
||||||
|
network as a whole is thoroughly peer reviewed (including the
|
||||||
|
<a href="how_encryption">encryption</a> used), making a hard and fast byte level
|
||||||
|
protocol specification does not seem like a wise use of time.</p>
|
Reference in New Issue
Block a user