RFC 1393

Traceroute Using an IP Option

๐Ÿ“… published January 1993, from ietf

RFC 1393: Traceroute Using an IP Option ๐Ÿฆ‹

okay bestie, RFC 1393 is here and it's giving classic ๐Ÿ’… Here's the title block tea โ˜•

  • Series: Network Working Group
  • Number: RFC 1393
  • Author: G. Malkin, Xylogics, Inc.
  • Date: January 1993
  • Status: It defines an Experimental Protocol ๐Ÿงช
  • Obsoletes/Updates: none listed in this document ๐Ÿ™ˆ

Status of this Memo ๐Ÿ“œ

So this memo defines an Experimental Protocol for the Internet community ๐ŸŒˆ They're asking for discussion and suggestions for improvement, so bring your ideas! For the standardization state and status of this protocol, check the current edition of the "IAB Official Protocol Standards." Distribution of this memo is unlimited ๐Ÿซถ

Abstract โœจ

Traceroute is a valuable network debugging tool ๐Ÿ” The way it's currently implemented has the perk of being automatically supported by all of the routers ๐Ÿ‘‘ But it has two problems: the number of packets it generates and how long it takes to run ๐Ÿข

This document specifies a new IP option and ICMP message type. It does the same job as the existing traceroute method, but it generates fewer packets and finishes in a shorter time ๐Ÿš€ Main character energy.

Table of Contents ๐Ÿ—‚๏ธ

1.  Traceroute Today  . . . . . . . . . . . . . . . . . . . . . 2
2.  Traceroute Tomorrow . . . . . . . . . . . . . . . . . . . . 2
2.1 Basic Algorithm . . . . . . . . . . . . . . . . . . . . . . 2
2.2 IP Traceroute option format . . . . . . . . . . . . . . . . 3
2.3 ICMP Traceroute message format  . . . . . . . . . . . . . . 4
3.  Protocol  . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1 Hop Counts  . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Destination Node Operation  . . . . . . . . . . . . . . . . 6
3.3 Router Operation  . . . . . . . . . . . . . . . . . . . . . 6
4.  References  . . . . . . . . . . . . . . . . . . . . . . . . 7
5.  Security Considerations . . . . . . . . . . . . . . . . . . 7
6.  Author's Address  . . . . . . . . . . . . . . . . . . . . . 7

1. Traceroute Today ๐Ÿฃ

Okay so the existing traceroute works by sending out a packet with a Time To Live (TTL) of 1. The first hop then sends back an ICMP [1] error message saying the packet couldn't be forwarded because the TTL expired. Next, the packet is resent with a TTL of 2, and the second hop returns the TTL expired message. This keeps going until the destination is reached. The whole point is to record the source of each ICMP TTL exceeded message, so you get a trace of the path the packet took to reach the destination ๐Ÿ—บ๏ธ

The advantage here is that every router already knows how to send TTL exceeded messages, so no special code is required ๐Ÿ™Œ The disadvantages, though, are giving "too many packets" vibes ๐Ÿ’€ There are 2n packets generated, where n is the number of hops. It also takes time to duplicate all the nearer hops with each successive packet, and the path may change during this process. Plus, this algorithm doesn't trace the return path, which may differ from the outbound path ๐Ÿ˜ญ

2. Traceroute Tomorrow ๐Ÿ”ฎ

The proposed traceroute would use a different algorithm to hit the same goal: tracing the path to a host ๐ŸŽฏ Because the new traceroute uses an ICMP message designed for the purpose, it can make available additional information that the original traceroute user couldn't get ๐Ÿง โœจ

2.1 Basic Algorithm ๐Ÿ’–

A new IP Traceroute option will be defined. If this option is present in an ICMP Echo (or any other) packet, which we'll call the Outbound Packet, it will cause a router to send the newly defined ICMP Traceroute message to the originator of the Outbound Packet ๐Ÿ“ฌ This way, the originator logs the path of the Outbound Packet with only n+1 packets (instead of 2n) ๐Ÿคฏ The algorithm doesn't suffer from a changing path, and it lets you trace the response to the Outbound Packet, which we'll call the Return Packet. That only works if the Outbound Packet's destination preserves the IP Traceroute option in the Return Packet ๐ŸŽ€

The downside is that the traceroute function has to be put into the routers. But honestly? This mechanism may be easily ported to a new IP version, so it's a trade-off I'm obsessed with ๐Ÿ’œ

2.2 IP Traceroute option format ๐Ÿงฉ

    0               8              16              24
   +-+-+-+-+-+-+-+-+---------------+---------------+---------------+
   |F| C |  Number |    Length     |          ID Number            |
   +-+-+-+-+-+-+-+-+---------------+---------------+---------------+
   |      Outbound Hop Count       |       Return Hop Count        |
   +---------------+---------------+---------------+---------------+
   |                     Originator IP Address                     |
   +---------------+---------------+---------------+---------------+

Here's the breakdown of each field, bestie ๐Ÿซถ

  • F (copy to fragments)
    • 0 (do not copy to fragments)
  • C (class)
    • 2 (Debugging & Measurement)
  • Number
    • 18 (F+C+Number = 82)
  • ID Number
    • An arbitrary number used by the originator of the Outbound Packet to identify the ICMP Traceroute messages. It is not related to the ID number in the IP header ๐Ÿ™…โ€โ™€๏ธ
  • Originator IP Address
    • The IP address of the originator of the Outbound Packet. This is needed so the routers know where to send the ICMP Traceroute message for Return Packets. It's also needed for Outbound Packets which have a Source Route option ๐Ÿ—บ๏ธ
  • Outbound Hop Count (OHC)
    • The number of routers the Outbound Packet has passed through. This field is not incremented by the Outbound Packet's destination ๐ŸŒธ
  • Return Hop Count (RHC)
    • The number of routers the Return Packet has passed through. This field is not incremented by the Return Packet's destination ๐Ÿฆ‹
Next up: the ICMP Traceroute message format and the rest of the spec ๐Ÿ‘€

6. Author's Address โœจ

Okay bestie, this is the little signature block at the end where the author tells you where to find them ๐Ÿ’…๐ŸŽ€ Gary Scott Malkin was at Xylogics, Inc. ๐Ÿงš It's giving "old-school email address and a landline" energy, which is so iconic ๐Ÿ“ž๐Ÿ’œ

   Gary Scott Malkin
   Xylogics, Inc.
   53 Third Avenue
   Burlington, MA 01803

   Phone:  (617) 272-8140
   EMail:  gmalkin@Xylogics.COM
๐Ÿ“ฆ where this page comes from