Hi there,
A question related to TCP-FACK, which is a default in Linux:

In FACK, the holes between SACK blocks are considered as loss. To a
sender, when SACK comes in, loss_out would be non-zero. According to
linux-2.6.17.7/net/ipv4/tcp_input.c, function tcp_time_to_recover(),
this non-zero
loss_out will send the sender into "Recovery" state, in which, CWND could
be reduced. In one word, it seems that, FACK would allow SACK holes to
reduce CWND.

However, in the paper "Congestion Control in Linux TCP", Section 3,
subsection Recovery, it says that
Recovery state is triggered by "sufficient amount of successive duplicate
ACK", to my understand, that means 3-dup. And in Section 3, subsection
Disorder, it is also mentioned, SACK cause the sender move into this state.
Therefore, I suppose it means SACK holes won't reduce CWND, they merely
trigger fast_retrans and fast_recover. Even in the net/ipv4/tcp_input.c file, in
the large block of comment right above the function tcp_time_to_recover(),
it is also mentioned, CWND should only changed by "claasic VJ rules", which
again means, CWND should only changes to 3-dup (or timeout).

So, which is correct? The implementation, or the document? Or most probabally,
am I wrong somewhere?

Thank you guys!

malin
-
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