A ping, according to the dictionary, is a sharp, high-pitched, and somewhat musical tone. You might associate it with the sound you hear when you tap a spoon against a crystal glass. In the IT world, it has a very different meaning.
In this article, we will explain the basic concept of Ping, how the Ping utility works, and how it is utilized in the context of networking and network monitoring.
What Is a Ping?
A ping is a Command Prompt command that can be used to test a connection between one computer and another. Think of it in terms of sonar on a submarine. You’ve probably seen in the movies when the “ping” in the background as an audible signal is sent out to check a sub’s surroundings. When the ping strikes a nearby object, it will echo back. Operators can determine an object’s distance by the length of time it takes to return the echo.
How Does a Ping Work?
A ping is used to verify connectivity at an IP-level to a second TCP/IP device. It does this by transmitting Internet Control Message Protocol (ICMP) Echo Request messages and waits for a return message. Unless modified, the ping command will send 4 requests by default in Windows. How many responses get returned and how long it takes for the round-trip provide important information, such as:
- Bytes sent and received
- Packets sent, received, and lost
- Approximate round-trip time (in milliseconds)
The ping is initiated several times to test consistency in the connection. Here's what a successful ping request would return when connecting to a router.
Why Would I Use Ping?
If you’re ever run a speed test on your computer or network, you’ve used the ping command whether you knew it or not. You’re bouncing a message off a remote server and testing the amount of time it takes to return.
Pings are useful for a variety of reasons, including troubleshooting connectivity, devices, and networks.
Troubleshooting Connectivity
Ping is used to troubleshoot connectivity. Most commonly, it’s used to verify the connection between two machines. You might use ping to test a network printer or copier connection to determine whether a device is offline or to verify you can connect to a router. If you’re having trouble with an application hosted over a network on a server, one of the first things you want to do is check the connection using a series of ping commands to help you narrow down the problem. If a ping comes back with fast response times, your connection is good so the problem likely lies with the server or application.
You can also ping websites to see if they are operating and whether there’s a problem with the connection.
Troubleshooting Networking Issues
Almost any network-connected device will respond to a ping which makes it incredibly valuable to check networking connections. Ping can be used to test routers or servers for throughput and speed. You can also ping across a range of addresses to find each attached device in a particular range. You can test computer names and addresses of computers. When you can ping an IP address, but not a computer name, there’s likely a name resolution issue.
If a ping comes back showing a successful connection but has long response times, you’re likely facing a routing, congestion, or networking issue.
A ping command can be run manually or automated as a scheduled task for monitor network reliability. When a ping fails, there’s a problem.
Ping Error Messages
If the ping command does not get a response from the host, you will see either nothing returned or get a timeout notification. Since it's sending 4 requests, you'll likely see four time out notices.
Ping Command Switches and Modifiers
The Ping command allows you to add modifiers or parameters (also called switches) to customize the command for troubleshooting. Here is a list of the commands and the proper syntax in which to use them for Windows, although you will find slight variations for Unix.
- /t - ping continues sending Echo request messages to the destination until interrupted manually. To interrupt and display statistics, press CTRL + Break. To interrupt and quit the ping, press CTRL + C.
- /a - the ping tries to resolve and show the hostname of an IP address that is entered as the target.
- /n count - use this change the number of Echo request messages from 4 (the default) to something else. You can use any number from 1 to 4294967295.
- /l size - sets the size (in bytes) of the Echo request message that is sent to the target, from 32 (the default) to something else. You can use any number from 1 to 65527.
- /f - use this to send Echo request messages with a "Do Not Fragment" flag turned on so that the request is not fragmented by routers, on the way to the destination. This option works for IPv4 addresses only, and it is useful for troubleshooting path Maximum Transmission Unit (PMTU) problems.
- /i TTL - sets the Time to Live (TTL) value for the Echo request, the maximum of which is 255. TTL limits the lifetime of the data being sent by the ping command. If the TTL value has elapsed and no reply was received, the data is discarded.
- /v TOS - sets the Type of Service (TOS) used for the Echo request. The default value is 0, and the maximum is 255. This option works only for IPv4 addresses.
- /r count - sets the number of hops between your PC and the target that you want be recorded and displayed by the ping command. The maximum value for the count is 9. It works only with IPv4 addresses.
- /s count - reports the time (in Internet Timestamp format) when each Echo request is received and each reply is sent. The maximum value for the count is 4, meaning that only the first four hops can be time stamped. This option works just with IPv4 addresses.
- /j host-list - uses the Loose Source Route specified in the host list. With this type of routing, successive intermediate destinations can be separated by one or multiple routers. The maximum number of addresses or names in the host list is 9. The host list is a series of IP addresses separated by spaces, and they have to be IPv4 addresses.
- /k host-list - uses the Strict Source Route specified in the host list. With strict routing, the next intermediate destination must be reachable directly (and not separated by a router). The maximum number of addresses or names in the host list is 9. The host list is a series of IPv4 addresses separated by spaces.
- /w timeout - the timeout value adjusts the amount of time, in milliseconds, that the ping waits for each reply. The default timeout value is 4000 or 4 seconds.
- /r range - tells the ping command to trace the round-trip path, for a number of hops. It works only with IPv6 addresses. The range must be a number between 1 and 9.
- /s srcaddr - specifies the source address to use when working with IPv6 addresses. The address must be entered after srcaddr.
- /c compartments - specifies the routing compartment identifier.
- /p - pings a Hyper-V Network Virtualization provider address.
- /4 - forces the use of the IPv4 address and it is used in conjunction with hostnames, not IP addresses. For example, write "ping /4 www.WEBSITENAME.com" (without the quotation marks), and it returns the IPv4 address of the hostname.
- /6 - forces the use of the IPv6 address and it is used in conjunction with hostnames, not IP addresses. For example, write "ping /6 www.WESBITENAME.com" and you see the IPv6 address of the hostname.
Proper Ping Syntax
The order in which you use these switches is important. Here’s is the proper syntax to use:
ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [-w timeout] [-R] [-S srcaddr] [-p] [-4] [-6] target [/?]