Almighty MTU – Ethernet MTU, MPLS MTU and IP MTU

Tuesday, January 21, 2014

The MTU implementations are different on vendor’s equipments, different equipments, different boards and even different software on the same hardware platform. Most of the known and used MTU are the following: Physical MTU, IP MTU, GRE IP MTU, IPSEC MTU, MPLS MTU, MPLS TE MTU, and LDP over MPLS TE MTU. The packet/frame verification and fragmentation can be done or in ingress or in egress depending of course of the implementation on specific device and vendor.

Theoretically we have the following MTU for an Ethernet frame, with the following relationship between them:

ETHERNET MTU > MPLS MTU > IP MTU

ETHERNET MTU = ETHERNET ENCAPSULATION + MPLS MTU + IP MTU





Pre
SFD
O-DMAC
O-SMAC
Type
LSP
Label
RSVP Label
VPN
Label
IP
20 bytes
TCP
20 bytes
Payload / Data
6-1460
CRC
FCS
IFG
8
6
6
2
4
4
4
1500
4
12
IP MTU
MPLS MTU
ETHERNET MTU


Before analyzing them we must understand that actually there 2 types of maximum frames, but usually we configure the MTU:
– MTU – Maximum Transmission Unit – the maximum frame which can be transmitted on the link.
– MRU – Maximum Received Unit – the maximum frame which can be received on the link.

Based on the RFC 1122 the following fields are defined:

RFC-1122


1. Ethernet Interface MTU
The interface MTU is considered to be the physical MTU even if it is actually the Layer 2 MTU. Now depending on the vendors and devices, the IFG, CRC and Ethernet encapsulation (DMAC, SMAC, and TAG ID) can or cannot be included on the interface MTU.
On most devices, the Preamble (7 bytes), SFD (1 byte) and IFG (12 bytes), and sometimes even the CRC (4 bytes), are not included in the hardware maximum frame size

1.1 Cisco Ethernet interface MTU – 1518 bytes (or 1522 bytes or 1524 bytes depending on the platform and software version) even if it is seen as 1500 bytes on most of the equipments, the interface MTU is considering to be 1500, the L2 encapsulation overhead of 18 byes (DMAC – 6 bytes, SMAC – 6 bytes, 1 TAG ID for 802.1Q – 4 bytes and Type – 2 bytes) and CRC (4 bytes) is automatically added. So basically the Cisco Ethernet MTU is setting the PDU field of the Ethernet frame to 1500 bytes, the Ethernet L2 overhead is automatically added.

1.2 Juniper Ethernet interface MTU – 1514 byte if you consider L2 encapsulation – on most of the equipments, the interface MTU is considered to be the configured value, without adding by default any padding or L2 encapsulation, that’s why for the normal Ethernet frame, without a tag the configured value must be 1514 (DMAC – 6 bytes, SMAC – 6 bytes and Type – 2 bytes). Still the CRC is not calculated and also IFG is ignored.

1.3 Huawei Ethernet interface MTU – 1500 bytes – The L2 encapsulation is ignored; actually only the IP MTU matters in Huawei routers. For Huawei switches, there is MFL (Maximum Frame Length) which is actually the Ethernet Frame lenght including CRC.

1.4 Alcatel Ethernet interface MTU – 1514 bytes default value for access ports and 1518 bytes for trunk 802.11Q ports.

1.5 Ericson Ethernet interface MTU – 1500 bytes default value

As a conclusion to Interface MTU default values, in order to be sure what are them and how the devices calculate them better to find an official answers from the vendors.

2. IP MTU
The IP MTU is considered to be the maximum IP packet size which can be transmitted over the interface without the need of IP fragmentation. The IP MTU should (not must!) be lower or equal with Ethernet interface MTU, sometimes if it is set to a greater value then the Ethernet interface MTU is automatically converted to a higher value. It does not affect the maximum size of the MPLS labeled packets.



Conclusion: The MTU implementation is vendor, hardware and software dependent, in some situation MTU size does matter in some does not. Usually the best solution to avoid fragmentation is to set MTU to a higher value which might accommodate all the encapsulation or even to elect the higher MTU size supported on all the network devices, server and the applications involved. The only real disadvantage which I found is that the Ethernet CRC algorithm might have some issue and might miss some errors (the Ethernet uses a 32 bit CRC which loses its effectiveness above about 12000 bytes, but not at 9000). 

But looking at the following advantages, I think the 9000 bytes jumbo frames are a must in almost all networks:
- Increase Throughput you can check the tables in my last article Ethernet, Carrier and Datacenter Ethernet Protocol Overhead and Throughput
- Bigger packets mean usually less CPU load or interrupts and less processing overhead for both networking devices (routers, switches) and servers.
-  Increase TCP Throughput which is directly proportional with MSS, even if the packet loss will increase retransmission (anyhow, which ISP will stay with a noticeable packet loss in the network for a long period).

What is nice to find out from your vendor devices, (before actually buying them!) are the following:
1. Does the device / card support fragmentation?
2. Does the device / card has both MTU and MRU (does the device make a fragmentation on the receiving also)?
3. What does the hardware MTU (applied on the physical interface) actually count (the Preamble, SFD and CRC are included or not)?
4.  Is the hardware MTU (applied on the physical interface) applied for Layer 2 frames or to Layer 3 packets?
5. What are the differences between the hardware MTU (applied on the physical interface) and the IP MTU? What will happen if the IP MTU configuration applied is bigger than the hardware MTU?
6. What are the differences between the hardware MTU (applied on the physical interface) and the MPLS MTU? What will happen if the MPLS MTU configuration applied is bigger than the hardware MTU?
7. What are the differences between IP MTU and the MPLS MTU? What will happen if the MPLS MTU configuration applied is bigger than the IP MTU?
8. How does the IP and MPLS fragmentation work? How the device / board will treat the fragmented packets?
9. How the MPLS TE MTU is calculated?


What do you think I should add to this list?

by Mihaela Paraschivu


In case you want to play with the various MTU values and encapsulation, you can use the below tool created by Daniil Baturin here .


Encapsulation overhead calculator

Encapsulation overhead calculator

Choose protocol



Parent interface MTU:
Protocols:
Overhead:
PDU size:

Notes

PDU (Protocol Data Unit) is a general term for frames, packets, segments etc.

Examples

GRE over IPv4, encapsulates IPv4. We want tunnel MTU, parent interface MTU is 1500
Parent interface MTU is maximum size of IPv4 packets it can transmit, not counting Ethernet frame headers. So we only need to care about IPv4 and GRE, and we add IPv4 (20 bytes) and GRE (4 bytes). Tunnel MTU is 1476, which means maximum size of encapsulated IPv4 packet must not exceed 1476 if we don't want it to be fragmented

MSS for the above example.
To get MSS, we need to add IPv4 and TCP after those IPv4 and GRE. MSS will be 1436 (1476 - 20 - 20), which means TCP payload must not exceed 1436.

No comments: