Subject: NFS transport
To: None <tech-kern@netbsd.org>
From: None <rick@snowhite.cis.uoguelph.ca>
List: tech-kern
Date: 07/23/2002 13:59:53
> 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).

For TCP, there is retransmission at the transport layer, along with various
congestion avoidance strategies and a send window that provides feedback to
the client when the server is heavily loaded. (When the TCP send window is
filled, the client will wait before sending more data, hopefully avoiding
an overloaded server.) An overloaded server throws RPC requests on the floor
and can demonstrate what I've called server congestion collapse, since it
is similar to congestion collapse due to overloaded IP routers.

rick