Connected: An Internet Encyclopedia
RFC 896 - When to send an ICMP Source Quench

Top: Connected: An Internet Encyclopedia
Up: Requests For Comments
Up: RFC 896
Prev: Congestion control with ICMP
Next: What to do when an ICMP Source Quench is received

### When to send an ICMP Source Quench

The present ICMP standard² specifies that an ICMP Source Quench message should be sent whenever a packet is dropped, and additionally may be sent when a gateway finds itself becoming short of resources. There is some ambiguity here but clearly it is a violation of the standard to drop a packet without sending an ICMP message.

Our basic assumption is that packets ought not to be dropped during normal network operation. We therefore want to throttle senders back before they overload switching nodes and gateways. All our switching nodes send ICMP Source Quench messages well before buffer space is exhausted; they do not wait until it is necessary to drop a message before sending an ICMP Source Quench. As demonstrated in our analysis of the small-packet problem, merely providing large amounts of buffering is not a solution. In general, our experience is that Source Quench should be sent when about half the buffering space is exhausted; this is not based on extensive experimentation but appears to be a reasonable engineering decision. One could argue for an adaptive scheme that adjusted the quench generation threshold based on recent experience; we have not found this necessary as yet.

There exist other gateway implementations that generate Source Quenches only after more than one packet has been discarded. We consider this approach undesirable since any system for controlling congestion based on the discarding of packets is wasteful of bandwidth and may be susceptible to congestion collapse under heavy load. Our understanding is that the decision to generate Source Quenches with great reluctance stems from a fear that acknowledge traffic will be quenched and that this will result in connection failure. As will be shown below, appropriate handling of Source Quench in host implementations eliminates this possibility.

² ARPANET RFC 792 is the present standard. We are advised by the Defense Communications Agency that the description of ICMP in MIL-STD-1777 is incomplete and will be deleted from future revision of that standard.

Next: What to do when an ICMP Source Quench is received

Connected: An Internet Encyclopedia
RFC 896 - When to send an ICMP Source Quench