[e2e] Stupid Question: Why are missing ACKs not considered as indicator for congestion?
David P. Reed
dpreed at reed.com
Thu Feb 1 08:17:19 PST 2007
What standard puts timestamps in each TCP packet? What standard says
that they can be viewed as meaningful by a receiver? Or is this TCP as
it might have been but isn't? Timestamps are options in IP, but options
in IP are not used by TCP that I know of as information bearing elements
- they aren't even guaranteed to be preserved end-to-end (they are not
part of the "virtual header" that is end-to-end checksummed).
Lloyd Wood wrote:
> At Wednesday 31/01/2007 16:02 -0500, Sushant Rewaskar wrote:
>
>> Hi,
>> I agree with Lachlan. In TCP there is no way to know when an ack is lost as
>> it carries no "sequence number" of its own.
>>
>
> It can - timestamps are used for disambiguation, and they disambiguate the acks. They can act as unique sequence numbers.
>
> (In fact, you wouldn't naively issue a timestamp, and expect the other end to copy and reflect it in an ack, as that's open to a variety of DoS attacks. The sender would have a table of timestamp times, with unique keys for each timestamp, and the sender would send out and look for the key in the timestamp option field. To get a better understanding of these issues you may want to read RFC1323.)
>
> It's possible for the sender to infer that an ack has been lost, based on subsequent receiver behaviour in sending a cumulative ack including packets received that the sender didn't get individual acks for.
>
> Stupid question: why is a missing ack presumed to automatically be due to congestion, rather than link errors along the path?
>
> L.
>
>
>
>
>
>> (so in fact not only it is not
>> done but it cannot be easily done in the current set-up).
>>
>> To get a better understanding of these issues you may want to read the
>> string of papers and RFC on Datagram Congestion Control Protocol (DCCP)
>> (http://www.read.cs.ucla.edu/dccp/ )
>>
>>
>> Take care,
>> Sushant Rewaskar
>> -----------------------------
>> UNC Chapel Hill
>> www.cs.unc.edu/~rewaskar
>>
>>
>> -----Original Message-----
>> From: end2end-interest-bounces at postel.org
>> [mailto:end2end-interest-bounces at postel.org] On Behalf Of Lachlan Andrew
>> Sent: Monday, January 29, 2007 5:18 PM
>> To: Detlef Bosau
>> Cc: end2end-interest at postel.org
>> Subject: Re: [e2e] Stupid Question: Why are missing ACKs not considered
>> asindicator for congestion?
>>
>> Greetings Detlef,
>>
>> On 29/01/07, Detlef Bosau <detlef.bosau at web.de> wrote:
>>
>>> In TCP, lost / dropped packets are recognised as congestion indicator.
>>> We don4t do so with missing ACKs.
>>>
>>> If a TCP packet is dropped, this is reckognized as congestion
>>> indication. Shouldn4t be a dropped ACK packet seen as congestion
>>> indication as well?
>>>
>> Because ACKs are cumulative, we don't know that separate ACKs were
>> sent for each packet.
>>
>> For example, high-end NICs typically have "interrupt coalescence",
>> which delivers a large bunch of packets simultaneously to reduce CPU
>> overhead. A single "fat ACK" is sent which cumulatively acknowledges
>> all of these packets. This happens even when the receiver is not
>> congested.
>>
>>
>> Another factor is that ACKs are typically small compared with data
>> packets. The total network throughput is much greater if we throttle
>> only the sources contributing most to a given link's congestion,
>> namely those sending full data packets over the link.
>>
>> Cheers,
>> Lachlan
>>
>> --
>> Lachlan Andrew Dept of Computer Science, Caltech
>> 1200 E California Blvd, Mail Code 256-80, Pasadena CA 91125, USA
>> Phone: +1 (626) 395-8820 Fax: +1 (626) 568-3603
>>
>
>
>
More information about the end2end-interest
mailing list