80211抓包分析
8021x抓包详解
1.当用户有上网需求时打开802.1X客户端程序,输入用户名和口令,发起连接请求。
此时客户端程序将发出请求认证的报文给交换机,启动一次认证过程。
如下:Frame 90 (64 bytes on wire, 64 bytes captured)Arrival Time: Nov 27, 2006 16:27:33.446030000Time delta from previous packet: 3.105345000 secondsTime since reference or first frame: 5.082965000 secondsFrame Number: 90Packet Length: 64 bytesCapture Length: 64 bytesEthernet II, Src: 00:e0:4c:d7:65:cd, Dst: 01:80:c2:00:00:03Destination: 01:80:c2:00:00:03 (Spanning-tree-(for-bridges)_03)Source: 00:e0:4c:d7:65:cd (RealtekS_d7:65:cd)Type: 802.1X Authentication (0x888e)Trailer: A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5...Frame check sequence: 0xa5a5a5a5 (incorrect, should be 0xcc6d5b40)802.1x AuthenticationVersion: 1Type: Start (1)Length: 02.交换机在收到请求认证的数据帧后,将发出一个EAP-Request/Identitybaowe请求帧要求客户端程序发送用户输入的用户名。
Frame 91 (64 bytes on wire, 64 bytes captured)Arrival Time: Nov 27, 2006 16:27:33.447236000Time delta from previous packet: 0.001206000 secondsTime since reference or first frame: 5.084171000 secondsFrame Number: 91Packet Length: 64 bytesCapture Length: 64 bytesEthernet II, Src: 00:03:0f:01:3a:5a, Dst: 00:e0:4c:d7:65:cdDestination: 00:e0:4c:d7:65:cd (RealtekS_d7:65:cd)Source: 00:03:0f:01:3a:5a (DigitalC_01:3a:5a)Type: 802.1X Authentication (0x888e)Trailer: A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5...Frame check sequence: 0xa5a5a5a5 (incorrect, should be 0x7d263869)802.1x AuthenticationVersion: 1Type: EAP Packet (0)Length: 5Extensible Authentication ProtocolCode: Request (1)Id: 1Length: 5Type: Identity [RFC3748] (1)3.客户端程序响应交换机的请求,将包含用户名信息的一个EAP-Response/Identity送给交换机,交换机将客户端送来的数据帧经过封包处理后生成RADIUS Access-Request报文送给认证服务器进行处理。
80211帧格式解析
802.11帧格式解析2012-02-13 0个评论收藏我要投稿1 MAC802.11数据帧格式首先要说明的是mac802.11的帧格式很特别,它与TCP/IP这一类协议不同,它的长度是可变的。
不同功能的数据帧长度会不一样。
这一特性说明mac802.11数据帧显得更加灵活,然而,也会更加复杂。
mac 802.11的数据帧长度不定主要是由于以下几点决定的1.1 mac地址数目不定,根据帧类型不同,mac 802.11的mac地址数会不一样。
比如说 ACK帧仅有一个mac地址,而数据帧有3个mac地址,在WDS模式(下面要提到)下,帧头竟然有4个mac地址。
1.2 802.11的管理帧所携带的信息长度不定,在管理帧中,不仅仅只有一些类似于mac地址,分片标志之类的这些信息,而且另外还会包括一些其它的信息,这些信息有关于安全设置的,有关于物理通信的,比如说我们的SSID名称就是通过管理帧获得的。
AP会根据不同的情况发送包含有不同信息的管理帧。
管理帧的细节问题我们会在后面的文章中讨论,这里暂时跳过。
1.3 加密(wep,wpa等)信息,QOS(quality of service)信息,若有加密的数据帧格式和没有加密的数据帧格式还不一样,加密数据帧格式还多了个加密头,用于解密用。
然则QOS也是同样道理。
竟然mac 802.11数据帧那么复杂,我们就先从通用的格式开始说吧帧控制(2 bytes):用于指示数据帧的类型,是否分片等等信息,说白了,这个字段就是记录了mac 802.11的属性。
*Protocol version:表明版本类型,现在所有帧里面这个字段都是0x00*Type:指明数据帧类型,是管理帧,数据帧还是控制帧*Subtype:指明数据帧的子类型,因为就算是控制帧,控制帧还分RTS帧,CTS 帧,ACK帧等等,通过这个域判断出该数据帧的具体类型*To DS/From DS:这两个数据帧表明数据包的发送方向,分四种可能情况讨论**若数据包To DS为0,From DS为0,表明该数据包在网络主机间传输**若数据包To DS为0,From DS为1,表明该数据帧来自AP**若数据包To DS为1,From DS为0,表明该数据帧发送往AP**若数据包To DS为1,From DS为1,表明该数据帧是从AP发送自AP的,也就是说这个是个WDS(Wireless Distribution System)数据帧,至于什么是WDS,可以参考下这里的介绍 #传送门*Moreflag:分片标志,若数据帧被分片了,那么这个标志为1,否则为0*Retry:表明是否是重发的帧,若是为1,不是为0*PowerManage:当网络主机处于省电模式时,该标志为1,否则为0.*Moredata:当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0*Wep:加密标志,若为1表示数据内容加密,否则为0*Order 这个表示用于PCF模式下,这里不予讨论生存周期/Associate ID (2 bytes):先前不是讲过虚拟载波监听的一个机制么,他的Network Allocation Vector (NAV)就存在这里,这里叫duration,即生存周期。
mac80211分析报告
mac80211源码分析1.概述2.体系结构3.代码结构4.数据结构5.主要流程6.切换点7.主要函数8.速率控制1.1概述•mac80211:是一个Linux内核子系统,是驱动开发者可用于为SoftMAC无线设备写驱动的框架。
mac80211在内核空间实现STA模式,在用户空间实现AP模式(hostapd)。
•cfg80211:用于对无线设备进行配置管理,与FullMAC,mac80211和nl80211一起工作。
•nl80211:用于对无线设备进行配置管理,它是一个基本Netlink的用户态协议。
•MLME:即MAC (Media Access Control) Layer Management Entity,它管理物理层MAC状态机。
•SoftMAC:其MLME由软件实现,mac80211为SoftMAC实现提供了一个API。
即:SoftMAC设备允许对硬件执行更好地控制,允许用软件实现对802.11的帧管理,包括解析和产生802.11无线帧。
目前大多数802.11设备为SoftMAC,而FullMAC设备较少。
•FullMAC:其MLME由硬件管理,当写FullMAC无线驱动时,不需要使用mac80211。
•wpa_supplicant:是用户空间一个应用程序,主要发起MLME命令,然后处理相关结果。
•hostpad:是用户空间一个应用程序,主要实现station接入认证管理。
1.2体系结构HOSTAPD:WPAD:图2-1 系统框架1.3代码结构(/net/mac80211/)•ieee80211_i.h(主要数据结构)•main.c(主函数入口)•iface.c(虚拟接口处理)•key.c,key.h(密钥管理)•sta_info.c,sta_info.h(用户管理)•pm.c(功率管理)•rate.c,rate.h(速率控制函数)•rc80211*(速率控制算法)•rx.c(帧接收路径代码)•tx.c(帧发送路径代码)•scan.c(软件扫描代码)•mlme.c(station/managed模式MLME)•ibss.c(IBSS MLME)•cfg.c,cfg.h,wext.c(配置入口代码)•aes*,tkip*,wep*,michael*,wpa*(WPA/RSN/WEP代码)•wme.c,wme.h(QoS代码)•util.c(公共函数)1.4数据结构ieee80211_local/ieee80211_hw•每个数据结构代表一个无线设备(ieee80211_hw嵌入到ieee80211_local)•ieee80211_hw是ieee80211_local在驱动中的可见部分•包含无线设备的所有操作信息sta_info/ieee80211_sta•代表每一个station•可能是mesh,IBSS,AP,WDS•ieee80211_sta是驱动可见部分ieee80211_conf•硬件配置•当前信道是最重要的字段•硬件特殊参数ieee80211_bss_conf•BSS配置•多BSSes类型(IBSS/AP/managed)•包含比如基础速率位图•per BSS parameters in case hardware supports creating/associating with multiple B SSesieee80211_key/ieee80211_key_conf•代表加密/解密密钥•ieee80211_key_conf提供给驱动用于硬件加速•ieee80211_key包含book-keeping和软件解密状态ieee80211_tx_info•大部分复杂数据结构•skb内部控制缓冲区(cb)•经历三个阶段:1、由mac80211初始化;2、由驱动使用;3、由发送状态通告使用ieee80211_rx_status•包含接收帧状态•驱动通过接收帧传给mac80211ieee80211_sub_if_data/ieee80211_vif•包含每个虚拟接口信息•ieee80211_vif is passed to driver for those virtual interfaces the driver knows about (no monitor,VLAN)•包含的sub-structures取决于模式1.5主要流程配置•所有发起来自用户空间(wext或者nl80211)•managed和IBSS模式:触发状态机(基于workqueue)•有些操作或多或少直接通过驱动传递(比如信道设置)接收路径•ieee80211_tasklet_handler,响应中断,在下半部tasklet处理数据,•通过函数ieee80211_rx()接收帧•调用ieee80211_rx_monitor()拷贝帧传递给所有监听接口•调用invoke_rx_handlers()处理帧•如果是数据帧,转换成802.3帧格式,传递给上层协议栈ieee80211_deliver_skb( rx.c中) netif_receive_skb上送网络。
ieee802.11无线局域网协议分析系统的分析与实现
——一些蔓盔堂堡圭兰堡垒壅AbstractThestandardsofWLAN(WirelessLocalArea/Network)hayedevelopedmoreperfectthrougheverylargemanufactureandexpert’seffortsinrecentyears.WLANhasgotmoreandmoreextensiveapplicationsinthewholeworldandisplayinganmoreandmoreimportantroleinmanyfields.~feanwhile.theusersandadministratorsoftheWLANsallputforwardhigherandhigherrequesttothesecurityofWLAN,andexpecttoutilizemoreperfectWU州protocolsanalysissystemtocarryonreal—timecontrolandmanagementtoWLAN.Atpresent.thereisnoripeWLANprotocolsanalysissystemtoputonmarketathome.So.itisgreatlymeannigfultoresearchthe孔ANstandardsanddevelopWLANprotoc01sanalysissystemwithindependentintellectualpropertyright.ThisthesisputsuptherealWLANofinfrastructuremodebasedonIEEE802.11.AndthroughusingthewirelessLANforalongtime,IhavecarriedonfurtherjnvestjgationonmainrespectsofWLAN,andutilizedtechnologystudiedindependentlytosolvesomekeyproblemsofadministratingandcontrolIingWLAN.ThisthesisintroducesthedifferentstandardsandthecomponentsofWLANatfirst,andthennarratesIEEE802.1lgff4Cprotocolsinservice、姒Caccessmodes(DCFandPCF)、scanningdetail.includingMAC&svnchronization、security、connection、powermanagement,andetc.ItalsoanalysesvariouskindsofMACframestructureofIEEE802.iiwirelessLANinparticular.ThethesisprovidesframeworkchartofnetworkprotocolsanalysisresearchonhowtocaptureIEEE802·IIWLANsystem,andthenmakesadeepfordifferentkindsofDackets.andthengivesdifferentmethodsandgivewirelesseards.Iresearchthemethodsoffilteringpackets2——一——些查查兰堡圭兰竺丝兰actualflowchartofprogramming.Inthedecodingmodule,Igivetheflowchartofthetopmanagementfunctionofdecodingmoduleandthekeydatastructures.Intheend,IgivethedesignmethodsofChinesesysteminterfaceinLinux,andprovidethegraphicinterfacethatthesystemoperates.ThesystemsuccessfullycapturesvariouskindsofframesinWLANbasedonIEEE802.11.andcandecodeandreproducetheIEEE802.11MACprotocollayer、thethirdprotocollayerandthehigherprotocollayerofa11packets,andcanalsofilterandcountvariouskindsofframesinrealtime.ThissystemprovidesausefultoolformonitoringandadministratingWLAN.Atthesametime,itcanalsoprovidetechonologystorageforsecuritytechnologyofWLAN.KeyWords:WLAN,IEEE802.1l,capturingpackets。
抓取11ax 数据包的方法
抓取11ax 数据包的方法
随着Wi-Fi6(802.11ax)技术的广泛应用,越来越多的企业和个
人开始关注如何抓取Wi-Fi 6数据包进行网络分析和优化。
以下是抓取Wi-Fi 6数据包的一些方法:
1. 使用支持80
2.11ax的无线网卡:要抓取Wi-Fi 6数据包,首先需要使用支持802.11ax标准的无线网卡。
常见的支持802.11ax的无线网卡有Intel AX200、Killer AX1650、Broadcom BCM43684等。
2. 使用支持802.11ax的网络分析软件:目前市面上的网络分析软件对于802.11ax的支持还比较有限,因此需要使用支持802.11ax 的网络分析软件。
常见的支持802.11ax的网络分析软件有Wireshark、Omnipeek、AirMagnet等。
3. 选择正确的频道和带宽:在抓取数据包之前,需要选择正确
的频道和带宽以确保能够抓取到足够多的数据包。
对于802.11ax网络,建议选择160MHz的带宽,以获得更高的数据传输速率。
4. 通过AP抓取数据包:如果无法直接连接到Wi-Fi 6网络,可以尝试通过连接到AP来抓取数据包。
在连接到AP后,使用支持802.11ax的无线网卡和网络分析软件进行数据包抓取。
5. 使用专业的无线测试工具:除了常见的网络分析软件之外,
还可以使用专业的无线测试工具进行数据包抓取。
常见的无线测试工具有AirCheck G2、Ekahau Sidekick等。
通过以上方法,可以成功地抓取Wi-Fi 6数据包进行网络分析和优化,提高Wi-Fi 6网络的性能和稳定性。
802.1x抓包详解
802.1x抓包详解1.当用户有上网需求时打开802.1X客户端程序,输入用户名和口令,发起连接请求。
此时客户端程序将发出请求认证的报文给交换机,启动一次认证过程。
如下:Frame 90 (64 bytes on wire, 64 bytes captured)Arrival Time: Nov 27, 2006 16:27:33.446030000Time delta from previous packet: 3.105345000 secondsTime since reference or first frame: 5.082965000 secondsFrame Number: 90Packet Length: 64 bytesCapture Length: 64 bytesEthernet II, Src: 00:e0:4c:d7:65:cd, Dst: 01:80:c2:00:00:03Destination: 01:80:c2:00:00:03 (Spanning-tree-(for-bridges)_03)Source: 00:e0:4c:d7:65:cd (RealtekS_d7:65:cd)Type: 802.1X Authentication (0x888e)Trailer: A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5...Frame check sequence: 0xa5a5a5a5 (incorrect, should be 0xcc6d5b40)802.1x AuthenticationVersion: 1Type: Start (1)Length: 02.交换机在收到请求认证的数据帧后,将发出一个EAP-Request/Identitybaowe请求帧要求客户端程序发送用户输入的用户名。
Frame 91 (64 bytes on wire, 64 bytes captured)Arrival Time: Nov 27, 2006 16:27:33.447236000Time delta from previous packet: 0.001206000 secondsTime since reference or first frame: 5.084171000 secondsFrame Number: 91Packet Length: 64 bytesCapture Length: 64 bytesEthernet II, Src: 00:03:0f:01:3a:5a, Dst: 00:e0:4c:d7:65:cdDestination: 00:e0:4c:d7:65:cd (RealtekS_d7:65:cd)Source: 00:03:0f:01:3a:5a (DigitalC_01:3a:5a)Type: 802.1X Authentication (0x888e)Trailer: A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5...Frame check sequence: 0xa5a5a5a5 (incorrect, should be 0x7d263869)802.1x AuthenticationVersion: 1Type: EAP Packet (0)Length: 5Extensible Authentication ProtocolCode: Request (1)Id: 1Length: 5Type: Identity [RFC3748] (1)3.客户端程序响应交换机的请求,将包含用户名信息的一个EAP-Response/Identity送给交换机,交换机将客户端送来的数据帧经过封包处理后生成RADIUS Access-Request报文送给认证服务器进行处理。
利用OmniPeek进行空口抓包以及802.11报文分析
利用OmniPeek进行空口抓包以及802.11报文分析omnipeek是一款不错的网络报文扫描软件,他不仅可以扫描有线网络下的报文信息,还可以针对无线网卡进行监控和扫描。
通过该软件我们就可以更清晰更快捷的定位无线网络故障,根据扫描结果调整自己无线设备的位置和参数信息。
一、OmniPeek能做什么和其他sniffer工具一样OmniPeek可以针对自己网卡接收和发送的每个报文进行分析和保存,另外还可以针对一些广播报文进行分析,结合各种过滤规则可以让我们更清楚的了解当前网络中存在的问题。
当然和其他sniffer工具不同的是OmniPeek可以针对无线网卡进行监控,通过对无线报文的分析了解无线网络的运行状况,让用户可以清楚的知道无线网络使用的频段,信号强弱,SSID信息等内容。
二、安装OmniPeek软件第一步:下载后运行主程序将进行自解压操作,我们指定一个路径点“unzip”解压按钮即可。
第二步:到解压缩目录中找到可执行安装程序,运行后选择第一行的install OmniPe ek。
第三步:出现OmniPeek安装向导,我们点“NEXT”按钮继续操作。
第四步:经过注册步骤后同意安装许可协议。
第五步:在安装过程中会要求在本机安装.net framework 2.0程序,我们点YES即可自动安装。
第六步:软件会自动将.net framework 2.0安装到本地硬盘,大概需要几分钟的时间。
第七步:顺利安装.NET Framework 2.0后点完成按钮返回到OmniPeek安装向导。
第八步:选择安装类型,一般为了更好的分析网络我们选择“Complete”完全安装,点“NEXT”按钮继续。
第九步:接下来是选择安装的语言,只有英文和日文两种,对于我们大多数用户来说选择英文界面即可。
第十步:同样除了.NET Framework 2.0程序外我们还需要在本机安装Microsoft Visual C++ 2005程序,点确定开始安装。
802帧的抓取以及分析
802帧的抓取以及分析802.11帧是在无线网络中传输数据的基本单位,它包含了无线通信中的重要信息。
在进行802.11帧的抓取和分析时,我们可以深入了解无线网络的工作原理,探索网络中的问题和优化点。
本文将从802.11帧的基本结构开始介绍,然后讨论如何进行802.11帧的抓取和分析,最后对一些常见的问题进行分析与解决。
抓取802.11帧的四个步骤是:获取网卡并设置为监听模式、设置过滤器、开始抓取、分析捕获的数据。
首先,我们需要确保所使用的无线网卡支持监听模式,并将网卡设置为监听模式。
这样网卡就可以接收到周围的无线帧。
然后,我们可以设置过滤器,以便只捕获特定的帧类型或源地址。
接下来,我们可以开始抓取帧数据。
可以使用第三方工具,如Wireshark,来进行抓包。
最后,我们可以使用分析工具对捕获的数据进行解析和处理,以获取所需的信息。
在802.11帧的分析中,我们可以关注以下几个方面:信道利用率、数据速率、传输速率和错误检测。
首先,信道利用率是指信道在一段时间内的利用情况。
通过分析控制帧和数据帧的比例,我们可以了解到无线网络是否过载或信道分配是否合理。
其次,数据速率是指数据帧的传输速率。
通过分析数据帧的速率,我们可以了解网络中的传输质量和性能瓶颈。
传输速率是指数据帧的实际传输速率,它可能与数据速率不同。
通过分析数据速率和传输速率的差异,我们可以判断网络中可能存在的干扰或距离问题。
最后,错误检测是指帧的错误校验。
通过分析错误检测字段,我们可以了解到网络中是否存在数据传输错误的问题。
在分析802.11帧时,还需要注意一些常见的问题。
例如,隐藏节点问题是指当两个节点之间存在一个或多个节点时,无法进行直接通信。
通过分析帧字段,我们可以了解到隐藏节点问题是否存在。
另一个问题是干扰问题,即其他无线设备可能干扰到无线网络的信号。
通过分析帧字段以及信道利用率,我们可以判断是否存在干扰问题。
综上所述,802.11帧的抓取和分析是了解无线网络性能和瓶颈的重要方法。
精选抓包分析
802.11抓包分析1.实验目的分析802.11协议,了解802.11的帧格式2.实验环境及工具操作系统:ubuntu实验工具:WireShark3.实验原理(1)802.11MAC层数据帧格式:Version:表明版本类型,现在所有帧里面这个字段都是0Type:指明数据帧类型,是管理帧,数据帧还是控制帧,00表示管理帧,01表示控制帧,10表示数据帧Subtype:指明帧的子类型,Data=0000,Data+CF-ACK=0001,Data+CF-Poll=0010,Data+CF-ACK+CF-Poll=0011,Nulldata=0100,CF-ACK=0101,CF-Poll=0110,Data+CF-ACK+CF-Poll=0111,QoSData=1000,QosData+CF-ACK=1001,QoSData+CF-Poll=1010,QoSData+CF-ACK+CF-Poll=1011,QoSNull=1100,QoSCF-ACK=1101,QoSCF-Poll=1110,QoSData+CF-ACK+CF-Poll=1111ToDS/FromDS:这两个数据帧表明数据包的发送方向,分四种情况:若数据包ToDS为0,FromDS为0,表明该数据包在网络主机间传输若数据包ToDS为0,FromDS为1,表明该数据帧来自AP若数据包ToDS为1,FromDS为0,表明该数据帧发送往AP若数据包ToDS为1,FromDS为1,表明该数据帧是从AP发送往APMoreflag.:置1表明后面还有更多段Retry:置1表明这个以前发送一帧的重传Pwrmgt.:置1表明发送发进入节能模式Moredata:置1表明发送发还有更多的帧需要发送给接收方,当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0Protected:置1表明该帧的帧体已经被加密Order:置1告诉接收方高层希望严格按照顺序来处理帧序列Duration:通告本帧和其确认帧将会占用信道多长时间Address1:发送方地址Address2:接收地址Address3:远程端点Sequence:帧的编号Data:有效载荷,长度可达2312字节CheckSequence:CRC校验码(2)802.11控制帧,每种控制帧的帧格式不一样,以RTS帧为例说明Version:表明版本类型,现在所有帧里面这个字段都是0Type:指明数据帧类型,是管理帧,数据帧还是控制帧,00表示管理帧,01表示控制帧,10表示数据帧Subtype:指明数据帧的子类型,PowerSave(PS)-Poll(省电轮询)=1010,RTS=1011,CTS=1100,ACK=1101,CF-End(无竞争周期结束)=1110,CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认)=1111,BlockACK=1001,控制帧的ToDS至Order除Pwr.mgt.外必然为0ReceiverAddress:接收方地址TransmitterAddress:发送发地址,CTS和ACK没有该字段Checksequence:校验码(3)管理帧,Version:表明版本类型,现在所有帧里面这个字段都是0Type:指明数据帧类型,是管理帧,数据帧还是控制帧,00表示管理帧,01表示控制帧,10表示数据帧Subtype:指明数据帧的子类型,AssociationRequest(关联请求)=0000,AssociationResponse(关联响应)=0001,ReassociationRequest(重关联请求)=0010,ReassociationResponse(重关联响应)=0011,ProbeRequest(探测请求)=0100,ProbeResponse(探测响应)=0101,Beacon(信标帧)=1000,ATIM(通知传输指示信息)=1001,Disassociation(解除关联)=1010,Authentication(身份验证)=1011,Deauthentication(解除身份验证)=1100管理帧的ToDS与FromDS均为0,其余FrameControl字段意义与数据帧一致DestinationAddress:目的地址SourceAddress:源地址BSSID:基本服务集ID,用于过滤收到的MAC帧(在基础型网络里为工作站所关联的AP的MAC 地址)Sequence:帧序列号AddressChecksequence:校验码4.实验步骤1.配置wireshark,启动monitormode,抓取wifi的数据包,如下图2.分析抓取到的wifi数据包5.实验结果及分析1.数据帧(1)数据帧Version,Type和Subtype的08H,即00001000,后两位00,表明协议版本为0,倒数3、4位10表明这是一个数据帧,前四位0000是subtype。
omnipeek无线空口抓包分析.
目录1. 目的 (2)2.认证方式 (2)1.WEB用户接入流程 (2)2. PEAP认证流程 (4)3. WEB认证抓包分析 (5)1.关联过程 (5)2.DHCP地址分配过程 (5)3.Portal推出以及WEB认证 (6)1.强制Portal (6)2.认证报文 (6)3下线报文 (7)4.PEAP认证抓包分析 (7)1. 用户关联 (7)2. 认证过程 (7)5.抓包建议 (9)1.过滤 (9)1) 抓包前的过滤 (9)2) 抓包后的过滤 (9)2.Omnipeek使用问题 (9)1.目的802.11协议工作在物理层和数据链路层,为STA和AP之间建立数据连接。
通过使用omnipeek来进行空口抓包能抓取到STA和AP之间802.11报文交互情况,快速的进行故障定位和分析。
本次主要是完成了WEB认证的抓包和PEAP认证的抓包,将两种认证方式的流程中STA 与AP之间数据交互信息进行了抓取分析。
2.认证方式WLAN现网主要的认证方式有1)WEB认证通过强制Portal的方式将用户的http请求重定向到Portal服务器,通过Portal页面上完成认证过程。
2)PEAP(Protected EAP)是EAP认证方法的一种实现方式,网络侧通过用户名/密码对终端进行认证,终端侧通过服务器证书对网络侧进行认证。
用户首次使用PEAP认证时,需输入用户名和密码,后续接入认证无需用户任何手工操作,由终端自动完成。
1.WEB用户接入流程2.PEAP认证流程3.W EB认证抓包分析1.关联过程一个完整的关联过程包括Probe request(探测请求)、Probe response(探测响应)、Authentication(身份验证)、Association request(关联请求)、Association response(关联响应)。
图1、关联过程1)Probe request和Probe response。
8021x抓包详解
8021x抓包详解.txt2008太不正常了,一切都不正常!在这个关键时刻,中国男足挺身而出,向全世界证明:中国男足还是正常的!1.当用户有上网需求时打开802.1X客户端程序,输入用户名和口令,发起连接请求。
此时客户端程序将发出请求认证的报文给交换机,启动一次认证过程。
如下:Frame 90 (64 bytes on wire, 64 bytes captured)Arrival Time: Nov 27, 2006 16:27:33.446030000Time delta from previous packet: 3.105345000 secondsTime since reference or first frame: 5.082965000 secondsFrame Number: 90Packet Length: 64 bytesCapture Length: 64 bytesEthernet II, Src: 00:e0:4c:d7:65:cd, Dst: 01:80:c2:00:00:03Destination: 01:80:c2:00:00:03 (Spanning-tree-(for-bridges)_03)Source: 00:e0:4c:d7:65:cd (RealtekS_d7:65:cd)Type: 802.1X Authentication (0x888e)Trailer: A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5...Frame check sequence: 0xa5a5a5a5 (incorrect, should be 0xcc6d5b40)802.1x AuthenticationVersion: 1Type: Start (1)Length: 02.交换机在收到请求认证的数据帧后,将发出一个EAP-Request/Identitybaowe请求帧要求客户端程序发送用户输入的用户名。
80211帧格式解析
802.11帧格式解析2012-02-13 0个评论收藏我要投稿1 MAC802.11数据帧格式首先要说明的是mac802.11的帧格式很特别,它与TCP/IP这一类协议不同,它的长度是可变的。
不同功能的数据帧长度会不一样。
这一特性说明mac802.11数据帧显得更加灵活,然而,也会更加复杂。
mac 802.11的数据帧长度不定主要是由于以下几点决定的1.1 mac地址数目不定,根据帧类型不同,mac 802.11的mac地址数会不一样。
比如说 ACK帧仅有一个mac地址,而数据帧有3个mac地址,在WDS模式(下面要提到)下,帧头竟然有4个mac地址。
1.2 802.11的管理帧所携带的信息长度不定,在管理帧中,不仅仅只有一些类似于mac地址,分片标志之类的这些信息,而且另外还会包括一些其它的信息,这些信息有关于安全设置的,有关于物理通信的,比如说我们的SSID名称就是通过管理帧获得的。
AP会根据不同的情况发送包含有不同信息的管理帧。
管理帧的细节问题我们会在后面的文章中讨论,这里暂时跳过。
1.3 加密(wep,wpa等)信息,QOS(quality of service)信息,若有加密的数据帧格式和没有加密的数据帧格式还不一样,加密数据帧格式还多了个加密头,用于解密用。
然则QOS也是同样道理。
竟然mac 802.11数据帧那么复杂,我们就先从通用的格式开始说吧帧控制(2 bytes):用于指示数据帧的类型,是否分片等等信息,说白了,这个字段就是记录了mac 802.11的属性。
*Protocol version:表明版本类型,现在所有帧里面这个字段都是0x00*Type:指明数据帧类型,是管理帧,数据帧还是控制帧*Subtype:指明数据帧的子类型,因为就算是控制帧,控制帧还分RTS帧,CTS 帧,ACK帧等等,通过这个域判断出该数据帧的具体类型*To DS/From DS:这两个数据帧表明数据包的发送方向,分四种可能情况讨论**若数据包To DS为0,From DS为0,表明该数据包在网络主机间传输**若数据包To DS为0,From DS为1,表明该数据帧来自AP**若数据包To DS为1,From DS为0,表明该数据帧发送往AP**若数据包To DS为1,From DS为1,表明该数据帧是从AP发送自AP的,也就是说这个是个WDS(Wireless Distribution System)数据帧,至于什么是WDS,可以参考下这里的介绍 #传送门*Moreflag:分片标志,若数据帧被分片了,那么这个标志为1,否则为0*Retry:表明是否是重发的帧,若是为1,不是为0*PowerManage:当网络主机处于省电模式时,该标志为1,否则为0.*Moredata:当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0*Wep:加密标志,若为1表示数据内容加密,否则为0*Order 这个表示用于PCF模式下,这里不予讨论生存周期/Associate ID (2 bytes):先前不是讲过虚拟载波监听的一个机制么,他的Network Allocation Vector (NAV)就存在这里,这里叫duration,即生存周期。
802.11数据抓包分析
802.11数据抓包分析802.11抓包分析1.实验目的分析802.11协议,了解802.11的帧格式2.实验环境及工具操作系统:ubuntu实验工具:WireShark3.实验原理(1)802.11MAC层数据帧格式:Bytes 2 2 6 6 6 2 0-2312 4Bits 2 2 4 1 1 1 1 1 1 1 1 Version:表明版本类型,现在所有帧里面这个字段都是0Type:指明数据帧类型,是管理帧,数据帧还是控制帧,00表示管理帧,01表示控制帧,10表示数据帧Subtype:指明帧的子类型 ,Data=0000,Data+CF-ACK=0001,Data+CF-Poll=0010, Data+CF-ACK+CF-Poll=0011,Nulldata=0100,CF-ACK=0101,CF-Poll=0110,Data+CF-ACK+CF-Poll=0111,QoS Data=1000, Qos Data+CF-ACK=1001,QoS Data+CF-Poll=1010,QoS Data+CF-ACK+CF-Poll=1011,QoS Null =1100,QoS CF-ACK=1101,QoS CF-Poll=1110,QoS Data+CF-ACK+CF-Poll=1111To DS/From DS:这两个数据帧表明数据包的发送方向,分四种情况:若数据包T o DS为0,From DS为0,表明该数据包在网络主机间传输若数据包To DS为0,From DS为1,表明该数据帧来自AP若数据包To DS为1,From DS为0,表明该数据帧发送往AP 若数据包To DS为1,From DS为1,表明该数据帧是从AP发送往APMore flag.:置1表明后面还有更多段Retry:置1表明这个以前发送一帧的重传Pwr mgt.:置1表明发送发进入节能模式More data:置1表明发送发还有更多的帧需要发送给接收方,当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0Protected:置1表明该帧的帧体已经被加密Order:置1告诉接收方高层希望严格按照顺序来处理帧序列Duration:通告本帧和其确认帧将会占用信道多长时间Address 1:发送方地址 Address 2:接收地址 Address 3:远程端点Sequence:帧的编号Data:有效载荷,长度可达2312字节Check Sequence:CRC校验码(2)802.11控制帧,每种控制帧的帧格式不一样,以RTS帧为例说明Bytes 2 2 6 6 4Bits 2 2 4 1 1 1 1 1 1 1 1 Version:表明版本类型,现在所有帧里面这个字段都是0Type:指明数据帧类型,是管理帧,数据帧还是控制帧,00表示管理帧,01表示控制帧,10表示数据帧Subtype:指明数据帧的子类型,Power Save(PS)-Poll(省电轮询)=1010,RTS=1011,CTS=1100,ACK=1101,CF-End(无竞争周期结束)=1110,CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认)=1111,Block ACK=1001,控制帧的To DS 至Order除Pwr.mgt.外必然为0Receiver Address:接收方地址Transmitter Address:发送发地址,CTS和ACK没有该字段Check sequence:校验码(3)管理帧,Bytes 2 2 6 6 6 2 0-2312 4Version:表明版本类型,现在所有帧里面这个字段都是0Type:指明数据帧类型,是管理帧,数据帧还是控制帧,00表示管理帧,01表示控制帧,10表示数据帧Subtype:指明数据帧的子类型,Association Request(关联请求)=0000,Association Response (关联响应)=0001,Reassociation Request(重关联请求)=0010,Reassociation Response(重关联响应)=0011,Probe Request(探测请求)=0100,Probe Response(探测响应)=0101,Beacon(信标帧)=1000,ATIM(通知传输指示信息)=1001,Disassociation(解除关联)=1010,Authentication(身份验证)=1011,Deauthentication(解除身份验证)=1100管理帧的To DS 与From DS均为0,其余Frame Control字段意义与数据帧一致Destination Address:目的地址Source Address:源地址BSSID:基本服务集ID, 用于过滤收到的MAC帧(在基础型网络里为工作站所关联的AP的MAC 地址)Sequence:帧序列号Address Check sequence:校验码4.实验步骤1.配置wireshark,启动monitor mode,抓取wifi的数据包,如下图2.分析抓取到的wifi数据包5.实验结果及分析1.数据帧(1)数据帧Version ,Type 和Subtype的08H,即00001000,后两位00,表明协议版本为0,倒数3、4位10 表明这是一个数据帧,前四位0000是subtype。
802.11帧的抓取以及分析
802.11帧的抓取以及分析1. 802.11概述IEEE 802.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一样,主要定义了O S I模型中物理层和数据链路层的相关规范,其中数据链路层又可分为MA C子层和LLC子层,802.11与802.3的LLC子层统一由802.2描述。
2. 802.11帧结构分析2.1一般帧结构一般802.11MAC帧Frame contro l字段1)控制字段*Protocol versio n:表明版本类型,现在所有帧里面这个字段都是0x00。
*Type:指明数据帧类型,是管理帧,数据帧还是控制帧。
*Subtyp e:指明数据帧的子类型,因为就算是控制帧,控制帧还分R TS帧,CTS帧,ACK 帧等等,通过这个域判断出该数据帧的具体类型。
*To DS/From DS:这两个数据帧表明数据包的发送方向,分四种可能情况讨论:**若数据包To DS为0,From DS为0,表明该数据包在网络主机间传输。
**若数据包To DS为0,From DS为1,表明该数据帧来自AP。
**若数据包To DS为1,From DS为0,表明该数据帧发送往AP。
**若数据包To DS为1,From DS为1,表明该数据帧是从AP发送自AP的,也就是说这个是个WDS(Wirele ss Distri butio n System)数据帧。
80211帧的抓取以及分析
802.11帧的抓取以及分析1. 802.11概述IEEE 802.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帧Frame control 字段1)控制字段*Protocol version:表明版本类型,现在所有帧里面这个字段都是0x00。
*Type:指明数据帧类型,是管理帧,数据帧还是控制帧。
*Subtype:指明数据帧的子类型,因为就算是控制帧,控制帧还分RTS帧,CTS帧,ACK 帧等等,通过这个域判断出该数据帧的具体类型。
*To DS/From DS:这两个数据帧表明数据包的发送方向,分四种可能情况讨论:**若数据包To DS为0,From DS为0,表明该数据包在网络主机间传输。
**若数据包To DS为0,From DS为1,表明该数据帧来自AP。
**若数据包To DS为1,From DS为0,表明该数据帧发送往AP。
**若数据包To DS为1,From DS为1,表明该数据帧是从AP发送自AP的,也就是说这个是个WDS(Wireless Distribution System)数据帧。
*Moreflag:分片标志,若数据帧被分片了,那么这个标志为1,否则为0。
*Retry:表明是否是重发的帧,若是为1,不是为0。
NS2中80211代码深入理解packet传输的流程
NS2中80211代码深入理解packet传输的流程NS2中802 11代码深入理解packet传输的流程如何传送一个封包(How to transmit a packet?)首先,我们要看的第一个function是在mac-802_/doc/a77290194.html,内的recv( ),程式会先判断目前呼叫recv( )这个packet的传输方向,若是DOWN,则表示此packet是要送出去的,因此就会再呼叫send(p, h).所以接着,我们跳到send( ),此send( )首先会去检查energy model,若是目前这个node 是在睡眠状态(sleep mode),则把此packet给丢弃.然后会把handler h设定给callback_.下一步,就是去呼叫sendDATA(p)和sendRTS(ETHER_ADDR(dh->dh_ra)).底下是sendDATA的程式码. (部份英文说明和程式码,会因为长度的关系而拿掉,所以读者最好还是拿原本的程式码做对照)void Mac802_11::sendDATA(Packet *p){hdr_cmn* ch = HDR_CMN(p);struct hdr_mac802_11* dh = HDR_MAC802_11(p);/* 更新packet的长度,把packet的长度加上PreambleLength (内定值为144 bits), PLCPHeaderLength(内定值为48bits), Mac Header Length和ETHER_FCS_LEN */ch->size() += phymib_.getHdrLen11();/* 填入Mac Header中frame control内的子栏位值 */dh->dh_fc.fc_protocol_version = MAC_ProtocolVersion;dh->dh_fc.fc_type = MAC_Type_Data;dh->dh_fc.fc_subtype = MAC_Subtype_Data;//printf(".....p = %x, mac-subtype-%d\n",p,dh->dh_fc.fc_subtype);dh->dh_fc.fc_to_ds = 0;dh->dh_fc.fc_from_ds = 0;dh->dh_fc.fc_more_frag = 0;dh->dh_fc.fc_retry = 0;dh->dh_fc.fc_pwr_mgt = 0;dh->dh_fc.fc_more_data = 0;dh->dh_fc.fc_wep = 0;dh->dh_fc.fc_order = 0;/* 记录传送所需要花的时间,计算的方式(PreambleLength +PLCPHeaderLength) * 8 / PLCPDataRate + 剩于的封包长度(单位为bytes) * 8 / dataRate_ *//* 事实上,底下的这一行程式码是个浪费,因为底下又会针对是否为broadcast或unicast 的封包,再计算一次 */ch->txtime() = txtime(ch->size(), dataRate_);/* 若是这是一个unicast的封包 */if((u_int32_t)ETHER_ADDR(dh->dh_ra) != MAC_BROADCAST) {/* 再一次计算传送所需要花的时间 */ch->txtime() = txtime(ch->size(), dataRate_);/* duration的意思是送出去此data packet之后,此次的通讯还需要占用channel所需要的时间,这个时间的长度为传送一个ACK和一个SIF的时间 */dh->dh_duration = usec(txtime(phymib_.getACKlen(), basicRate_)+phymib_.getSIFS());} else {/* 若这是一个multicast的封包 */ch->txtime() = txtime(ch->size(), basicRate_);/* 若是multicast packet,送出去此data packet之后,就算传送完成,不需要再等待ACK,因此duration为0 */dh->dh_duration = 0;}/*当Mac Header中的资讯都填完后,我们先把此packet暂时地存放在Mac Layer中的local buffer,等待适当的时机再传送出去 */ pktTx_ = p;}底下是sendRTS的程式码. (部份英文说明和程式码,会因为长度的关系而拿掉,所以读者最好还是拿原本的程式码做对照)void Mac802_11::sendRTS(int dst){Packet *p = Packet::alloc();hdr_cmn* ch = HDR_CMN(p);struct rts_frame *rf = (struct rts_frame*)p->access(hdr_mac:ffset_);/* 检查要传送的封包大小是否是小于RTSThreshold或是不是一个broadcast的封包,若是的话,就不需要传送RTS.若是在使用者所写的tcl中没有指定RTSThreshold,则ns2会去读取ns-default.tcl的值,内定为0,因此若是使用unicast,则一定会送出去 RTS */if( (u_int32_t) HDR_CMN(pktTx_)->size() < macmib_.getRTSThreshold() || (u_int32_t) dst == MAC_BROADCAST) {Packet::free(p);return;}ch->uid() = 0;ch->ptype() = PT_MAC;ch->size() = phymib_.getRTSlen();ch->iface() = -2;ch->error() = 0;bzero(rf, MAC_HDR_LEN);/* 设定RTS packet中Mac Header的栏位 */rf->rf_fc.fc_protocol_version = MAC_ProtocolVersion;rf->rf_fc.fc_type = MAC_Type_Control;rf->rf_fc.fc_subtype = MAC_Subtype_RTS;rf->rf_fc.fc_to_ds = 0;rf->rf_fc.fc_from_ds = 0;rf->rf_fc.fc_more_frag = 0;rf->rf_fc.fc_retry = 0;rf->rf_fc.fc_pwr_mgt = 0;rf->rf_fc.fc_more_data = 0;rf->rf_fc.fc_wep = 0;rf->rf_fc.fc_order = 0;/* 把要传送的目的位址存放到RA */STORE4BYTE(&dst, (rf->rf_ra));/* 存放传送RTS所需要花的时间, RTS Frame是用basicRate_传送 */ch->txtime() = txtime(ch->size(), basicRate_);/* 把传送端的位址放到TA */STORE4BYTE(&index_, (rf->rf_ta));/* 计算duration,计算的公式为: SIF + T(CTS) + SIF + T(Pkt) + SIF + T(ACK) */rf->rf_duration = usec(phymib_.getSIFS()+ txtime(phymib_.getCTSlen(), basicRate_)+ phymib_.getSIFS()+ txtime(pktTx_)+ phymib_.getSIFS()+ txtime(phymib_.getACKlen(), basicRate_));/* 把建立好的RTS packet先暂时存放到pktRTS_ */pktRTS_ = p;}看完sendDATA( )和sendRTS( )之后,我们再回到send( ).接着,就指定一个unique sequence number给这个data packet.为了更清处的说明,底下把剩余的程式码贴在底下./ * 这是在send( )内的程式码 *//* 若是目前backoff timer并没有在 count down */if(mhBackoff_.busy() == 0) {/* 此时channel又是idle */if(is_idle()) {/* 若是节点已经再等待defer timer,则让defer timer继续,因此不做任何的设定.但是若没有defer timer,就要根据802.11的规定,需要再等待一个DIFS和一个random time才能做资料的传送,而这个random time是由[0, cw_]所决定的 */if (mhDefer_.busy() == 0) {rTime = (Random::random() % cw_)*(phymib_.getSlotTime());mhDefer_.start(phymib_.getDIFS() + rTime);}/* 此时channel若是busy */else {mhBackoff_.start(cw_, is_idle());}}做完以上的事情后, send()已经完成了.然后,当Defer timer expires的时候,程式就会去呼叫deferHandler(),在deferHandler()中会先去呼叫check_pktCTRL(),但因为目前pktCTRL没有资料(回传-1),所以会继续去执行check_pktRTS().若是目前channel是idle的状态,check_pktRTS()内的程式码就会去设定传输状态为MAC_RTC,并且计算送出RTS timeout的时间,算法为:timeout = txtime(phymib_.getRTSlen(), basicRate_)+ DSSS_MaxPropagationDelay // 设定为2 us,可以参考mac-802_11.h+ phymib_.getSIFS()+ txtime(phymib_.getCTSlen(), basicRate_)+ DSSS_MaxPropagationDelay; // 设定为2 us,可以参考mac-802_11.h设定完后,就会去执行transmit(pktRTS_, timeout),把RTS的packet送出去.送完RTS后,我们必需等待CTS,所以我们再回到recv()中的mhRecv_.start(txtime(p)),这个程式码主要是等待整个packet完全接收后就会去呼叫recvHandler(),而recvHandler()就会再去呼叫recv_timer(),若是判断所收到的packet是CTS,则再呼叫recvCTS(pktRx_).在recvCTS()中,因为已收到CTS,则代表RTS已传送成功,因此把 pktRTS_ = 0和ssrc_=0,然后再呼叫tx_resume().在tx_resume()中,由于已成功的做完RTS/CTS,现在要准备送出data.这部份的程式如下所示/ * 若是pktTx_有资料要传送 */else if(pktTx_) {if (mhBackoff_.busy() == 0) {hdr_cmn *ch = HDR_CMN(pktTx_);struct hdr_mac802_11 *mh = HDR_MAC802_11(pktTx_);/* 判断packet size是否小于RTSThreshold或者是不是broadcast */if ((u_int32_t) ch->size() < macmib_.getRTSThreshold() || (u_int32_t)ETHER_ADDR(mh->dh_ra) == MAC_BROADCAST) {rTime = (Random::random() % cw_) * phymib_.getSlotTime();mhDefer_.start(phymib_.getDIFS() + rTime);} else {/* 若是unicast且packet size大于RTSThreshold,则会等待一个SIFS后,再把data packet 送出去 */mhDefer_.start(phymib_.getSIFS());}}}等到defer timer expires后,又会呼叫deferHandler(),而在deferHandler()又会再去呼叫check_pktTx(). check_pktTx()的程式码如下:int Mac802_11::check_pktTx(){struct hdr_mac802_11 *mh;double timeout;assert(mhBackoff_.busy() == 0);if(pktTx_ == 0)return -1;mh = HDR_MAC802_11(pktTx_);switch(mh->dh_fc.fc_subtype) {case MAC_Subtype_Data:/* 若是目前的channel是busy的话,就需要增加contention window,然后再执行一次backoff */if(! is_idle()) {sendRTS(ETHER_ADDR(mh->dh_ra));inc_cw();mhBackoff_.start(cw_, is_idle());return 0;}/* 设定传输状态为MAC_SEND */setTxState(MAC_SEND);if((u_int32_t)ETHER_ADDR(mh->dh_ra) != MAC_BROADCAST) timeout = txtime(pktTx_)+ DSSS_MaxPropagationDelay // 设定为2 us,可以参考mac-802_11.h+ phymib_.getSIFS()+ txtime(phymib_.getACKlen(), basicRate_)+ DSSS_MaxPropagationDelay; // 设定为2 us,可以参考mac-802_11.helsetimeout = txtime(pktTx_);break;default:fprintf(stderr, "check_pktTx:Invalid MAC Control subtype\n");exit(1);}/* 把pktTx_内的data packet传送出去 */transmit(pktTx_, timeout);return 0;}资料送出去后,若是unicast的data packet就需要等待ACK,所以我们再回到recv()中的mhRecv_.start(txtime(p)),这个程式码主要是等待整个packet完全接收后就会去呼叫recvHandler(),而recvHandler()就会再去呼叫recv_timer(),若是判断所收到的packet 是ACK,则会呼叫recvACK(pktRx_). 由于已成功收到ACK,则表示DATA packet已成功的送出,所以就把mhSend_.stop(),判断packet size是否有大于RTSThreshold,若是有大于的话,就把slrc_ = 0,没有的话,就把ssrc_=0.并且把pktTx_=0. 最后在结束之前,再呼叫tx_resume().而tx_resume()会呼叫callback_....然后整个DATA packet传送过程就结束了.。
802.11抓包分析技能
802.11抓包分析技能深挖现实世界802.11问题档案。
我⽤4个真实的例⼦来挑战你。
请记住,有时看起来明显的问题其实并不是那么明显。
然⽽数据帧是不会说谎的,深⼊理解802.11协议对看到问题的真相⾮常重要。
这些都是现实网络中真实存在的客户问题。
问题 #1:客户抱怨仓库中的特定区域WiFi性能缓慢。
据仓库中的⼀个⼯⼈说wifi网络总是很慢。
⾃从wifi安装好以后,它就没有好⽤过。
在我的抓包当中我看到了很多的帧具有相似的“位”被标记。
什么“位”标⽰可能有助于找到网络体验慢的线索呢?答案 #1:如果你的答案是“重传位”,恭喜你答对了。
在信道6中重传计数器超过了30%。
尽管信道内的噪声参考是在合理范围内,抓包中有⼀些误导显⽰为-92。
没有双关语意。
我打开WiSpy⼯具,查看物理层⼲扰。
发现2.4G频段存在⼀个不再使⽤,但仍处于通电运⾏中旧的安全摄像头。
该摄像头是跨信道1- 6⼯作引起⼲扰,导致了⾼的重传率。
问题 #2:在做过最新的固件升级后,许多思科7925话机表现出奇怪的⾏为。
他们连接到WiFi网络后,便断开并显⽰定位网络服务。
这种情况反复发⽣。
我打开我的抓包⼯具,看到的帧就像这⼀个。
如果你的答案是时间定时器(Duration),恭喜答对了。
duration字段的值在故障诊断过程中引起了我的注意。
最终的结论是⼿机固件bug,由于特定的配置和802.11n接⼊点引起了互操作性问题。
记住当⼀个客户端发送帧包含⼀个持续时间值,其余的客户端只要能解调该帧将会使⽤该值,并复位时钟到忙的状态。
这将影响整个wifi区域⽽不仅仅是电话终端。
另外该问题可以通过omnipeek的expert信息中发现,这⾥的信息很重要。
问题 #3:客户抱怨Wi-fi网络性能差。
事实上,他们说,他们有时⽆法连接到⽆线网络。
我打开我的抓包⼯具,捕捉到了如下:答案 #3:如果你的回答这是CRC校验,恭喜你答对了。
这简单的说明了我的抓包⼯具⽆法正确解读该帧。
80211帧的抓取以及分析
802.11帧的抓取以及分析1. 802.11 概述IEEE 802.11是一个协议簇,主要包含以下规范:1)物理层规范:802.11b, 802.11a, 802.11g;2)增强型MAC 层规范:802.11i,802.11r,802.11h 等;3)高层协议规范:802.11f,802.11 n,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 一般帧结构6 6 2 62304 4o2 2 4 1 1 1 1 1 1 1 1一般802.11MAC 帧Frame control 字段1)控制字段*Protocol version :表明版本类型,现在所有帧里面这个字段都是0x00。
*Type :指明数据帧类型,是管理帧,数据帧还是控制帧。
*Subtype :指明数据帧的子类型,因为就算是控制帧,控制帧还分RTS帧,CTS帧,ACK帧等等,通过这个域判断出该数据帧的具体类型。
*To DS/From DS :这两个数据帧表明数据包的发送方向,分四种可能情况讨论:**若数据包To DS 为0,From DS 为0,表明该数据包在网络主机间传输。
**若数据包To DS 为0,From DS 为1,表明该数据帧来自AP。
**若数据包To DS 为1,From DS 为0,表明该数据帧发送往AP。
**若数据包To DS 为1,From DS 为1,表明该数据帧是从AP 发送自AP 的,也就是说这个是个WDS(Wireless Distribution System)数据帧。
802.11网络性能解析
802.11网络性能解析在WLAN网络广泛应用的同时,802.11技术也没有停止发展的脚步,2009年802.11n协议正式标准化,再一次实现了物理速率的提升,最高物理速率可以达到了300Mbps。
而且,802.11n的A-MPDU(报文聚合)功能充分提高空间媒介的信道利用率,同时带来了WLAN网络的信道承载性能的成倍提升。
未来随着新的802.11n芯片和技术的发展,450Mbps物理速率的设备也将被普遍应用,WLAN网络又将迎来新一轮的腾飞。
一、物理速率的提升从宏观角度,802.11协议可以分为两个主要部分:链路层业务和物理层传输。
链路层业务主要制定了WLAN链路协商的规则,以及针对WLAN接入服务而设计的系列功能,例如报文重传和确认、重复报文检测、密钥协商、加密保护、漫游等等。
而物理层传输则实现WLAN设备之间的能够完成信号的发送和接收,并致力于不断提高数据传输的物理速率。
下面给出802.11协议族所逐步实现的物理速率:· 1999年,802.11的基础协议完成了WLAN的基本架构定义,并定义了两种调制模式和速率,为WLAN提供了1Mbps和2Mbps的物理接入速率;· 1999年,802.11b协议直接致力于物理速率的提升,在802.11的基础上提出了“High Rate”的概念,通过调试模式CCK,将WLAN的最大物理接入速率从2Mbps直接提升到11Mbps;· 1999年,802.11a的问世一方面跳出了原来2.4GHz频段的限制为WLAN应用争取了更多的空间媒介资源(5GHz的三段频点,可以提供多达 13个不重叠的工作信道),另外一方面则通过OFDM调制模式又一次将物理速率提升到了54Mbps。
如果单单从数据的传输速率角度,该物理速率已经是一个骄人的成绩,在当时一定程度上可以和以太网网络进行比较和抗衡;· 2003年,OFDM调制模式引入到2.4GHz推出了802.11g协议,该协议在802.11b 的基础上扩充支持了OFDM调制模式,使得WLAN在 2.4GHz上也能够实现54Mbps 的物理传输速率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
802、11抓包分析1、实验目的分析802、11协议,了解802、11的帧格式2、实验环境及工具操作系统:ubuntu实验工具:WireShark3、实验原理(1)802、11MAC层数据帧格式:Bytes 2 2 6 6 6 2 0-2312 4Version:表明版本类型,现在所有帧里面这个字段都就是0Type:指明数据帧类型,就是管理帧,数据帧还就是控制帧,00表示管理帧,01表示控制帧,10表示数据帧Subtype:指明帧的子类型 ,Data=0000,Data+CF-ACK=0001,Data+CF-Poll=0010, Data+CF-ACK+CF-Poll=0011,Nulldata=0100,CF-ACK=0101,CF-Poll=0110,Data+CF-ACK+CF-Poll=0111,QoS Data=1000,Qos Data+CF-ACK=1001,QoS Data+CF-Poll=1010,QoS Data+CF-ACK+CF-Poll=1011,QoS Null =1100,QoS CF-ACK=1101,QoS CF-Poll=1110,QoS Data+CF-ACK+CF-Poll=1111To DS/From DS:这两个数据帧表明数据包的发送方向,分四种情况:若数据包To DS为0,From DS为0,表明该数据包在网络主机间传输若数据包To DS为0,From DS为1,表明该数据帧来自AP若数据包To DS为1,From DS为0,表明该数据帧发送往AP若数据包To DS为1,From DS为1,表明该数据帧就是从AP发送往APMore flag、:置1表明后面还有更多段Retry:置1表明这个以前发送一帧的重传Pwr mgt、:置1表明发送发进入节能模式More data:置1表明发送发还有更多的帧需要发送给接收方,当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0Protected:置1表明该帧的帧体已经被加密Order:置1告诉接收方高层希望严格按照顺序来处理帧序列Duration:通告本帧与其确认帧将会占用信道多长时间Address 1:发送方地址 Address 2:接收地址 Address 3:远程端点Sequence:帧的编号Data:有效载荷,长度可达2312字节Check Sequence:CRC校验码(2)802、11控制帧,每种控制帧的帧格式不一样,以RTS帧为例说明Bits 2 2 4 1 1 1 1 1 1 1 1 Version:表明版本类型,现在所有帧里面这个字段都就是0Type:指明数据帧类型,就是管理帧,数据帧还就是控制帧,00表示管理帧,01表示控制帧,10表示数据帧Subtype:指明数据帧的子类型,Power Save(PS)-Poll(省电轮询)=1010,RTS=1011,CTS=1100,ACK=1101,CF-End(无竞争周期结束)=1110,CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认)=1111,BlockACK=1001,控制帧的To DS 至Order除Pwr、mgt、外必然为0Receiver Address:接收方地址Transmitter Address:发送发地址,CTS与ACK没有该字段Check sequence:校验码(3)管理帧,Version:表明版本类型,现在所有帧里面这个字段都就是0Type:指明数据帧类型,就是管理帧,数据帧还就是控制帧,00表示管理帧,01表示控制帧,10表示数据帧Subtype:指明数据帧的子类型,Association Request(关联请求)=0000,Association Response (关联响应)=0001,Reassociation Request(重关联请求)=0010,Reassociation Response(重关联响应)=0011,Probe Request(探测请求)=0100,Probe Response(探测响应)=0101,Beacon(信标帧)=1000,ATIM(通知传输指示信息)=1001,Disassociation(解除关联)=1010,Authentication(身份验证)=1011,Deauthentication(解除身份验证)=1100管理帧的To DS 与From DS均为0,其余Frame Control字段意义与数据帧一致Destination Address:目的地址Source Address:源地址BSSID:基本服务集ID, 用于过滤收到的MAC帧(在基础型网络里为工作站所关联的AP的MAC 地址)Sequence:帧序列号Address Check sequence:校验码4、实验步骤1、配置wireshark,启动monitor mode,抓取wifi的数据包,如下图2、分析抓取到的wifi数据包5、实验结果及分析1、数据帧(1)数据帧Version ,Type 与Subtype的08H,即00001000,后两位00,表明协议版本为0,倒数3、4位10 表明这就是一个数据帧,前四位0000就是subtype。
Frame control 后8位0AH,即00001010。
To DS=0,From DS=1,表明该数据帧来自AP。
More frag=0,表明这就是该帧的最后一段,Retry=1,表明这就是重传帧,Pwr、 Mgt、=0,表明发送方没有进入节能模式;More data=0表明没有更多的帧,即No data buffered 、Protected=0,表明没有加密,Order=0,表明没有严格的顺序要求。
Duration位为d500,低位为00,高位为d5,所以持续时间为00d5H=213微秒。
Address 1 =0022698ea744,接收方的MAC地址;Address 2= 0611b51a0a05,发送发地址,即AP地址;Address 3= 00005e00040a,远程远端地址;Sequence=3032,高位为32,低位为30,即 0011 0010 0011 0010,段号为0,帧号为0011 0010 0011B=803D,Check sequence=23093131H, 检测结果为正确。
(2)上图帧紧接着的下一个数据帧每发出去一帧Sequence中的12位帧号递增,Address 1 =0022698ea744,接收方的MAC 地址;Address 2= 0611b51a0a05,发送发地址,即AP地址;Address 3= 00005e00040a,远程远端地址;这三个地址与上图中的帧一致,就是同一发送方发送给同一接收方的连续两帧,帧号=804,帧号递增。
2.控制帧(1)RTS帧Version ,Type 与Subtype的b4H,即10110100,后两位00,表明协议版本为0,倒数3、4位01 表明这就是一个控制帧,前四位1011就是subtype,表明这就是一个RTS;Frame control 后8位00H,控制帧的这几位除Pwr、mgt、外必然就是0、 Pwr、mgt即发送方没有进入节能模式。
Duration位为6709,低位为67,高位为09,所以持续时间为096fH=2407微秒。
Receiver Address =00:22:69:8e:a7:44,接收方的MAC地址; Transmitter Address =06:11:b5:1a:0a:05,发送方地址;Check sequence=6e24f28cH,检测结果为正确。
(2)CTS帧Version ,Type 与Subtype的C4H,即11000100,后两位00,表明协议版本为0,倒数3、4位01 表明这就是一个控制帧,前四位1100就是subtype,表明这就是一个CTS、Frame control 后8位00H,控制帧的这几位除Pwr、mgt、外必然就是0、 Pwr、mgt 即发送方没有进入节能模式。
Duration位为6f09,低位为6f,高位为09,所以持续时间为096fH=2415微秒。
Receiver Address =70f1al496492,接收方的MAC地址;Check sequence=a1d1f7e5H,检测结果为正确。
(3)ACK帧Version ,Type 与Subtype的d4H,即11010100,后两位00,表明协议版本为0,倒数3、4位01 表明这就是一个控制帧,前四位1101就是subtype,表明这就是一个ACK;Frame control 后8位00H,控制帧的这几位除Pwr、mgt、外必然就是0、 Pwr、mgt即发送方没有进入节能模式。
Duration位为0000,所以持续时间为0微秒,ACK表明该帧的传送结束,所以持续时间为0,Receiver Address =00:22:69:8e:a7:44,接收方的MAC地址; Check sequence=6e24f28cH,检测结果为正确。
(4)Block ACK帧Version ,Type 与Subtype的94H,即10010100,后两位00,表明协议版本为0,倒数3、4位01 表明这就是一个控制帧,前四位1001就是subtype,表明这就是一个Block Ack,这就是一个块确定帧Frame control 后8位00H,控制帧的这几位除Pwr、mgt、外必然就是0、 Pwr、mgt即发送方没有进入节能模式。
Duration位为9400,低位为94,高位为00,所以持续时间为0094H=148微秒。
Receiver Address =70f1al496492,接收方的MAC地址。
Transmitter Address =3822d67704d3,发送方的MAC地址,Check sequence=d2ed060f,检测结果为正确。
其余位与Block ACK该种帧有关,Block Ack Type=02H,compressed Block;Block Ack Control=0005H,Block Ack Starting Sequence Control=9320H、3、管理帧Version ,Type 与Subtype的80H,即1000 0000,后两位00,表明协议版本为0,倒数3、4位00 表明这就是一个管理帧,前四位1000就是subtype,表明这就是信标帧,AP每隔一段时间就会发出的 Beacon(信标)信号,用来宣布 802、11 网络的存在Frame control 后8位00H、 To DS=0,From DS=0,管理帧这两位固定。