[e2e] MSS and cwnd increase

Stephen Hemminger shemminger at osdl.org
Fri Jul 7 21:34:20 PDT 2006

On Sat, 1 Jul 2006 16:22:09 -0400 (EDT)
Salman Abdul Baset <salman at cs.columbia.edu> wrote:

> I am wondering how the Linux 2.6 updates its congestion window when a CBR
> 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?
> Regards,
> Salman

There is also a heuristic in Linux that does not increase the cwnd
unless congestion window was full (see RFC2861). This prevents the artificial increase
that would happen with stream based applications. The code is in 2.4 and 2.6

If one would give me six lines written by the hand of the most honest
man, I would find something in them to have him hanged. -- Cardinal Richlieu

More information about the end2end-interest mailing list