According the paper by Matthew Mathis and Jamshid Mahdavi, "Forward Acknowledgement: Redefining TCP Congestion Control", it seems to me that the two new state variables that are needed to implement FACK are snd.fack and retran_data, where snd.fack is the highest sequence number known to have been received and retran_data is the quantity of outstanding retransmitted data in the network. Using the above variables the fast retransmit/ recovery is changed as follows while ((snd.nxt-snd.fack+retran_data) < cwnd) send_something(); and if ((snd.fack - snd.una) > 3*MSS) || (dupacks == 3)) do retransmit I'm not able to get the relation between the above mentioned 2 variables and tp->fackets_out and fack_count. I tried searching for other papers on FACK but i couldnt find one. It would be great if you could explain me how the FACK algorithm is implemented in the kernel ? Thanks, Rajkumar On Thu, 17 Oct 2002, David S. Miller wrote: > > They are two pieces of state necessary to implement the > FACK algorithms. Read the papers on FACK, you'll understand > what the variables keep track of after reading them. > - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html