Subject: Re: Fw: Re: tcp connections lost on interface down
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: Robert Elz <kre@munnari.OZ.AU>
List: tech-net
Date: 08/17/2003 14:20:22
    Date:        Sun, 17 Aug 2003 02:20:03 -0400 (EDT)
    From:        der Mouse <mouse@Rodents.Montreal.QC.CA>
    Message-ID:  <200308170623.CAA24658@Sparkle.Rodents.Montreal.QC.CA>

  | It is?  What does it mean to have a connection for which the address on
  | "your" end no longer belongs to you?

It means nothing, but it is harmless, as nothing for that will ever get
delivered to you again (even if a packet manages to arrive at your
NIC, it will be rejected as not belonging to a local address).

But in practice this is extremely useful, as very frequently, the address
that has just been deleted comes back again very soon after (on the same
interface, or perhaps on a different one).   Like perhaps a few microseconds
later if what is happening is a fairly dumb "delete then install" cycle for
the address, where whatever is doing it either failed to notice (or was
unable to notice) that the change is a no-op.

A more practical case where this can matter, is with removable NICs (like
PCMCIA cards) - if you remove one, the interface (and its address) vanishes.
Plug it back in a minute later, get the same address back from DHCP, and
the world should just resume - there's no need to break every connection
on the planet.

Itojun's change was the right thing to do.

kre