The Basics

Messages (which exist on top of the Transports layer), contain varying types of information that are needed for the network but, most importantly, everything you see, do, send, or receive, will come and go in the form of messages.

There are 2 essential types of messages in I2P:

Essentially: Tunnel messages contain I2NP message fragments which are then reassembled at certain points within a Tunnel's path.

In-depth information

I2NP messages have a close relationship with Tunnel Messages so it is easy to get the term messages confused when reading Java I2P specifications:

  1. First, the tunnel gateway accumulates a number of I2NP messages and preprocesses them into tunnel messages for delivery.
  2. Next, that gateway encrypts that preprocessed data, then forwards it to the first hop.
  3. That peer, and subsequent tunnel participants, unwrap a layer of the encryption, verifying that it isn't a duplicate, then forward it on to the next peer.
  4. Eventually, the tunnel messages arrive at the endpoint where the I2NP messages originally bundled by the gateway are reassembled and forwarded on as requested.