# Uses of Package
net.i2p.client.streaming.impl

- Packages that use net.i2p.client.streaming.impl
  Package | Description
  --- | ---
  net.i2p.client.streaming.impl | Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.

- Classes in net.i2p.client.streaming.impl used by net.i2p.client.streaming.impl
  Class and Description
  Connection Maintain the state controlling a streaming connection between two destinations.
  Connection.ResendPacketEvent This is not normally scheduled.
  ConnectionHandler Receive new connection attempts Use a bounded queue to limit the damage from SYN floods, router overload, or a slow client
  ConnectionManager Coordinate all of the connections for a single local destination.
  ConnectionManager.PingNotifier The callback interface for a pong.
  ConnectionOptions Define the current options for the con (and allow custom tweaking midstream) TODO many of these are not per-connection options, and should be migrated somewhere so they aren't copied for every connection
  ConnectionPacketHandler Receive a packet for a particular connection - placing the data onto the queue, marking packets as acked, updating various fields, etc.
  I2PServerSocketFull Bridge to allow accepting new connections
  I2PSocketFull Bridge between the full streaming lib and the I2PSocket API
  I2PSocketManagerFull Centralize the coordination and multiplexing of the local client's streaming.
  I2PSocketOptionsImpl Define the configuration for streaming and verifying data on the socket.
  MessageHandler Receive raw information from the I2PSession and turn it into Packets, if we can.
  MessageInputStream InputStream implementation that accepts messages arriving out of order and presents the data in proper sequence for reading.
  MessageOutputStream An OutputStream implementation that buffers data and forwards it to a `MessageOutputStream.DataReceiver` in chunks upon buffer full or flush.
  MessageOutputStream.DataReceiver Interface for receiving data flushed from this stream.
  MessageOutputStream.WriteStatus Interface to detect status of an asynchronous write operation.
  Packet This contains solely the data that goes out on the wire, including the local and remote port which is embedded in the I2CP overhead, not in the packet itself.
  PacketHandler Handles incoming packets by dispatching them to the appropriate connection, server socket, or responding with a reset (RST) packet if no valid connection is found.
  PacketLocal This is the class used for outbound packets.
  PacketQueue Queue out packets to be sent through the session.
  PcapWriter Write a standard pcap file with a "TCP" packet that can be analyzed with standard tools such as wireshark.
  RetransmissionTimer Per-destination timer
  SchedulerChooser Examine a connection's state and pick the right scheduler for it.
  SchedulerImpl Base scheduler
  TaskScheduler Coordinates what we do 'next'.