Summary

  • RFC 792 gave ICMP type 4 to gateways and destinations that could not absorb traffic. The message quoted the triggering packet and requested that its source reduce the rate sent toward one destination.
  • The instruction carried no authenticated identity, queue measurement, fair rate or duration. Generating control packets during overload consumed capacity, while forged messages could reduce another flow's throughput.
  • Internet engineering moved the durable response into endpoint congestion control and later placed explicit congestion marks inside ECN-capable packets. RFC 6633 finally required transports to ignore Source Quench and security devices to discard and log it.

The command born inside a full queue

The first ICMP specification imagined a gateway confronting a practical shortage. A datagram arrived, the next output queue lacked buffer space, and the gateway discarded the packet. Under RFC 792, published in 1981, the gateway could send ICMP type 4, code 0 back to the source. A destination host receiving datagrams faster than it could process them could do the same.

The message's English name was unusually direct: Source Quench. It asked the sender to cut the rate of traffic to the specified destination. If the warnings stopped, the sender could increase gradually until another warning arrived. A gateway was even permitted to send the message before its capacity was exceeded.

That mechanism expressed a sensible observation. The congested intermediary saw the queue that a remote source could not see. Dropping without explanation wasted an opportunity to return evidence. The source, unlike the gateway, controlled future transmissions. A feedback loop therefore had to cross the boundary between them.

But RFC 792 also defined ICMP as unreliable feedback. Neither the original packet nor its control report was guaranteed to arrive. Higher layers remained responsible for reliability. Source Quench was never a reservation, contract or proof that a specific rate would work. It was one intermediary's report about a moment that might already have passed.

A receipt without enough evidence

Like several ICMP errors, Source Quench quoted the original IP header and the first 64 bits of its data. That fragment let a host associate the warning with the process or transport conversation that produced the packet. It was a receipt, not a free-floating broadcast.

The receipt was still thin. It did not state the queue depth, bottleneck link, number of competing flows, amount by which the sender should retreat or time for which the new rate should last. Its source address named the machine composing the ICMP message, but the format supplied no cryptographic proof that this machine had encountered the quoted packet.

The missing fields were not mere conveniences. A transport makes decisions over a sequence of packets and acknowledgements. It knows bytes in flight, retransmission history, round-trip time and the receiver's advertised window. A gateway handling one datagram usually does not know which reduction would be fair across every transport, application and path using its queue.

RFC 1122 still preserved the original bargain in 1989. It allowed a host to generate Source Quench near resource exhaustion and required received messages to be reported to the transport or application layer. TCP was expected to slow the corresponding connection, normally by entering slow start. The specification gave the message operational consequences even though the message did not carry the state needed to calculate them.

Why adding feedback could deepen overload

Congestion is a bad time to create extra packets. RFC 896 had described congestion collapse in 1984: buffers fill, delay grows, hosts retransmit packets that are merely late, and the network spends more of its capacity moving duplicates. Useful throughput can fall while total traffic remains high.

Source Quench could add one control datagram for every discarded packet. Rate limits could bound the damage, but the design still asked a saturated path to carry reports about saturation. If the report disappeared, the sender learned nothing. If several gateways reported the same flow, the source could receive multiple commands with no shared accounting. If only some flows reacted, restraint could be distributed unfairly.

More memory did not solve the underlying feedback problem. RFC 896 warned that larger buffers could postpone collapse while making round trips longer and eventual duplication worse. The missing resource was not just storage. It was a control loop that could distinguish useful delivery from repeated work and pace new data by evidence that old data had left the network.

By 1995, RFC 1812 had changed the router requirement. A router SHOULD NOT originate Source Quench; research found it ineffective and unfair. A router that still generated it had to rate-limit the messages. This was not yet deletion, but the direction was clear: seeing a full queue did not automatically confer authority to issue a separate transport command.

The sender learned from consequences

TCP congestion control supplied a stronger location for the reaction. The sender owns the congestion window and can connect loss, acknowledgements and timers to one sequence space. RFC 5681 describes slow start, congestion avoidance and recovery without depending on Source Quench.

