Traceproto is a traceroute replacement written in c that
allows the user to specify the protocol and port to trace
to. It currently supports tcp, udp, and icmp traces with
the possibility of others in the future.
TraceProto operates by sending out packets with a modified time-to-live field. As the packets are routed toward the destination, each hop along the way decrements the time-to-live (also known as the ttl). If the ttl reaches 0 before the packet reaches its destination, the hop that did the final decrement sends back an icmp packet informing the source that the packet expired before reaching its destination. Normal network traffic uses a large ttl and it is unusual for the ttl to reach 0 before the pcaket reaches it destination. TraceProto delibretely uses a series of packets with smaller ttl values to cause each hop between the source and the destination to respond. TraceProto also measured the time that it takes for each hop to respond, potentially showing network congestion or overstressed routers along the way.
Up to this point, TraceProto operates much like the original traceroute did. What TraceProto does differently is that it allows the user to specify which protocol and port to use. The original traceroute was written before most firewalls and transparent redirection and often fails when tracing today's networks.
HopWatcher is a perl wrapper for TraceProto that saves state on the path to
a remote location. Meant to be easily scriptable, all of the options are kept
in a config file and the state is save in a data file.
HopWatcher operates by calling TraceProto using the -op flag to get the scriptable output.
It then compares the results to the results listed in the data file from the previous runs.
If there are differences, HopWatcher exists with a non-zero status. If the config file
calls for it, HopWatcher also writes the current results to the data file. Otherwise the
previous results are saved for the next run. The data file can be generated by HopWatcher or
can be created by hand.
Skippysaurus is an open source developer intent on giving something back to the community
that has helped him to waste so much of his time fiddling with these computer thingies.
A resident of the United States, he has an open source beard and has in fact been called a
long-haired hippy freak at times.