ping 时间为负?

ping 时间为负?

这是我第一次看到这种情况,我不知道这是什么意思;

64 bytes from 74.125.93.99: icmp_seq=6233 ttl=53 time=545.493 ms  
64 bytes from 74.125.93.99: icmp_seq=6234 ttl=53 time=776.093 ms  
64 bytes from 74.125.93.99: icmp_seq=6235 ttl=53 time=-705.731 ms  
64 bytes from 74.125.93.99: icmp_seq=6236 ttl=53 time=52.549 ms   
64 bytes from 74.125.93.99: icmp_seq=6237 ttl=53 time=44.470 ms  

有人见过负 ping 时间吗?我的一个朋友告诉我,他曾经在无线链路上见过负 ping 时间,而且是通过无线连接,但是……这是怎么发生的呢?

答案1

NTP 或 Windows 时间服务是否在 ping 期间同步系统时钟?

答案2

我很难相信,但是这次讨论似乎表明这是某些 AMD CPU 的行为。

就我个人而言,我不会担心它并假设它是 ICMP 中的一个概念缺陷...也许是一个数据包通过了不同的路径或一些涉及时钟设置不同的机器/路由器的奇怪东西。

答案3

不幸的是,这不仅限于 AMD 处理器,但似乎对 XP 的影响很大。到目前为止,经过几年的寻找答案,我知道了一个快速修复方法,但我无法对启动后无法通过远程重新出现的服务器这样做。

要重置 TCP/IP(和时间),请打开管理员 CMD 窗口并输入以下内容:

ipconfig /flushdns
arp -d
gpupdate /force
netsh int ip reset null
netsh winsock reset

现在,您必须重新启动。网络适配器将恢复为 DHCP,因此请小心远程人员。

那么这里发生了什么?

由于某种原因,TCP/IP 有一个时间戳,用于计算时间,但不知何故它被弄错了。我以前总是在一个地方看到它,但它终于停止了。不幸的是,在我管理的仓库里,它还在继续。今晚,所有点似乎都停留在 237 毫秒,但 2 个点又弹出了,并发出了多次 ping。

pingpath是一款非常方便的实用程序,我会更频繁地使用它。不幸的是,它得出了相同的结果...

可悲的是,这也会清除游戏中的 ping 错误计数。

注意-如果您想查看日志文件,请用文件名替换 null,例如c:\log.txt - Null 只是意味着没有文件(技术上)

答案4

我相信这是命令计时数据包方式中的一个错误ping,并且 AMD 处理器比英特尔处理器更容易加剧这一问题。

在 Windows 中用于高分辨率计时的函数是QueryPerformanceCounterQueryPerformanceFrequency

不幸的是,它们不适用于多核处理器,因为这些处理器不会返回相同的数字。

解决 ping 问题的方法是设置线程亲和性ping。我怀疑它这样做是否能解释负计时。AMD 和 MS 也提供了补丁,据说可以帮助解决这个问题。

相关内容