Clash Latency Explained: Why 80ms in the Panel Still Feels Slow

The bouncing latency number in a client's panel is often treated as the sole proof that a line is "good." But between 80ms and a genuinely smooth connection sit four hidden factors: the test target, packet loss rate, bandwidth bottlenecks, and link congestion. This article breaks down how the latency number is actually measured, what it does and doesn't reflect, and offers several self-test methods that better mirror real browsing conditions.

What the Latency Number Actually Measures

Open the proxy page of any Clash-core client and you'll see a millisecond figure next to every node: green means fast, yellow means average, red means timeout or unreachable. That number comes from a periodic network probe the client runs, commonly called a URL Test. It works simply: the client sends a single HTTP request through that node to a fixed address and records how long it takes to receive the response headers. That elapsed time is what shows up in the panel.

The key detail is that this probe only measures the round trip of one short request—it doesn't download the response body, and it doesn't simulate the multiple concurrent connections a real webpage load involves. It's closer to what network engineers call RTT (Round-Trip Time): how long it takes for a packet to go out and an acknowledgment to come back, not how long it takes to open a page and load every resource on it. The two sound related, but the gap between them can be huge.

Note: the latency number reflects the ceiling of a link's response speed, not the floor of the actual experience. Low latency is necessary, but not sufficient.

URL Test Measures Handshake Time, Not Page-Load Time

To see where the gap comes from, look at what actually happens when a real webpage loads. Opening an ordinary page requires the browser to do at least the following:

  1. Resolve the domain via DNS to get the target server's IP address
  2. Establish a TCP connection with the server (three-way handshake)
  3. If it's HTTPS, layer on a TLS handshake to negotiate encryption parameters
  4. Send the HTTP request and wait for the server to return headers and body
  5. Parse the HTML, then fire off concurrent requests for images, scripts, stylesheets, and other resources
  6. Render the page until it becomes interactive

URL Test only covers a small slice of steps 2 through 4, and its target is usually a tiny, fast-responding fixed endpoint (such as a dedicated speed-test API) that puts almost no load on any server. The sites, video platforms, and game servers you actually visit differ completely in load, geographic location, and CDN distribution. The same proxy line might show 80ms against the test endpoint but 200ms against a different target—that isn't the latency number being "wrong," it's simply a single sample point that never claimed to represent every destination.

Most clients also throttle their auto-probing, so they don't re-test on every single request. The number in the panel is often a snapshot from anywhere between tens of seconds and several minutes ago. Link conditions themselves fluctuate too, especially on relay nodes during peak hours—80ms five minutes ago can climb to 300ms now without the panel refreshing in real time.

How Packet Loss, Bandwidth Limits, and Congestion Slow Things Down

Beyond the latency figure, three variables directly determine whether a connection actually feels smooth—and most of them never show up in that millisecond number.

Packet loss rate

TCP relies on acknowledgments and retransmissions to guarantee data integrity. Once a packet is lost somewhere along the link, the sender has to wait for a timeout before resending—typically hundreds of milliseconds at minimum. A line with low latency but high packet loss shows up as "pages load fine but video keeps buffering" or "the game's latency counter looks normal but there's sudden stutter and frame skipping." A single short URL Test request rarely catches packet loss, because its sample size is too small to happen to land on the exact moment a packet drops.

Bandwidth bottleneck

Latency measures how quickly something responds; bandwidth measures how much a pipe can carry. A line with 50ms latency but only 2Mbps of bandwidth will respond to a page load almost instantly, yet struggle noticeably with file downloads or HD video, with progress bars crawling along. These are two completely independent metrics, and the latency figure in the panel is entirely blind to bandwidth bottlenecks.

Link congestion

Proxy lines often pass through multiple relay hops, and if any one relay server is overloaded or its upstream bandwidth is being squeezed by too many users, congestion follows. The telltale sign of congestion is latency swinging wildly over time—worse during peak hours, better late at night. Judging line quality purely from the single latency reading taken when the client first starts is an easy way to get it wrong.

SymptomWhat the latency number showsActual cause
Video buffers constantly, spinner never stopsMay still show "green" low latencyPacket loss triggering TCP retransmits, or bandwidth too low for the bitrate
Pages load instantly but file downloads are slowLatency looks normalBandwidth bottleneck, unrelated to latency
Fine during the day, suddenly much faster late at nightDifferent readings at different timesLink congestion fluctuating with load
Panel shows timeout / redNumber missing or abnormalNode is down, or the test target itself is unreachable

Self-Test Methods That Mirror Real Usage

Since the panel's latency figure alone isn't enough, a few additional checks that better reflect actual usage can help confirm whether a line is really usable.

1. Manually test multiple real targets instead of trusting only auto-probing

Most Clash clients let you manually re-test a single node or group, and let you set a custom test URL in the config. Swap the default test address for a service you actually use regularly (say, the homepage of a site you visit often), and the resulting number will track much closer to the real cost of visiting that service. Testing the same node against both a common speed-test endpoint and your real target, then comparing the gap, helps you tell whether a line is "generally fast" or "only fast against the test target."

2. Watch the connection log instead of staring at a single number

A client's log page (or connections page) records every real connection's destination, the node used, and the rule that matched it. Checking the log while a page is actually stuttering tells you which node handled that session, whether it kept reconnecting, and whether a rule mistakenly routed the traffic through a slow line. That pinpoints the problem far better than watching the latency figure on the proxy page alone.

3. Run basic network diagnostics with built-in system tools

ping -c 20 target-domain-or-IP
tracert target-domain-or-IP   # tracert on Windows, traceroute on macOS/Linux

Twenty consecutive pings reveal the packet loss rate (the "packet loss" figure in the output), which reflects link stability far better than a single latency reading. A route trace shows exactly which hop starts slowing down or dropping packets, helping you tell whether the issue lies with your local network, a relay node, or the destination server.

4. Repeat the test at a different time

If congestion is suspected, test the same line at two different times—say, 9pm peak hours versus 2am—and compare. A large gap in latency and packet loss between the two strongly points to link load, not a misconfigured line.

5. Rule out local device and system interference first

Before drawing conclusions, confirm the system proxy is correctly enabled, that it isn't conflicting with other proxy software, and that TUN mode is properly taking over traffic. These configuration-level issues also present as "lag," but have nothing to do with line quality—rule them out first.

Note: if multiple nodes show high latency or packet loss across multiple time periods, the more likely cause is the subscription's underlying line quality. Switching nodes or contacting the subscription provider is far more effective than repeatedly tweaking client settings.

Common Questions

Why do two different clients show different latency numbers for the same node?

Test endpoint, timeout threshold, and probe frequency defaults differ between clients, so the numbers will naturally differ—this is normal and doesn't mean one client is "more accurate" than another.

Latency stays green, but video still buffers a lot—what should I do?

Suspect packet loss and bandwidth bottlenecks first. Run several pings to check the loss rate, then check whether that node has a bandwidth cap, and try a different node group if needed.

How often does auto-probing refresh, and can it be made more frequent?

Most clients let you adjust the auto-probe interval in the config. Setting it too aggressively just adds unnecessary network requests—keeping the default or shortening it moderately is enough; real-time refresh isn't necessary.

Download Client