layer2 – MTU mismatch situation, two hosts deal with otherwise ingoing packets larger than native interface MTU. How does MTU actually work?


I’ve been combating the MTU matter for some time and I nonetheless can’t get the way it actually works. The vast majority of books that I learn and the programs that I attended all appear to deal with this topic in a superficial approach.

I attempted sending pings between a Mac Os host and a Home windows host by simulating totally different mtu eventualities.
Each hosts are in the identical Lan and are related to a Wifi router.

Situation A

Mac Os host , mtu 1500

Home windows host, mtu 1300

I despatched a 1500 bytes ip packet with icmp echo request out of the Mac Os interface to the Home windows 1300 mtu interface.
The Home windows machine accepts the packet usually after which sends again the echo reply by fragmenting the ip packet into two elements .

Situation B

Mac Os host , mtu 1300

Home windows host, mtu 1500

This situation is the alternative of the primary one. Hower once I ship a 1500 bytes ip packet with ping request to the Mac Os host I don’t get any reply ( shouldn’t the Mac Os host have despatched icmp error fragmentation wanted ? ).

This behaviour it’s somewhat complicated. Is the mtu involved with ingoing, outgoing or each instructions site visitors ?

How might be defined the totally different behaviour of the Mac Os and Home windows hosts ?

Quite a lot of books and sources speak about “subsequent hop mtu” when referring to icmp error fragmentation wanted.
This assertion appears acceptable if we now have a situation like this :

enter image description here

On this case once we ship a packet larger than 1492 destined to host B the router goes to ship an ICMP error fragmentation wanted ( supplied that it hasn’t a firewall that forestalls that from occurring ).
It’s because the “mtu interface to the subsequent hop” is barely 1492 bytes.

Nonetheless contemplate this different situation :

enter image description here

Let’s say I ship a 1500 bytes ip packet with icmp echo request to R1 ( handle ). What’s R1 going to do on this case ? Settle for the packet because the Home windows host did ? Merely drop the packet because the Mac Os host did ? Drop the packet and ship an icmp error fragmentation wanted ?

Is there some mtu wizard who might clarify how issues actually work with regards to mtu and attempt to make some order by explaining and placing collectively the eventualities I simply confirmed ? What is that this mtu at its core ? Is it a {hardware} limitation ( NIC )? Is it a software program limitation ?

Massive thanks to whoever goes to make clear this matter !


Supply hyperlink

Leave a Reply

Your email address will not be published.