- Sep 10, 2005
-
- Sep 07, 2005
-
-
* HTML cleanup for the router console (thanks!) 2005-09-07 jrandom * Lay the foundation for 'client routers' - the ability for peers to opt out of participating in tunnels entirely due to firewall/NAT issues. Individual routers have control over where those peers are used in tunnels - in outbound or inbound, exploratory or client tunnels, or none at all. The defaults with this build are to simply act as before - placing everyone as potential participants in any tunnel. * Another part of the foundation includes the option for netDb participants to refuse to answer queries regarding peers who are marked as unreachable, though this too is disabled by default (meaning the routerInfo is retrievable from the netDb).
-
- Sep 05, 2005
-
- Sep 04, 2005
-
-
* Don't persist peer profiles until we are shutting down, as the persistence process gobbles RAM and wall time. * Bugfix to allow you to check/uncheck the sharedClient setting on the I2PTunnel web interface. * Be more careful when expiring a failed tunnel message fragment so we don't drop the data while attempting to read it.
- Sep 02, 2005
-
-
- Sep 01, 2005
-
-
-
* Don't publish leaseSets to the netDb if they will never be looked for - namely, if they are for destinations that only establish outbound streams. I2PTunnel's 'client' and 'httpclient' proxies have been modified to tell the router that it doesn't need to publish their leaseSet (by setting the I2CP config option 'i2cp.dontPublishLeaseSet' to 'true'). * Don't publish the top 10 peer rankings of each router in the netdb, as it isn't being watched right now.
-
- Aug 30, 2005
-
- Aug 27, 2005
-
- Aug 24, 2005
-
-
* Catch errors with corrupt tunnel messages more gracefully (no need to kill the thread and cause an OOM...) * Don't skip shitlisted peers for netDb store messages, as they aren't necessarily shitlisted by other people (though they probably are). * Adjust the netDb store per-peer timeout based on each particular peer's profile (timeout = 4x their average netDb store response time) * Don't republish leaseSets to *failed* peers - send them to peers who replied but just didn't know the value. * Set a 5 second timeout on the I2PTunnelHTTPServer reading the client's HTTP headers, rather than blocking indefinitely. HTTP headers should be sent entirely within the first streaming packet anyway, so this won't be a problem. * Don't use the I2PTunnel*Server handler thread pool by default, as it may prevent any clients from accessing the server if the handlers get blocked by the streaming lib or other issues. * Don't overwrite a known status (OK/ERR-Reject/ERR-SymmetricNAT) with Unknown.
-
- Aug 23, 2005
-
-
* Removed the concept of "no bandwidth limit" - if none is specified, its 16KBps in/out. * Include ack packets in the per-peer cwin throttle (they were part of the bandwidth limit though). * Tweak the SSU cwin operation to get more accurrate estimates under congestions. * SSU improvements to resend more efficiently. * Added a basic scheduler to eepget to fetch multiple files sequentially.
-
- Aug 21, 2005
-
-
- Aug 17, 2005
-
-
* Revise the SSU peer testing protocol so that Bob verifies Charlie's viability before agreeing to Alice's request. This doesn't work with older SSU peer test builds, but is backwards compatible (older nodes won't ask newer nodes to participate in tests, and newer nodes won't ask older nodes to either).
-
- Aug 12, 2005
-
-
* Keep detailed stats on the peer testing, publishing the results in the netDb. * Don't overwrite the status with 'unknown' unless we haven't had a valid status in a while. * Make sure to avoid shitlisted peers for peer testing. * When we get an unknown result to a peer test, try again soon afterwards. * When a peer tells us that our address is different from what we expect, if we've done a recent peer test with a result of OK, fire off a peer test to make sure our IP/port is still valid. If our test is old or the result was not OK, accept their suggestion, but queue up a peer test for later. * Don't try to do a netDb store to a shitlisted peer, and adjust the way we monitor netDb store progress (to clear up the high netDb.storePeers stat)
-
- Aug 10, 2005
-
-
* Deployed the peer testing implementation to be run every few minutes on each router, as well as any time the user requests a test manually. The tests do not reconfigure the ports at the moment, merely determine under what conditions the local router is reachable. The status shown in the top left will be "ERR-SymmetricNAT" if the user's IP and port show up differently for different peers, "ERR-Reject" if the router cannot receive unsolicited packets or the peer helping test could not find a collaborator, "Unknown" if the test has not been run or the test participants were unreachable, or "OK" if the router can receive unsolicited connections and those connections use the same IP and port.
-
- Aug 08, 2005
-
- Aug 07, 2005
-
-
* Display the average clock skew for both SSU and TCP connections 2005-08-07 jrandom * Fixed the long standing streaming lib bug where we could lose the first packet on retransmission. * Avoid an NPE when a message expires on the SSU queue. * Adjust the streaming lib's window growth factor with an additional Vegas-esque congestion detection algorithm. * Removed an unnecessary SSU session drop * Reduced the MTU (until we get a working PMTU lib) * Deferr tunnel acceptance until we know how to reach the next hop, rejecting it if we can't find them in time. * If our netDb store of our leaseSet fails, give it a few seconds before republishing.
-
- Aug 03, 2005
-
-
- Aug 02, 2005
-
- Aug 01, 2005
-
- Jul 31, 2005
-
-
* Adjust the netDb search and store per peer timeouts to match the average measured per peer success times, rather than huge fixed values. * Optimized and reverified the netDb peer selection / retrieval process within the kbuckets. * Drop TCP connections that don't have any useful activity in 10 minutes. * If i2np.udp.fixedPort=true, never change the externally published port, even if we are autodetecting the IP address. (also includes most of the new peer/NAT testing, but thats not used atm)
-
- 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 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
-
- May 25, 2005
-
- May 02, 2005
-
- May 01, 2005
-
-
* 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
-