【问题标题】:Using TCP Acks to measure latency to a server?使用 TCP Acks 测量服务器的延迟?
【发布时间】:2011-02-15 23:58:42
【问题描述】:

我正在尝试测量我无法控制的服务器的延迟。这是在一个托管环境中,因此延迟大约为 500 微秒(0.5 毫秒)。

我了解 Cisco 设备经常降低 ICMP 流量的优先级,导致 ping 时间不可靠。有没有办法让我判断我正在穿越的齿轮是否属于这种情况?

我可以使用 TCP 确认来确定远程服务器的最小延迟吗?为此,我需要以某种方式强制远程服务器在接收到我的数据时立即发送 TCP 确认。

【问题讨论】:

  • 无论如何,如果 Cisco 路由器de优先处理您的 ping 数据包,那么您的 TCP 延迟肯定
  • 这个post 谈到使用acks 来测量延迟。

标签: performance tcp latency low-latency


【解决方案1】:

试试看。您可以发送确认并测量延迟:

hping -A -p 80 host

或使用 SYN:

hping -S -p 80 host

另请注意,第 2 层链路的优先级降低不太可能(但可能)。此外,看到 ARP 比 ICMP 慢并不一定意味着 ICMP 没有被取消优先级——它可能意味着带宽不足以达到限制阈值。

ARP 几乎总是会变慢,因为它会广播并且可能会在交换机上遇到端口排队。您可以单播 ARP,但如果有人在寻找它,这可能看起来很可疑。

【讨论】:

    【解决方案2】:

    您可以尝试使用arping,它使用 ARP 进行 ping。

    【讨论】:

    • 我看到 arping 报告的时间比 ping 报告的时间高约 100 us。你会期待吗?这是否表明 ICMP ping 没有被取消优先级?
    • 这可能只是表示本地内核中 ARP 回复导致的额外处理。无论如何,ICMP ping 似乎并没有被降低优先级。
    猜你喜欢
    • 2018-04-28
    • 2011-02-01
    • 1970-01-01
    • 2011-09-17
    • 2017-11-01
    • 2021-01-28
    • 2021-08-07
    • 2013-07-13
    • 2010-09-23
    相关资源
    最近更新 更多