Re: nfs udp 1000/100baseT issue

Helge Hafting
2006-03-17T09:13:26Z

Bret Towe wrote:

>On 3/16/06, Neil Brown <neilb@suse.de> 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