ping 可以替代 tcp 吗?

ping 可以替代 tcp 吗?

检查网络“质量”是一项常见任务 - 延迟、丢包数等。但“ping”有许多缺点: - 它使用 ICMP。许多 ISP 针对 ICMP 和 TCP 流量使用不同的整形器,因此“ping”将显示 10ms 延迟,但 TCP 连接将经历 1000ms+。 - 它发送的数据包数量非常少。默认情况下,每秒一个数据包。由于 TCP 协议可以容忍数据包丢失(即使一半数据包丢失,它也能运行得很好 - 这是正常的),因此完全不清楚 ping 的“30% 数据包丢失”是否会导致连接中断,或者这是否完全正常。

那么,有没有其他方法可以替代 ping 来使用 TCP 连接而不是 ICMP 并检查互联网连接质量?

答案1

不管 TCP 是否可以容忍数据包丢失/数据包排序问题,如果“人口”足够大 - 即超过 100 次 ping,30% 的 ping 丢失仍然是相当严重的。

但要回答这个问题,你可以看看 nmap。我相信很快就会有大量的例子出现 :)

但更重要的是,您不只是想要往返时间,您真正想要看到的是从您的机器到服务器以及在每一次(可能的)跳跃中返回的性能。

您可以使用traceroute- 来执行此操作,但是最常见的版本是使用 ICMP 或 UDP 完成的,但搜索tcp traceroute- 并从那里开始。

这里有一些有趣的工具供您尝试……

下面是一个例子lft...

 % lft -S 4.2.2.2

 Hop  LFT trace to vnsc-bak.sys.gtei.net (4.2.2.2):80/tcp
  1   ln-gateway.centergate.com (206.117.161.1) 0.5ms
  2   isi-acg.ln.net (130.152.136.1) 2.3ms
  3   isi-1-lngw2-atm.ln.net (130.152.180.21) 2.5ms
  4   gigabitethernet5-0.lsanca1-cr3.bbnplanet.net (4.24.4.249) 3.0ms
  5   p6-0.lsanca1-cr6.bbnplanet.net (4.24.4.2) 3.4ms
  6   p6-0.lsanca2-br1.bbnplanet.net (4.24.5.49) 3.3ms
  7   p15-0.snjpca1-br1.bbnplanet.net (4.24.5.58) 10.9ms
  8   so-3-0-0.mtvwca1-br1.bbnplanet.net (4.24.7.33) 11.1ms
  9   p7-0.mtvwca1-dc-dbe1.bbnplanet.net (4.24.9.166) 11.0ms
 10   vlan40.mtvwca1-dc1-dfa1-rc1.bbnplanet.net (128.11.193.67) 11.1ms
 **   [neglected] no reply packets received from TTLs 11 through 20
 **   [4.2-3 BSD bug] the next gateway may errantly reply with reused TTLs
 21   [target] vnsc-bak.sys.gtei.net (4.2.2.2) 11.2ms

答案2

Netcat 电动工具描述如何做TCP Ping使用 netcat。具体来说,每个未经请求的 ACK 数据包都应返回 RST。

答案3

我个人非常喜欢地铁(http://www.bitwizard.nl/mtr/),mtr 是基于 ncurses 的 traceroute 克隆,可以使用 icmp 和 udp。它显示您与某个主机之间的链接中的薄弱环节,并且以这种方式不具侵入性。

当真正进行一些负载测试时,我会使用 iperf(客户端/服务器)。

答案4

ICMP 数据包的传输速度通常较慢(如果有差异的话),因为大多数网络会降低它们的优先级,尤其是 ping 数据包。通常,如果您看到 ICMP 和 TCP 响应的结果如此不同,则问题要么是服务器过载,要么是沿途防火墙的特定 TCP 整形。

你应该调查traceroute -P tcp,,当然tcptraceroutelfttelnet

相关内容