Hacker News new | ask | show | jobs
by pyre 4407 days ago
> $ traceroute -M16 64.111.103.1 # Note: Hides first 15 hops

HARD MODE: Is is actually 'hiding' those hops, or does it not even look for them?

Using Apple's `traceroute.c`[1]:

  case 'M': /* FreeBSD compat. */
    first_ttl = str2val(optarg, "first ttl", 1, 255);
    break;
Looks like it's just bumping up the value of the first TTL.

Note: For those not in the know, traceroute works by adjusting the TTL (time-to-live) value on the packet it sends out. The TTL is basically the max number of hops that the packet can take. Each 'hop' decrements the TTL value, until it reaches the destination or TTL == 0. If the TTL == 0 before it gets to the destination, then the packet it sent back as rejected.

[1] http://www.opensource.apple.com/source/network_cmds/network_...

1 comments

Heh! You wouldn't need to check the code to validate the execution flow unless you're on a first-world network and so used to them that latency becomes unnoticed!

In terms of comprehension for the record I would recommend instead of the source the explanation at Wikipedia: https://en.wikipedia.org/wiki/Traceroute

For awhile it used to be that people would write their own traceroute implementation as a rite of passage.

As a joke, back in the 1990s, Julian Assange took it one step further and used to spoof responses to traceroutes in order send a fake route back to the querying node, indicating that his systems were somehow affiliated with important government or military entities. Excellent sense of humor :)