Which side of the implementation do you mean? as a client, or as a gateway? I suppose it doesn't really matter. Since source quenches are not supposed to be used on routers anymore, the expectation of receiving a source quench on a large network (like the Internet) is a bad one, so the TCP implementations have to implement congestion controls through other means anyhow.
As a client, of course, since end-to-end source quench is the only alternative available. And consider the near future scenario where a user with a cable-modem connected via Ethernet to their nice new NC (with cheapest bus design possible to contain costs) has requested a URL from a <insert whomping fast server here> connected via OC-3 to the Internet. It seems likely a source quench will come in handy to provide flow control.
Yes, but it seems more likely that the <whomping fast server> would be receiving such source quenches, if they were provided by <whomping fast caching agent> in the cable network.
TCP/IP Illus. Vol. I by W. Richard Stevens has a pretty good explanation of what source quenches are.
Don't have Mr. Stevens handy, but from RFC777 (1981!), when both types of source quench were defined:
...A destination host may also send a source quench message if datagrams arrive too fast to be processed. The source quench message is a request to the host to cut back the rate at which it is sending traffic to the internet destination.
This is what I was getting at. Flow control versus congestion control.
When it comes to IP, it's sometimes hard to distinguish between the two. Since you've already lost packets, is it really flow control, or congestion control? Flow control usually assumes a "hold that thought" characteristic. For example, if you are using TCP, the initialization period when packets are lost is definitely considered congestion control. Once that period of time is over, the negotiated TCP rate, and associated buffers, are considered flow control. When talking about UDP, though, most implementations ignore SQ for udp altogether, so UDP does not really implement congestion or flow control. If congestion/flow control are to be done with UDP, it has to be done at a higher layer (application). Dave -- Dave Siegel dave@rtd.net Network Engineer dave@pager.rtd.com (alpha pager) (520)579-0450 (home office) http://www.rtd.com/~dsiegel/