How to manually detect MTU

Here are some steps I took to detect the MTU of some of our off-site DSL users.

The MTU for Ethernet is 1500. This is a typical setting for office LANs where there’s no traffic traversing links of smaller size. However, traffic that must cross non-ethernet links, such as DSL, will encounter MTUs of different sizes. When a network device receives a packet larger than its MTU two things can happen:

If the packet has the ‘do not fragment’ flag set the device will drop the packet and reply back to the packet originator with an error message.

If the packet does not have the ‘do not fragment’ flag set the device will break the packet down into identical-but-smaller sterilized packets that fit within the MTU requirements of that link.

Here’s how you can test to see what the MTU is between your computer and a remote computer.

In this example I’m going to use my Mac at home to test the MTU to yahoo.com.

I’m going to use the ‘ping’ command with the ‘-D’ (do not fragment) and ‘-s’ (packet size) flags.

Some platforms (linux vs Windows vs Cisco etc) have a slightly other way of calculating the payload and MTU size. Some take the payload including 28 bit headers and info. With others you still need to add 28 bits to the maximum payload to get the correct MTU size.

If you are looking for a way to do this from an external source to the outside of your router, automatically, you could try the following MTU test: