发送和接收802.11标准帧,在发送802.11帧之前,网络驱动程序在802.11帧之前添加radiotap报头;一旦网卡接收到无线帧,网络驱动程序就会通知MAC层这个帧包含了radiotap报头,当无线网络接口处monitor模式时,内核会生成一个名为RadioTap的数据添加在IEEE802.11数据帧(MPDU)的前面,该Radiotap记录了热点的信息,如信号强度、MPDU帧信息等信息.意思就是在正常的IEEE802.11数据帧前面,核又额外给你加了一块RadioTap类型的数据,这块数据记录了一些无线网的属性.
version
pad
len
notdecoded
present
Present(32bits)
数据段掩码,小端字节序
位置对应
TSFT
Flags
Rate
Channel
FHSS
dBm_AntSignal
dBm_AntNoise
Lock_Quality
TX_Attenuation
dB_TX_Attenuation
dBm_TX_Power
Antenna
dB_AntSignal
dB_AntNoise
RXFlags
TXFlags
b17
b18
ChannelPlus
MCS
结构:8bitsknown,8bitsflags,8bitsmcs
变量名:MCS_index
变量名:knownMCS
flags
变量名:HT_format
变量名:Ness_LSB
变量名:FEC_type
变量名:MCS_bandwidth
变量名:guard_interval
变量名:STBC_stream
A_MPDU
VHT
timestamp
HE
结构:16bitsdata1,data2,data3,data4,data5,data6
该字段的存在指示使用HEPHY接收或发送了该帧,此字段包含的数据大部分来自所有HE传输所共有的HE-SIG-A部分,但是某些数据也可能会被计算(例如,当包含在HE_TRIG类型帧的传输时,某些参数不包含在HE-SIG-A,但由触发帧确定).
但是,对于HE_MU格式的PPDU,它包含适用于PSDU编码的数据,如果需要,还包含HE-MU字段中包含的有关MU传输的更详细的信息,在许多情况下,不需要该字段,因为有关已捕获的单个户的数据已在此处进行了编码.
对于MU传输,在这种情况下,HE-MU-other-user字段也可能出现一次或多次,以捕获无法捕获其数据的额外用户.如果为一个以上的用户捕获了数据,则必须将多个数据包写入radiotap获中
变量名:he_data1
变量名:he_data2
变量名:he_data3
变量名:he_data4
变量名:he_data5
变量名:he_data6
HE_MU
结构
变量名:RU_channel1,RU_channel2
Channel1/Channel2使用情况和RU字节映射
数组中的RU八位字节(“RU_channel1”和“RU_channel2”)表示表28-26中的RU分配索引(“RU分配子字段”).
Channel1的tones取决于known字段
如果known=0,则未报告任何数据(例如,硬件不支持,或SIG-B之一上的CRC错误)
如果known=1,则根据下表,带宽来自“HE-SIG-A中的带宽字段的带宽”标志2字段
RUidx|bw=0(20MHz)|bw=1(40MHz)|bw=2(80MHz)|bw=3(160MHz)
-------------|-------------|-------------|-------------|--------------------RU[0]|-122:122|-244:-3|-500:-259|-1012:-771RU[1]|/|/|17:258|-495:-254RU[2]|/|/|/|12:253RU[3]|/|/|/|529:770Center26-tone|/|/|-16:-4,4:16|-528:-516,-508:-496
Channel2的tones取决于known字段
-------------|-------------|-------------|-------------|----------------RU[0]|/|3:244|-258:-17|-770:529RU[1]|/|/|259:500|-253:-12RU[2]|/|/|/|254:495RU[3]|/|/|/|771:1012Center26-tone|/|/|/|496:508,516:528
变量名:hemu_flags1,hemu_flags2
Flags1
Flags2
HE_MU_other_user
结构:
此字段包含来自SIG-B的per-user字段的数据,用于可能尚未捕获其数据的额外用户.通常不需要此字段;如果捕获了HE_MUPPDU,则通常仅捕获许多用户之一,在这种情况下,所有数据可以在HE和HE-MU字段中进行编码.如果可以捕获更多的SIG-B,则此字段允许在radiotap中捕获数据数据.对于已经捕获到数据的用户,可以但不必具有此字段.请注意,MCS/DCM/etc.捕数据的配置已经在常规HE字段中进行了编码,对于SIG-B,它是HE-MU字段的一部分.
变量名:hemuou_per_user_1
变量名:hemuou_per_user_2
变量名:hemuou_per_user_position
变量名:hemuou_per_user_known
zero_length_psdu
0-length-PSDU
结构:8bitszero_length_psdu
此字段的存在指示此PPDU中没有捕获PSDU,也没有捕获到PSDU,只有PHY数据有效,并且radiotap头后面没有802.11头.
类型值含义
L_SIG
结构:16bitsdata1,data2
变量名:lsig_data1
变量名:lsig_length
变量名:lsig_rate
b28
RadiotapNS
VendorNS
Ext
当present中未设置为1时,则忽略对应数据的值
例:
>>>[vforvinRadioTap(present=1).present.names]['TSFT','Flags','Rate','Channel',...'VendorNS','Ext']>>>a=RadioTap(Rate=20)>>>a.show()###[RadioTapdummy]###version=0pad=0len=Nonepresent=Nonenotdecoded=''>>>a.present='Rate+HE'>>>a.show()###[RadioTapdummy]###version=0pad=0len=Nonepresent=Rate+HERate=20he_data1=0he_data2=0he_data3=0he_data4=0he_data5=0he_data6=0notdecoded=''12.2.Dot11:scapy.layers.dot11.Dot11无线局域网通用的标准
变量名:proto
变量名:type
变量名:subtype
有许多不同种类的管理、控制和数据帧.因此需要4位的子类型字段来区分它们
变量名:FCfield
变量名:ID
变量名:SC
变量名:addr1,add2,add3,add4
SA(SourceAddress):源点地址
TA(TransmitterAddress):发送端
RA(ReceiverAddress):接收端
DA(DestinationAddress):终点地址
BSSID(BasicServiceSetIDentifier):基站集ID
信标帧是基于IEEE802.11的WLAN中的管理帧之一.它包含有关网络的所有信息.信标帧是定期发送的,它们用于宣告无线局域网的存在并同步服务集的成员.