Matthew Toseland wrote: > On Tuesday 21 August 2007 00:13, Matthew Toseland wrote: >> On Monday 20 August 2007 21:59, Malkus Lindroos wrote: >>> Of course it depends on what the ping time is supposed to reflect? At >>> least for my nodes it seems to reflect the load of the network the node >>> is connected to, not the load of the node or its internet connection. >> It's a combination of the round trip time under ideal conditions (<0.2ms on > my >> LAN), and the effect of the traffic on the links between the nodes > (including >> rate limiting). > > Sorry, not just network load, ping time is highly sensitive to CPU load on > both ends too. This is why it's such a useful metric; we can't easily > directly measure CPU load, and even if we create platform specific hacks, > we'd be fooled by idle-time processes etc.
OK - so there comes the problem. My node CPU load is only about 5-10%. It has clearly idle time, and the maxpingtime is the primary limiter. Some connected nodes have lower ping times than others - while many nodes have ping times of 3000-4000 ms, some stay at 500. My node also has plenty of free bandwidth and its hard disk is not overloaded. So in effect, the average ping is reflecting the CPU loads, bandwiths, disk usage, etc. of my node + the nodes is connected to. This eliminates load distribution among the nodes, as my node does not take more work from the overloaded nodes because the overloaded nodes are limiting it. When the load of the neighbouring nodes worsens, they also limit my nodes ability to take load. I.e. the main problem in the ping times is that it is determined not only by my node, but also the nodes that it is connected to. In addition, the ping time is determined by a principle of the weakest link - the ping time of a node becomes high if only one of the nodes is overloaded. This also provides a possibility for a denial of service attack against the 0.7 network - from the code it is not too difficult for someone wishing to impede free speech (or the 0.7 against 0.5 networks) to create bogus nodes that report way too high ping times. This would severely hurt the 0.7 network from reaching its potential. Because of this, there should at least be an option to disable the use of maxpingtimes in the config for now and see if the network would become faster. Over time, the mechanism could be divided to several parts: - pinging (configurable) internet servers outside freenet to determined the limit for bandwith - could only be done for the first time the node is run to determine a bw -based limit for the node - pinging self within freenet to determine true load based only on the load of the node -- Malkus Lindroos
