Got from the original post.
The maximum payload in 802.3 ethernet is 1500 bytes.
This is the data you’re trying to send out over the wire (and what the MTU is referring to).
[payload] <- 1500 Bytes
The payload is encapsulated in an Ethernet Frame (which adds the Source/Destination MAC, VLAN tag, Length, and CRC Checksum. This is a total of 22 bytes of additional “stuff”
[SRC+DST+VLAN+LENGTH+[payload]+CRC] <- 1522 Bytes
The Frame is transmitted over the wire — before your ethernet card does that it basically stands up and shouts really loud to make sure nobody else is using the wire (CSMA/CD) — This is the Preambleand Start-of-Frame delimiter (SFD) — an additional 8 bytes, so now we have:
[Preamble+SFD+[Ethernet Frame]] <- 1530 Bytes
Finally when an ethernet transceiver is done sending a frame it is required by 802.3 to transmit 12 bytes of silence (“Interframe Gap”) before it’s allowed to send its next frame.
[Preamble+SFD+[Ethernet Frame]+Silence] <- 1542 bytes transmitted on the wire.
The Preamble, SFD and Interframe Gap do not count as part of the frame. They are support structure for the Ethernet protocol itself.
The MTU applies to the payload — it is the largest unit of data you can cram into the packet. Thus an ethernet packet with an MTU of 1500 bytes will actually be a 1522 byte frame, and 1542 bytes on the wire (assuming there’s a vLAN tag).
So the answer to your question – What is the biggest packet I can send out over 802.3 ethernet without fragmentation? – is 1500 bytes of payload data.
HOWEVER the ethernet layer may not be your limiting factor. To discover if something along the way is restricting the MTU to be smaller than 1500 bytes of payload data use one of the following:
ping hostname -f -l sizeofdata(technique John K mentioned)
ping -D -s sizeofdata hostname
ping -M do -s sizeofdata hostname
The largest value of
sizeofdata that works is the MTU (over the particular path your data is taking).