如何解决为什么我无法通过调用 peekAtFront 方法从 INET 中的数据包中查看 Ipv4Header?
我想从数据包中查看 Ipv4Header,但系统抛出了如下运行时错误:
根据标志,不允许返回不完整的块:0 -- in module (inet::ieee80211::Dcf)
const auto& ipv4header = packet->peekAtFront<Ipv4Header>();
先谢谢你!
解决方法
据我所知,您正在尝试在 链接层 (802.11 Dcf) 获取 Ipv4Header。这是不可能的。没有人保证链路层数据包以 IP 标头开始。如果 MTU 小于实际数据包大小,IP 数据包可以(并且将会)被分段。第一个片段确实会以 IP 标头开头,但后续片段肯定不会。
作为一般经验法则,如果您试图在较低 OSI 级别访问较高 OSI 级别的数据结构,那么您肯定做错了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。