Like many other aspects of computing and the internet, the term “ping” was devised from an earlier meaning from its use in the analog world. Sonar, which was originally an acronym standing for Sound Navigation and Ranging, involves sending out a burst of sound and then measuring the time it takes the sound to return in order to locate and map objects in the vicinity.
In sonar, the burst of sound that is transmitted is called a “ping” based on an older use of the word which means “the sound of something striking something sharply” because a similar sound is heard when sonar bounces off a physical object underwater. In computer terms, a ping works much the same way. A small packet of data is sent to another computer on a network, which is the “ping.” The “pong” is the response packet of data that is returned.
Effectively, sending a ping or “pinging” a computer or network is used to verify if the recipient computer or network is available and to measure the response time. You can ping an individual computer, a website, or a network in order to make sure that it’s “out there” and responding as well as measuring how fast the data connection is between the two computers. If you have ever measured your connection speed to the internet or a network, effectively what you are doing is sending a “ping” and then measuring how long it takes to receive the “pong.”
Note: The terms “ping” and “pong” are unrelated to the game of Ping-Pong (otherwise known as table tennis) but the ubiquity of the two terms is probably what led computer developers to choose the terms “ping” and “pong” to refer to sending and receiving verification data.
Ping rates or speeds are often referred to as latency, a fancy way to say “delay.” Internet connections require that data is sent from your computer, through your router, through your ISP gateway, and bounced off several nodes or network connections. Although data transmission is incredibly fast, it does take a finite amount of time, and the amount of latency is usually measured in milliseconds. For applications such as online game playing, the difference in latency of just a few milliseconds could be highly significant. But for most internet users, a latency measurement that is under 100 milliseconds is usually sufficient.
Internet “pongs” usually include several different pieces of data, including the size of the data packet, the number of times the ping test was performed, how many nodes were traversed by the data, and the interval of time between each attempt to send the verification data.
Testing network connections by pinging computers was formerly a common requirement for sending and receiving files via FTP. The client computer would send out a ping to the FTP server in order to verify that the FTP server was active and to determine whether or not it was busy. If the FTP server was too slow to respond (or didn’t respond at all), the client knew that it wasn’t worth trying to connect to the FTP server and send or receive files at that time.
Technically speaking, a ping is classified as a network utility. When you send a ping, what you’re actually sending is something known as an Internet Control Message Protocol (ICMP) Echo Request. ICMPs are used to communicate between devices on a network to verify a connection. The “Echo Request” part refers to telling the recipient device to respond by sending a return ping (the “pong”), measuring the delay in milliseconds to determine latency. As far as computers are concerned, the echo reply is mandatory.
In modern corporate speak, to “ping” someone can mean either verifying if a given user is online or to try to get the attention of someone. Saying “Be sure to ping the supervisor in your email” is modern shorthand for including the supervisor in the CC: line of an email in order to ensure that they are made aware of the email correspondence.
Pings are also used by network administrators to troubleshoot and to verify the connection between different devices on the network. In this sense, using the ping command from the command line/terminal prompt is a simple tool to reach out and test whether a given device on the network is reachable and functioning. Pings can also be used to return a device’s status, giving additional information into the device’s settings and current state.
All major computer operating systems, including Windows, Mac OS, and Linux, include a “ping” command from the command line/terminal/shell. Simply type the word “ping” and then the IP or network address to test the latency on the network as well as the availability of the remote device. You can ping a device on a local network or ping any internet resource with an IP address. For example, you can type “ping www.google.com” to determine the current status of the website as well as the time, measured in milliseconds, it takes data to travel roundtrip to the website and back to your computer.
On Apple computers, you can use the built-in Network Utility (part of System Preferences) to send and monitor pings. Simply navigate to the Ping tab and then input the IP address or hostname to ping it.
Unfortunately, like with most protocols developed before the widespread use of the internet, the ping command can be used for malicious purposes. Attacks known as “ping storms” or “ping floods” are used by malefactors to disable or tie up a server by flooding it with thousands of pings in a short amount of time. Ping storms/floods are often part of what are known as distributed denial of service (DDoS) attacks. And because pings include a mandatory echo reply response, it can be difficult for website administrators to disable sending ping replies (pongs).
The first use of a ping in a computer setting was in 1983 when programmer Mike Muuss used it as a troubleshooting tool for the US Army Research Laboratory’s network. Ping was later released as public domain software. The ICMP packet now sent by computer pings contains 31 bits of information, which includes a header, the source IP address, the destination IP address, and a checksum figure. Some pings also include information such as the type of traffic class and limits on how many “hops” or nodes can be traversed to test the connection.
Pings are also used by computers to scan or map nearby networks. By sending out a series of pings known as a “ping sweep,” computers can devise a list of available IP addresses on the network. Using ping sweeps is primarily for computers wih access to a large number of subnets (or sub-networks) in order to generate a map of existing connections that are online and available.
To ping a website or other online resource (with a URL), you can use the command line/terminal command or visit websites that will handle the ping transmission and latency measurements for you. These are often known as “speed tests” or websites that verify whether or not a given website is online. In most cases, however, pinging websites isn’t a common practice for internet users as today’s websites have multiple built-in redundancies to prevent going offline (including protection against DDoS) attacks like ping floods).
Pinging is useful, however, when you are having trouble with your internet connection on your home network. By sending pings to your router, you can verify whether or not your connection to the router is active and working. If the router responds, but your internet connection isn’t working, then the cause of the problem is probably on your Internet Service Provider (ISP)’s end.
To do this, type “ping” plus the IP address of your router. The default IP address for most routers is 192.168.1.1. If you see a return message that says “Packets: Sent = 4, Received = 4” then your connection is working correctly. If you see TTL (Time to Live), this refers to the number of networks (or nodes) that the ping traversed on its round-trip journey, and RTT stands for Round-Trip Time or the minimum, maximum, and average time that it took the ping message to be sent and received. Large variations in the RTT indicate problems in the network.
You can also ping your own computer by sending a ping to the IP address 127.0.0.1 (the default IP address for your computer’s network interface controller). If this request fails, then your network interface controller is disabled, missing, or needs to be reconfigured.