Opened 8 years ago

Last modified 5 years ago

#774 open enhancement

ACKSender study & optimizations

Reported by: Zlatin Balevsky Owned by: Zlatin Balevsky
Priority: minor Milestone:
Component: router/transport Version: 0.9.3
Keywords: SSU Cc: Zlatin Balevsky
Parent Tickets: Sensitive: no


I'm seeing some evidence that reducing further the delay in acks improves throughput. Will investigate further.

See the attached chart of incoming bandwidth for details. The relevant code changes are

--- router/java/src/net/i2p/router/transport/udp/ 1164f1c830ff99c0a7fd664fc9eba5ce34b93869
+++ router/java/src/net/i2p/router/transport/udp/ a50afcb1d0caf075cf03eb027e5fcc3daeb75bb5
@@ -28,7 +28,7 @@ class ACKSender implements Runnable {
     private static final long POISON_PS = -9999999999l;
     /** how frequently do we want to send ACKs to a peer? */
-    static final int ACK_FREQUENCY = 350;
+    static final int ACK_FREQUENCY = 50;
     public ACKSender(RouterContext ctx, UDPTransport transport) {
         _context = ctx;
@@ -77,9 +77,9 @@ class ACKSender implements Runnable {
         // if we are actively pumping lots of data to them, we can depend upon
         // the unsentACKThreshold to figure out when to send an ACK instead of
         // using the timer, so we can set the timeout/frequency higher
-        if (timeSinceACK < 2*1000)
-            return Math.max(rtt/2, ACK_FREQUENCY);
-        else
+//        if (timeSinceACK < 2*1000)
+//            return Math.max(rtt/2, ACK_FREQUENCY);
+//        else
             return ACK_FREQUENCY;

the full (mostly unrelated) changes in the -zab-ackf build are here http://pastethis.i2p/show/2220/


Attachments (1)

bw-ackf.png (20.9 KB) - added by Zlatin Balevsky 8 years ago.
Incoming bandwidth on dev router

Download all attachments as: .zip

Change History (3)

Changed 8 years ago by Zlatin Balevsky

Attachment: bw-ackf.png added

Incoming bandwidth on dev router

comment:1 Changed 8 years ago by Zlatin Balevsky

Component: unspecifiedrouter/transport
Keywords: SSU added

comment:2 Changed 5 years ago by str4d

Status: newopen
Note: See TracTickets for help on using tickets.