Omnet++ 为什么我不能通过调用peekAtFront方法从INET中的数据包中窥视IPV4标头?

Omnet++ 为什么我不能通过调用peekAtFront方法从INET中的数据包中窥视IPV4标头?,omnet++,inet,Omnet++,Inet,我想从数据包中查看IPV4标头,但系统抛出了一个运行时错误,如下所示: 根据模块(inet::ieee80211::Dcf)中的标志0--不允许返回不完整的块 导致错误的代码行是: const auto& ipv4header = packet->peekAtFront<Ipv4Header>(); const auto&ipv4header=packet->peekAtFront(); 提前谢谢你 据我所知,您正试图在链路层(802.11 Dcf)获取IPV4头文

我想从数据包中查看IPV4标头,但系统抛出了一个运行时错误,如下所示:

根据模块(inet::ieee80211::Dcf)中的标志0--不允许返回不完整的块

导致错误的代码行是:

const auto& ipv4header = packet->peekAtFront<Ipv4Header>();
const auto&ipv4header=packet->peekAtFront();

提前谢谢你

据我所知,您正试图在链路层(802.11 Dcf)获取IPV4头文件。这是不可能的。从来没有人保证链路层数据包以IP报头开始。如果MTU小于实际数据包大小,则IP数据包可能(并且将)被分段。第一个片段确实将以IP头开始,但随后的片段肯定不会


一般来说,如果您试图在较低的OSI级别访问较高的OSI级别数据结构,您肯定是做错了

您可以编辑您的问题并将代码写入使用的模块吗?