## Uses of Class
net.i2p.data.i2np.FastI2NPMessageImpl

- Packages that use FastI2NPMessageImpl
  Package | Description
  --- | ---
  net.i2p.data.i2np | This package defines the low-level messages sent between routers, called Invisible Internet Network Protocol (I2NP).

- - ### Uses of FastI2NPMessageImpl in net.i2p.data.i2np

    Subclasses of FastI2NPMessageImpl in net.i2p.data.i2np
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DatabaseLookupMessage` Defines the message a router sends to another router to search for a key in the network database.
    `class` | `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.
    `class` | `DatabaseStoreMessage` Defines the message a router sends to another router to test the network database reachability, as well as the reply message sent back.
    `class` | `DataMessage` Defines a message containing arbitrary bytes of data This is what goes in a GarlicClove.
    `class` | `DeliveryStatusMessage` Defines the message sent back in reply to a message when requested, containing the private ack id.
    `class` | `GarlicMessage` Defines the wrapped garlic message
    `class` | `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...
    `class` | `TunnelGatewayMessage` Defines the message sent between one tunnel's endpoint and another's gateway.
    `class` | `UnknownI2NPMessage` This is similar to DataMessage or GarlicMessage but with a variable message type.