[e2e] MSS and cwnd increase

rick jones perfgeek at mac.com
Sun Jul 2 12:48:16 PDT 2006

On Jul 1, 2006, at 1:22 PM, Salman Abdul Baset wrote:

> I am wondering how the Linux 2.6 updates its congestion window when a 
> stream (packet size << MSS) is sent over TCP.
> In general, if I am sending 100 packets every second with a packet size
> of one byte and assuming each packet is ACKed, then increasing window 
> by
> one every RTT (during congestion avoidance) will artifically inflate 
> the
> window. Thus, the cwnd calculation should not assume that the last 
> packet
> sent contained MSS bytes of data.
> The rfc and the code and seem to imply that cwnd increase is 
> MSS-based. I
> haven't confirmed either way (still testing it) and will like to know:
> 1) What is the RFC suggested way?
> 2) How Linux 2.6 is implementing it?

"Interestingly" might be one way to describe it.  IIRC the netdev 
archives should have details, but Linux 2.6 does ABC, using the 
byte-based heuristics from the RFC, but then applies it to a 
packet-based cwnd.  It will only increase the cwnd by one packet after 
an entire MSS has been exchanged, which means if you are sending a 
stream of sub-MSS packets, it takes rather longer to increase the cwnd 
than one might normally expect from a packet-counting congestion 
control mechanism.

rick jones
Wisdom teeth are impacted, people are affected by the effects of events

More information about the end2end-interest mailing list