David S. Miller wrote:
From: Rick Jones <[EMAIL PROTECTED]>
Date: Fri, 10 Mar 2006 17:15:14 -0800


                /* RFC3465: Slow Start
                 * TCP sender SHOULD increase cwnd by the number of
                 * previously unacknowledged bytes ACKed by each incoming
                 * acknowledgment, provided the increase is not more than L
                 */
                if (tp->bytes_acked < tp->mss_cache)
                        return;

And only increasing cwnd after a full mss has been acked. Which IIRC is not part of the ABC RFC.


It is a core part of the RFC.

But for a _byte_ based cwnd, not a packet based one. I've gone through the RFC three times now and it all appears to be based on a byte-based cwnd. I'll admit that I may be being dense, but when it is saying things like increase cwnd by "1*SMSS" and "L=1*SMSS" that tells me it is all byte-based cwnds not packet based ones.

IIRC all (most of) the RFC's talk about the cwnd in bytes because at the time VJ did his work (in hnits of packets/segments) none of the (common -MPE did :) stacks actually knew how many segments they had outstanding at any one time. So, we have the "increase by an MSS on each ACK" heuristic - it didn't overly penalize bulik transfers. It was a proxy for tracking segments, and with the existence of the ABC RFC we can assume not all that good a proxy.

In the original VJ paper, when a packet was known to have left the network, the stack was free to replace it and add another. The queues in the network are (as near as I can tell) in units of packets, not in units of bytes.


Keep in mind that Van himself was one of the primary reviewers of the
ABC work.  And this is even mentioned in the RFC.

And the RFC looks fine for byte based cwnd implementations. I think the issue isn't in ABC itself, but in how it gets mapped to a packet-based cwnd scheme.

I cannot prove it because I don't have a stack handy that is both ABC and byte based, but strongly suspect that a byte-based cwnd stack doing ABC would have grown the byte-based cwnd enough in short order to allow those five segments per message to get onto the network.

rick

-
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

Reply via email to