Subject: mech-v2: multiple packet drops with ICMPv4 and ICMPv6 [Re: comments on mech-v2-01]

From: Pekka Savola <[email-masked]>
Date: Wed, 28 Jan 2004 13:35:30 +0200 (EET)

Hi,

I added the text below at the end of section 3.4 on ICMP errors.

Does this address your concern?  Or would you propose alternative 
text?

   Note that when IPv4 path MTU is exceeded, and ICMPv4 errors of only 8
   bytes of payload are generated, or ICMPv4 errors do not cause the
   generation of ICMPv6 errors in case there is enough payload, there
   will be at least two packet drops instead of at least one (the case
   of a single layer of MTU discovery).  Consider a case where a host is
   connected to a router, which is connected to a network where an
   ICMPv4 error about too big packet size is generated.  First the
   router needs to learn the tunnel (IPv4) MTU which causes at least one
   packet loss, and then the host needs to learn the (IPv6) MTU from the
   router which causes at least one packet loss.  Still, in all cases
   there can be more than one packet loss if there are multiple large
   packets in flight at the same time.

On Mon, 10 Nov 2003, Erik Nordmark wrote:
> > 1) A race is triggered when an IPv6 router that has a configured tunnel
> >    with another router is doing dynamic mtu detection. The outcome of the
> >    race is that one or more ICMPv6 "packet too big" message might not be
> >    sent out to an host.
> > 
> > Assume an IPv6 network like:
> > 
> > [H1]-------->[R1]===========>[R2]--------->[H2]
> 
> >   5. H1->R1 TCP packet of size 1400 (this is a retry)
> >   6. R1->H1 ICMPv6 "packet too big" with size 1300
> >   7. H1->R1 TCP packet of size 1400 (this is a retry)
> >   8. ... (the above cycle might repeat if there are more IPv4 routers
> >      that send ICMPv4 "fragmentation needed" with 8 bytes of payload)
> 
> I don't understand how it can repeat. Do you think it can repeat forever?
> 
> When the 8-byte payload ICMP errors are sent then R1 will effectively
> compute the minimum received (per IPv4 path MTU discovery).
> 
> It is true that in the case of 8-byte payload ICMP errors you get at
> least two packet drops instead of at least one in the case of a single layer
> of MTU discovery (R1 needs to learn the tunnel MTU which causes at least one
> packet loss, and then H1 needs to learn the MTU from R1 which causes at
> least one packet loss. (And in all cases there can be more than one packet loss
> if there are multiple large packets in flight at the same time.)

-- 
Pekka Savola                 "You each name yourselves king, yet the
Netcore Oy                    kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings