Go to Glenn's tools page

NetWatcher Documentation

by Glenn Story

NetWatcher is a Windows program designed to monitor the health of your network and selected nodes you specify.

NetWatcher works by sending a probe to the nodes you specify at a time interval that you also specify. If any node is unreachable or slow, you can be notified by (1) the changing of the icon for that node in the NetWatcher window; (2) the changing of the NetWatcher icon in the system tray, and (3) optionally by a message box.

Installation

To install this program, follow these simple steps:
  1. Get a copy of the installation zip file from http://home.pacbell.net/storygds/tools/netwatcher.zip.
  2. Unzip the file using your favorite unzip utility (such as winzip).
  3. Run setup.exe from the unzipped directory. (Winzip has a mechanism for combining this and the preceding step.)

Running NetWatcher

NetWatcher is an MDI (Multiple Document Interface) application. This means it can display more than one NetWatcher document at one time. Each open document displays a window containing one entry for each node you have specified in that document. Each document represents a separate network. (See Monitoring Multiple Networks below for more information.)

Definitions of Terms

Before delving into the details of configuring and running NetWatcher let us define some terms used in this document:

Critical Node
A node that is between you and other nodes on the network. This is often a router. When a critical node is down, the nodes beyond it cannot be seen from your computer. Therefore, NetWatcher does not bother to probe nodes "beyond" a critical node that is down. You define a node as critical by setting the checkbox, "Don't probe additional nodes when this node is down." You specify a node as being beyond a critical node by giving that node a higher number in the "Probe Order" than the associated critical node. (Use the "Move up" and "Move down" commands on the "Node" menu to accomplish this.)

Key Node
A node that is used to determine whether the associated network is currently avaiable. This is primarily meaningful when you monitor multiple networks. When a key node is down, the associated network is considered down and is not included in the overall status displayed in the system tray. You specify a node as being a key node by setting the checkbox, "Don't include this network in overall status when this node is down."

Network
A collection of interconnected nodes. Each NetWatcher document represents one network.

Node
An individual addressable point in a network. A node is generally a computer or a router. Sometimes printers and other special devices can be network nodes as well. Every node is identified by a unique IP address. NetWatcher represents each node by an icon.

Probe
The action taken to determine if a node is reachable from the computer running NetWatcher. See Probing for more information.

Views

Each window can be configured to display nodes in one of the four standard Windows views:

Meaning of Icons

In each of these views, NetWatcher indicates the status of each node by one of the following icons: In addition to being used for individual nodes within a NetWatcher window, the above icons can also appear in the system tray. In that case, they represent the overall health of the network(s), as reflected in all nodes of all documents in an instance of NetWatcher. In general, the worst-case node's icon is shown in the system tray.

In addition to the above icons, the following icons can appear in the system tray:

The NetWatcher Menu

The NetWatcher menu, on the application's menu bar, contains the following general-purpose commands:

Probe all networks
This command will cause all nodes in all documents to be probed. (See Probing below for more information.)

Show Routing Table
This command displays the operating system's routing table. This is done by executing the system command "route print" and displaying the results in a separate window.

Show IP Configuration
This command displays the operating system's IP configuration. This is done by executing the system command "ipconfig /all" and displaying the results in a separate window.

Renew IP Configuration
This is useful for systems which obtain dynamic IP addresses from a DHCP server. This action is performed by executing the system command "ipconfig /renew" and displaying the results in a separate window.

The Network Menu

The Network menu, on the application's menu bar, contains the following commands related to the currently selected network (document):

Add...
This command lets you add a new node to the current document. (See Adding and Editing Node Data below for more information.)

Probe the current network
This command will cause all nodes in the current document to be probed. (See Probing below for more information.)

Set Probe Interval...
This will bring up a dialog box to let you specify how often a probe is to occur. You can also specify whether this setting is to be made permanent by storing it in the document file, or whether it is to be temporary for the current setting only. (I generally use a permanent setting of five minutes (the default). If there is a problem with a critical node, or a node I want to use, I set a shorter temporary setting, usually of one minute.)

Include network in status
When this item is checked, the current network's (document's) status will be included in the summary status icon in the system tray. This can be deselected manually from this menu or automatically when one or more key nodes in this network go down. (See Monitoring Multiple Networks below for more information.)

The Node Menu

This menu can be reached from the menu bar or by right-clicking on any icon in the NetWatcher menu, a menu will pop up with the following commands:

Delete
This will delete the selected node(s).

Include node in Status
This command is usually checked, meaning that the node's status is included in the process of deciding what icon to show in the system tray. You can use this command to toggle this checkbox off and on. When the checkbox is off, the status of this node will not be included in the summary status shown in the system tray. When you toggle this setting you will be asked how long you want the change in setting to last:

Notify When Node Comes Up
When this item is checked, NetWatcher will pop up a message box when the selected node(s) become(s) reachable.

Probe
This will cause the selected node(s) to be probed. See Probing below for additional information.

