我正在尝试测量我无法控制的服务器的延迟。这是在一个托管环境中,因此延迟大约为 500 微秒(0.5 毫秒)。
我了解 Cisco 设备经常降低 ICMP 流量的优先级,使 ping 时间不可靠。有没有办法让我判断我正在穿越的齿轮是否是这种情况?
我可以使用 TCP 确认来确定远程服务器的最小延迟吗?为此,我需要以某种方式强制远程服务器在接收到我的数据时立即发送 TCP 确认。
我正在尝试测量我无法控制的服务器的延迟。这是在一个托管环境中,因此延迟大约为 500 微秒(0.5 毫秒)。
我了解 Cisco 设备经常降低 ICMP 流量的优先级,使 ping 时间不可靠。有没有办法让我判断我正在穿越的齿轮是否是这种情况?
我可以使用 TCP 确认来确定远程服务器的最小延迟吗?为此,我需要以某种方式强制远程服务器在接收到我的数据时立即发送 TCP 确认。
试试hping。您可以发送确认并测量延迟:
hping -A -p 80 host
或使用 SYN:
hping -S -p 80 host
另请注意,第 2 层链路上的优先级降低不太可能(但可能)。此外,看到 ARP 比 ICMP 慢并不一定意味着 ICMP 没有被取消优先级——它可能意味着带宽不足以达到限制阈值。
ARP 几乎总是会变慢,因为它会广播并且可能会在交换机上出现端口排队。您可以单播 ARP,但如果有人在寻找它,这可能看起来很可疑。
您可以尝试使用arping
,它使用 ARP 执行 ping 操作。