Traceroute-Ulmo (binary named tu) 1996-Sep-27 updated 1998-Feb-1

This is a hack.

It is provided in the hope that you may find it useful for diagnosis,
curiosity, and quality control purposes.

Please don't use it as a piece of code for examples of quality (unless
by accident I did that).  You may do so for the opposite, in fact.

As such, I'm very willing to accept advice, suggestions, and patches
to make it less of a hack (e.g. less bugs), more useful (e.g. bloat
it), and more portable.  I *would* like this hack to work in as many
places as possible, just for the heck of it.  Someday it might trickle
to my ISP and then I can run it there :) (different hosts, OS,
administrations, security needs, connectivity, etc.)

Traceroute-Ulmo (I named the binary "tu" on my system) is basically
a parallel version of traceroute, which attempts to find some optimal
number of outstanding requests to send out all at once (well, that's
the goal anyway).  This includes nameservice lookups as well as packets.
While programming it I realize there's plenty better things to do with
my time, but also realized that I could be integrating this into NTP
so that network statistics would overlap with timekeeping and there
would be more information and more usefulness all around (and better
time, if done right).  Then I realized that NTP could be melded with
routing protocols with the same overlapping pieces ... then I realized
I don't have a trillion bucks to play around with all this crap
and well you should just give it a spin and if you like it then have fun.
Anyway, this looks like it's going to turn into a big database application
if I keep working on it, and that's not all bad, but who's going to
pay me for it?

While I haven't programmed in auto-spacing of the packet sending yet,
be sure to tweak the -w value (it takes fractions) as well as try
sizing your screen to various levels to optimize utility.  Play with
all the options -- they're mostly very simple -- you'll end up using
different ones on occasion.  Default expire (-e) is set high (60s)
since I feel like you ought to ^C it yourself anyway; this isn't a
program to run out of a shell script.

While testing this out, I noticed the Internet is a fucking hell of a
lot more reliable than it ever has been in the past, so the utility of
this may be a lot less (and the results much less interesting).
Furthermore, the peoples' whose job it is to fix this stuff are
increasingly less accessible to the user who experiences the brunt of
these problems, and have more diagnosis tools on their hands than
usual.  Any features that can be added to this traceroute to help deal
with those situations would be nice (like automailing the correct
network admin contacts of any problems found is a feature I've thought
of for tu -- it could lookup the data in various WHOIS databases).

(send patches here:)
Bradley Ward Allen <Ulmo@Q.Net>
ftp://ftp.q.net/tu.tar.gz

TODO:

* Most of the TODO list is in tu.c.
* I stuck GNU Autoconf on it.  I like it.  I have to make more
  utility with GNU Autoconf.  I'm just learning it.  Please definately
  provide lots of portability fixes -- GNU Autoconf is supposed to
  help in that regard a lot!  (Currently I find it nice but I haven't
  made it do much useful yet.)
