Uses of Package
net.i2p.client.streaming.impl
Package
Description
Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for
communicating over the IP-like (unreliable, unauthenticated, unordered) I2P
messages.
-
ClassDescriptionMaintain the state controlling a streaming connection between two destinations.This is not normally scheduled.Receive new connection attempts Use a bounded queue to limit the damage from SYN floods, router overload, or a slow clientCoordinate all of the connections for a single local destination.The callback interface for a pong.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 connectionReceive a packet for a particular connection - placing the data onto the queue, marking packets as acked, updating various fields, etc.Bridge to allow accepting new connectionsBridge between the full streaming lib and the I2PSocket APICentralize the coordination and multiplexing of the local client's streaming.Define the configuration for streaming and verifying data on the socket.Receive raw information from the I2PSession and turn it into Packets, if we can.Stream that can be given messages out of order yet present them in order.A stream that we can shove data into that fires off those bytes on flush or when the buffer is full.Define a component to receive data flushed from this streamDefine a way to detect the status of a writeThis 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.receive a packet and dispatch it correctly to the connection specified, the server socket, or queue a reply RST packet.This is the class used for outbound packets.Queue out packets to be sent through the session.Write a standard pcap file with a "TCP" packet that can be analyzed with standard tools such as wireshark.Per-destination timerExamine a connection's state and pick the right scheduler for it.Base schedulerCoordinates what we do 'next'.