----- Anonymous ----- 2010.09.29 - 19:33:56GMT ----- The following was posted by Matthew Toseland to freenet-dev Mon Sep 27 19:08:14 BST 2010:
---------> begin <------------ Lots of people are complaining about the current state of the network, and rightly so. Most nodes have around 50% backed off peers, whereas a few months ago this was much lower. This results in misrouting, inserts disappearing, slow downloads etc. (It is possible there are client layer bugs as well, but IMHO the network problems are by far the higher priority). This situation has persisted for quite some time now. I had thought it was due to temporary disruption caused by the network expanding due first to the healing changes and secondly to German TV coverage, but it has gone on way beyond that. And there was a buggy load management change but that was fixed in 1277. The main backoff reason appears to be ForwardRejectedOverload i.e. too many requests are being started, and therefore many of them are being rejected, and this is resulting in backoff. So what has changed between 1255 and 1277, that could conceivably impact on load management? - Block transfer abort propagation. This cannot directly cause rejections. - Autoconfig of thread limit by memory size. This could conceivably cause rejections, but if that was the case then a lot of nodes would show thread limit as the top reason for rejection under "Preemptive Rejection Reasons" on the stats page in advanced mode. AFAICS this is not happening. - MIN_NON_OVERHEAD and a change to how the overhead fraction is calculated. The former wasn't active until quite recently, due to a bug, so I doubt that turning it off again would make any difference. Both are designed to avoid the situation where a node gets into a "death spiral" where it has a high overhead fraction for a while (e.g. due to a mandatory update), and then accepts very few requests because it has a high overhead fraction, resulting in it having low bandwidth usage and high overhead for a very long time. The current load management system is reliant on the request *originator* reacting properly to the signals we send it, controlling its send rate via AIMDs (similar to TCP congestion control). IMHO the most likely explanation is that somebody is deliberately flooding the network by sending lots of requests without that rate control. This is a relatively cheap attack that I would expect to be highly effective, and it cannot be eliminated except by replacing the load management code. Which is why I have been working on the new-load-management branch for some time now. Of course, sending this email virtually guarantees that somebody will if they haven't already. But we discussed it on the IRC channel some time back, and IMHO communications with the community are important, especially when the fix is likely to take quite some time and be rather difficult. Deploying the "fairness between peers" code may help a bit. I may start to merge stuff from the new load management branch before it is finished and ready, as much of it is relevant even without the full framework. ---------> end <----------- Could the "attack" be the maxpeers patch inadvertently letting the load management go off-kilter? ----- Anonymous ----- 2010.09.30 - 01:18:24GMT ----- When it was brought up in IRC, he did not seem to think that was very likely. ----- Anonymous ----- 2010.09.30 - 02:55:13GMT ----- By the way, it is so painfully slow because spammer has finally learned to set redirects to big files instead of junk. And Frost tries to download them. Paste this into KeyUtils, for example: KSK at frost|message|news|2010.9.28-counter-forensics-6.xml I guess this should be announced on a larger scale. -- http://freedom.libsyn.com/ Echo of Freedom, Radical Podcast "None of us are free until all of us are free." ~ Mihail Bakunin