Skip site navigation (1)Skip section navigation (2)
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>