Microsoft was a latecomer to the Internet, something that is still apparent in the meagre arsenal of TCP/IP tools bundled with Windows XP. Whereas UNIX, Linux and *BSD users have a range of utilities to choose from that provide detailed information about network connections, Windows XP needs supplementation in this area. Luckily, there are plenty of good, free tools available to make Windows XP more TCP/IP-savvy.
Ping: the humble yet very useful Packet Internet Groper tool is usually the first thing you break out when you troubleshoot a TCP/IP connection. Ping can tell you if a host on a network is responding, and by adjusting the packet size and setting the Don’t Defragment bit, you can work out the Maximum Transmission Unit (MTU) along a network path. As ping returns the “round trip time” (i.e., the time it takes for the ICMP ECHO_REQUEST to reach the pinged host and the ECHO_REPLY from that host to reach you), it can tell you if the network link is congested or dropping packets. Microsoft’s ping is more or less a straight port of the UNIX equivalent, with the same functionality. To ping multiple hosts at the same time, try the GUI-based Enhanced Ping (eping) from www.itoolpad.com/products/eping/
Tracert: known as tracert (‘Traceroute’ abbreviated to the DOS 8.3 naming convention), this is useful for identifying the network path your traffic takes and discovering if any hosts along it are playing up. Microsoft’s tracert is no more than adequate — for instance, it only uses ICMP ECHO instead of the normal UDP packets — so you’ll find plenty of replacements for it. For UDP support, ftrace www.r1ch.net/stuff/ftrace/ is a good alternative, with both command-line and GUI versions available. The freeware and shareware versions of Ping Plotter www.pingplotter.com are handy for mapping out network paths and keeping an eye on how busy the links and hosts along it are.
Pathping: buried in %windir%\system32 is the command-line pathping utility which combines trace-routing with sending multiple ICMP ECHO requests to hosts along the network path. It gives you average round-trip times and reports any packet loss, making it a useful tool for discovering network problems.
As a side note, many networks now filter out all ICMP and UDP in a misguided effort to bolster security. This can make it hard to correctly interpret the results from ping and tracert — a host that seems to be down could just be not responding to the datagrams you are sending to it.
Telnet: the command-line Telnet (TELephone NETwork) client and terminal emulator in Windows XP is greatly improved compared to the nasty earlier versions found in Windows, but still clunky and limited — it isn’t particularly configurable (to see what can be changed, start it up in a CMD box by typing telnet and then set ?) and doesn’t support encrypted connections, for instance. The bundled HyperTerminal emulator is a little bit better, but snag the brilliant PuTTY www.chiark.greenend.org.uk/~sgtatham/putty/>and you’ll get not only a better Telnet client, but an SSH (Secure Shell)-capable xterm terminal emulator that’s highly configurable and fast.
Whois: Microsoft does not provide a client for the whois protocol, which is used for looking up domain name registrations. You can connect to different whois servers with telnet on TCP port 43 and issue the domain name for which you want the registration details, but that’s clunky. Instead, grab GeekTools Whois (GTWhois) from www.geektools.com/dist/gtwhois541.exe.It’s a GUI whois client that sits in your Systray and takes the drudgery out of finding the right server(s) for various country domains. GTWhois can also query the ARIN, APNIC, RIPE and LACNIC registries for IP netblock allocations, meaning you can enter an IP address into the query dialogue and the program will return the organisation to which it has been allocated, as well as the total size of the netblock.
Nslookup: today’s Internet depends on working DNS (Domain Name System) for resolving IP addresses to host names; Microsoft provides the nslookup utility to query DNS servers but, again, the tool is awkward and limited and, in fact, deprecated on Linux/*BSD. Instead, get the DiG (domain Internet groper) and host utilities, written by the Internet Software Consortium which also supplies the BIND (Berkeley Internet Naming Daemon) that runs on most of the world’s DNS servers. The precompiled binaries are available at www.pigtail.net/LRP/dig/dig-w32/. Download these files — predicate, host.exe, dig.exe, libdns.dll, libeay32.dll, libisc.dll, msvcr70.dll. Put them in their own directory and add that to the system path (Control Panel | System | Advanced and click on the Environment Variables button; select the Path line in the System Variables window, click the Edit button and add the path to the directory with dig.exe in it).
Next, create a file in %windir%\system32\drivers\etc called resolv.conf which contains the following:
nameserver <IP address>
Use, for instance, your ISP’s nameserver’s IP address, which you can find in the Properties for your Internet connection. Now you’re ready to query that DNS server with DiG and host. For example, to find the Mail Exchanger (MX) records for idg.com.au, do:
C:\dig>host -t mx idg.com.auTo get a summary of supported command line switches, simply type host or dig and press <Enter>.
idg.com.au mail is handled by 200 idg.com.au.mail6.psmtp.com.
idg.com.au mail is handled by 300 idg.com.au.mail7.psmtp.com.
idg.com.au mail is handled by 400 idg.com.au.mail8.psmtp.com.
idg.com.au mail is handled by 100 idg.com.au.mail5.psmtp.com.
There are plenty more Internet tools available for Windows XP, but the ones detailed here give you the basic functionality that Linux geeks enjoy out of the box.