Subject: Re: ICMP specification
To: None <tech-net@netbsd.org>
From: Robert Elz <kre@munnari.OZ.AU>
List: tech-net
Date: 10/05/1998 12:15:30
    Date:        Sun, 04 Oct 1998 15:17:35 -0700
    From:        Dennis Ferguson <dennis@juniper.net>
    Message-ID:  <199810042217.PAA05459@skank.juniper.net>

    Also ICMP where the first sentence suggests this is talking about
    sending errors in response to errors rather than a general restriction.

Yes .. in fact, if you think about ICMP for a second, you'll see that the
"never send an ICMP in response to an ICMP message" as a general rule would
be absurd - by itself that would mean you couldn't send an ICMP echo response
as a response to an ICMP echo request!

In another message...

    From:    Marc Slemko <marcs@znep.com>
    Date:    Sun, 4 Oct 1998 14:46:48 -0700 (PDT)

    At the time Unix traceroute was implemented, the world was a different
    place and many routers wouldn't send ICMP in response to ICMP.

No, that wasn't the reason.   Traceroute uses udp because udp is "real"
traffic - that is, routers are going to be routing udp packets just the
same way they process any other packets between the source and destination.
ICMP is occasionally treated somewhat specially.   If you want honest
traceroute reports it is better to get them from packets as close to being
real traffic as possible.

On the other hand (and as a wild guess the reason for switching to ICMP)
ICMP packets are less frequently filtered than anything else floating around.
If you want to find the route to somewhere through a firewall, ICMP has
a better chance of actually working than random UDP traffic does.

kre