Monitoring I2P network performance

Before going into speed details you should know a bit about packet loss because that directly influences possible transfer rates. TCP packet loss is gathered by our CPU monitoring. UDP packet loss is recorded on the application level, inside I2P it is listed on the SSU peers page, last two columns or for outbound only you compare the event counts at the end of the stats page.

When comparing I2Speed to other installs, you will find we bring down inbound packet dups to near zero. On outbound results are lower than with TCP but they are not always below 1% depending on connection quality. We use a technique borrowed from TCP called fast retransmission, keeping speed higher but possibly sometimes sending out unnecessary dups, because with stock I2P on the other end we in part get random acknowledgements. Story here.

Now onto our raw speed:
Output from iptraf-ng over more than 3 minutes shows much higher UDP traffic compared to TCP, especially inbound. This is a bit more costly on CPU (we have optimized that anyway), but rewards you with higher speed, less packet loss and less burden on the entire network equipment. Compare to your current install.

               Total      Total    Incoming   Incoming    Outgoing   Outgoing 
             Packets      Bytes     Packets      Bytes     Packets      Bytes 
 Total:      1546246      1219M      705145    521113k      841101    698049k 
 IPv4:       1148219    892414k      502455    352008k      645764    540405k 
 IPv6:        398027    326549k      202690    168905k      195337    157644k 
 TCP:         561171    400808k      268035    141748k      293136    259060k 
 UDP:         980513    814896k      434137    377111k      546376    437785k 
 ICMP:           690     279896         661     277952          29       1944 
 Other IP:      3872    2979283        2312    1776812        1560    1202471 
                                                                               
 Total rates:       5391.05 kBps            Broadcast packets:           56   
                       7017 pps             Broadcast bytes:           2688   
 Incoming rates:    2389.92 kBps                                              
                       3231 pps                                               
 Outgoing rates:    3001.13 kBps                                              
                       3785 pps                                               

This also translates into higher speeds of individual UDP connections that on average clearly outperform TCP connections. TCP connections retransmit more frequently and that stalls them. Output from pktstat sampled for 180 seconds:

   Bps    % desc                                                                                                                    
160.5k   3% udp localmachine:12345 <-> 82.220.88.142:61151
118.2k   2% udp6 localmachine,12345 <-> 2a01:4f8:c0c:2e8:0:b00b:dead:beef,54567
113.5k   2% udp6 2001:41d0:8:bdd3::1,24478 <-> localmachine,12345
 99.0k   1% udp6 localmachine,12345 <-> 2a02:1205:34c4:bcc0::1,32167
 95.8k   1% tcp6 localmachine,54176 <-> 2a01:e0a:3d1:1070:192c:e7d2:5871:f4d8,20646
 76.2k   1% udp localmachine:12345 <-> 66.251.253.78:13324
 75.0k   1% udp localmachine:12345 <-> 198.91.54.178:11328
 72.0k   1% udp localmachine:12345 <-> 91.207.174.228:24480
 71.4k   1% udp localmachine:12345 <-> 54.37.216.193:14749
 68.7k   1% udp 136.50.59.125:25789 <-> localmachine:12345
 63.8k   1% udp6 2001:19f0:5:5b08:5400:1ff:fea9:ca14,28807 <-> localmachine,12345
 61.7k   1% udp localmachine:12345 <-> 192.241.165.222:26217
 61.6k   1% udp 188.167.137.25:9364 <-> localmachine:12345
 57.5k   1% udp localmachine:12345 <-> 81.156.232.22:28486
 56.5k   1% udp localmachine:12345 <-> 84.17.51.114:21946
 52.7k   1% tcp6 localmachine,12345 <-> 2a01:e0a:26a:3830:f8cb:a9ff:eadf:6398,54969
 52.3k   1% udp6 localmachine,12345 <-> 240f:78:8073:1:a998:abe5:8474:def8,36818
 51.0k   0% udp6 localmachine,12345 <-> 2a00:7b80:452:4000::6,25003
 46.3k   0% udp 144.91.106.71:22719 <-> localmachine:12345
 41.8k   0% udp 104.176.43.65:14933 <-> localmachine:12345
 41.0k   0% tcp 176.95.191.188:30402 <-> localmachine:43156
 40.7k   0% udp6 localmachine,12345 <-> 2a01:4f8:191:1066::2,27718
 39.4k   0% udp6 2001:41d0:8:d9c9::1,17911 <-> localmachine,12345
 39.2k   0% udp 185.25.48.168:25960 <-> localmachine:12345
 38.5k   0% udp6 localmachine,12345 <-> 2601:2c7:4400:4f40:95ce:fbc4:568:39b4,26348
 38.0k   0% udp6 localmachine,12345 <-> 2a03:4000:33:556:1812:cff:fefe:9efd,15195
 36.2k   0% udp6 localmachine,12345 <-> 2a02:2168:a0f:a116::1,9520
 35.8k   0% udp 162.221.207.227:22823 <-> localmachine:12345
 35.5k   0% udp localmachine:12345 <-> 76.109.45.83:20332
 35.2k   0% tcp localmachine:33646 <-> 45.78.129.145:23867
 34.9k   0% udp 188.60.77.133:16610 <-> localmachine:12345
 33.8k   0% tcp6 2001:19f0:6401:47f:5400:2ff:fe76:ebf0,12983 <-> localmachine,49666
 32.6k   0% udp6 localmachine,12345 <-> 2a00:23c3:2182:1f01:edf4:71c7:ae68:c516,34569
 32.4k   0% tcp localmachine:34212 <-> 91.171.187.16:55919
 31.7k   0% udp localmachine:12345 <-> 24.146.159.45:21174
 30.4k   0% udp localmachine:12345 <-> 5.164.215.131:28287
 29.5k   0% tcp6 localmachine,51326 <-> 2a02:180:2:92:feed:beef:32ad:affe,20556
 28.8k   0% udp 181.56.197.233:12024 <-> localmachine:12345

Questions welcome.

<-- Back