From owner-freebsd-net@FreeBSD.ORG Tue Jun 19 19:15:28 2007 Return-Path: X-Original-To: freebsd-net@freebsd.org Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D208816A41F for ; Tue, 19 Jun 2007 19:15:28 +0000 (UTC) (envelope-from kapiltj@yahoo.com) Received: from web81111.mail.mud.yahoo.com (web81111.mail.mud.yahoo.com [68.142.199.103]) by mx1.freebsd.org (Postfix) with SMTP id 95F6E13C45D for ; Tue, 19 Jun 2007 19:15:28 +0000 (UTC) (envelope-from kapiltj@yahoo.com) Received: (qmail 55467 invoked by uid 60001); 19 Jun 2007 18:48:48 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=F1cRFAa2mPVTj9Bk3wSEccAHOsNSakydMhPnVPNFibq4UCCCspNGd+V2fHGufNsFpyYoquknGeZYSdFfQiLf2QyBT44ww3CgTa1hEQLqHAj6A3DtwdMZ7irkLmsP4FgmOggUyTpKH2TqUV/oc/rj8PyhWJlU5iuMygTb1YTPvLs=; X-YMail-OSG: n1yBxVQVM1lo_L3yKFX.gzX3T1yQ3yalW0TVyJaMmXuco0_35eNB5HlofkgJyKd4QVw9EtHv0w-- Received: from [66.129.224.36] by web81111.mail.mud.yahoo.com via HTTP; Tue, 19 Jun 2007 11:48:48 PDT Date: Tue, 19 Jun 2007 11:48:48 -0700 (PDT) From: kapil jain To: freebsd-net@freebsd.org MIME-Version: 1.0 Message-ID: <673838.54203.qm@web81111.mail.mud.yahoo.com> X-Mailman-Approved-At: Tue, 19 Jun 2007 21:46:54 +0000 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Timestamp option and srtt 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: Tue, 19 Jun 2007 19:15:28 -0000 Hi, I have a question about the RTT/srtt calculation in presence of the timestamp option. If timestamp is nor present, RTT is not calculated for retransmits due to karn's algorithm. However with timestamps even retransmits factor into the RTT calculation. I understand that this is useful in general. Now consider a scenario where some intermediate link/router goes down for 30 secs, then the packet would be retransmitted lets say +1,+2,+4,+8,+16 seconds. Now lets say the 4th transmissions comes back before the timeout expires but it takes it 10 secs (due to the timing of the intermediate coming up). In this case we would end up with a huge srtt value giving the next timeout to be ~30 secs. This will then decrease very slowly with valid acks coming in. This failure was one -time but it still affects throughput quite a bit. Now if this link/router keeps going down for 20-30 secs, every few minutes then the srtt will never really go to normal values, though during the duration that the router is up the rtt is very small. Is this the expected behaviour ? This could cause problems with protocols such as BGP which have a hold-timer and will then reset the connection even for one Keep-alive loss. Could we have an option to turnoff RTT updates for retransmissions even when TS option is turned on? Or have a way to reset the timeout back to initial value instead of it starting from a huge value after a link failure? thanks kapil