What Is Ping? Understanding Network Latency and Connectivity Testing
TL;DR
Ping is a network utility that tests connectivity by sending ICMP echo requests and measuring round-trip time. It's essential for network troubleshooting but shouldn't be your only API monitoring toolβuse application-layer checks too.
π‘ Monitor your APIs β know when they go down before your users do
Better Stack checks uptime every 30 seconds with instant Slack, email & SMS alerts. Free tier available.
Affiliate link β we may earn a commission at no extra cost to you
If you've ever checked whether a website is down or measured your internet speed, you've probably used ping β even if you didn't realize it. But what exactly is ping, how does it work, and why is it one of the most fundamental tools in networking?
What Is Ping?
Ping is both a network utility and a protocol used to test connectivity between two devices over a network. When you "ping" a server, you're sending a small packet of data and measuring how long it takes to get a response back. The name comes from submarine sonar terminology β sending out a pulse and listening for the echo.
Ping in 30 Seconds
- Purpose: Test if a host is reachable and measure round-trip time
- Protocol: ICMP (Internet Control Message Protocol)
- How it works: Sends echo request β waits for echo reply
- Output: Response time in milliseconds (ms), packet loss percentage, TTL
- Common uses: Troubleshoot network issues, check if servers are up, measure latency
How Ping Works: The Technical Details
When you run ping google.com, here's what happens:
- DNS Resolution β Your computer looks up the IP address for google.com (e.g., 142.250.80.46)
- ICMP Echo Request β Your device sends an ICMP Echo Request packet to that IP
- Packet travels through network β The packet hops through routers to reach the destination
- Server responds β If reachable, the server sends an ICMP Echo Reply back
- Round-trip time calculated β Your computer measures time from send to receive
ββββββββββββ ββββββββββββ
β Your PC β βββICMP Echo Request (ping)βββ> β Server β
β β β β
β β <ββICMP Echo Reply (pong)βββββ β β
ββββββββββββ ββββββββββββ
β β
ββββ Measures round-trip time (RTT) βββββββββββββββ
(e.g., 23 ms)
What Is ICMP?
ICMP (Internet Control Message Protocol) is a network layer protocol used for diagnostic and error reporting. Unlike TCP or UDP (which carry application data), ICMP is used for:
- Testing connectivity (ping)
- Tracing routes (traceroute)
- Reporting errors (destination unreachable, time exceeded)
Important: Some firewalls block ICMP traffic for security reasons, which can make servers appear "down" even when they're running normally.
Using the Ping Command
The ping command is available on virtually every operating system β Windows, macOS, Linux, and even most network devices.
Basic Syntax
ping [hostname or IP address]
Basic Examples
Ping a domain:
ping google.com
Ping an IP address:
ping 8.8.8.8
Output example (macOS/Linux):
PING google.com (142.250.80.46): 56 data bytes
64 bytes from 142.250.80.46: icmp_seq=0 ttl=116 time=14.2 ms
64 bytes from 142.250.80.46: icmp_seq=1 ttl=116 time=13.8 ms
64 bytes from 142.250.80.46: icmp_seq=2 ttl=116 time=14.5 ms
^C
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 13.8/14.2/14.5/0.3 ms
Understanding Ping Output
Let's break down what each part means:
The Response Line
64 bytes from 142.250.80.46: icmp_seq=0 ttl=116 time=14.2 ms
- 64 bytes β Size of the ICMP packet received
- 142.250.80.46 β IP address that responded
- icmp_seq=0 β Sequence number (increments with each ping)
- ttl=116 β Time To Live (number of network hops remaining before packet is discarded)
- time=14.2 ms β Round-trip time in milliseconds
The Statistics Summary
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 13.8/14.2/14.5/0.3 ms
- Packets transmitted β How many pings you sent
- Packets received β How many responses came back
- Packet loss β Percentage of packets that didn't return (0% is ideal)
- Min/avg/max β Fastest, average, and slowest response times
- Stddev β Standard deviation (consistency of response times)
What's a Good Ping?
Response times vary based on distance and network quality:
| Latency (ms) | Quality | Typical Use Case |
|---|---|---|
| < 20 ms | Excellent | Same city, CDN edge servers |
| 20-50 ms | Good | Regional connections, online gaming |
| 50-100 ms | Acceptable | Cross-country, video calls |
| 100-200 ms | Noticeable | International connections |
| > 200 ms | Poor | Satellite internet, distant servers |
| Timeout | No connection | Server down, firewall blocking ICMP |
For APIs and uptime monitoring: Consistent latency matters more than absolute speed. A server that responds in 50ms Β± 5ms is more reliable than one that fluctuates between 20-150ms.
π Monitor your APIs properly. Ping only tests network connectivity, not whether your API actually works. Better Stack monitors your API endpoints every 30 seconds with real HTTP requests, validating status codes and response times. Free tier available.
Common Ping Command Options
macOS and Linux
Limit number of pings:
ping -c 5 google.com # Send 5 pings then stop
Set interval between pings:
ping -i 0.5 google.com # Ping every 0.5 seconds (requires sudo)
Change packet size:
ping -s 1000 google.com # Send 1000-byte packets
Flood ping (test maximum throughput, requires sudo):
sudo ping -f google.com # Sends pings as fast as possible
Windows
Limit number of pings:
ping -n 5 google.com
Continuous ping (default on Linux/Mac, optional on Windows):
ping -t google.com # Ping until stopped with Ctrl+C
Set timeout (in milliseconds):
ping -w 2000 google.com # Wait up to 2 seconds for response
Common Ping Issues and What They Mean
1. Request Timeout
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Possible causes:
- Host is down or unreachable
- Firewall is blocking ICMP packets
- Network congestion or routing issues
- DNS resolution failed (if using hostname)
Troubleshooting:
- Ping the IP address directly to rule out DNS issues
- Check if the host responds to other protocols (HTTP, HTTPS)
- Verify your internet connection by pinging a reliable host (8.8.8.8)
2. High Packet Loss
10 packets transmitted, 7 packets received, 30.0% packet loss
Possible causes:
- Network congestion (too much traffic)
- Faulty network hardware (router, modem, cables)
- ISP issues
- WiFi interference
Troubleshooting:
- Switch from WiFi to Ethernet cable
- Restart router/modem
- Ping your router directly to isolate the problem:
ping 192.168.1.1 - Contact your ISP if packet loss persists to external hosts
3. High and Inconsistent Latency
time=234.2 ms
time=45.8 ms
time=389.1 ms
time=67.3 ms
Possible causes:
- Network congestion
- Bandwidth saturation (someone downloading/streaming)
- Routing issues (packets taking different paths)
- Server overload
Troubleshooting:
- Check if other devices on your network are consuming bandwidth
- Test at different times of day
- Use
tracerouteto identify where delays occur
4. Destination Host Unreachable
From 192.168.1.1 icmp_seq=1 Destination Host Unreachable
Possible causes:
- No route to the destination network
- Target host is offline
- Subnet configuration issue
Troubleshooting:
- Check your network configuration and default gateway
- Verify the IP address is correct
- Ping your router to ensure local connectivity
Ping vs. Other Network Tools
Ping vs. Traceroute
| Feature | Ping | Traceroute |
|---|---|---|
| Purpose | Test if host is reachable | Show route packets take to reach host |
| Information | Response time, packet loss | Each hop along the path, latency per hop |
| Use case | "Is the server up?" | "Where is the connection slow?" |
| Command | ping google.com |
traceroute google.com (macOS/Linux)tracert google.com (Windows) |
When to use traceroute: When ping shows high latency or packet loss and you need to identify which network hop is causing the problem.
Ping vs. HTTP Requests (curl, wget)
| Feature | Ping (ICMP) | HTTP Request (curl) |
|---|---|---|
| Layer | Network layer (Layer 3) | Application layer (Layer 7) |
| Tests | Basic connectivity | Full web service availability |
| Can be blocked | Yes (firewalls often block ICMP) | Less often (HTTP/HTTPS is essential for web) |
| Speed | Very fast | Slower (TCP handshake, TLS, HTTP overhead) |
Example: Testing if a web server is truly available
# Ping tests if the server's network interface responds
ping api.example.com
# curl tests if the web service is actually working
curl -I https://api.example.com
For API monitoring: Use both. Ping confirms network-level reachability, while HTTP requests confirm the service is functioning properly.
Using Ping for Uptime Monitoring
Ping is a common component of uptime monitoring systems, but it has limitations.
When Ping Is Useful
β Quick connectivity checks β Fast way to verify a server is responsive β Network latency monitoring β Track performance over time β Lightweight β Minimal resource usage on both client and server β Works for any IP-enabled device β Routers, servers, IoT devices
Limitations of Ping for Monitoring
β Doesn't test application layer β Server could respond to ping but web service is down β Can be blocked β Many security-conscious servers disable ICMP β No content validation β Can't verify if your API returns correct data β No authentication β Can't test protected endpoints
Better Alternative: Application-Layer Monitoring
For production services and APIs, use monitoring that:
- Makes actual HTTP/HTTPS requests
- Validates response status codes and content
- Tests authentication flows
- Checks response times at the application level
Example with curl (measures total request time):
curl -w "@-" -o /dev/null -s https://api.example.com/health <<'EOF'
time_total: %{time_total}s
http_code: %{http_code}
EOF
π‘ Need real API monitoring? Better Stack monitors your APIs at the application layer, checking not just if the server is reachable, but if your actual API endpoints return the expected responses. Free tier includes 10 monitors with 30-second checks.
Ping in API Monitoring Workflows
While ping alone isn't sufficient for API monitoring, it's useful as a first-level check:
Multi-Layer Monitoring Strategy
βββββββββββββββββββββββββββββββββββββββ
β Layer 1: Network (ping) β Is the server reachable?
βββββββββββββββββββββββββββββββββββββββ€
β Layer 2: HTTP (curl/wget) β Does the web server respond?
βββββββββββββββββββββββββββββββββββββββ€
β Layer 3: API (authenticated β Do API endpoints return
β requests with validation) β correct data?
βββββββββββββββββββββββββββββββββββββββ
Benefits of this approach:
- Faster problem diagnosis (network vs application)
- Lower false positive rate
- Granular alerting (different response for network outage vs API bug)
Ping Security Considerations
Why Some Servers Don't Respond to Ping
Many production servers disable ICMP for security reasons:
- DDoS protection β Ping floods can overwhelm servers
- Information disclosure β Responding to ping reveals server existence
- Compliance requirements β Some security frameworks require blocking ICMP
This doesn't mean the server is down β it just won't respond to ping. Always test with HTTP requests for web services.
Ping Attacks and Abuse
- Ping flood (DDoS) β Overwhelming a server with ICMP packets
- Ping of Death β Sending malformed oversized packets (mostly historical, patched in modern systems)
- ICMP tunneling β Covertly sending data inside ping packets to bypass firewalls
Best Practices for Using Ping
For Network Troubleshooting
Start local, then work outward:
- Ping your router:
ping 192.168.1.1 - Ping your ISP's DNS:
ping 8.8.8.8 - Ping the target host
- Ping your router:
Run extended ping tests: Use
-c 100(Linux/Mac) or-n 100(Windows) to get statistically meaningful dataCheck for patterns: Does latency spike at certain times? Is packet loss consistent or intermittent?
Combine with other tools: Use
traceroute,mtr, andcurlfor complete picture
For Monitoring
- Don't rely on ping alone β Always combine with application-layer checks
- Set appropriate thresholds β Define what latency/packet loss is acceptable for your use case
- Account for ICMP blocking β If ping fails but HTTP succeeds, the service is up
- Monitor trends over time β Gradual latency increases can indicate network degradation
Common Mistakes to Avoid
β Assuming no ping response = server down (could be ICMP blocked) β Pinging only once (network is variable; need multiple samples) β Not checking DNS (ping by IP to rule out DNS as the problem) β Ignoring ping flood risks (don't set interval too low without permission)
Ping Alternatives and Advanced Tools
For More Detailed Network Diagnostics
- mtr (My Traceroute) β Combines ping and traceroute, shows real-time network path analysis
- hping β Advanced packet crafting tool, can ping on any port/protocol
- fping β Ping multiple hosts in parallel (great for monitoring many servers)
For API and Application Monitoring
- curl with timing β Measure HTTP request performance
- httpie β User-friendly HTTP client for API testing
- Postman β GUI tool for API testing and monitoring
- Better Stack β Automated API uptime monitoring with alerting
Frequently Asked Questions
Why does ping work but I can't access the website?
Ping only tests network-layer connectivity. The web server application could be down, misconfigured, or having issues even though the server's network interface is responding to ICMP.
Can I ping a website on a specific port?
No, ICMP (used by ping) doesn't use ports. To test connectivity to a specific port, use telnet, nc (netcat), or curl:
# Test if port 443 (HTTPS) is open
nc -zv example.com 443
# Test HTTP/HTTPS connectivity
curl -I https://example.com
Why do some pings have different TTL values?
TTL (Time To Live) indicates how many network hops remain before the packet is discarded. Each router decrements TTL by 1. Different TTL values usually mean:
- Packets are taking different routes
- Load balancing is distributing requests across servers
- DNS returned different IP addresses (round-robin)
Is it bad to constantly ping a server?
Rapid, sustained pinging (ping flood) can:
- Consume bandwidth
- Trigger rate limiting or IP bans
- Be considered a denial-of-service attack
For monitoring, ping once every 30-60 seconds. For troubleshooting, ping for 1-2 minutes then stop.
Can I use ping to check if my API is working?
Ping only checks if the server is reachable at the network level. For APIs, you need to:
- Make actual HTTP requests to your API endpoints
- Verify response status codes (200 OK, etc.)
- Validate response body content
- Test authentication if required
Use tools designed for API monitoring like Better Stack instead.
Conclusion
Ping is one of the most fundamental network diagnostic tools β simple yet powerful. While it's perfect for quick connectivity tests and basic network troubleshooting, it's only part of the picture when monitoring production services and APIs.
Key takeaways:
- Ping tests network-layer connectivity using ICMP echo requests
- Response time (latency) and packet loss are the primary metrics
- Ping alone can't verify application-level functionality
- Some servers intentionally don't respond to ping for security
- For API monitoring, combine network-level checks (ping) with application-level checks (HTTP requests)
Need comprehensive API monitoring? Better Stack goes beyond ping to monitor your APIs at the application layer, validating response codes, content, and performance β with instant alerts when issues occur.
π Tools We Use & Recommend
Tested across our own infrastructure monitoring 200+ APIs daily
SEO & Site Performance Monitoring
Used by 10M+ marketers
Track your site health, uptime, search rankings, and competitor movements from one dashboard.
βWe use SEMrush to track how our API status pages rank and catch site health issues early.β
API Status Check
Stop checking API status pages manually
Get instant email alerts when OpenAI, Stripe, AWS, and 100+ APIs go down. Know before your users do.
14-day free trial Β· $0 due today Β· $9/mo after Β· Cancel anytime
Browse Free Dashboard β