FreeBSD NFS server not responding to TCP SYN packets from Linux/SunOS clients

rick at snowhite.cis.uoguelph.ca rick at snowhite.cis.uoguelph.ca
Fri Oct 14 12:11:27 PDT 2005


> 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


More information about the freebsd-fs mailing list