您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 开发文档 > 80211帧的抓取以及分析
1802.11帧的抓取以及分析1.802.11概述IEEE802.11是一个协议簇,主要包含以下规范:1)物理层规范:802.11b,802.11a,802.11g;2)增强型MAC层规范:802.11i,802.11r,802.11h等;3)高层协议规范:802.11f,802.11n,802.11p,802.11s等。802.11中定义了三种物理层规范,分别是:频率跳变扩展频谱(FHSS)PHY规范、直接序列扩展频谱(DSSS)PHY规范和红外线(IR)PHY规范。802.11同802.3一样,主要定义了OSI模型中物理层和数据链路层的相关规范,其中数据链路层又可分为MAC子层和LLC子层,802.11与802.3的LLC子层统一由802.2描述。2.802.11帧结构分析2.1一般帧结构一般802.11MAC帧Framecontrol字段1)控制字段*Protocolversion:表明版本类型,现在所有帧里面这个字段都是0x00。*Type:指明数据帧类型,是管理帧,数据帧还是控制帧。2*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进一步判断帧类型。32.3各种帧类型的结构控制帧:(1)RTS帧(2)CTS帧(3)ACK帧(4)PS-POLL帧管理帧基本结构:数据帧:3.802.11帧的抓取3.1配置wireshark启动monitormode,抓取wifi的数据包,如下图453.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.控制帧:RTS6Version,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帧:7Version,Type和Subtype的d4H,即11010100,后两位00,表明协议版本为0,倒数3、4位01表明这是一个控制帧,前四位1101是subtype,表明这是一个ACK;Framecontrol后8位00H,控制帧的这几位除Pwr.mgt.外必然是0.Pwr.mgt即发送方没有进入节能模式。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,这是一个块确定帧Framecontrol后8位00H,控制帧的这几位除Pwr.mgt.外必然是0.Pwr.mgt即发送方没有进入节能模式。Duration位为9400,低位为94,高位为00,所以持续时间为0094H=148微秒。ReceiverAddress=70f1al496492,接收方的MAC地址。TransmitterAddress=3822d67704d3,发送方的MAC地址,Checksequence=d2ed060f,检测结果为正确。其8余位与BlockACK该种帧有关,BlockAckType=02H,compressedBlock;BlockAckControl=0005H,BlockAckStartingSequenceControl=9320H.管理帧:4.以太网帧格式以太网帧的抓取:9点击Capture,选择以太网,然后点击StartTCP的包:10以太网帧:EthernetII和IEEE802.3的帧格式分别如下:EthernetII帧格式:IEEE802.3一般帧格式11EthernetII和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、源地址字段12源地址字段标识发送帧的工作站。和目前地址字段类似,源地址字段的长度可以是两个或六个字节。只有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字段。
本文标题:80211帧的抓取以及分析
链接地址:https://www.777doc.com/doc-2891886 .html