Monday, January 4, 2016

Ethernet MTU limits TCP MSS


TCP Maximum segment size (MSS) or payload in TCP packet is typically 1460 bytes only!

Length of IP packet is capped by 16 bytes field in IP header which itself is 20 bytes and so MTU for protocols on top of IP is = 2^16 - 20 = 65515 bytes and it is much larger than 1460 bytes.

TCP implementations want to use lowest mss that can avoid the packet fragmentation over the internet.

Maximum transfer unit (MTU) is the size of the largest payload a packet can contain after subtracting the header and other metadata information needed to transmit the payload.

Ethernet frame size is 1530 bytes, but ethernet MTU is only 1500 bytes. Payload is preceded by ethernet header and is followed by Frame check Sequence(FCS).
* preamble 7 bytes, start frame 1 byte
* header 14 to 18 bytes - source addr, dst addr, optional 802.1 vlan tag and payload type.
* FCS - 4 bytes.

Subtracting 20 bytes for IP header and 20 bytes for TCP header, 1500 - 40 = 1460 bytes.

References
* Ethernet frame

No comments: