- Jul 27, 2005
-
-
2005-07-27 jrandom * Enabled SSU as the default top priority transport, adjusting the config.jsp page accordingly. * Add verification fields to the SSU and TCP connection negotiation (not compatible with previous builds) * Enable the backwards incompatible tunnel crypto change as documented in tunnel-alt.html (have each hop encrypt the received IV before using it, then encrypt it again before sending it on) * Disable the I2CP encryption, leaving in place the end to end garlic encryption (another backwards incompatible change) * Adjust the protocol versions on the TCP and SSU transports so that they won't talk to older routers. * Fix up the config stats handling again * Fix a rare off-by-one in the SSU fragmentation * Reduce some unnecessary netDb resending by inluding the peers queried successfully in the store redundancy count.
- Jul 23, 2005
-
- Jul 21, 2005
-
- Jul 20, 2005
-
- Jul 19, 2005
-
- Jul 16, 2005
-
- Jul 13, 2005
-
- Jul 12, 2005
-
- Jul 11, 2005
-
-
* Reduced the growth factor on the slow start and congestion avoidance for the streaming lib. * Adjusted some of the I2PTunnelServer threading to use a small pool of handlers, rather than launching off new threads which then immediately launch off an I2PTunnelRunner instance (which launches 3 more threads..) * Don't persist session keys / session tags (not worth it, for now) * Added some detection and handling code for duplicate session tags being delivered (root cause still not addressed) * Make the PRNG's buffer size configurable (via the config property "i2p.prng.totalBufferSizeKB=4096") * Disable SSU flooding by default (duh) * Updates to the StreamSink apps for better throttling tests.
- Jul 09, 2005
-
- Jul 07, 2005
-
- Jul 05, 2005
-
- Jul 04, 2005
-
-
* Within the tunnel, use xor(IV, msg[0:16]) as the flag to detect dups, rather than the IV by itself, preventing an attack that would let colluding internal adversaries tag a message to determine that they are in the same tunnel. Thanks dvorak for the catch! * Drop long inactive profiles on startup and shutdown * /configstats.jsp: web interface to pick what stats to log * Deliver more session tags to account for wider window sizes * Cache some intermediate values in our HMACSHA256 and BC's HMAC * Track the client send rate (stream.sendBps and client.sendBpsRaw) * UrlLauncher: adjust the browser selection order * I2PAppContext: hooks for dummy HMACSHA256 and a weak PRNG * StreamSinkClient: add support for sending an unlimited amount of data * Migrate the tests out of the default build jars 2005-06-22 Comwiz * Migrate the core tests to junit
-
- Jun 23, 2005
-
- Jun 03, 2005
-
- May 26, 2005
-
- May 25, 2005
-
- May 10, 2005
-
- May 04, 2005
-
- May 03, 2005
-
- May 02, 2005
-
- May 01, 2005
-
-
* increased the maximum number of fragments allowed in a message from 31 to 127, reducing the maximum fragment size to 8KB and moving around some bits in the fragment info. This is not backwards compatible. * removed the old (hokey) congestion control description, replacing it with the TCP-esque algorithm implemented note: the code for the ACK bitfields and fragment info changes have not yet been implemented, so the old version of this document describes whats going on in the live net. the new bitfields / fragment info should be deployed in the next day or so (hopefully :)
-
* Cleaned up the peers page a bit more. more udp stuff: * add new config option: i2np.udp.alwaysPreferred=true to adjust the bidding so that UDP is picked first, even if a TCP connection exists * fixed the initial clock skew problem (duh) * reduced the MTU to 576 (largest nearly-universally-safe, and allows a tunnel message in 2 fragments) * handle some races @ connection establishment (thanks duck!) * if there are more ACKs than we can send in a packet, reschedule another ACK immediately
-
- Apr 30, 2005
-
-
* Reduced some SimpleTimer churn * add hooks for per-peer choking in the outbound message queue - if/when a peer reaches their cwin, no further messages will enter the 'active' pool until there are more bytes available. other messages waiting (either later on in the same priority queue, or in the queues for other priorities) may take that slot. * when we have a message acked, release the acked size to the congestion window (duh), rather than waiting for the second to expire and refill the capacity. * send packets in a volley explicitly, waiting until we can allocate the full cwin size for that message
-
- Apr 29, 2005
-
-
* Reduce the peer profile stat coallesce overhead by inlining it with the reorganize. * Limit each transport to at most one address (any transport that requires multiple entry points can include those alternatives in the address). udp stuff: * change the UDP transport's style from "udp" to "SSUv1" * keep track of each peer's skew * properly handle session reestablishment over an existing session, rather than requiring both sides to expire first
- Apr 28, 2005
-
-
* More fixes for the I2PTunnel "other" interface handling (thanks nelgin!) * Add back the code to handle bids from multiple transports (though there is still only one transport enabled by default) * Adjust the router's queueing of outbound client messages when under heavy load by running the preparatory job in the client's I2CP handler thread, thereby blocking additional outbound messages when the router is hosed. * No need to validate or persist a netDb entry if we already have it And for some udp stuff: * only bid on what we know (duh) * reduceed the queue size in the UDPSender itself, so that ACKs go through more quickly, leaving the payload messages to queue up in the outbound fragment scheduler * rather than /= 2 on congestion, /= 2/3 (still AIMD, but less drastic) * adjust the fragment selector so a wsiz throttle won't force extra volleys * mark congestion when it occurs, not after the message has been ACKed * when doing a round robin over the active messages, move on to the next after a full volley, not after each packet (causing less "fair" performance but better latency) * reduced the lock contention in the inboundMessageFragments by moving the ack and complete queues to the ACKSender and MessageReceiver respectively (each of which have their own threads) * prefer new and existing UDP sessions to new TCP sessions, but prefer existing TCP sessions to new UDP sessions
-