Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2005 15:12:48 -0400 (EDT)
From:      rick@snowhite.cis.uoguelph.ca
To:        fs@freebsd.org
Subject:   FreeBSD NFS server not responding to TCP SYN packets from Linux/SunOS clients
Message-ID:  <200510141912.PAA25440@snowhite.cis.uoguelph.ca>

next in thread | raw e-mail | index | archive | help
> Then what happens when the socket receive queue fills up?  (Sorry if 
> this is obvious).

Its been a long time since I went through the BSD TCP code, so if I get
this wrong, hopefully someone will jump in and correct it. Here goes...

When the socket receive queue is full, the server will throw away further
data that it receives, instead of queuing it. At the client end, there is
a send window (#byte of unacknowledged data that can be sent) and once it
sends "send window" bytes of data that gets thrown away at the server, it
will hit the "send window" limit and stop sending more data.

The NFS client will block in sosend() until the server moves the send
window (which won't happen until the nfsd threads take data out of the
socket receive queue on the server).

Hope I got that right? rick



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200510141912.PAA25440>