On Thursday 21 November 2002 10:14 am, you wrote: > On Thu, Nov 21, 2002 at 09:26:10AM -0500, Doug Bostrom wrote: > > Greetings, > > (blah blah) > > As I understand it, some requests arriving at my node are forwarded to > > other nodes, with the results being passed back through my node toward > > the original requester. If my inbound connecton is 2X, and my outbound > > connection is 1X, this means that data going _across_ my node can arrive > > at my node at twice the rate it can leave my node. If the results of data > > requests that cross my site can arrive at my site much faster than they > > can then leave on their way to their ultimate destination, it seems that > > I must _base_my_inbound_bandwidth_settings_strictly_on my_outbound_speed. > > Bullshit. I have a node with asymmetrical limits. So does almost > everyone else. It's not a problem. The data will get buffered, if it's > small, and throttled, if it's large. That's in the rare case that a > single connection comes _anywhere close_ to the upload bandwidth.
In nearly all cases the upload bandwidth will be saturated by a single successful locally satisfied request for the period of time that request is being fufilled, since obviously retrieval from the local disk store is faster than most outbound connections. In the case of ADSL and relaying it's often going to be the case that the inbound connection is attempting to supply data faster than the outbound connection can deal with it. So it's hardly a "rare case that a single connection comes _anywhere close_ to the upload bandwidth." Moving on, what about multiple connections? Does a node only instantiate a single relay at any given time? And is it the case that the number of relay connections being supported will automatically insure that the period of time that data is buffered will not grow so long that the relay connection fails for the practical purpose of transporting data in a reasonably timely fashion? Is the number of relay connections formed modulated by the current buffer size and outbound bandwidth constraints? Based on what you say, unless the logic for accepting connections and throttling knows something about the size of requests being fulfilled, a node supporting steady traffic seems at risk of developing an ever-growing buffer or throttling to the point of being practically useless. > > > Put another way, the trouble with relaying and ADSL is that since packets > > requesting data are presumably smaller than the resulting data packets > > coming back, it seems easily possible that a node will happily accept and > > forward many more request packets than it's truly capable of dealing > > with. If the results of request packets are larger than the request > > packets themselves, constipation will always result if the inbound > > bandwidth settings are not arranged strictly on outbound connection > > speed. > > It's not just ADSL. EVERYONE, except for a few people who don't mind > spending as much on bandwidth as on their car(s), has an asymmetrical > connection. And it really isn't a big problem. Freenet will buffer, or > it will throttle. In most cases it will buffer, since we are keeping the > file anyway if it's more than 1/200th the datastore size (i.e. a meg on > the default storeSize). It reads it in from the source node to the > datastore at some rate, and it writes it out to the requestor node at a > different rate. It was always going to cache the file, so there is no > big deal. But even when we get into circular buffers, and even when we > overflow the circular buffers (which is rare unless you have a > ridiculously small store), it will end up throttling the incoming > connection just by refusing to ACK any more packets when the buffer is > full. I don't understand. In the case of a node with a steady load of connections that are consistently retrieving more data than can be uploaded from the node, how does this become reasonably transparent to users? Does the refusal to ACK incoming data packets for relay also trigger a refusal to accept new relay connections? > > > Even more simply expressed, it seems to this ignorant user that if a node > > is capable of requesting data for relay far faster than it can actually > > pass it back through the network, chaos will surely be the result. > > Nope. It will not. Chaos was a poor choice of words. Based on your description what's going on, maybe "ballooning retrieval times" would say it better. > > > Based on the assumption that the total bulk of request packets is smaller > > than total data packet bulk, it seems that ADSL users may in fact have to > > set incoming bandwidth _smaller_ than outgoing bandwidth, > > counterintuitive though this may seem. > > Eh? Again, I expressed myself poorly. I should have suggested that the number of connections a node accepts, particularly for relay, is going to have to be based on some notion of what the resulting traffic outbound from the node is going to be, since a single connection can easily saturate the outbound bandwidth for a long period of time if the resulting retrieval is of significant size. Maybe this is already the case; I have money and bandwidth to offer freenet, but not time to peruse code. > > Look, if we thought this was a problem, we would not have provided > separate upload and download limits, would we? If I could predict all of the problems I face in my own development projects, I'd have shorter timelines, lower costs, and no bugs. _______________________________________________ support mailing list [EMAIL PROTECTED] http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/support