我正在尝试使用C#实现Mark Russinovich的SysInternals PsPing工具,以使用TCP ping测量延迟。
我不确定它如何进行ping调用(显然不使用原始窗口套接字,因为它不需要管理员特权来运行)。我知道hping
会发送SYN数据包并测量响应时间。
用于准确测量服务器延迟的实现技术是什么?对于仅测量包确认的网络延迟(而非页面加载时间)的TCP,是否有相应库可用?
C:\>psping stackoverflow.com:80
PsPing v2.01 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
Pinging 198.252.206.16 with 32 bytes of data:
5 iterations (warmup 1) ping test:
Reply from 198.252.206.16: 81.57ms
Reply from 198.252.206.16: 80.81ms
Reply from 198.252.206.16: 80.68ms
Reply from 198.252.206.16: 80.52ms
Reply from 198.252.206.16: 80.71ms
Ping statistics for 198.252.206.16:
Sent = 4, Received = 4, Lost = 0 (0% loss),
Minimum = 80.52ms, Maximum = 80.81ms, Average = 80.68ms
更新:请不要回答类似于“为什么不使用Ping类,它已经完成了这个任务”的问题,因为我正在询问TCP上的ping,而不是ICMP。
psping stackoverflow.com
会生成 ICMP 流量。你应该使用psping stackoverflow.com:80
来测试 TCP 连通性。 - ziya