# Uses of Package
net.i2p.data.i2np

- Packages that use net.i2p.data.i2np
  Package | Description
  --- | ---
  net.i2p.data.i2np | This package defines the low-level messages sent between routers, called Invisible Internet Network Protocol (I2NP).
  net.i2p.router | The I2P router application handles I2P network communication.
  net.i2p.router.crypto.ratchet | Implementation of ECIES-X25519-AEAD-Ratchet cryptographic protocol (I2P proposal 144), providing forward secrecy and enhanced security for I2P transport communications.
  net.i2p.router.message | Garlic message creation, parsing, and source routing for I2P communications.
  net.i2p.router.networkdb | Network database management and coordination for the I2P distributed hash table.
  net.i2p.router.networkdb.kademlia | Kademlia DHT implementation and floodfill router functionality for I2P.
  net.i2p.router.transport | Transport layer implementations and management for I2P network communication.
  net.i2p.router.transport.ntcp | The NTCP (New TCP) transport for I2P, allowing I2P messages to be passed over TCP connections.
  net.i2p.router.transport.udp | The UDP transport (also known as 'SSU' or Secure Semi-reliable UDP transport) for I2P, allowing I2P messages to be passed over UDP connections.
  net.i2p.router.tunnel | Core tunnel management, message processing, and encryption for I2P's anonymous routing system.
  net.i2p.router.tunnel.pool | Tunnel pool management, creation, and peer selection for I2P's anonymous routing system.

- Classes in net.i2p.data.i2np used by net.i2p.data.i2np
  Class and Description
  DatabaseLookupMessage.Type Database lookup type enumeration.
  DeliveryInstructions Contains the delivery instructions for garlic cloves.
  EncryptedBuildRecord ElGamal-encrypted request or response.
  FastI2NPMessageImpl Ignore, but save, the SHA-256 checksum in the full 16-byte header when read in.
  I2NPMessage Base interface for all I2NP messages Note: No longer extends DataStructure as of 0.9.48
  I2NPMessageException Represent an error serializing or deserializing an APIMessage
  I2NPMessageHandler Handle messages from router to router.
  I2NPMessageImpl Defines the base message implementation.
  I2NPMessageImpl.Builder interface for extending the types of messages handled - unused
  ShortEncryptedBuildRecord Small records.
  TunnelBuildMessage The basic build message with 8 records.
  TunnelBuildMessageBase Base for TBM, TBRM, VTBM, VTBRM Retrofitted over them.
  TunnelBuildReplyMessage The basic build reply message with 8 records.

- Classes in net.i2p.data.i2np used by net.i2p.router
  Class and Description
  I2NPMessage Base interface for all I2NP messages Note: No longer extends DataStructure as of 0.9.48

- Classes in net.i2p.data.i2np used by net.i2p.router.crypto.ratchet
  Class and Description
  GarlicClove Contains one deliverable message encrypted to a router along with instructions and a certificate 'paying for' the delivery.
  I2NPMessageException Represent an error serializing or deserializing an APIMessage

- Classes in net.i2p.data.i2np used by net.i2p.router.message
  Class and Description
  DeliveryInstructions Contains the delivery instructions for garlic cloves.
  GarlicClove Contains one deliverable message encrypted to a router along with instructions and a certificate 'paying for' the delivery.
  GarlicMessage Defines the wrapped garlic message
  I2NPMessage Base interface for all I2NP messages Note: No longer extends DataStructure as of 0.9.48

- Classes in net.i2p.data.i2np used by net.i2p.router.networkdb
  Class and Description
  DatabaseLookupMessage Defines the message a router sends to another router to search for a key in the network database.
  I2NPMessage Base interface for all I2NP messages Note: No longer extends DataStructure as of 0.9.48

- Classes in net.i2p.data.i2np used by net.i2p.router.networkdb.kademlia
  Class and Description
  DatabaseLookupMessage Defines the message a router sends to another router to search for a key in the network database.
  DatabaseSearchReplyMessage Defines the message a router sends to another router in response to a search (DatabaseFindNearest or DatabaseLookup) when it doesn't have the value, specifying what routers it would search.
  DatabaseStoreMessage Defines the message a router sends to another router to test the network database reachability, as well as the reply message sent back.
  GarlicMessage Defines the wrapped garlic message
  I2NPMessage Base interface for all I2NP messages Note: No longer extends DataStructure as of 0.9.48

- Classes in net.i2p.data.i2np used by net.i2p.router.transport
  Class and Description
  I2NPMessage Base interface for all I2NP messages Note: No longer extends DataStructure as of 0.9.48

- Classes in net.i2p.data.i2np used by net.i2p.router.transport.ntcp
  Class and Description
  I2NPMessage Base interface for all I2NP messages Note: No longer extends DataStructure as of 0.9.48
  I2NPMessageException Represent an error serializing or deserializing an APIMessage

- Classes in net.i2p.data.i2np used by net.i2p.router.transport.udp
  Class and Description
  DatabaseStoreMessage Defines the message a router sends to another router to test the network database reachability, as well as the reply message sent back.
  I2NPMessage Base interface for all I2NP messages Note: No longer extends DataStructure as of 0.9.48
  I2NPMessageException Represent an error serializing or deserializing an APIMessage
  I2NPMessageHandler Handle messages from router to router.

- Classes in net.i2p.data.i2np used by net.i2p.router.tunnel
  Class and Description
  DeliveryInstructions Contains the delivery instructions for garlic cloves.
  I2NPMessage Base interface for all I2NP messages Note: No longer extends DataStructure as of 0.9.48
  TunnelDataMessage Defines the message sent between routers as part of the tunnel delivery The tunnel ID is changed in-place by TunnelParticipant.send(), so we can't reuse the checksum on output, but we still subclass FastI2NPMessageImpl so we don't verify the checksum on input...
  TunnelGatewayMessage Defines the message sent between one tunnel's endpoint and another's gateway.

- Classes in net.i2p.data.i2np used by net.i2p.router.tunnel.pool
  Class and Description
  BuildRequestRecord As of 0.9.48, supports two formats.
  TunnelBuildMessage The basic build message with 8 records.
  TunnelBuildReplyMessage The basic build reply message with 8 records.