网络诊断工具

Ping(TCP)

通过 TCP 检测可达性和延迟

什么是 TCP ping?

TCP ping 通过建立 TCP 连接(而非发送 ICMP echo)来测量主机是否可达以及响应速度。由于在多数托管和 CDN 后方无法使用 ICMP,IPeek 通过对 443 和 80 端口建立 TCP 连接来测量可达性与延迟,并报告多次尝试中的最小、平均和最大往返时间。

TCP ping 与 ICMP ping 的区别

经典的 ping 命令发送 ICMP echo 请求并对回复计时。这在本地网络可行,但在很大一部分公共互联网上会失败,因为防火墙、CDN 和云服务商常常丢弃或降级 ICMP。TCP ping 则改为向某个服务端口建立真实连接,并对握手耗时计时。由于 Web 服务器必须在 443 和 80 上接受连接才能运转,这种方式能可靠地触及那些从不应答 ICMP 的主机,并测量出实际承载你流量的那条路径的延迟。

如何解读你的延迟结果

IPeek 报告多次尝试中的最小、平均和最大往返时间。最小值是该路径的最佳延迟;平均值是你通常可以预期的水平。最小与最大之间的差距就是抖动:差距小说明连接稳定,差距大则提示拥塞或主机过载。粗略来说,低于 50 ms 为优秀,50 到 150 ms 在跨区域时属正常,而持续偏高或剧烈波动则指向值得调查的网络或服务器问题。

何时该用 TCP ping

当普通 ping 报告 100% 丢包但站点明明能打开时,就该用 TCP ping,这只不过说明 ICMP 被过滤了。用它来确认服务器在其 Web 端口上接受连接、从你所在位置比较到某主机的延迟,或在间歇性变慢演变成宕机前发现它。当你关心真实用户体验时,它也是最诚实的测量,因为它对浏览器和 API 实际使用的同一条 TCP 路径计时,而不是另一条 ICMP 通道。

为什么 ICMP 常被屏蔽

运营方屏蔽或限速 ICMP 以减少攻击面和噪声:ICMP 洪泛曾是经典的拒绝服务手段,而 echo 回复会泄露有助于侦察的信息。CDN 和负载均衡器还会在边缘终止连接,因此 ICMP ping 测到的是最近的边缘节点而非源站。正因如此,ICMP ping 失败完全说明不了站点是否在线。对服务实际监听的端口做 TCP ping,才能就可达性给出可靠的是或否。

常见问题

为什么普通 ping 失败时 TCP ping 却能成功?

普通 ping 使用 ICMP,而防火墙和 CDN 常常丢弃它,因此即使站点完全在线,它也可能报告失败。TCP ping 向 443 或 80 这样的服务端口建立连接,任何正常工作的 Web 服务器都必须接受。由于它走的是真实流量所走的同一条路径,所以在 ICMP 被过滤的地方它仍能成功。

多少 ping 延迟算好?

低于 50 ms 为优秀、感觉瞬时;50 到 150 ms 对跨区域或跨大洲的连接属正常;高于 150 ms 在交互使用中会变得可察觉。比绝对数值更重要的是稳定性:平均值稳定、最小与最大之间差距小,意味着路径健康;而大幅波动则表明拥塞或服务器过载。

最小、平均和最大往返时间是什么意思?

它们汇总了多次计时尝试。最小是最快的响应,代表网络路径的最佳延迟。平均是你可以预期的典型延迟。最大是最慢的一次尝试。最小与最大之间的差距即抖动;差距小说明连接稳定,差距大则指向路径上的拥塞或不稳定。

我可以 ping 一个屏蔽 ICMP 的主机吗?

可以,这正是 TCP ping 的用途。它不发送 ICMP echo,而是对 443 和 80 端口建立 TCP 连接——Web 服务器必须接受这些端口才能提供流量。这样就能触及那些悄悄丢弃 ICMP 的防火墙和 CDN 后方的主机,在普通 ping 只会超时的地方给出真实的可达性与延迟读数。

IPeek 为什么 ping 443 和 80 端口?

它们是 Web 服务器为正常运转必须保持开放的标准 HTTPS 和 HTTP 端口,因此是基于连接的 ping 的可靠目标。通过对这些端口的 TCP 握手计时,IPeek 测量出实际承载 Web 流量那条路径的延迟,并为那些在现代托管和 CDN 后方从不应答 ICMP echo 的主机确认可达性。

相关工具

Deutsch | English | Español | Français | Italiano | Português | Русский | Українська | 日本語 | 简体中文 | 한국어