![]() |
1
1
我认为你没有抓住校验和的要点。校验和的目的是验证数据是否完整。发送方根据数据计算校验和,并将其与数据一起传输。接收器根据数据重新计算校验和,并将其与发送的校验和进行比较。如果它们不匹配,那么数据就不完整,或者两者中的一个计算错误。大多数情况下,错误的校验和不会导致数据包丢失,因为存在大量损坏的协议栈,当然,数据包管理器也不能修复校验和,但是如果双方都正确地进行了校验和,那么校验和检查会告诉您数据是完整的。 您正在查看TCP校验和还是ICMP校验和?ICMP校验和不包括TCP头,只包括ICMP类型、代码、校验和数据字段。TCP校验和失败并不一定意味着ICMP内容不完整,它可能只是意味着TCP头被弄乱了(可能是由于NAT损坏)。 |
![]() |
2
0
@汤姆:谢谢你的回答。你说:
但是你还说:
我的问题是,如果ping实用程序/库检查了任何东西(通常没有),它们只检查以确保校验和与数据匹配。似乎很少有人真正用echo的响应检查发送的数据,以确保两个有效负载相同。请求和响应可能都有有效的校验和,但有效负载不同,我见过的大多数Ping例程都没有检查这种情况(但这恰好是我目前设备上存在的那种bug)。 谢谢你看了我的问题并回答了我的问题,非常感谢。
.Net Ping 类,因为它使我可以随时访问接收到的响应缓冲区(与我发现的大多数其他Ping库不同)。 |
![]() |
Stilian · 存储库设置中没有Github页面部分 3 年前 |
![]() |
Kellen · 查看$卷展栏功能列表 3 年前 |
![]() |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 3 年前 |
![]() |
johncssjs · 将数组转换为每个元素的嵌套哈希 3 年前 |
![]() |
solidsnake99 · Rails db:如何绕过验证 3 年前 |