Under the thread "Size limits", Oskar wrote:

> I never got a straight answer out of anybody about choking the
> incoming connection.  Is it a healthy thing to do?  Will it overflow
> your OS buffers and screw with the machine in general or will TCP
> handle it graciously?

This morning, I asked a guy at the office here about it.  Under the
caveat that he's not a TCP guru, he said that in *theory*, the buffers
get filled, and the sending machine will simply block the sending 
process until the buffers clear up again.  No problem, unless the 
sending process is sensitive to long blocks.  I've heard that Java's 
threads make Freenet resistant to such problems, so we're OK there.

In practice, however, he said it "doesn't always work".  That makes 
sense, given that full buffers and blocked processes rank high on the 
list of things that tend to bring out problems.  No doubt there's also 
a lot of card drivers, OS parameters, routers, firewalls, and other 
junk with their finger in the pie.  Each component may have differing 
assumptions about what a good state of affairs should look like, and 
when & how to give up on bad state.

He said the cure would be to use the cool new Quality of Service (QoS) 
API's.  Unfortunately, he continued, they are not done yet.  Over 
lunch, I did a fast grep on Google for the words "TCP", "bandwidth", 
and "throttling".  The response included several pages on the great new 
buzzword "QoS", and how it's supposed to fix lots and lots of problems 
-- which weakly implies that there are indeed lots and lots of problems 
to be fixed.

After this decidedly weak research, it still sounds like the only way 
to do reciever bandwidth throttling in the short run is to hack 
together some crude QoS declarations and buffer management of our own.  
A simple example is recievers sending a "dude! slow down, I'm on a 
28.8 modem here" message, and senders all being nice enough to comply.  
Yes, I'm cringing at the concept, too -- though I'd gladly take the 
assignment if it were given to me.

I still want to see true bandwith throttling, for several reasons.  
I'm the guy who even wanted throttling to occur in response to outside
messages/events.  Down the road I'll probably take up the issue again, 
but for now, throttling recieves still seems outside the scope of 0.3.
If there's a true TCP guru out there who disagrees, please speak up.


--Will
(never speaking for his employers, lest I be throttled by *them*)
willdye at freedom.net


_______________________________________________
Freenet-dev mailing list
Freenet-dev at lists.sourceforge.net
http://lists.sourceforge.net/mailman/listinfo/freenet-dev

Reply via email to