Let me tell you about one of Windows 2000's greatest undiscovered gems—PathPing. This utility is a helpful RAS tool as well as a useful general diagnostic tool that network administrators and users will love. But to truly appreciate PathPing's benefits, you must be familiar with its predecessor, Traceroute.
Traceroute (tracert.exe) is one of my favorite TCP/IP diagnostic utilities. This tool shows you the paths that packets take between two hosts on an IP network (including each intervening router) and any delays between each router hop. I use this tool regularly both on the road through RAS and from my office LAN. On several occasions, I've used Traceroute to identify a routing loop (i.e., the TCP/IP equivalent of a game of packet "hot potato" in which two routers pass packets back and forth in an endless loop). I often use Traceroute with the Ping diagnostic utility. Ping bounces Internet Control Message Protocol (ICMP) packets off a remote host to determine whether that host is available and to measure how much time packets need to make the trip. Although Traceroute and Ping are useful basic diagnostic utilities, they don't always provide all the information you need to diagnose a problem.
To fill the diagnostic gaps, Win2K introduces PathPing, which is a souped-up version of Traceroute. You can use PathPing to determine which router or router hops are causing delays or other problems on a connection between two IP hosts. At each router hop on the connection, PathPing uses a longer sampling interval than Traceroute uses. In addition, PathPing provides information about packet loss that occurs during ping tests on each hop on the route. This information reveals where the problem lies on the connection or where most of the latency is occurring—invaluable information.
PathPing has several configuration options, including time between successive pings, number of ping queries per router hop, and time to wait for a response from each host or router. Table 1 outlines PathPing's case-sensitive parameters, which you use in the following format:
pathping \[-n\] \[-h <maximum_hops>\] \[-g <host-list>\] \[-p <period>\] \[-q <num_queries> \[-w <timeout>\] \[-T\] \[-R\] <target_name>
By default, PathPing pings each router 100 times, with 1 ping every 0.25 seconds. Therefore, a default query will take 25 seconds per router hop to complete. (The command calculates the packets' final path and number of intervening hops before the ping tests.) You can easily modify the total query time by adjusting parameters such as p or -q. I recommend that you use q to reduce the number of pings to 25. This setting is more than adequate to provide the information you need to diagnose a problem. After you use PathPing once, you might never go back to Traceroute.