The ping command is one of the most fundamental network diagnostic tools available. It tests whether a remote host is reachable and measures the round-trip time for packets to travel from your computer to the destination and back.
How Ping Works
Ping uses the Internet Control Message Protocol (ICMP) to send echo request packets to a target host. When the target receives these packets, it responds with echo reply packets. By measuring the time between sending the request and receiving the reply, ping calculates the round-trip time (RTT).
The name "ping" comes from sonar terminology, where a ping is an acoustic pulse sent out to detect objects and measure distance.
Ping uses ICMP Type 8 (Echo Request) and Type 0 (Echo Reply) messages. Some firewalls block ICMP, which can make hosts appear unreachable even when they are functioning normally.
Basic Usage
The simplest way to use ping is to specify a hostname or IP address:
# Ping a domain name
ping google.com
# Ping an IP address
ping 8.8.8.8
# Ping your local router (common gateway addresses)
ping 192.168.1.1
ping 192.168.0.1
Platform-Specific Commands
Windows
On Windows, ping sends 4 packets by default and then stops:
# Basic ping (sends 4 packets)
ping google.com
# Continuous ping (Ctrl+C to stop)
ping -t google.com
# Specify number of packets
ping -n 10 google.com
# Set packet size (bytes)
ping -l 1000 google.com
# Set timeout in milliseconds
ping -w 2000 google.com
macOS and Linux
On macOS and Linux, ping runs continuously until you press Ctrl+C:
# Basic ping (continuous, Ctrl+C to stop)
ping google.com
# Send specific number of packets
ping -c 5 google.com
# Set interval between packets (seconds)
ping -i 2 google.com
# Set packet size (bytes)
ping -s 1000 google.com
# Set timeout (seconds) - Linux
ping -W 2 google.com
# Set timeout (seconds) - macOS
ping -t 2 google.com
# Flood ping (requires root, use carefully)
sudo ping -f google.com
The flood ping option (-f) sends packets as fast as possible. Only use this for testing your own network, as it can be considered a denial-of-service attack on remote hosts.
Interpreting Ping Output
Understanding ping output is crucial for network diagnostics. Here's a typical response:
$ ping -c 4 google.com
PING google.com (142.250.80.46): 56 data bytes
64 bytes from 142.250.80.46: icmp_seq=0 ttl=117 time=12.3 ms
64 bytes from 142.250.80.46: icmp_seq=1 ttl=117 time=11.8 ms
64 bytes from 142.250.80.46: icmp_seq=2 ttl=117 time=12.1 ms
64 bytes from 142.250.80.46: icmp_seq=3 ttl=117 time=11.9 ms
--- google.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 11.8/12.0/12.3/0.2 ms
| Field | Meaning |
|---|---|
64 bytes |
Size of the reply packet |
icmp_seq |
Sequence number (helps identify packet loss) |
ttl |
Time To Live - remaining hop count |
time |
Round-trip time in milliseconds |
packet loss |
Percentage of packets that didn't return |
What Good Results Look Like
- 0% packet loss - All packets returned successfully
- Low latency - Under 50ms for nearby servers, under 150ms for distant ones
- Consistent times - Small variation between packets (low jitter)
Warning Signs
- High packet loss - Network congestion or unreliable connection
- High latency - Routing issues, congestion, or physical distance
- High jitter - Inconsistent times indicate network instability
- Request timeout - Host unreachable or blocking ICMP
Common Ping Options Reference
| Option | Windows | macOS/Linux | Description |
|---|---|---|---|
| Count | -n 5 |
-c 5 |
Send 5 packets |
| Continuous | -t |
(default) | Ping until stopped |
| Packet size | -l 1000 |
-s 1000 |
Set payload size in bytes |
| IPv4 only | -4 |
-4 |
Force IPv4 |
| IPv6 only | -6 |
-6 |
Force IPv6 |
| Resolve hostname | -a |
N/A | Show hostname for IP |
Troubleshooting with Ping
Step 1: Test Local Network
# Test localhost (loopback)
ping 127.0.0.1
ping localhost
# Test your router/gateway
ping 192.168.1.1
If localhost fails, your TCP/IP stack has issues. If the gateway fails, check your local network connection.
Step 2: Test DNS Resolution
# Test a public DNS server by IP
ping 8.8.8.8
# Test a domain name
ping google.com
If the IP works but the domain doesn't, you have a DNS problem.
Step 3: Test Destination
# Test your target
ping targetserver.com
If this fails but other sites work, the issue is with that specific host or the path to it.
If ping fails but you can access a website, the host is likely blocking ICMP. Many servers disable ping responses for security. Use other tools like curl or telnet to test connectivity to specific ports.
Common Error Messages
| Error | Meaning | Solution |
|---|---|---|
| Request timed out | No response received | Check connectivity, firewall, or if host is online |
| Destination unreachable | No route to host | Check routing, gateway, and network configuration |
| Unknown host | DNS resolution failed | Check DNS settings and try using IP address |
| TTL expired | Packet exceeded hop limit | Routing loop or destination too far |
Test Your Connection Now
Use our online tools to check your IP address and test your network.
Check My IP