MacTCP Watcher v1.0.0  1993 Peter N Lewis.
This program is free for any use (except you cant sell it obviously).

 Contents

      What MacTCP Watcher Does
      Using MacTCP Watcher
      How It Works
      Limitations
      Small Print
      Warranty
      Fine Print
      Acknowledgements
      Version History
      The Author

 What MacTCP Watcher Does

MacTCP Watcher displays the internals of MacTCP, including a list of all the current TCP connections and information on them.  I tried to report errors as much as possible, so it should be possible to use it as a test program, at least as far as checking that MacTCP initializes correctly.  It will also test the Domain Name System, as well as test sending UDP and TCP echos, and ICMP Ping packets.  The echo tests require a nice unix box to support the echo ports, so to get around this, Ive also implemented a UDP and TCP echo port server in MacTCP Watcher, so you can test it to yourself, as well as to other Macs running MacTCP Watcher.

Note: DNS means Domain Name System, it is the service that converts names (like sumex-aim.stanford.edu) into IP numbers (like 36.44.0.6).

Using MacTCP Watcher

Simply run it and play with the windows.  There isnt much I can describe except the information, and for the most part, your guess is as good as mine (or at least, if you dont already know what an entry means, its unlikely Ill be able to explain in to you).

To test out MacTCP on your Mac, do this:

Launch MacTCP Watcher.
Choose Show MacTCP Info, note the IP number at the top right.
Choose Test ICMP, and type in the IP number.

If any of these three fail, MacTCP is most probably badly configured.  Check the configuration in the MacTCP Control Panel.  If it looks ok, reinstall MacTCP by delete MacTCP, MacTCP Prep, and MacTCP DNR from all folders in the System Folder (ie, the System Folder, Preferences, Control Panels, and Extensions).  Reinstall the control panel from the original disks, and reset the configuration.  Reboot.  Try again.  If it still fails, you have a problem, try reading Eric Behrs MacTCP Info file, included (I hope) in this package.  If it still fails, you're probably going to have to talk to a local expert.  If you are the local expert, you really have a problem.

Ok, now try Test UDP and Test TCP to your Mac's IP.  They should work.

Now, find another machine on the network, as near (network-wise) as you can manage (a Mac running MacTCP Watcher that passes the above tests will do, a unix machine will also do).  Using its IP, try the ICMP test.  If that works, try the UDP and TCP tests as well.  Some unix machines do not support the UDP or TCP tests, you can see if they support the TCP test by telneting to port 7 on the machine in question, if it connects and echos what you type, it works, and should pass the test.  

Repeat the above for various machines further away.

Ok, now test your Name Server.  Try the DNS Test with a name of a near by machine, it should tell you the IP.  Now try again with the IP, it should tell you the name.  Repeat for your Mac, and for other names and addresses.

If none of these work, then your Macs DNS is badly set up.  Read Erics MacTCP Info document.  Basically, the DNS should be set up in the control panel like this:

[Sorry for the spaces, but Text Edit doesnt offer much choice]
your.domain        1.2.3.4      (default)
.                          1.2.3.4      (  )
.                          5.6.7.8      (  )

Where 1.2.3.4 is your primary name server, and 5.6.7.8 is your secondary.  The domains for the second two are just a period (.).

If the name lookup works (ie, finds the IP address), but the reverse doesnt find the name, this generally indicates a problem with the Domain Name Server itself, ask the administrator of the machine why it fails.

 How It Works

It simply calls the MacTCP driver and asks it for the information, and displays it.

The ICMP Test sends 10 ICMP Ping packets, and counts (and matches) the replies.  The UDP Test sends 10 UDP echo packets to port 7 and counts (and matches) the replies.  The TCP Test connects to the TCP echo port (port 7 again) and sends a line and checks for the response.  The DNS Test looks up the IP for the name, or the name for the IP.  All tests will accept either names or IP numbers, but obviously if you use a name, you are implicitly testing the DNS.

A server for each of the TCP and UDP echo ports echos anything sent to them.  MacTCP automatically echos the ICMP Ping packets.

 Limitations

MacTCP Watcher requires MacTCP obviously, it should work with System 6 or 7, and probably requires the 128k ROM (or later).

 Small Print

