Re: nfs udp 1000/100baseT issue

From: Helge Hafting
Date: Fri Mar 17 2006 - 04:10:48 EST


Bret Towe wrote:

On 3/16/06, Neil Brown <neilb@xxxxxxx> wrote:


There is no flow control in UDP



is this a linux design flaw or just nature of udp?


That has nothing to do with linux at all.

"Now flow control in udp" is a udp design issue. And it is not
a flaw either - the rule is simple:

If you need flow control - use tcp.
If you don't need flow control, and don't want the
overhead of flow control - use udp.

Udp is for those cases where flow control is consideres a waste of time.

Now, the original decision to base early NFS on udp, that was
a design mistake. Again, not a linux problem but a nfs problem.
Fortunately, today a solution for this exists and is implemented
in linux - and it is nfs over tcp.

. If anything gets lots, the client
has to resend the request, and the server then has to respond again.
If the respond is large (e.g. a read) and gets fragmented (if > 1500bytes)
then there is a good chance that one or more fragments of a reply will
get lots in the switch stepping down from 1G to 100M. Every time.

Your options include:

- use tcp



im wondering why this isnt the default to begin with


Hard to say. I guess someone thought they could get better
performance with udp - it has less overhead.,
Then didn't bother testing this idea with a somewhat congested network?

Helge Hafting
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/