Subject: Re: Networking question MTU on non-local nets
To: None <port-macppc@netbsd.org>
From: Donald Lee <MacPPC@caution.icompute.com>
List: port-macppc
Date: 06/15/2003 15:50:55
At 10:06 PM +0200 6/15/03, Manuel Bouyer wrote:
>> [snip...]
>> My real authority is that NetBSD 1.6.1, the premier OS on the 'net does it
>> that way. ;->
>
>This is quite possible. All the problems we see with pppoe on adsl connections
>suggests that most of the servers on the internet use large packets by
>default too ...

The folks I talk to at work seem to think that the MTU  of the internet
is 1500 - just one big happy ethernet segment. ;->

>Note that using small packets have a performance penalty: I noticed a real
>drop in performances (~10%) between my ftp server at work and my client at
>home, when I upgraded the server to 1.6 from 1.5.x. This is how I noticed
>that the default MTU for 1.6 and 1.5.x was different.
>Enabling PMTU discovery fixed the performances problem.

I also noticed this.  Small MTUs are inefficient.

PMTU-D doesn't really fix the performance problem, though.

Without PMTU-D, my non-local (1.5.2) links go out at 1400+ MTU, and higher
performance.  Except for the broken ones that don't handle frag/defrag,
this works fine.

With PMTU-D, the _entire_ path has to run at the smallest MTU on the
path.  This is probably a performance hit for those paths.  It is
certainly more costly for all the other hops that have to handle more
packets to move the data.

Damned if you do, and damned if you don't. ;->

You can actually set the path MTU explicitly with netBSD.  I have not
played with this much, but it appears that you can say:

	route add -mtu 1000 -static remote.place.com gateway.com

Presumably, I could set up explicit routes, with appropriate MTUs for
problem destinations to work around problems like these.

I also presume that you could do something like this:

	route add -mtu 1400 -static 0.0.0.0 main.router.com

to set the "nonlocal" MTU on a 1.6.1 system.  I haven't tried it,
though.

In theory, you could set up a 1.6.1 system to behave like a 1.5.2 system
in terms of non-local MTU with these techniques.  You could even build
a grand hierarchy of routes to maximize performance without tripping
over broken routers.

It could be a hobby. ;->

-dgl-