Testing whether jumbo frames are actually working

Enabling Jumbo Frames means allowing a larger Maximum Transmission Unit (MTU), usually by setting the MTU to 9000.

To verify this has worked you can use ping in windows with the -l flag to set the packet size, and the -f flag to set Don't Fragment flag in the packet.

ping my.test.host -f -l 8972

If the packet gets fragmented you will see

Packet needs to be fragmented by DF set

in place of what you would normally see.

For Linux, the ping command uses different flags. -s sets the packet size, and -M do sets Do Not Fragment. So the above command would be:

ping my.test.host -M do -s 8972

By adjusting the packet size, you can figure out what the mtu for the link is. This will represent the lowest mtu allowed by any device in the path, which could be your switch, your computer, target or anything else inbetween.

This won't by itself tell you where the lowest MTU is - you may be able to work that out by running the test to different devices in the path, but there could always be transparent routers that limit the MTU but don't show up for traceroute.

Note there is an overhead of 28 bytes for the ICMP headers, so the MTU is 28 bytes larger than the figure you establish through the method above. So to check for MTU of 9000, you actually need to set your ping packet size to 9000-28 = 8972.

Update I found some resources which will specifically figure out the MTU across the path between the host and the target:

  • For Windows mturoute
  • For *nix tracepath or traceroute --mtu

And some more discussion on finding the MTU of a path.