See: Description
Interface | Description |
---|---|
ACKBitfield |
Generic means of SACK/NACK transmission for partially or fully
received messages
|
MessageQueue |
Base queue for messages not yet packetized
|
OutboundMessageFragments.ActiveThrottle |
throttle
|
SocketListener | |
SSU2Bitfield.Callback | |
SSU2Payload.PayloadCallback |
For all callbacks, recommend throwing exceptions only from the handshake.
|
SSU2Sender |
Basic interface over top of PeerState2 and PeerStateDestroyed,
so we can pass them both to PacketBuilder2 to send packets.
|
TimedWeightedPriorityMessageQueue.FailedListener |
Class | Description |
---|---|
DummyThrottle |
Since the TimedWeightedPriorityMessageQueue.add()
was disabled by jrandom in UDPTransport.java
on 2006-02-19, and the choke/unchoke was disabled at the same time,
all of TWPMQ is pointless, so just do this for now.
|
EstablishmentManager |
Coordinate the establishment of new sessions - both inbound and outbound.
|
EstablishmentManager.Token | |
InboundEstablishState |
Data for a new connection being established, where the remote peer has
initiated the connection with us.
|
InboundEstablishState2 |
Data for a new connection being established, where the remote peer has
initiated the connection with us.
|
InboundMessageFragments |
Organize the received data message fragments, feeding completed messages
to the
MessageReceiver and telling the PeerState
to ACK. |
InboundMessageFragments.ModifiableLong |
Modifiable Long, no locking
|
InboundMessageState |
Hold the raw data fragments of an inbound message.
|
IntroductionManager |
Keep track of inbound and outbound introductions.
|
IPThrottler |
Count IPs
|
MessageReceiver |
Pull fully completed fragments off the
InboundMessageFragments queue,
parse 'em into I2NPMessages, and stick them on the
InNetMessagePool by way of the UDPTransport . |
MTU |
Get the MTU for the network interface of an address.
|
OutboundEstablishState |
Data for a new connection being established, where we initiated the
connection with a remote peer.
|
OutboundEstablishState2 |
Data for a new connection being established, where we initiated the
connection with a remote peer.
|
OutboundMessageFragments |
Coordinate the outbound fragments and select the next one to be built.
|
OutboundMessageState |
Maintain the outbound fragmentation for resending, for a single message.
|
OutboundRefiller |
Blocking thread to grab new messages off the outbound queue and
plopping them into our active pool.
|
PacketBuilder | |
PacketBuilder.Fragment |
Class for passing multiple fragments to buildPacket()
|
PacketBuilder2 |
SSU2 only
|
PacketHandler |
Pull inbound packets from the inbound receiver's queue, figure out what
peer session they belong to (if any), authenticate and decrypt them
with the appropriate keys, and push them to the appropriate handler.
|
PacketPusher |
Blocking thread to grab new packets off the outbound fragment
pool and toss 'em onto the outbound packet queues.
|
PeerState |
Contain all of the state about a UDP connection to a peer.
|
PeerState2 |
Contain all of the state about a UDP connection to a peer.
|
PeerStateDestroyed |
Small, stub version of PeerState2, for handling destroy acks
with possible tokens in them.
|
PeerTestEvent |
Initiate a test (we are Alice)
|
PeerTestManager |
Entry points are runTest() to start a new test as Alice,
and receiveTest() for all received test packets.
|
PeerTestState |
Track the state of a peer test.
|
RemoteHostId |
Unique ID for a peer - its IP + port, all bundled into a tidy obj.
|
SimpleBandwidthEstimator |
A Westwood+ bandwidth estimator with
a first stage anti-aliasing low pass filter based on RTT,
and the time-varying Westwood filter based on inter-arrival time.
|
SSU2Bitfield |
Container of a long array representing set and unset bits.
|
SSU2Header |
Encrypt/decrypt headers
|
SSU2Header.Header |
A temporary structure returned from trial decrypt,
with methods to access the fields.
|
SSU2Payload |
SSU2 Payload generation and parsing
|
SSU2Payload.AckBlock | |
SSU2Payload.AddressBlock | |
SSU2Payload.Block |
Base class for blocks to be transmitted.
|
SSU2Payload.DateTimeBlock | |
SSU2Payload.FirstFragBlock |
Same format as I2NPBlock
|
SSU2Payload.FollowFragBlock | |
SSU2Payload.I2NPBlock | |
SSU2Payload.NewTokenBlock | |
SSU2Payload.OptionsBlock | |
SSU2Payload.PaddingBlock | |
SSU2Payload.PathChallengeBlock | |
SSU2Payload.PathResponseBlock | |
SSU2Payload.PeerTestBlock | |
SSU2Payload.RelayIntroBlock | |
SSU2Payload.RelayRequestBlock | |
SSU2Payload.RelayResponseBlock | |
SSU2Payload.RelayTagBlock | |
SSU2Payload.RelayTagRequestBlock | |
SSU2Payload.RIBlock | |
SSU2Payload.TerminationBlock | |
SSU2Util |
SSU2 Utils and constants
|
TimedWeightedPriorityMessageQueue |
Weighted priority queue implementation for the outbound messages, coupled
with code to fail messages that expire.
|
UDPAddress |
basic helper to parse out peer info from a udp address
|
UDPEndpoint |
Coordinate the low-level datagram socket, creating and managing the UDPSender and
UDPReceiver.
|
UDPPacket |
Basic delivery unit containing the datagram.
|
UDPReceiver |
Lowest level component to pull raw UDP datagrams off the wire as fast
as possible, controlled by both the bandwidth limiter and the router's
throttle.
|
UDPSender |
Lowest level packet sender, pushes anything on its queue ASAP.
|
UDPTransport |
The SSU transport
|
Enum | Description |
---|---|
InboundEstablishState.InboundState | |
OutboundEstablishState.OutboundState | |
OutboundEstablishState2.IntroState |
Per-introducer introduction states
|
PeerTestState.Role |
The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP.