I’ve been fighting the MTU matter for some time and I nonetheless can’t get the way it actually works. Nearly all of books that I learn and the programs that I attended all appear to deal with this topic in a superficial manner.
I attempted sending pings between a Mac Os host and a Home windows host by simulating completely different mtu situations.
Each hosts are in the identical Lan and are linked 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 state of affairs is the other 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 just a little complicated. Is the mtu involved with ingoing, outgoing or each instructions site visitors ?
How may very well be defined the completely different behaviour of the Mac Os and Home windows hosts ?
A whole lot of books and sources discuss “subsequent hop mtu” when referring to icmp error fragmentation wanted.
This assertion appears applicable if now we have a state of affairs like this :
On this case after we ship a packet greater than 1492 destined to host B the router goes to ship an ICMP error fragmentation wanted ( offered that it hasn’t a firewall that stops that from occurring ).
It’s because the “mtu interface to the subsequent hop” is barely 1492 bytes.
Nevertheless take into account this different state of affairs :
Let’s say I ship a 1500 bytes ip packet with icmp echo request to R1 ( handle 10.0.0.2 ). 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 in relation to mtu and attempt to make some order by explaining and placing collectively the situations I simply confirmed ? What is that this mtu at its core ? Is it a {hardware} limitation ( NIC )? Is it a software program limitation ?
Large thanks to whoever goes to make clear this matter !