Re: ncpfs and TCP vs UDP

From: Jan Engelhardt
Date: Sat Jan 27 2007 - 09:53:38 EST



On Jan 26 2007 22:20, vandrove@xxxxxxxxxx wrote:
>Quoting Pierre Ossman <drzeus-list@xxxxxxxxx>:
>
>TCP is definitely preferred. There are couple of reasons why you should
>prefer TCP:
>
>(1) There is server configuration option to disable NCP/UDP. You cannot
>disable NCP/TCP that easily.
>
>(2) TCP (NCP over TCP) retransmits only missing data, and it can ask for
>retransmit much sooner as it knows what link latency is. NCP/UDP can only ask
>for complete packet retransmission, and it has no good idea what's link
>latency because there is no ACK from server when it receives request - you can
>only resend after usual link latency + time for process request, so you'll
>wait longer for retransmit, and on retransmit you need to send again complete
>request (which can be 64KB of data if you use 64KB buffer size...)
>
>(3) To avoid problems with retransmits ncpfs uses default buffer size 60KB for
>TCP (SOCK_STREAM), while 1KB for UDP/IPX (it must be multiple of sector size,
>so using 1.4KB is not an option). So if you read 1 page, you get 1
>request/reply when using TCP, but 4 requests/replies in UDP/IPX. And as all
>this is fully synchronous, and for today's link latency is dominating factor,
>it will take 4 times longer...
[and (4)]

Well, probably the same reason as NFS over UDP is discouraged. See nfs(5)
section WARNINGS (in short: IP fragment ID can wrap quite fast on Gigabit)



-`J'
--
-
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/