From owner-freebsd-fs@FreeBSD.ORG Fri Oct 14 20:19:29 2005 Return-Path: X-Original-To: fs@freebsd.org Delivered-To: freebsd-fs@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F369016A41F for ; Fri, 14 Oct 2005 20:19:28 +0000 (GMT) (envelope-from rick@snowhite.cis.uoguelph.ca) Received: from mailhub.cs.uoguelph.ca (mailhub.cs.uoguelph.ca [131.104.96.75]) by mx1.FreeBSD.org (Postfix) with ESMTP id A37FF43D49 for ; Fri, 14 Oct 2005 20:19:28 +0000 (GMT) (envelope-from rick@snowhite.cis.uoguelph.ca) Received: from snowhite.cis.uoguelph.ca (snowhite.cis.uoguelph.ca [131.104.48.1]) by mailhub.cs.uoguelph.ca (8.13.1/8.13.1) with ESMTP id j9EKJO9A015793; Fri, 14 Oct 2005 16:19:24 -0400 Received: (from rick@localhost) by snowhite.cis.uoguelph.ca (8.9.3/8.9.3) id QAA26662; Fri, 14 Oct 2005 16:20:48 -0400 (EDT) Date: Fri, 14 Oct 2005 16:20:48 -0400 (EDT) From: rick@snowhite.cis.uoguelph.ca Message-Id: <200510142020.QAA26662@snowhite.cis.uoguelph.ca> To: fs@freebsd.org X-Scanned-By: MIMEDefang 2.52 on 131.104.96.75 Cc: Subject: FreeBSD NFS server not responding to TCP SYN packets from Linux/SunOS clients X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Oct 2005 20:19:29 -0000 > where is that rule stated? most NFS clients i am aware of retransmit an > RPC after 60 seconds over TCP. For NFSv4, it's in RFC3530, Sec. 3.1.1 (actually applies to RPCs other than NULL). For NFSv2,3 it was never required by the RFCs, so it is questionable what the correct behaviour is. Being the first to do NFS over TCP, I only did retransmits after reconnect. I think I described it that way in the ancient Usenix paper. (http://snowhite.cis.uoguelph.ca/nfsv4, then click on it) When Sun first did NFS over TCP, I believe they did do retries (using a conservative timeout). I think I eventually convinced Sun that it wasn't a good idea and I think that Solaris no longer does them, but I'm not sure. (For this to work correctly, a server is required to disconnect whenever it can't generate a reply to an RPC over TCP for any reason.) So, for NFSv2,3 I don't know of a stated "rule". I don't think it is covered in the NFS interoperability RFC that appeared a while back, but can't remember for sure. The reason I didn't do retries over TCP in the original work are basically what has already been discussed in this thread. I intended that the TCP virtual circuit would apply back pressure to the client to slow/stop sending requests to a congested server. rick