Acknowledgements provide a clock: a new ACK is evidence that some data left the network and reached the receiver. Loss or timeout is imperfect evidence—it can arise from corruption or reordering—but it is bound to actual traffic whose delivery the endpoints track. The sender can reduce bytes in flight and probe upward again while preserving the same connection state.

This did not make routers irrelevant. An endpoint cannot see every competing flow or manage a physical output queue. It made the division of work narrower. Routers expose consequences through drops or marks and manage their queues; transports decide how an identified flow changes its rate. Neither side needs the other's entire state.

The result was not a victory for silence. It was a better evidentiary chain. The sender reacts to events tied to its own sequence and acknowledgement history, not to an unauthenticated sentence that says “slow down.”

Routers kept a narrower job

RFC 2309 recommended active queue management so routers could signal incipient congestion before a queue overflowed. It also warned against treating queue management as complete fairness. Scheduling, per-flow state and transport response remained separate control surfaces.

A router could therefore act on what it knew: average queue pressure, buffer occupancy and the packet currently being forwarded. It did not have to compute a durable rate for an application it could not observe. Early drops could make endpoint congestion loops react sooner; scheduling could isolate classes or flows where the operator had such state.

This is the minimum-common-function test in operational form. The shared router must protect the queue and expose congestion. It need not become a remote traffic authority. Additional policy belongs where the necessary knowledge and responsibility actually exist.

A mark inside the packet

Explicit Congestion Notification retained explicit feedback but changed its grammar. Under RFC 3168, endpoints first indicate that a packet is ECN-capable. A router facing congestion may change that packet's ECN field to the Congestion Experienced codepoint instead of dropping it.

The mark travels inside the packet that encountered the queue. The receiver reports the signal through transport state, and the sender responds substantially as it would to a drop. One marked packet should cause at most one congestion response for a window of data. The router contributes a bounded fact; endpoints interpret it within a conversation they can identify.

ECN is not perfect authentication and is not universally available. A device can erase or falsely set a mark, and heavy congestion can still require dropping. Yet its architecture removes the orphan command. There is no separate packet that merely quotes an older packet and asks an unknown transport to infer the rest.

Source Quench tried to make a control message authoritative because of where it claimed to originate. ECN makes the signal useful because it remains attached to the traffic and capability negotiation that give the endpoints reason to process it.

Deprecation had to remove reaction

Stopping routers from generating Source Quench was not enough while hosts still treated the message as a command. An obsolete sender, faulty device or attacker could preserve the control path. That asymmetry survived for years: RFC 1812 discouraged generation in 1995, but transport reaction had not been formally retired.

RFC 6633 closed the path in 2012. Hosts must not send Source Quench. TCP, UDP and other IETF transports must silently ignore it. Routers must ignore it. Security gateways and firewalls must discard it and should log minimal details as a security fault. IANA marked ICMP type 4 deprecated.

The security reason was concrete. A forged Source Quench could support a blind throughput-reduction attack: persuade a sender that congestion exists and make it retreat without occupying the supposed bottleneck. Widespread ICMP filtering also meant a congestion system could no longer rely on delivery. Popular implementations had already removed support, and ICMPv6 never defined the message.

Deprecation therefore changed running behavior, not only registry prose. A number can remain recognizable for diagnosis while losing the authority to alter transport state. Interoperability sometimes requires knowing what not to obey.

Sources and evidence limits

The design and original rate request come from RFC 792. RFC 896 documents the congestion-collapse feedback problem. RFC 1122 shows that host requirements still preserved generation and reaction in 1989. RFC 1812 records the 1995 router-side reversal. RFC 2309, RFC 3168 and RFC 5681 describe the later queue, marking and endpoint control surfaces. RFC 6633 supplies the final normative deprecation and security treatment.

These documents do not prove that every router once emitted Source Quench, that every host obeyed it, or that one date removed it worldwide. They also do not make all packet loss equivalent to congestion or make ECN immune to manipulation. The historical claim is narrower: the standards progressively withdrew operational power from ICMP type 4 as stronger, more contextual feedback loops became available.