From owner-freebsd-net@FreeBSD.ORG Mon Feb 8 16:31:29 2010 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E064D10656A7 for ; Mon, 8 Feb 2010 16:31:29 +0000 (UTC) (envelope-from kfl@xiplink.com) Received: from smtp201.iad.emailsrvr.com (smtp201.iad.emailsrvr.com [207.97.245.201]) by mx1.freebsd.org (Postfix) with ESMTP id BB6728FC1B for ; Mon, 8 Feb 2010 16:31:29 +0000 (UTC) Received: from relay10.relay.iad.mlsrvr.com (localhost [127.0.0.1]) by relay10.relay.iad.mlsrvr.com (SMTP Server) with ESMTP id 9FB7D1ECEC2 for ; Mon, 8 Feb 2010 11:11:53 -0500 (EST) Received: by relay10.relay.iad.mlsrvr.com (Authenticated sender: kfodil-lemelin-AT-xiplink.com) with ESMTPSA id 87AF61EC61A for ; Mon, 8 Feb 2010 11:11:53 -0500 (EST) Message-ID: <4B7037C6.7000308@xiplink.com> Date: Mon, 08 Feb 2010 11:11:50 -0500 From: Karim Fodil-Lemelin User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) MIME-Version: 1.0 To: freebsd-net@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Different SYN retransmit backoff between active and passive connections X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Feb 2010 16:31:30 -0000 Greetings, When doing an active connect and assuming that SYN packets are lost. The next retransmit timeout will trigger retransmissions of the SYN according to this code (in tcp_timer_rexmt): rexmt = TCP_REXMTVAL(tp) * tcp_syn_backoff[tp->t_rxtshift]; Now, when doing passive connections the syncache handles sending the SYN-ACK and assuming again the SYN-ACK is lost the next retransmit timeout will be calculated using this code: sc->sc_rxttime = ticks + TCPTV_RTOBASE * (tcp_backoff[sc->sc_rxmits]); Is there a reason why FreeBSD is not using the tcp_syn_backoff array in syncache_timeout? Regards, Karim.