Package net.i2p.router.tunnel.pool
Class ParticipatingThrottler
java.lang.Object
net.i2p.router.tunnel.pool.ParticipatingThrottler
class ParticipatingThrottler extends Object
Count how often we have accepted a tunnel with the peer
as the previous or next hop.
We limit each peer to a percentage of all participating tunnels,
subject to minimum and maximum values for the limit.
This offers basic protection against simple attacks
but is not a complete solution, as by design, we don't know
the originator of a tunnel request.
This also effectively limits the number of tunnels between
any given pair of routers, which probably isn't a bad thing.
Note that the actual limits will be higher than specified
by up to 1 / LIFETIME_PORTION because the counter window resets.
Note that the counts are of previous + next hops, so the total will
be higher than the participating tunnel count, and will also grow
as the network uses more 3-hop tunnels.
- Since:
- 0.8.4
-
Constructor Summary
Constructors Constructor Description ParticipatingThrottler(RouterContext ctx)
-
Method Summary
Modifier and Type Method Description (package private) boolean
shouldThrottle(Hash h)
increments before checking
-
Constructor Details
-
ParticipatingThrottler
ParticipatingThrottler(RouterContext ctx)
-
-
Method Details
-
shouldThrottle
increments before checking
-