lkml.org 
[lkml]   [2005]   [Oct]   [23]   [last100]   RSS Feed
Views: [more markup]   [less markup]   [headers]   [forward]  
 
Messages in this thread
/
DateSun, 23 Oct 2005 13:34:31 -0400 (EDT)
FromNing Jiang <>
SubjectKernel 2.4.20 TCP persist mode
Hi, all,

I'm testing some programs on Linux 2.4.20. My programs The programs work 
as follows:

1. A TCP Server is listening on a machine.
2. A TCP Client connects the server.
3. The TCP server transmits 3000 packets to the client.
4. A netfilter hook is registered on the same machine as the TCP server. 
The hook inspects the incoming ACKs. For some ACK, the hook function 
changes the acknowledge window size to 0. Suppose the acknowledgement 
sequence of the ACK is N, the hook function sets it to a value N' (N' < 
N).  The purpose is to switch TCP into persist mode, where TCP ceases 
transmitting data packets to the receiver, and periodically probe the 
reciever until an ACK with non zero ack window is received.
Our observation is: when we set N'<N, the 2.4.20 kernel didn't switch into 
persist mode! It tried to retransmit the previous packet. When we set 
N'=N, it did switch into persist mode. It seems that TCP of 2.4.20 will 
only switch into persist mode when the whole window of segments are 
successfully acknowledged. Otherwise, it will simply retransmit the 
segments.

Anyone knows this problem? Any idea on how to switch TCP into persist mode 
without acknowledging the whole window boundary?

Thanks!!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-10-23 15:38    [W:0.137 / U:0.290 seconds]
©2003-2008 Jasper Spaans