![如何测量 TCP 延迟?](https://linux22.com/image/228730/%E5%A6%82%E4%BD%95%E6%B5%8B%E9%87%8F%20TCP%20%E5%BB%B6%E8%BF%9F%EF%BC%9F.png)
两台服务器上的操作系统都是 Debian。
我发现了一些示例,展示了如何使用 nmap 测量 TCP 延迟:
nmap --packet-trace -p 22 192.168.0.10
但我得到了一些关于延迟的负面结果。即,它将打印一些输出,例如:
Host is up (-0.0023s latency)
在最后。
nmap 在做什么?是测量SYN和SYN-ACK之间的时间差吗?如果是这样,为什么有时会得到负面结果?是否需要两台服务器之间的时钟非常精确地同步?
此外,我可以使用 ssh 作为良好的 TCP 测试服务器还是应该使用不同的服务?
我可以使用其他工具来测量 TCP 延迟吗?由于延迟测量的负面结果,我不知道我是否信任 nmap。
答案1
你对那些声称见证了时间旅行的事物的不信任是正确的。
这是事件混乱错误,在 Nmap 的更高版本中修复。您可能想使用更新的 nmap,但这肯定不利于信任。
但一般来说,“TCP 延迟”的含义也不太清楚。该术语没有规范定义;实际上,您需要用文字准确地写下您想要测量的具体时间、从在哪个逻辑层的哪个接口上发生的哪个事件到哪个其他事件。仅有的后定义之后,您会选择一个工具来衡量它。
举个例子:对于任何我想称之为“TCP 引起的延迟”的东西,我需要能够确定内核/用户层接口以及驱动程序/硬件接口上的计时 - 所以在 Userland 中运行的程序(如 nmap)甚至无法满足我的需要。
这并不意味着这是真的你想要测量,这只意味着您需要精确地了解您需要知道什么,以及您需要知道这些的目的。这基本上是物理研究,在设计实验来观察之前,您首先需要考虑要观察的内容,然后在实验设计过程中决定用于此目的的正确测量设备。不能只是把万用表扔进火山里就称之为科学!