我的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可以避免时钟回滚带来的困扰。

➡️

继续阅读