Package net.i2p.router.transport.udp

Interface Summary
ACKBitfield Generic means of SACK/NACK transmission for partially or fully received messages
MessageQueue Base queue for messages not yet packetized

Class Summary
ACKSender Blocking thread that is given peers by the inboundFragment pool, sending out any outstanding ACKs.
DummyThrottle Since the TimedWeightedPriorityMessageQueue.add() was disabled by jrandom in 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.
InboundEstablishState 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 ACKSender of new peers to ACK.
InboundMessageState Hold the raw data fragments of an inbound message
MessageReceiver Pull fully completed fragments off the InboundMessageFragments queue, parse 'em into I2NPMessages, and stick them on the InNetMessagePool by way of the UDPTransport.
OutboundEstablishState 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
OutboundRefiller Blocking thread to grab new messages off the outbound queue and plopping them into our active pool.
PacketBuilder Big ol' class to do all our packet formatting.
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 queue
PeerState Contain all of the state about a UDP connection to a peer.
PeerTestManager From udp.html on the website: The automation of collaborative reachability testing for peers is enabled by a sequence of PeerTest messages.
RemoteHostId Unique ID for a peer - its IP + port, all bundled into a tidy obj.
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, managing the UDPSender and UDPReceiver
UDPFlooder This sends random data to all UDP peers at a specified rate.
UDPPacket Basic delivery unit containing the datagram.
UDPPacketReader To read a packet, initialize this reader with the data and fetch out the appropriate fields.
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.