如果 IPv4 存在问题并且我想从 std::istream 中提取 IP 和 ICMP 标头,首先我得到最初的 20 个字节,然后检查 IPv4 标头中提供的标头长度是否大于 20 个字节,以便提取任何选项。下一个字节是 ICMP 数据包。使用 IPv4 标头中携带的标头长度值,我可以看到 IP 标头的预期大小。
但是如何获得 IPv6 标头的确切大小?IPv6 标头中有一个有效负载值,其中包括标头扩展的大小以及 ICMP 等更高级别的数据。我需要知道 IPv6 标头的大小,包括标头扩展但没有更高级别的数据,以便知道 ICMPv6 标头在 std::istream 中的哪个位置开始。
谢谢!