Question on path mtu and IP fragmentation in Linux kernel 3.0

michi1 at michaelblizek.twilightparadox.com michi1 at michaelblizek.twilightparadox.com
Sun Jul 13 03:48:52 EDT 2014


Hi!

On 01:47 Sun 13 Jul     , Sudharsan Vijayaraghavan wrote:
> Hi,
> 
> i find that even when /proc/sys/net/ipv4/ip_no_pmtu_disc is 0 (default
> value), that
> is path mtu is enabled, IP layer fragments the packets if it exceeds MTU
> 
> For example MTU is 1500, i do ping -s 15000 <ip addr>, IP layer nicely fragments
> the packets, how is that possible?

Path mtu discovery basically means that "fragmentation" is done on layer 4
(e.g. TCP) and not on layer 3 (IP). If it is enabled the "do not fragment" bit
in the IP header is set. If such a packet is about to be sent via a link with
a small MTU instead of being fragmented an "fragmentation needed" header is
sent back to the sender. The sender will then sent smaller packets. Generating
packets with the right size at the sender is supposed to be faster than
fragmenting them in the middle of a route.

Protocols like ICMP or UDP cannot do "fragmentation" themself. This is why
path mtu discovery does not have any effect on them.

	-Michi
-- 
programing a layer 3+4 network protocol for mesh networks
see http://michaelblizek.twilightparadox.com



More information about the Kernelnewbies mailing list