rfc 2914 says this:

The avoidance of congestion collapse from undelivered packets
requires that flows avoid a scenario of a high sending rate, multiple congested links, and a persistent high packet drop rate at the downstream link. Because congestion collapse from undelivered
packets consists of packets that waste valuable bandwidth only to be
dropped downstream, this form of congestion collapse is not possible
in an environment where each flow traverses only one congested link,
or where only a small number of packets are dropped at links
downstream of the first congested link. Thus, any form of congestion
control that successfully avoids a high sending rate in the presence
of a high packet drop rate should be sufficient to avoid congestion
collapse from undelivered packets.

So why is congestion collapse from undelivered packets not possible if there is only one congested link?

2 Answers 2


please, read carefully. your source says: "this form of congestion collapse", implying that this is not the only way, congestion collapse can happen.

Now, the described scenario - a flow is traversing multiple congested links, e.g., A -> B -> C -> D -> E, where most congestion related packet drops occur at the link D -> E. These packets are then undelivered. The issue here, is that these packets have to go through each link before D -> E, and since each of these links is congested as well, they are actually taking bandwidth from other flows traversing those links. Then, when the packets are dropped at D -> E, this bandwidth is effectively wasted, as in not used to transmit packets of other flows that would not have been dropped.

This kind of congestion collapse does not happen with one flow or/and one congested link because: (1) if there is only one flow, there are no other flows to allocate the bandwidth to, so, even if unnecessary packets were transmitted, there was no better use for the bandwidth anyway (2) if only the link D -> E is congested, then, the eventually dropped packets are not taking bandwidth from other flows traversing the other links, which again means, that no harm to anyone else was done.

Congestion collapse, which is not caused by undelivered packets, can(!) happen for one flow traversing one congested link. Indeed, the first congestion collapse did happen precisely in the scenario you described in your answer. (It will take a pretty big wall of text to describe what exactly happened there).


Example situation:

client -> router -> router2 -> server

If the router -> router2 is the only congested link, and a packet uses that bandwidth, it will not get dropped since there are no more congested links.

  • yes it will. if the bandwidth between client and router is higher than between router and router2, client may potentially send packets at higher rate, and these packet will get dropped.
    – Effie
    Jan 17 at 7:20
  • whether it will cause congestion collapse or not, depends on whether congestion control is working. the initial congestion collapse actually happened in exactly this scenario: youtube.com/watch?v=QP4A6L7CEqA
    – Effie
    Jan 17 at 9:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.