> > At 23:11 22/11/96 +1100, Daniel O'Callaghan wrote:
> > >This was discussed on freebsd-hackers not so long ago. It is possible
> to
> > >bandwidth limit connections by a simple
> > >
> > >while () {
> > > read();
> > > sleep();
> > >}
> >
> > But won't TCP still fill up its receive queue as fast as it can? I
> suppose
> > you could _deliberately_ only read a certain number of bytes rather than
> > everything available to keep the queue nearly full.
Yes, What I should have said was
while(){
if( (nbytes/3000) seconds has passed since last read ) {
nbytes=read(max of 3000);
}
...
}
So if 3000 bytes are read, another read won't occur for 1 sec. If 300
bytes are read, a read can occur after 0.1 s.
(limiting to 3k/sec)
> > But anyway determining how much to wait for is very awkward indeed as you
> > have to know the physical bandwidth of the connection, which will change
> all
> > the time as use is shared. It would also probably lead to oscillating
> around
> > the correct value and for most people it is not acceptable for it to be
> > slower than it could be - any bandwidth determining step would need many
> Kb
> > before coming even close to an estimate.
I think one would have to decide on something empirically. If the
throttle could be applied on a per client IP address basis, then modem IP
addresses could be throttled to say 2k/sec (don't forget Netscape opens
multiple channels, usually).
Received on Sat Nov 23 1996 - 16:00:08 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:33:36 MST