[英]How to find out encapsulated protocol inside IEEE802.11 Frame?
我正在使用带有原始C
Linux内部的libpcap
开发IEEE802.11
帧解析器程序。 我可以轻松解析RadioTap
和IEEE802.11
标头,但找不到封装在IEEE802.11
MPDU中的协议名称。 不幸的是, IEEE802.11
标头中没有任何字段指示封装的协议(例如Ethernet
标头中的protocol
字段)。
有什么办法吗?
对于封装数据的802.11
帧,标头类型/子类型将在0x20
和0x2F
之间(尽管帧通常是0x20
(数据)或0x28
(QoS数据))。 将有一个5字节的SNAP标头,其中包含有效负载的类型(如本答案中所述 )。 如果OID(SNAP标头的前三个字节)为0x000000
,则接下来的两个字节是以太网类型。
对于EAPoL( 源 ),以太网类型将为0x888e
。 这是您要检查以了解封装协议的字段(IP 0x0806
0x0800
,ARP 0x0806
等)。
这是有关以太网类型以及如何使用它们过滤某些协议的出色的思科文档: http : //www.cisco.com/c/en/us/td/docs/ios/12_2/ibm/vol1/command/参考/fibm_r1/br1fethc.pdf 。
这是有关无线嗅探器跟踪的出色思科文档,其中包括对802.11
类型/子类型字段的描述: https : //supportforums.cisco.com/document/52391/80211-frames-starter-guide-learn-wireless-sniffer-痕迹 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.