Ping by IP Address
This will run the "ping" program for the selected node(s). The ping program will run in a separate window. The value passed to ping will be the IP address associated with the current node. Like probe, ping sends ICMP packets to the target node to determine its accessibility. The difference between probe and ping is that the probe function is done by the NetWatcher program, whereas ping is a separate program that is supplied with the operating system.

Ping by name
This will also run the "ping" program for the selected node(s). The ping program will run in a separate window. The value passed to ping will be the DNS name associated with the current node.

Trace route
This will run the "tracert" program for the selected node(s). This will show a list of the intermediate router nodes between the local machine and the selected node(s). Tracert will run in a separate window. The tracert program is supplied with the operating system.

Look up name
This will run the "nslookup" program for the selected node(s). This will show information from the DNS name server for the name associated with the specified node(s). Nslookup will run in a separate window. The nslookup program is supplied with the NT operating system. (It is not available on Windows 98.)

Who owns DNS name
This will run the "whois" program for the selected node(s). This will show detailed information about the organization or individual who registered the DNS name. Whois will run in a separate window. The whois program is supplied with NetWatcher.

Decode IP address
This will run the "IPDecoder" program for the selected node(s). This will tell which class of IP address is selected, and whether it is public or private. IPDecoder will run in a separate window. The IPDecoder program is supplied with NetWatcher.

List Ports
This will run the TestPorts program for the selected node(s). This will list all of the well-known ports that are listening at the selected node(s). TestPorts will run in a separate window. The TestPorts program is supplied with NetWatcher.

Move Up
This is used to alter the order in which nodes are probed. It will move the selected node(s) closer to the top of the list. You should order nodes such that critical nodes come before those nodes that depend on them.

Move Down
This is used to alter the order in which nodes are probed. It will move the selected node(s) closer to the bottom of the list. You should order nodes such that critical nodes come before those nodes that depend on them.

Properties...
This will allow you to examine and modify the data associated with the selected node(s). See Adding and editing node data below for additional information.

The System-tray Menu

NetWatcher installs itself in the Windows system tray (normally in the lower right corner of your screen). The icon shown indicates the overall health of your system, as described under Meaning of Icons above.

If you double-click the icon in the system tray, the NetWatcher window wll be restored (if it was hidden) and brought to the front. (When you close the window, it will be hidden and removed from the task bar.)

If you right-click on the icon in the system tray, you will bring up a context menu containing the following commands:

Show window
Like double clicking, this will restore the NetWatcher window and bring it to the front.

Probe
This will cause all nodes in the current NetWatcher document to be probed. (This is the same as the "probe" command on the "NetWatcher" menu.)

Exit
This will terminate the NetWatcher program.

Adding and Editing Node Data

Whenever you select "Add" from the "NetWatcher" menu or "Properties" from the Node menu, you will see a dialog box like this:

If you are adding a new node, then the input fields will either be blank or set to an initial default value. If you are editing an existing node, then the input fields will contain the current values for that node.

This dialog box contains the following data:

Name or IP Address
This field should contain the DNS name or IP address of the node. This is the value that is used to probe the node. (If you specify a DNS name, then the name is converted to an IP address for probing.)

Description
Here you can enter an arbitrary description of the node. This information is shown in the dialog box currently being described, as well as the report view. (See Views above for details.)

Timeout
This specifies the maximum number of seconds that NetWatcher will wait for a response to a probe. If the node does not respond in that time, then it will be considered unreachable. You can type in a value to the input box, or you can select the "Compute" button to its right. If you do the latter, then NetWatcher will determine the timeout value by trying various values and adding a "fudge factor" to the result.

Retries
This specifies the number of times NetWatcher will retry a probe. If a node does not respond to a consecutive number of probes specified by "retries" then the node will be considered "down".

Max. round trip time
This value specifies the number of milliseconds it should take from the time a probe is sent until the reponse is received. If the time exceeds the specified value, then the node will be considered "slow". You can either enter a value into the input field, or select the "compute" button. In the latter case, NetWatcher will do three probes and take the average of their round-trip times (plus a "fudge factor").

Display a dialog box when this node becomes unreachable
A node is considered unreachable and marked "down" when one of two things occurs:
  1. It does not receive a response to a probe after the amount of time specified by "timeout", above, over the number of consecutive probes indicated by "retries", above.
  2. An error packet is received from the network in response to the probe.
When one of these conditions occurs, you can select to receive a message box on the screen by checking this option. (You will not receive additional message boxes for subsequent failures when the node does not change its condition.)

Convert the domain name to an IP address for every probe
The domain name specified for a node must be translated to an IP address by sending a request to a DNS server before it can be probed. If this box is checked, then this lookup occurs every time a probe is done. If the box is unchecked, then the lookup occurs only once (when the NetWatcher document is first loaded, or when the node is added or edited). You should check this box for any nodes whose IP addresses are dynamically assigned. You might also check this box for at least one internet node to verify that the DNS server is working. You should leave this box unchecked for most or all other nodes to reduce processing and network overhead.

Don't probe additional nodes when this node is down
If you check this box, it means that the current node is on the path to subsequent nodes; if the current node is down then subsequent nodes will always be unreachable. Thus, if this node is considered unreachable, then NetWatcher will skip probing any subsequent nodes.

