Network Interface MTU:
Hi,
What do you think whether Maximum transmit unit(MTU) is TCP/IP stack software feature or hardware(NIC) feature?
I was bit confused on this. I will explain it by following two scenario:
- When I set my network interface MTU to 1500 bytes on my ubuntu PC and send packets larger than 1500 bytes from other ubuntu PC, connected to 1st ubuntu PC directly. I was not able to see any frame larger than 1514 bytes(1500 packet size) on Wireshark, running on 1st ubuntu PC. That’s mean packet larger than 1500 bytes is getting drop by hardware.
- In second scenario, I set my network interface MTU to 9000 bytes on my 1st ubuntu PC and start sending packets larger than 1500 bytes from 2nd ubuntu PC. Now I can see frames larger than 1514 bytes. Now NIC is not dropping frames larger than 1514 bytes and wireshark(which use libpcap library) is able to capture those frames.
on both scenario, I increased mtu of 2nd ubuntu PC to 9k bytes and able to see larger side frame going out from 2nd pc to 1st pc.
Wireshark run between TCP/IP stack and NIC device driver. So in second scenario wireshark able to capture/see frames larger than 1500 bytes.
MTU as a software come into picture when any application is sending data more than configured mtu and then TCP/IP stack will fragment those large size packets to smaller size packets based on configure mtu size. On sending side, MTU software is comes into picture while on receiving side mtu work as hardware feature.
This is totally based on my observation and understanding, so please feel free to correct me if I am wrong.