Boost IPv4和IPv6中ICMP的不同行为

Boost IPv4和IPv6中ICMP的不同行为,boost,ipv6,ipv4,icmp,asio,Boost,Ipv6,Ipv4,Icmp,Asio,我正在使用boost asio icmp套接字发送和接收icmp数据包。我的代码基于boost示例: 我在IPv6中也尝试过这样做。我可以发送类似于IPv4示例的ICMP消息(其他校验和计算和不同的ICMP类型),但当我尝试接收回复时,我只接收ICMP头,而没有像示例中那样的IPv6头 我想,使用原始套接字也会给我IPv6头。 对于我的用例,我希望也能收到IPv6头,因为我需要源地址和目标地址(使用具有许多接口的非绑定套接字)。主要问题是: 为什么IPv4和IPv6中存在不同的行为? 操作系统

我正在使用boost asio icmp套接字发送和接收icmp数据包。我的代码基于boost示例:

我在IPv6中也尝试过这样做。我可以发送类似于IPv4示例的ICMP消息(其他校验和计算和不同的ICMP类型),但当我尝试接收回复时,我只接收ICMP头,而没有像示例中那样的IPv6头

我想,使用原始套接字也会给我IPv6头。 对于我的用例,我希望也能收到IPv6头,因为我需要源地址和目标地址(使用具有许多接口的非绑定套接字)。主要问题是:

为什么IPv4和IPv6中存在不同的行为? 操作系统:Ubuntu 16.04.2 内核版本:4.4.0

谢谢你的帮助:)