在验证 ping 回显时,实用程序/库似乎通常只检查数据包的校验和,而实际上并没有确认发出的有效负载与返回的有效负载相匹配。例如,Wireshark 的 ICMP 解析器只检查错误的校验和,而这也是 Ruby 的net-ruby检查的全部内容。
我正在调试一个低级网络驱动程序问题,我需要确认收到的数据没有被破坏,所以我想使用ICMP Echo之类的低级请求来测试我的驱动程序。但是,我现有的 Ping 工具是不够的,因为我担心校验和可能与回显响应中包含的数据匹配,而回显响应中的数据与回显请求中的数据不匹配。因此,即使它们都有有效的校验和(校验和代码中没有错误),数据接收部分也存在错误,因此我的驱动程序没有收到主机认为它正在发送的内容。
我如何检查回显有效负载以确认它与我发送的内容相同?如果我可以使用独立的“偏执 ping”实用程序,那也很好——我只需要能够改变 ping 的长度和频率,因为我只在网络泛滥时才看到问题。
我更喜欢 Ruby 库/片段的形式,但任何语言或独立应用程序都是可以接受的,只要我可以将它硬塞到在 Windows 上运行。
谢谢!