[e2e] Why are missing ACKs not considered as indicator for congestion?

Detlef Bosau detlef.bosau at web.de
Mon Feb 5 08:50:23 PST 2007

Douglas Leith wrote:
> Perhaps I can add my own question to this. The discussion so far has 
> mostly centered on whether its possible to detect ack losses. But say 
> we could measure these ack congestion/losses - what would the right 
> thing be to do ? Should we treat loss of any packet (ack or data) as 
> congestion, or just consider loss of data packets as being meangingful ?
> This isn't as abstract a question as it might at first seem. Most 
> delay-based algorithms use two-way delay and so react to queueing of 
> acks as well as data packets. That is, unlike loss based algorithms 
> they *do* treat ack and data packets in similar ways for congestion 
> control purposes. Is this a good thing or not ?
> Doug
There is a very helpful drawing on this one in Reiner Ludwigs PhD 
It is available online at
And particularly refer to Chapter 2
Figure 2-1 "The Ack Clock"

There is a similar dawing in the congavoid paper. However, this drawing 
here exhibits the relationship between CWND and the number of ACK 
packets in flight. For simplicity, let?s assume that each TCP packet is 
acknowledged, i.e. we have no delayed ack.
Let?s assume further, every TCP packet has maximum size, i.e. all TCP 
segements have length MSS.
When we further neglect the processing time, the TCP and ACK packets 
form some kind of paternoster which runs around the path and has exactly 
CWND/MSS packets. When an ACK packet reaches the sender, a TCP packet is 
clocked out and vice versa, when a TCP packet
reaches the receiver, an ACK packet is clocked out.

So, if the semantics of CWND is "packets allowed to be in flight so that 
there is no problem", we would have to treat ACK losses exactly as TCP 
losses, i.e. as an indicator of congestion. If the semantices of CWND is 
"packets allowed to be in flight so that there is no TCP packet dropped" 
we could tend to ignore ACK losses.

Personally, I have always the idea of a drawing like "The Ack Clock" in 
mind and that?s one of the reasons for my origial question.
Because from that drawing, there is no difference between TCP-drop and 
ACK drop.

More information about the end2end-interest mailing list