Packages that use 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.
- Classes in net.i2p.client.streaming.impl used by net.i2p.client.streaming.implClassDescriptionMaintain the state controlling a streaming connection between two destinations.Reusable event to send an ACK for a duplicate packet after a short delay.Activity timer.Notify waiters to reschedule the connection event.Periodic evaluation of the throughput floor.Inner class for paced packet transmission.Timer event that resends a single outbound packet when it fires and then offers itself back to
_resendEventPoolfor reuse.A single retransmit timer for all packets.Verdict of one floor evaluation.Tail Loss Probe: fire at ~2*RTT to detect loss before the RTO timer.OneConnection.getWindowCeiling()cache entry: ceiling + sample time as a single atomically-published value (see the field's Javadoc).Receive data from the MessageOutputStream, build a packet, and send it through a connection.Receive new connection attemptsAccept-queue bookkeeping for one enqueued SYN.Coordinate all of the connections for a single local destination.Periodically drops temp-bans whose time has elapsed and resets the per-dest refusal window, so a ban always expires (24h default) and the refusal counter doesn't grow unbounded.The callback interface for a pong.Holds the state for a pending ping request, including optional payload and notification callback.Wrapper for a pooled connection with metadata.Encapsulates a connection rejection reason with an optional Retry-After duration in seconds.Outcome of evaluating one SYN burst-gate trip against the dest's recorded strike.A recorded SYN-burst strike, and how many distinct burst windows this dest has tripped inside the current strike window.Define the current options for the con (and allow custom tweaking midstream).RTT initialization state machine.Receive a packet for a particular connection - placing the data onto the queue, marking packets as acked, updating various fields, etc.Count how often we have received an incoming connection This offers basic DOS protection but is not a complete solution.Decays the per-peer counts on a schedule.Bridge to allow accepting new connections.Bridge between the full streaming lib and the I2PSocket API.Centralize 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.InputStream implementation that accepts messages arriving out of order and presents the data in proper sequence for reading.An OutputStream implementation that buffers data and forwards it to aMessageOutputStream.DataReceiverin chunks upon buffer full or flush.Interface for receiving data flushed from this stream.Passive flush timer to flush buffered data after inactivity delay.Interface to detect status of an asynchronous write operation.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.Dispatch inbound stream packets to a small pool of single-threaded shard workers, so a slow or hostile connection no longer stalls the session notifier thread for every other connection on the same destination.Queue element: keeps the already-resolved connection with its packet.Process one dispatched (connection, packet) pair.One worker drains its own bounded queue; started in the dispatcher ctor.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.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 timer for scheduling packet retransmissions.Examine a connection's state and pick the right scheduler for it.Base class for connection state schedulers.Bridge to I2PServerSocket.Coordinates what we do 'next'.Share important TCP Control Block parameters across Connections to the same remote peer.Periodic timer event that removes expired entries from the cache.A cached entry holding dampened TCB parameters for a remote peer.