Jumbo frames is a frame larger than the standard ethernet frame (1518 bytes). When the layer 2 frame, encapsulates to a layer 3 packet it releases the Source and MAC address (12 bytes), the ethernet type (2 bytes) and CRC information (4 bytes), in total free 18 bytes of header information from the layer 2 and added to the MTU normally configured in 1500 bytes. The MTU (Maximum Transfer Unit) is a term to express in bytes that one packet can cross a network interface. Many of Gigabit ethernet network switches and network interfaces supports jumbo frames, increasing the value of the MTU of an interface, wen can improve our bandwidth throughput sending more data in one packet. Other benefit of jumbo frames is the activity reduce of the CPU. We’ve to think for each data unit sent by a network interface the receiver has to read the frame and TCP/IP header, a single jumbo frame of 9000 bytes replaces six frames of 1500 bytes, this means that our CPU saves five cycles of activity. Jumbo frames are not supported in devices with a bandwidth lower than 1Gb and the maximum frames long are 9000 bytes, because the CRC field isn’t long enough to guarantee the error detection for frames larger than 9000 bytes.
Benchmark of the CPU activity using standard frames and Jumbo frames:
Configuring interfaces for Jumbo frames in GNU/Linux
# ifconfig eth0 mtu 9000
Or BSD based distributions
# ifconfig em0 mtu 9000 up
Persistent configuration in Debian based distributions
# vi /etc/network/interfaces
auto eth0 iface eth0 inet static address x.x.x.x netmask y.y.y.y mtu 9000
Persistent configuration in Red Hat based distributions
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0" HWADDR="00:0C:29:C5:B2:1D" ONBOOT="yes" IPADDR="x.x.x.x" NETMASK="y.y.y.y" MTU="9000"
Persistent configuration in BSD based distributions
# vi /etc/rc.conf
ifconfig_em1="inet x.x.x.x netmask y.y.y.y mtu 9000"