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>