Subject: Re: ICMP specification
To: None <>
From: Greg A. Woods <>
List: tech-net
Date: 10/05/1998 13:35:17
[ On Mon, October 5, 1998 at 17:22:02 (+1000), Robert Elz wrote: ]
> Subject: Re: ICMP specification 
>     Date:        Sun, 4 Oct 1998 22:32:56 -0700 (PDT)
>     From:        Marc Slemko <>
>     Message-ID:  <Pine.GSO.4.02A.9810042206510.18202-100000@redfish>
>     Do you have anything to support this assertion?
> Only what I recall Van Jacobsen saying when he first described traceroute.

Here's a part of the comment from Van Jacobson's Dec. 20, 1988 release:

 * The udp port usage may appear bizarre (well, ok, it is bizarre).
 * The problem is that an icmp message only contains 8 bytes of
 * data from the original datagram.  8 bytes is the size of a udp
 * header so, if we want to associate replies with the original
 * datagram, the necessary information must be encoded into the
 * udp header (the ip id could be used but there's no way to
 * interlock with the kernel's assignment of ip id's and, anyway,
 * it would have taken a lot more kernel hacking to allow this
 * code to set the ip id).  So, to allow two or more users to
 * use traceroute simultaneously, we use this task's pid as the
 * source port (the high bit is set to move the port number out
 * of the "likely" range).  To keep track of which probe is being
 * replied to (so times and/or hop counts don't get confused by a
 * reply that was delayed in transit), we increment the destination
 * port number before each probe.
 * Don't use this as a coding example.  I was trying to find a
 * routing problem and this code sort-of popped out after 48 hours
 * without sleep.  I was amazed it ever compiled, much less ran.
 * I stole the idea for this program from Steve Deering.  Since
 * the first release, I've learned that had I attended the right
 * IETF working group meetings, I also could have stolen it from Guy
 * Almes or Matt Mathis.  I don't know (or care) who came up with
 * the idea first.  I envy the originators' perspicacity and I'm
 * glad they didn't keep the idea a secret.
 * Tim Seaver, Ken Adelman and C. Philip Wood provided bug fixes and/or
 * enhancements to the original distribution.
 * I've hacked up a round-trip-route version of this that works by
 * sending a loose-source-routed udp datagram through the destination
 * back to yourself.  Unfortunately, SO many gateways botch source
 * routing, the thing is almost worthless.  Maybe one day...
 *  -- Van Jacobson (
 *     Tue Dec 20 03:50:13 PST 1988

							Greg A. Woods

+1 416 218-0098      VE3TCP      <>      <robohack!woods>
Planix, Inc. <>; Secrets of the Weird <>