To run a ping test, open Command Prompt on Windows or Terminal on a Mac or Linux and type ping 1.1.1.1. Each reply line shows the round-trip time in milliseconds, and the summary at the end shows the average and how many packets were lost. To see where along the path the delay starts, run tracert 1.1.1.1 on Windows or traceroute 1.1.1.1 on Mac and Linux.
1.1.1.1 is Cloudflare's public DNS server, and 8.8.8.8 is Google's. Both answer ping and make good reference targets. You can also ping a website name, such as ping example.com.
Run ping on Windows, macOS and Linux
Windows. Press the Windows key, type cmd, and open Command Prompt.
ping 1.1.1.1sends four pings and stops.ping -n 50 1.1.1.1sends 50, which gives a fairer average.ping -t 1.1.1.1runs a continuous ping until you press Ctrl+C. It's useful for watching what happens while someone starts a download or a video call.
macOS. Open Terminal from Applications > Utilities, or search for it with Spotlight.
ping 1.1.1.1keeps going until you press Ctrl+C. Unlike Windows, it's continuous by default.ping -c 50 1.1.1.1sends 50 and stops with a summary.
Linux. Open a terminal. The commands match macOS: ping -c 50 1.1.1.1.
How to read ping results
Each reply line looks roughly like this:
Reply from 1.1.1.1: bytes=32 time=14ms TTL=57 (Windows)
64 bytes from 1.1.1.1: icmp_seq=3 ttl=57 time=14.2 ms (Mac and Linux)
The number after time= is the round-trip time: how long the packet took to reach the target and come back. Ignore TTL and bytes for everyday checks.
The summary at the end is what matters most:
- Average is your typical latency to that target. For what counts as good, see the ping guide for gaming.
- Min and max, or the spread between them, show how steady the line is. A steady 20 ms with an occasional 25 ms is fine. Values swinging between 20 and 200 ms will feel like lag even though the average looks fine.
- Packet loss is shown as
Lost = 1 (2% loss)on Windows or2.0% packet losson Mac and Linux. Anything above 0% on a quiet wired connection is worth chasing. Read how packet loss causes lag for what's normal and what isn't.
Ping your router first, then the internet
One ping on its own can't tell you whether the problem is in your home or at your ISP. Two pings can.
- Find your router's address. On Windows, run
ipconfigand look for "Default Gateway". On a Mac, runroute -n get defaultand look for "gateway". It's often something like192.168.1.1or192.168.0.1. - Ping the router 50 times. This only crosses your own network.
- Ping
1.1.1.150 times. This crosses your network and your ISP.
Then compare:
| Router ping | Internet ping | Likely cause |
|---|---|---|
| Low and steady, no loss | Low and steady, no loss | The connection is healthy. Look at the app or game server |
| Low and steady, no loss | High, spiky or lossy | Beyond your home: modem, line or ISP |
| Spiky or lossy | Spiky or lossy | Inside your home: Wi-Fi signal, a cable, or the router |
As a rule of thumb, a wired ping to your own router should be about 1 ms (Windows often shows <1ms). On Wi-Fi a few milliseconds is normal. Regular jumps to 50 ms or more, or any loss, mean the local link is the weak spot. Try a cable or move closer, then see how to boost a weak Wi-Fi signal.
Run a traceroute
A traceroute lists each router (hop) your traffic passes on the way to a target, with the delay to each one.
- Windows:
tracert 1.1.1.1 - macOS:
traceroute 1.1.1.1 - Linux:
traceroute 1.1.1.1. If it isn't installed,tracepath 1.1.1.1usually is.
Windows also has pathping 1.1.1.1. It runs a traceroute, then pings every hop for a few minutes and reports loss per hop. It's slow, but it gives you more to go on than one pass.
How to read a traceroute
Each line is one hop, with three timings because three probes are sent to each hop.
- Hop 1 is your router. Hops 2 to 4 or so are usually your ISP's network. Later hops belong to the networks that carry you to the target.
- Times normally climb gently as distance grows. A jump of tens of milliseconds between two hops often just means a long physical link, such as crossing a country or an ocean.
- A spike at one hop that disappears at the next is usually harmless. Many routers answer traceroute probes slowly because answering is low priority for them, while still forwarding your real traffic at full speed.
- A jump that stays high for every hop after it is a real delay. Where it starts tells you who owns it: your router, your ISP, or a network further out.
* * *orRequest timed outmeans that hop didn't answer. If later hops answer normally, ignore it. If every line after a point is* * *, the path is broken there, or the target simply blocks traceroute.
The same rule applies to loss in pathping: loss that shows at one middle hop but not at the final one is the router ignoring probes. Only loss that carries through to the last hop affects you.
What to do with the results
If the problem is in your home, fix Wi-Fi or cabling first. If ping to the router is clean but ping and traceroute to the internet show high delay or loss, save the output. Run it a few times, at a quiet hour and at a busy one, and send the text to your ISP's support team. A traceroute showing where loss begins is far more useful to them than "the internet is slow".
For speed as well as latency, run the SpeedMetric speed test. It reports download, upload, idle ping and jitter, so you get the full picture in one place. It doesn't measure packet loss, though, so keep the ping -n 50 or ping -c 50 summary for that. When you've ruled out the obvious, the step-by-step debug guide covers what to check next.
Common questions
Why does my ping test show "Request timed out"?
The reply didn't come back in time. One timeout in a long run is noise. Several in a row to your own router point to Wi-Fi or a cable, and timeouts that only appear to an internet address point beyond your home.
Is a browser ping test the same as the ping command?
Not quite. The ping command uses ICMP packets, while a browser test like SpeedMetric times small web requests to its test server. Both measure round-trip delay, but the browser figure can read a little higher and goes to a different server.