我的Ping采取对策的那一天
💡
原文英文,约2800词,阅读约需10分钟。
📝
内容提要
假期结束后,重新融入生活,打开公司笔记本电脑,运行ping命令时遇到计算机时钟回滚的问题。这种情况很罕见,但ping的开发人员可能已经考虑了处理时钟变化和排除错误测量值的方法。
🎯
关键要点
-
假期结束后,作者重新融入工作,启动公司笔记本电脑时遇到计算机时钟回滚的问题。
-
在运行ping命令时,计算机时钟未同步,导致ping出现错误的延迟测量。
-
ping开发人员考虑了处理时钟变化的情况,并在代码中实现了错误测量的标记。
-
ping有两种模式:旧模式使用墙钟时间,新模式使用网络时间。
-
现代Linux系统中,某些系统调用在用户空间执行,strace无法捕捉到这些调用。
-
通过LD_PRELOAD可以覆盖系统调用,强制使用慢速真实系统调用。
-
ping程序不再需要suid权限,现代Linux可以在没有额外权限的情况下发送和接收ICMP回显消息。
-
ping使用SO_TIMESTAMP选项接收时间戳,并在ICMP回显请求的有效负载中存储发送时间戳。
-
作者探讨了如何通过故障注入技术触发ping的'采取对策'消息。
-
时钟回滚的情况虽然罕见,但可能会影响ping的延迟测量,尤其是在处理闰秒时。
-
未来可能会逐步淘汰闰秒,以减少时钟跳跃带来的问题。
-
在处理时间时,使用CLOCK_MONOTONIC可以避免时钟回滚带来的困扰。
➡️