Subject: Re: NFS transport
To: None <rick@snowhite.cis.uoguelph.ca, tech-kern@netbsd.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-kern
Date: 07/23/2002 14:18:49
On Tue, Jul 23, 2002 at 01:59:53PM -0400, rick@snowhite.cis.uoguelph.ca wrote:
> > Except that it is likely that the same number of packets will get lost
> > using TCP - just the recovery code works slightly faster.....
> 
> There are several differences. When a UDP fragment is lost, the RPC layer
> times out, which means the entire RPC is redone (potentially including more
> I/O disk operations on the server, although the server recent request cache
> helps to avoid the worst of it).

There's another issue, as well: with TCP transport, even if a single RPC
response goes out in multiple TCP segments, the IP packets aren't fragmented
and thus don't have to be reassembled.  In addition to the inherent win of
avoiding the reassembly process, you may win because your NIC hardware can
offload the TCP checksum -- even many of those that can offload the UDP
checksum can't do so for fragmented UDP datagrams, and even for some of the
ones that can, our drivers can't.

Thor