David Miller wrote:
If we don't ACK every two segments, stacks which grow the congestion window based upon packet counting will not grow the congestion window properly when they are sending smaller than MSS sized segments.
The only stack I know of that does this currently is linux, and in doing so does not conform to the spec. ;) Sending to a BSD receiver will result in the same behavior, so the "right place" to fix this is on the sending side. (I know the issue of packet vs. byte counting has come up many times over the last 10 years or so, and many arguments have been made on either side... I don't mean this to be flame bait but it's clear what will happen in this scenario.)
One way of viewing the current situation is that linux's packet counting plus ABC is more conservative than byte counting -- sometimes much more so. Packet counting without ABC may be more or less conservative than byte counting, depending on segment sizes and receiver ACK strategy. Without ABC, linux is vulnerable to aggressive ACKing to inflate the cwnd. This is a kind of ugly state of affairs.
Unfortunately I see no clear way to reconcile these issues short of switching to byte counting. Obviously this would be a big change as packet counting is deeply ingrained in not only the congestion control but also the recovery code.
-John - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html