[e2e] Why are missing ACKs not considered as indicator for congestion?
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 ?
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
More information about the end2end-interest