package net.i2p.router.transport.ntcp
NTCP2, the TCP transport: framed, ratchet-encrypted and mutually authenticated connections between routers. Not for use by apps, clients or plugins.
See also: NTCP2 specification.
- ClassDescriptionBase class for NTCP connection establishment.Establish state that failed, to retry later.States for NTCP connection establishment process.Establish state that passed signature verification.Interface for handling NTCP connection establishment state machine.The main NTCP NIO event loop thread responsible for high-throughput, low-latency handling of inbound and outbound NTCP connections using non-blocking I/O.Outcome of screening an inbound Session Request against the bans, connection limits, and flood defenses before the connection is accepted.Creates byte buffers for the read buffer cache.How a thrown exception from outbound connect setup should be treated.Outcome of
EventPumper.evaluateInboundFlood(long, int, int, long, boolean, int, int, RandomSource): whether to reject the incoming connection plus the numbers used in the warn log, so the caller stays side-effect free.Creates byte arrays for the write buffer cache.Progress of a single write-buffer drain step.NTCP 2 inbound connection establishment state machine.NTCP2 Padding/Dummy/Delay configuration for data phase.NTCP 2 payload generation and parsing utilities.Base class for NTCP 2 payload blocks to be transmitted.Block containing the current date and time.Block containing I2NP message.Block containing options data.Block containing padding data.For all callbacks, recommend throwing exceptions only from the handshake.Block containing router information.Block containing termination data.Coordinates a connection to a single peer using NTCP 1 or NTCP 2 protocols.Reusable NTCP2 payload block list and blocks, per writer thread.Buffer for preparing data to be written to the connection.The current phase of reading from the socket.Handles asynchronous post-send processing of OutNetMessage using a dynamically resizable thread pool executor with a bounded queue and backpressure.Factory naming the finisher pool's threads.Executor growing and shrinking the finisher pool.Non-blocking TCP (NTCP) transport implementation for I2P.The bid tier selected by the capacity/cost cascade, in order from most to least attractive.How a peer's announced network id compares with ours: the same, absent, or a different network, whichNTCPTransport.bid(RouterInfo, int)treats as grounds for a ban rather than an unreachable peer.NTCP 2 only.State of the outbound NTCP2 handshake.Pool of running threads which will process any read bytes on any of the NTCPConnections, including decryption of the data read, connection handshaking, parsing bytes into I2NP messages, etc.Pool of running threads which will transform the next I2NP message into something ready to be transferred over an NTCP connection, including encryption of the data read.