This program is Freeware, you can use it or distribute it as long as you dont charge for it (reasonable download costs such as Compu$erve are ok I guess (although who would call Compu$erves download costs reasonable?)).  It would probably be a good idea to keep this documentation file with the program, but Im hardly likely to check up on you now am I!  I dont guarantee any support, but I always answer my Email.  If I dont answer Email its because your message didnt get to me, or my reply bounced (so try again, and include a valid internet address if you can).  It may be included on the Info-Mac CD, but not on any other CDs without my permission.  It may NOT be included on any disk costing more than $5 without my permission.

 Warranty

There is absolutely NO warranty, guarantee, hint, suggestion or anything else that would lead anyone to think that MacTCP Watcher does anything stated in this documentation.  It usually does not destroy data (systems, hardware, etc), and has sometimes worked on my Mac with System 7.0.  It will probably not work with the 64k ROM.  It might work with the other models, but I don't have them all, so I don't know.  If it works on your system (or especially if it doesnt!), send me a postcard or some Email and let me know!

 Fine Print

Peter Lewis hereby disclaims all warranties relating to this software, whether express or implied, including without limitation any implied warranties of merchantability or fitness for a particular purpose.  Peter Lewis will not be liable for any special, incidental, consequential, indirect or similar damages due to loss of data or any other reason, even if Peter Lewis or an agent of his has been advised of the possibility of such damages.  In no event shall Peter Lewis be liable for any damages, regardless of the form of the claim.  The person using the software bears all risk as to the quality and performance of the software.

 Acknowledgements

Thanks to everyone on the net for being a lot of fun.

 Version History

Todo
Doesn't seem to work too well with MacSLIP?
Dump data to a file
Send Unacked data is large negative, WTF does it mean?
Connection List doesn't always update?
Implement a method to copy the resulting IP or Name from the DNS test
Better reporting for the TCP and DNS tests
Better reporting of why MacTCP fails on startup.
Implement the netstat port perhaps?

v1.0.0
~Dont open the info window if we failed to open MacTCP.

v1.0.0d5
~Longer timeout for ping/UDP packets.
~Open the info window on startup
~Test buttons at the bottom of the Info window?
~Response times for UDP/ICMP packets.
~Command keys for tests
~Show the default IP in the GetIP dialog (ie the last IP entered)
~Added Eric Behrs MacTCP Info file - Thanks Eric!

v1.0.0d4
~Way of pinging (ICMP Echo)
~TCP&UDP echo port server
~Imporved the way windows are updated, should be faster and more efficient.

v1.0.0d3
~Way of testing the DNS
~Way of testing UDP
~Way of testing TCP
~Better reporting of errors
~Cleaned up the list window (using an LDEF)
~Smaller Font
~ptr addr -> process name (use Process Manager under System 7 only)
~/etc/services port -> name mapping

v1.0.0d1 - sent to JQR

 The Author

Programs written by me:
DeHQX 2.0.0 - BinHex decoder (use StuffIt Expander instead)
Finger 1.3.5 - Macintosh Finger client/daemon.
Talk 1.1.0 - Macintosh Talk client/daemon.
Chat 1.1.0 - Multiuser primitive irc-like daemon.
FTPd 2.1.0 - Macintosh FTP server.
ObiWan 4.0.0 - Online help system.
MacBinary II+ 1.0.2 - MacBinary II+ encoder/decoder.

You can get the latest development versions from redback.cs.uwa.edu.au, but please use the major archives for released version if at all possible.  Redback is a long long way from most people, and using it wastes bandwidth on the Australian-US satelite link which is overly congested already.  So use the versions posted to the archives (like sumex-aim.stanford.edu or mac.archive.umich.edu), and only use the development versions if you have some specific problem - in which case tell me!)

Send postcards, comments, bug reports, and wishes to:

Peter Lewis,
10 Earlston Way,
Booragoon, WA, 6154,
AUSTRALIA

or by electronic mail to:

NOTE: I will be away from May 6 to June 14, 1993.  Don't resend any messages until after that time.

Internet: peter@cujo.curtin.edu.au
Bitnet: peter%cujo.curtin.edu.au@cunyvm.bitnet
UUCP: uunet!munnari.oz!cujo.curtin.edu.au!peter

Alternative addresses (in order from best to worst)
p.lewis@info.curtin.edu.au
ilewisp@info.curtin.edu.au
peter@ncrpda.curtin.edu.au
peter@rocky.curtin.edu.au
peter@gu.uwa.edu.au