80211帧的抓取以及分析Word下载.docx
《80211帧的抓取以及分析Word下载.docx》由会员分享,可在线阅读,更多相关《80211帧的抓取以及分析Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
一般802.11MAC帧
Framecontrol字段
1)控制字段
*Protocolversion:
表明版本类型,现在所有帧里面这个字段都是0x00。
*Type:
指明数据帧类型,是管理帧,数据帧还是控制帧。
*Subtype:
指明数据帧的子类型,因为就算是控制帧,控制帧还分RTS帧,CTS帧,ACK帧等等,通过这个域判断出该数据帧的具体类型。
*ToDS/FromDS:
这两个数据帧表明数据包的发送方向,分四种可能情况讨论:
**若数据包ToDS为0,FromDS为0,表明该数据包在网络主机间传输。
**若数据包ToDS为0,FromDS为1,表明该数据帧来自AP。
**若数据包ToDS为1,FromDS为0,表明该数据帧发送往AP。
**若数据包ToDS为1,FromDS为1,表明该数据帧是从AP发送自AP的,也就是说这个是个WDS(WirelessDistributionSystem)数据帧。
*Moreflag:
分片标志,若数据帧被分片了,那么这个标志为1,否则为0。
*Retry:
表明是否是重发的帧,若是为1,不是为0。
*PowerManage:
当网络主机处于省电模式时,该标志为1,否则为0。
*Moredata:
当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0。
*Wep:
加密标志,若为1表示数据内容加密,否则为0。
*Order这个表示用于PCF模式下。
2)Duration/ID(持续时间/标识):
表明该帧和它的确认帧将会占用信道多长时间;
对于帧控制域子类型为:
PowerSave-Poll的帧,该域表示了STA的连接身份(AID,AssociationIndentification)。
3)Address(地址域):
源地址(SA)、目的地址(DA)、传输工作站地址(TA)、接收工作站地址(RA),SA与DA必不可少,后两个只对跨BSS的通信有用,而目的地址可以为单播地址(Unicastaddress)、多播地址(Multicastaddress)、广播地址(Broadcastaddress)。
4)SequenceControl(序列控制域):
由代表MSDU(MACServerDataUnit)或者MMSDU(MACManagementServerDataUnit)的12位序列号(SequenceNumber)和表示MSDU和MMSDU的每一个片段的编号的4位片段号组成(FragmentNumber)。
2.2帧类型
针对帧的不同功能,可将802.11中的MAC帧细分为以下3类:
1)控制帧:
用于竞争期间的握手通信和正向确认、结束非竞争期等;
2)管理帧:
主要用于STA与AP之间协商、关系的控制,如关联、认证、同步等;
3)数据帧:
用于在竞争期和非竞争期传输数据。
FrameControl(帧控制域)中的Type(类型域)和Subtype(子类型域)共同指出帧的类型,当Type的B3B2位为00时,该帧为管理帧;
为01时,该帧为控制帧;
为10时,该帧为数据帧。
而Subtype进一步判断帧类型。
2.3各种帧类型的结构
控制帧:
(1)RTS帧
(2)CTS帧
(3)ACK帧
(4)PS-POLL帧
管理帧基本结构:
数据帧:
3.802.11帧的抓取
3.1配置wireshark
启动monitormode,抓取wifi的数据包,如下图
3.2结果以及分析
1.数据帧:
.
Version,Type和Subtype的08H,即00001000,后两位00,表明协议版本为0,倒数3、4位10表明这是一个数据帧,前四位0000是subtype。
Framecontrol后8位0AH,即00001010。
ToDS=0,FromDS=1,表明该数据帧来自AP。
Morefrag=0,表明这是该帧的最后一段,Retry=1,表明这是重传帧,Pwr.Mgt.=0,表明发送方没有进入节能模式;
Moredata=0表明没有更多的帧,即Nodatabuffered.Protected=0,表明没有加密,Order=0,表明没有严格的顺序要求。
Duration位为d500,低位为00,高位为d5,所以持续时间为00d5H=213微秒。
Address1=0022698ea744,接收方的MAC地址;
Address2=0611b51a0a05,发送发地址,即AP地址;
Address3=00005e00040a,远程远端地址;
Sequence=3032,高位为32,低位为30,即0011001000110010,段号为0,帧号为001100100011B=803D,Checksequence=23093131H,检测结果为正确。
2.控制帧:
RTS
Version,Type和Subtype的b4H,即10110100,后两位00,表明协议版本为0,倒数3、4位01表明这是一个控制帧,前四位1011是subtype,表明这是一个RTS;
Framecontrol后8位00H,控制帧的这几位除Pwr.mgt.外必然是0.Pwr.mgt即发送方没有进入节能模式。
CTS帧
Version,Type和Subtype的C4H,即11000100,后两位00,表明协议版本为0,倒数3、4位01表明这是一个控制帧,前四位1100是subtype,表明这是一个CTS.Framecontrol后8位00H,控制帧的这几位除Pwr.mgt.外必然是0.Pwr.mgt即发送方没有进入节能模式。
Duration位为6f09,低位为6f,高位为09,所以持续时间为096fH=2415微秒。
ReceiverAddress=70f1al496492,接收方的MAC地址;
Checksequence=a1d1f7e5H,检测结果为正确。
ACK帧:
Version,Type和Subtype的d4H,即11010100,后两位00,表明协议版本为0,倒数3、4位01表明这是一个控制帧,前四位1101是subtype,表明这是一个ACK;
Duration位为0000,所以持续时间为0微秒,ACK表明该帧的传送结束,所以持续时间为0,ReceiverAddress=00:
22:
69:
8e:
a7:
44,接收方的MAC地址;
Checksequence=6e24f28cH,检测结果为正确。
BlockACK:
Version,Type和Subtype的94H,即10010100,后两位00,表明协议版本为0,倒数3、4位01表明这是一个控制帧,前四位1001是subtype,表明这是一个BlockAck,这是一个块确定帧
Duration位为9400,低位为94,高位为00,所以持续时间为0094H=148微秒。
ReceiverAddress=70f1al496492,接收方的MAC地址。
TransmitterAddress=3822d67704d3,发送方的MAC地址,Checksequence=d2ed060f,检测结果为正确。
其余位与BlockACK该种帧有关,BlockAckType=02H,compressedBlock;
BlockAckControl=0005H,BlockAckStartingSequenceControl=9320H.
管理帧:
4.以太网帧格式
以太网帧的抓取:
点击Capture,选择以太网,然后点击Start
TCP的包:
以太网帧:
EthernetII和IEEE802.3的帧格式分别如下:
EthernetII帧格式:
IEEE802.3一般帧格式
EthernetII和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节的类型,而后者定义的是2字节的长度;
所幸的是,后者定义的有效长度值与前者定义的有效类型值无一相同,这样就容易区分两种帧格式了。
1、前序字段
前序字段由8个(EthernetII)或7个(IEEE802.3)字节的交替出现的1和0组成,设置该字段的目的是指示帧的开始并便于网络中的所有接收器均能与到达帧同步。
2、帧起始定界符字段
该字段仅在IEEE802.3标准中有效,它可以被看作前序字段的延续。
实际上,该字段的组成方式继续使用前序字段中的格式,这个一个字节的字段的前6个比特位置由交替出现的1和0构成。
该字段的最后两个比特位置是11,这两位中断了同步模式并提醒接收后面跟随的是帧数据。
当控制器将接收帧送入其缓冲器时,前序字段和帧起始定界符字段均被去除。
类似地当控制器发送帧时,它将这两个字段(如果传输的是IEEE802.3帧)或一个前序字段(如果传输的是真正的以太网帧)作为前缀加入帧中。
3、目的地址字段
目的地址字段确定帧的接收者。
两个字节的源地址和目的地址可用于IEEE802.3网络,而6个字节的源地址和目的地址字段既可用于EthernetII网络又可用于IEEE802.3网络。
用户可以选择两字节或六字节的目的地址字段,但对IEEE802.3设备来说,局域网中的所有工作站必须使用同样的地址结构。
目前,几乎所有的802.3网络使用6字节寻址,帧结构中包含两字节字段选项主要是用于使用16比特地址字段的早期的局域网。
4、源地址字段
源地址字段标识发送帧的工作站。
和目前地址字段类似,源地址字段的长度可以是两个或六个字节。
只有IEEE802.3标准支持两字节源地址并要求使用的目的地址。
EthernetII和IEEE802.3标准均支持六个字节的源地址字段。
当使用六个字节的源地址字段时,前三个字节表示由IEEE分配给厂商的地址,将烧录在每一块网络接口卡的ROM中。
而制造商通常为其每一网络接口卡分配后字节。
5、类型字段
两字节的类型字段仅用于EthernetII帧。
该字段用于标识数据字段中包含的高层协议,也就是说,该字段告诉接收设备如何解释数据字段。
在以太网中,多种协议可以在局域网中同时共存,例如:
类型字段取值为十六进制0800的帧将被识别为IP协议帧,而类型字段取值为十六进制8137的帧将被识别为IPX和SPX传输协议帧。
因此,在EthernetII的类型字段中设置相应的十六进制值提供了在局域网中支持多协议传输的机制。
在IEEE802.3标准中类型字段被替换为长度字段,因而EthernetII帧和IEEE802.3帧之间不能兼容。
6、长度字段
7、数据字段
如前所述,数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段:
如果填入该该字段的信息少于46字节,该字段的其余部分也必须进行填充。
数据字段的最大长度为1500字节。
8、校验序列字段
既可用于EthernetII又可用于IEE802.3标准的帧校验序列字段提供了一种错误检测机制,每一个发送器均计算一个包括了地址字段、类型/长度字段和数据字段的循环冗余校验(CRC)码。
发送器于是将计算出的CRC填入四字节的FCS字段。