Date: Fri, 23 Nov 2001 15:50:42 +0300 From: Chemisov <serg@sirena2000.ru> To: freebsd-net@FreeBSD.ORG Subject: decreasing TIME_WAIT duration(T/TCP?) Message-ID: <3BFE4622.DA72E0D5@sirena2000.ru>
next in thread | raw e-mail | index | archive | help
Hello!
It is important to me to have duration of TIME_WAIT state of TCP
connection as short time as possible.
It is because Server identifies its Clients by C_IP:C_PORT(which
permanent for one Client).
In FreeBSD 3.4 I have been edited netinet sources
to decrease interval for TIME_WAIT -only(!!!) (TCPTV_MSL(60sec) ->
TCPTV_MSL_MY(10sec))-
for example(tcp_input.c):
switch (tp->t_state) {
case TCPS_SYN_RECEIVED: ........................
case TCPS_ESTABLISHED: .....................
case TCPS_FIN_WAIT_1: .................
/*
* In FIN_WAIT_2 state enter the TIME_WAIT state,
* starting the time-wait timer, turning off the other
* standard timers.
*/
case TCPS_FIN_WAIT_2:
tp->t_state = TCPS_TIME_WAIT;
tcp_canceltimers(tp);
/* Shorten TIME_WAIT [RFC-1644, p.28] */
if (tp->cc_recv != 0 &&
tp->t_duration < TCPTV_MSL_MY) { /* TCPTV_MSL_MY =
10sec for me!!!*/
tp->t_timer[TCPT_2MSL] =
tp->t_rxtcur * TCPTV_TWTRUNC;
/* For transaction client, force ACK now. */
tp->t_flags |= TF_ACKNOW;
}
else
tp->t_timer[TCPT_2MSL] = 2 * TCPTV_MSL_MY; /*
TCPTV_MSL_MY = 10sec for me!!!*/
soisdisconnected(so);
break;
/*
* In TIME_WAIT state restart the 2 MSL time_wait timer.
*/
case TCPS_TIME_WAIT:
tp->t_timer[TCPT_2MSL] = 2 * TCPTV_MSL_MY;
break;
}
As I know FreeBSD 4.x can calculate MSL depending on data transmission's
speed.
How to turn on this calculation for 4.x ?
It seems that sysctl whith net.inet.tcp.rfc1323 (and .1644) does not
work for me.
May be I must use T/TCP ?
Serg.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3BFE4622.DA72E0D5>
