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

Lloyd Wood L.Wood at surrey.ac.uk
Thu Feb 1 09:52:33 PST 2007


At Thursday 01/02/2007 11:17 -0500, David P. Reed wrote:
>What standard puts timestamps in each TCP packet?  

RFC1323 does not preclude including the TCP Timestamp option in each packet sent. (And there are cases where disambiguation of segments/ack would be a useful benefit from doing this. How you compute RTO given more sample information and whether that's just diminishing returns for most common use is a separate issue that is open to question.)

The TCP Timestamp option is checksummed by the TCP checksum.


>What standard says that they can be viewed as meaningful by a receiver?  

Well, gee, RFC1323 is only a proposed standard. But attackers will take any hints about internal state that they are given, and they don't pay that much attention to standards.



>Or is this TCP as it might have been but isn't?  Timestamps are options in IP, 

Is IP option 4 even used by anything?


>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