[comp.protocols.tcp-ip] ICMP Source Quench questions

finn@ISI.EDU (02/26/91)

Marten Terpstra,

	ICMP Source Quench messages may be issued by a gateway when
that gateway becomes heavily loaded (congested).  The congested
gateway picks a message and sends a Source Quench back to that
message's source.  The original message is then discarded by the
gateway.  The idea is that the source will notice this and cut down on
its rate of transmission.  That in turn soon decreases the affected
gateway's congestion.

	The throughput of a gateway is linear as it approaches
overload but can fall to zero quickly.  Consider throughput as the
vertical axis and offered load the horizontal axis and ignore scale.
As load rises from zero, the graph slope is positive to a knee, then
flattish as the gateway's processing limit is closely approached, then
another knee and a rapid descent asymptotically toward zero.  Source
Quench is a way of telling you that the second knee has been reached.
The hope is that if enough sources cut their rates of transmission,
the gateway's operating point moves quickly back to the left of the
catastrophe.

	1) How is the message picked?  Well, it was envisioned that
	whenever a gateway had a queue overflow, the message that
	caused the overflow would be chosen for Source Quench.

	It turns out that many gateways generate them only for SOME
	of the messages that cause a queue overflow and not all.
	That is because no mechanism to force sources to slow down
	in response to receiving a Source Quench was adopted as a
	standard.  However, that may change.

	2) Newer implementations of TCP (incorporating Van Jacobson's
	code) treat the receipt of a Source Quench message as evidence
	of a message lost due to congestion and do slow down for a time
	as a result.  If you run Berkeley UNIX there is a high
	probability that you are running this TCP.

	Research is underway that may place code into source IP modules
	that looks for Source Quench messages.

	3) Will ICMP Source Quench messages cause a network is down
	condition.  No, not by themselves.  If a gateway's routing
	tables indicate that a network is unreachable, only then
	should it send a Network Unreachable version of the ICMP
	Destination Unreachable message.

	This is my understanding.  I hope that this has helped you.

--- ggf