使用boost发送icmp数据包会清除校验和字节

时间:2017-03-30 17:01:19

标签: c++ boost ping icmp

当使用Boost Asio发送ICMPv6回应请求时,每当我执行send_to或async_send_to调用时,某些层似乎正在清除校验和。使用命令行ping实用程序时,没有问题。通过任何调用,当我在Wireshark中查看传出数据包时,会显示所有字段:类型,代码,标识符,序列和有效负载。另外,在调用之前和之后,缓冲区中都有正确的字节。看看这里的图片:

Wireshark capture icmpv6

这是重现的代码。这是Boost 1.62,VS2015。

# Calculate TokenSize based on groups
$TokenSize = 1200 + (40 * $LargeGroups.Count) + (8 * $SmallGroups.Count)

# Factory in SIDHistory principals
if($Computer.SIDHistory){
    $TokenSize += 40 * $Computer.SIDHistory.Count 
}

目标未响应,因为校验和无效。是什么导致这个/我该如何解决?

1 个答案:

答案 0 :(得分:0)

禁用McAfee LiveSafe防火墙允许icmpv6 ping工作。似乎没有直接解决此问题的设置。