How often do IP packets fragment on the source host?

I know that if the IP payload is> MTU, routers usually fragment the IP packet. Finally, all fragmented packets are collected at the destination using IP-ID fields, IP fragment offsets, and fragment flags. The maximum IP payload length is 64 KB. Thus, it is very believable for L4 to transfer a payload of 64K. If the L2 protocol is Ethernet, which is often the case, the MTU will be around 1600 bytes. Consequently, the IP packet will be fragmented on the source host itself. However, a quick search for IP implementation on Linux tells me that in the latest kernels, the L4 protocols are fragment friendly, i.e. They try to keep fragmentation work for IP by passing buffers of size close to the MTU.

Given these two facts, I wonder how often an IP packet gets fragmentation on the original host itself. Does this happen sometimes / rarely / never? Does anyone know if there are exceptions to the fragmentation rule in the Linux kernel (i.e. are there situations where L4 protocols are not fragment-friendly)? How is this handled on other common operating systems such as windows? How often are IP packets fragmented?

+4
source share
1 answer

Although there should technically not be protocols that do not handle IP fragmentation correctly, there is a couple (like NFS) that benefit from the lack of fragmentation .

How often you see fragmented packets depends heavily on your network environment. Encapsulating packets for VPNs, poorly designed or implemented UDP protocols, and L1 / L2 protocols that display end-to-end MTUs below endpoints can result in IP fragmentation.

Most modern hosts implement PTMUD , which automatically determines the size of the MTU if incompatible devices or super-paranoid firewalls are not involved. These days Ethernet Everywhere, I do not expect them to be especially common on the Internet in general.

+4
source

All Articles