John B. Nagle (email@example.com)
Fri, 7 Nov 86 15:01:11 pst
> Should the gateway know them (transport protocols) all?
I gave some serious thought to this approach back in 1984, and went
so far as to start writing a TCP segment consolidator for a gateway.
But the complexity of such a thing is comparable to the receive side
of a TCP implementation, and the possibility exists of introducing a class of
bug for which the assignment of blame would be very difficult.
It was after discarding this line of attack that I came up with
"fair queuing", as described in RFC970. The key idea there is that
gateways should have queuing strategies that favor well-behaved hosts
over badly-behaved ones, rather than the reverse, so that it is in the
self-interest of hosts to be well-behaved. This was a radical idea when
I first proposed it, but gradually the community seems to be coming around
to the point of view that non-FIFO queuing strategies in gateways are
Now that we know how to throttle TCP connections effectively over
a speed range of three or four orders of magnitude, and now that 4.3BSD
and some other implementations have the machinery to do this correctly,
we should be able to make the whole Internet run smoothly over a wide
range of loading conditions. With smarter algorithms in the gateway
to control the throttling and to prevent ill-behaved hosts from
using up most of the resources, it should be possible to stop the
present abysmal behavior of the Internet under heavy load.
I hate to say "I told you so", but I did predict the congestion
collapse of the Internet in my article in ACM Computer Communications
Review in October 1983. From the reports I read here, it has happened.
I've proposed ways to deal with the problem, and those that have been
tried have worked. There's been some "not invented here" grousing,
but no one has shown that my approaches are invalid. There may indeed
be more elegant solutions to some of these problems. (Lixia Zhang
at MIT is working on some). But unless someone has a better idea that
will stand scrutiny by the community, I suggest that somebody put
fair queuing in a few key gateways and see if things get better.
The description of the algorithm in RFC970 is a bit sketchy, so if
you want to implement it and are a bit confused, please feel free to get
in touch with me and I will try to be of assistance.
This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:36:59 GMT