Package net.i2p.router.tunnel.pool

Tunnel creation, tunnel build message handling. Peer selection for tunnels. Grouping of tunnels into inbound and outbound pools. Pool configuration. Adaptive tunnel build strategy. Build request throttling, acceptance, rejection, and dropping based on local statistics and conditions.

  • Class Summary 
    Class Description
    AliasedTunnelPool
    A tunnel pool with its own settings and Destination, but uses another pool for its tunnels.
    BuildExecutor
    Single threaded controller of the tunnel creation process, spanning all tunnel pools.
    BuildHandler
    Handle the received tunnel build message requests and replies, including sending responses to requests, updating the lists of our tunnels and participating tunnels, and updating stats.
    BuildMessageGenerator
    Fill in the encrypted BuildRequestRecords in a TunnelBuildMessage
    BuildMessageProcessor
    Receive the build message at a certain hop, decrypt its encrypted record, read the enclosed tunnel request, decide how to reply, write the reply, encrypt the reply record, and return a TunnelBuildMessage to forward on to the next hop.
    BuildReplyHandler
    Decrypt the layers of a tunnel build reply message, determining whether the individual hops agreed to participate in the tunnel, or if not, why not.
    BuildRequestor
    Methods for creating Tunnel Build Messages, i.e.
    ClientPeerSelector
    Pick peers randomly out of the fast pool, and put them into tunnels ordered by XOR distance from a random key.
    ConnectChecker
    Tools to check transport compatibility.
    ExpireJob
    This runs twice for each tunnel.
    ExploratoryPeerSelector
    Pick peers randomly out of the not-failing pool, and put them into a tunnel ordered by XOR distance from a random key.
    ParticipatingThrottler
    Count how often we have accepted a tunnel with the peer as the previous or next hop.
    PooledTunnelCreatorConfig
    Data about a tunnel we created
    RequestThrottler
    Like ParticipatingThrottler, but checked much earlier, cleaned more frequently, and with more than double the min and max limits.
    TestJob
    Repeatedly test a single tunnel for its entire lifetime, or until the pool is shut down or removed from the client manager.
    TunnelPeerSelector
    Coordinate the selection of peers to go into a tunnel for one particular pool.
    TunnelPool
    A group of tunnels for the router or a particular client, in a single direction.
    TunnelPoolManager
    Manage all the exploratory and client tunnel pools.