Don't include this network in overall status when this node is down
If you check this box, it means that this node is a gateway to other nodes in the network represented by the current document. If the specified node is down then the remaining nodes in the network will be unreachable. Checking this box means that you don't want the overall status in the system tray to indicate that this network is down. (See Monitorying Multiple Networks below for more information.)

Probing

Probing is at the heart of how NetWatcher determines the health of a node. NetWatcher probes a node by sending an ICMP (Internet Control Message Protocol) message to the target node. This can cause one of three results:
  1. The node responds. This is the normal, healthy case.
  2. An intermediate (router) node responds with an error packet, such as "network unreachable".
  3. No response is received.
In addition to noting the type of response, NetWatcher keeps track of how long it takes for the response to be received from the target node.

A NetWatcher probe is invoked by one of six ways:

  1. All nodes are probed automatically at timed intervals. You specify the time that should lapse between probes. (See the NetWatcher menu, above, for details.)
  2. You select the "Probe" option of the "NetWatcher" menu. This causes all nodes in all networks to be probed.
  3. You select the "Probe" option from the popup menu in the system tray. This is equivalent to the previous method.
  4. You select the probe button on the tool bar. This is also equivalent to the second method.
  5. You select the "Probe" option from the Network menu. This probes all nodes on the selected network (document).
  6. You select the "Probe" option from the Node menu. This probes the selected node(s). Unlike the previous methods, this will cause the node to be probed, even if it follows a "critical" node that is down.)

History

A history is kept of all transitions of status for every node. This history can be displayed from the "History" command on the "View" menu. Once displayed, you can also save the history to a text file or clear its contents. There is a separate history kept for each network.

Monitoring Multiple Networks

Many people see a view of their network that is the same from day to day. For those people, having one NetWatcher document that contains all the network nodes of interest is sufficient.

Other people have changing views of the network. For example, one may have a laptop that plugs into one network at home and another at work. For these people NetWatcher supports multiple networks. Each network is described by a separate NetWatcher documents.

Because NetWatcher is an MDI (Mutliple Document Interface) program, it has always been possible to load multiple Netwatcher documents. Starting in version 7 of NetWatcher, there is expanded support for handling these networks in an integrated way. The new features for this purpose are:

I added this additional multi-network support to facilitate my own situation where I have a VPN (Virtual Private Network) connection to my employer's internal network. When I am connected to the VPN I am blocked from seeing the other nodes of my home network. Of course, when I'm not connected to the VPN I can see my home network, but not my employer's network. In either case I can see Internet nodes.

Here's how I use NetWatcher's features to support my network environment:

  1. I divided the nodes I'm interested into three categories:

  2. Node 192.168.1.1 is a key node in my home network. If it is down, it means that my home network is not accessible--probably because I am connected to the VPN. I therefore don't want to include my home network in my overall network status:

  3. Similarly, node 10.137.96.4 is a key router on my employer's network. If it's not reachable, I'm probably not connected to the VPN. I configured it the same way: if 10.137.96.4 is not reachable, my employer's network won't be included in the overall status.

There is no such node for the Internet. These nodes should always be visible and they will always be included in the summary status in the system tray.

Since my home and work networks are mutually exclusive, there will always be nodes unreachable in one or the other of them. Without NetWatcher's multiple-network features the status would always show outages.

Inventory

Installing the files from netwatcher.zip will place the following files into the directory you specify:

*.gif
These files are used with NetWatcher.html (this document).

GsGUI.dll
Contains components used by NetWatcher.

IPDecoder*.class
These files make up the IPDecoder program. This program will pop up a window deciphering the format of the specified IP address. You can supply this IP address either from the command line or in the window. IPDecoder can be run from a command line or from the NetWatcher program. You need a Java virtual machine to run IPDecoder. Note, however, that IPDecoder is an optional component of NetWatcher. NetWatcher will operate correctly without IPDecoder.

ipdecoder.bat
A more convenient way to run IPDecoder from the command line.

LOG.DLL
An ActiveX automation component used by NetWatcher to log events.

NetWatcher.exe
The main NetWatcher executable program.

NetWatcher.html
This documentation.

nwrun.bat
A batch file used by Netwatcher to run other character-mode programs.

PING.DLL
An ActiveX automation server used by NetWatcher and rcping to perform network probes.

RCPING.EXE
This program can be used from command-line scripts, such as batch files, to check the presence of a network node. It is similar to ping, supplied with Windows, with the addition that rcping issues a return code indicating the success or failure of the probe. See rcping.txt or issue the command "rcping -h" for more information.

rcping.txt
The documentation file for rcping.

setup.dat
Used by setup.

SETUP.EXE
Used to install NetWatcher.

TestPort.class
This program will test specified ports on a given host to see if they are available. This program is invoked by NetWatcher and it can also be run from a command line. Type "java TestPort" for additional information. You need a Java virtual machine to use TestPort. Note, however, that TestPort is an optional component of NetWatcher. NetWatcher will operate correctly without TestPort.

whois.exe
This program displays information about the owner of a DNS name. It is used by NetWatcher and can also be run from a command line.