CN103532782B - 一种wlan无线网络测试仪及其测试方法 - Google Patents
一种wlan无线网络测试仪及其测试方法 Download PDFInfo
- Publication number
- CN103532782B CN103532782B CN201310481875.3A CN201310481875A CN103532782B CN 103532782 B CN103532782 B CN 103532782B CN 201310481875 A CN201310481875 A CN 201310481875A CN 103532782 B CN103532782 B CN 103532782B
- Authority
- CN
- China
- Prior art keywords
- module
- data
- message
- wireless network
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种WLAN无线网络测试仪及其测试方法,WLAN无线网络测试仪包括数据采集卡驱动模块、WinPcap抓包驱动模块、抓包解析模块、采测模块、拨测模块、项目路测模块和测试报告模块;底层驱动,充分利用已有无线网卡驱动搭建而成;中间层调用库,直接调用WinPcap报文捕获模块、802.11无线报文解析和统计模块;用户界面层,测试人员实际操作进行业务性能的测试,生成详细的测试报告;本发明还提供一种WLAN无线网络性能测试方法。本发明给测试人员提供一个可靠、直观、***的可用于对复杂的WLAN环境进行测试、评估、验证以及优化的工具。
Description
技术领域
本发明涉及无线网络检测领域,尤其涉及一种用于WLAN无线网络规划优化的WLAN无线网络测试仪。
背景技术
随着科学技术的日益发展,20世纪末,互联网走进了人们的日常工作、生活,互联网是两台计算机或者是两台以上的计算机终端、客户端、服务端通过计算机信息技术的手段互相联系起来的结果,人们可以与远在千里之外的朋友相互发送邮件、共同完成一项工作、共同娱乐。全球进入了互联网时代,但是如何保证人们可随时、随地、随意地访问互联网的网络资源呢?很明显,传统局域网络受有线电缆的“牵绊”,无法满足人们这样的需求,于是无线局域网(Wireless Local Area Network,WLAN)技术应运而生,它以空气作为传输媒介,通过电波(微波)传输数据,让可移动性成为现实,加之WLAN网络的灵活性、安装便捷、易于扩展等优点,技术一路飞速发展,近些年,无线局域网已经在企业、医院、商店、工厂和学校等场合得到了广泛的应用,全球范围内掀起了无线局域网应用的高潮。
与之呼应,WLAN项目建设也在不断开展,WLAN业务数据量随之迅猛上升。昂贵的设备投入、日益增加的用户数给无线局域网的增加了负担,同时更加广泛的移动性要求以及人们对网络服务质量、业务要求的提高,使得WLAN网络必须不断发展网络优化技术,从网络前期的规划到应用过程中问题的定位、甚至故障的排除,来不断的优化网络,宗旨就是为了能充分利用好现有的无线网络频率资源,给终端用户提供更加优质和稳定的网络通信服务。
随着无线局域网WLAN在全球范围内掀起的应用高潮,WLAN网络使用的安全性、可靠性、稳定性及带宽问题己经越来越成为人们的关注的焦点。所以无线局域网的规划、建设和维护面临着很严峻的考验,如何确保无线局域网的健康稳定地运行,如何延长无线局域网的生命周期?已经成为我们刻不容缓、必须去探讨和研究的议题。
发明内容
为了克服现有技术中存在的不足,本发明提供一种WLAN无线网络测试仪,给测试人员提供一个可靠、直观、***的可用于对复杂的WLAN环境进行测试、评估、验证以及优化的工具,从而找出影响网络运行质量的原因,通过技术手段或参数调整使网络达到最佳运行状态,使得网络的有限资源获得最佳效益。
为实现上述目的,本发明采用如下技术方案:
一种WLAN无线网络测试仪,其特征在于:包括数据采集卡驱动模块、WinPcap(windows packet capture,windows平台下一个免费,公共的网络访问***)抓包驱动模块、抓包解析模块、采测模块、拨测模块、项目路测模块和测试报告模块;
所述数据采集卡驱动模块控制无线网卡工作在无线抓包模式或无线终端模式;通过修改无线网卡驱动,使得网卡既可以工作在无线抓包模式也可以工作在无线终端模式。当网卡工作在抓包模式时,软件***可以把捕获的空口报文进行分类统计,并根据不同的需求在软件的页面上分类直观显示;当网卡工作于终端模式时,软件***可以正常连接到AP(Access Point,无线访问节点、会话点或存取桥接器),以终端用户的角色进行各项网络业务性能测试。
所述WinPcap抓包驱动模块通过无线网卡捕获无线网络上传输的原始空口报文,并把捕获到的网络数据包存储并发送给抓包解析模块,同时统计网络流量信息;
所述抓包解析模块对捕获到的空口报文进行解析,并发送给采测模块、项目路测模块;
所述采测模块对捕获的报文按照信道、收发设备进行统计汇总,通过分析得到无线设备的配置参数,并将统计分析数据发送给测试报告模块;
所述拨测模块通过测试人员预设置完成无线业务性能的测试,并将业务性能数据发送给测试报告模块;
所述项目路测模块分析统计捕获的空口报文,将实时采测数据通过GPS驱动模块与测试人员所在的地理位置关联起来,获得整个测试区域的整体覆盖情况,并将路测数据输出给测试报告模块;
所述测试报告模块将统计分析数据、业务性能数据、路测数据输出给测试人员。
更进一步的,还包括数据呈现模块,所述数据呈现模块将获得的测试数据以及测试数据之间的相互关系以易于识别的方式呈现给测试人员。例如以图表、表格、树等方式呈现数据的数值,以及各数据之间的相互关系。测试人员也可以根据不同情况的需要同时监测各种数据的实时情况,大大降低了测试人员在现网排查问题的难度,提高了工作效率。
更进一步的,所述数据采集卡驱动模块工作在底层驱动,所述底层驱动利用现有无线网卡驱动程序搭建而成,并直接调用GPS驱动模块驱动;
所述WinPcap抓包驱动模块、抓包解析模块、采测模块工作在中间层调用库,所述中间层调用库还直接调用WlanApi(WLAN应用程序编程接口)无线连接模块、用于生成详细测试报告的Office OLE(Office对象链接和嵌入)接口;
所述拨测模块、项目路测模块和测试报告模块工作在用户界面层,所述用户界面层根据测试人员控制完成无线网络性能测试。
本发明还提供一种WLAN无线网络性能测试方法,其特征在于包括如下步骤:
(1)控制无线网卡工作在两种模式:置为FALSE时,无线网卡工作在无线终端模式;置为TRUE时,无线网卡工作在无线抓包模式;
(2)将无线网卡工作模式置为TRUE,根据测试需求捕获无线网络上传输的原始802.11报文并把捕获到的网络数据包存储,同时统计网络流量信息;
(3)对捕获到的空口报文进行解析,根据上层的调用再对所捕获的报文进行分类统计;
(4)对捕获的空口报文进行分析统计,将实时采测数据与测试人员所在的地理位置关联起来,获得整个测试区域的整体覆盖情况,输送给测试人员;
(5)对捕获的空口报文报文按照信道、收发设备进行统计,分析无线设备的配置参数,并生成报表输出;
(6)将无线网卡工作模式置为FALSE,通过测试人员预设置,评估无线网络业务性能,完成无线业务的测试,并生成详细测试报告。
有益效果:(1)本发明提供的WLAN无线网络测试仪用于投入运行的WLAN网络进行数据采集、数据解析、统计和分类,并支持多种不同的过滤条件和形式友好地呈现出来,给测试人员提供一个可靠、直观、***的可用于对复杂的WLAN环境进行测试、评估、验证以及优化的工具;(2)监控WLAN网络状况,及时解决用户故障告警、投诉,确保WLAN网络的安全性、稳定性,为用户提供稳定的网络服务质量和接入带宽。结合已有的WLAN工程数据/协议分析,合理规划信道、覆盖容量、带宽资源,为用户提供更加可靠的数据性能,从而确保无线网络的通信质量和用户感知。
(3)规划新建WLAN局域网时期,本发明提供的WLAN无线网络测试仪可以对每步骤进行测试,并验证施工是否符合设计要求,提高整体安装效率,可以根据提供热点各硬件参数规格,如输出功率、接收灵敏度结合真实环境损耗,在布网环境的平面图上模拟WLAN无线信号的覆盖,覆盖区域的信号强度要达到-75dBm以上。
(4)WLAN局域网安装测评时期,本发明提供的WLAN无线网络测试仪可以在布网环境的平面图上,针对整个WLAN覆盖网络测试生成直观的信号强度效果图,测试人员可以根据此效果图检查WLAN覆盖的盲区,通过调整热点的位置或发射功率,从而达到规划效果的98%以上。
(5)本发明提供的WLAN无线网络测试仪对热点之间的同频干扰、邻频干扰,***测试软件也能提供准确的参考阈值,测试人员可以根据实际测试出来的干扰值,对热点相互的位置和输出功率做出调整,当然这些评估测试都是建立在整个WLAN无线网络已经进行过蜂窝式规划基础之上的。
(6)本发明提供的WLAN无线网络测试仪可以对WLAN覆盖范围内的任意位置进行自动全面的业务性能测试,比如ping测试、终端反复连接测试、HTTP访问测试、FTP下载测试、WEB认证反复测试、视频流播放测试等等,并对测试的结果提供详细的报告。
(7)本发明提供的WLAN无线网络测试仪可以针对出问题设备进行模拟验证测试,并对出现问题的设备能实时抓包并定位问题发生的可疑点。另外,软件还能从通过信号强度的变化定位到出问题设备的大概物理位置,方便测试人员能具***置具体问题得到具体分析。
(8)WLAN管理和优化时期,本发明提供的WLAN无线网络测试仪首先确保WLAN网络的覆盖效果,最小化同频、邻频干扰,排除环境中存在的WLAN***外部的干扰,比如微波炉、无绳电话等干扰。***测试软件更重要的任务可以根据服务区域对象的实际应用的效果,比如接入的终端数、各终端所需带宽、甚至是使用过程中出现的问题,综合评估出场景中基本用户的需求,从而改善优化网络,确保所有终端用户的业务感知体验效果。比如WLAN覆盖环境中存在厕所和会议室2种不同应用场景,厕所属于轻度负荷业务应用、而会议室则属于高负荷业务应用,所以热点带宽的优化此时显得尤为重要,***测试软件评估厕所正常需要使用的带宽不超过5Mbps,所以厕所的覆盖可以通过限制覆盖测试区域的热点的带宽或更换成低端AP,降低布网成本并节约整体网络带宽资源,但是用户的体验效果必须通过***软件测试***得以保证;而会议室这样无线终端密集型应用,可以通过增加覆盖热点或更换扩容AP,如单频点AP更换成双频点AP,或802.11g的AP更换成802.11n的AP,并通过热点的一些接入限制手段来保证所有会场用户的感知体验。
附图说明
图1为本发明的WLAN无线网络测试仪原理图。
图2为本发明的WLAN无线网络测试仪模块结构示意图。
图3为协议层NDIS和无线网卡驱动程序的具体交互过程。
图4为数据包从NIC到应用程序的传输路径。
图5为WinPcap在整个WLAN无线网络测试仪软件***架构中位置。
图6为无线报文解析和统计模块在WLAN无线网络测试仪软件***中的工作过程。
图7为无线网卡切换到无线抓包模式操作过程。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1所示,本发明提供的一种WLAN无线网络测试仪实现的主要功能有:空口报文捕获、空口报文的协议解析、以及WLAN设备、信道数据的统计分析、各类数据的呈现、无线网络接入、常用网络业务性能测试、生成测试报表等。
从技术层面上,本发明提供的WLAN无线网络测试仪通过修改无线网卡驱动,使得网卡既可以工作在无线抓包模式也可以工作在无线终端模式。当网卡工作在抓包模式时,软件***可以把捕获的802.11报文进行分类统计,并根据不同的需求在软件的页面上分类直观显示;当网卡工作于终端模式时,软件***可以正常连接到AP(Access Point,无线访问节点、会话点或存取桥接器),以终端用户的角色进行各项网络业务性能测试。如图2所示WLAN无线网络测试仪测试过程及功能模块如下所示:
步骤(1):设置无线网卡工作在两种模式:置为FALSE时,无线网卡工作在无线终端模式;置为TRUE时,无线网卡工作在无线抓包模式。
步骤(1)采用数据采集卡驱动模块实现,在无线网卡驱动中,通过增加开关变量MonitorMode控制无线网卡可以工作在2种模式:置为FALSE时,无线网卡工作在无线终端模式;置为TRUE时,无线网卡工作在无线抓包模式,此时通过WinPcap抓包驱动模块可以捕获到完整的未经修改的802.11报文,提交到上层解析和进行分类统计,并最终在用户界面显示。
步骤(2):将无线网卡工作模式置为TRUE,根据测试需求捕获无线网络上传输的空口报文并存储,同时统计网络流量信息;
步骤(2)采用WinPcap抓包驱动模块实现,工作原理是CSMA/CA、网络嗅探。当网卡工作在无线抓包模式时,WLAN无线网络测试仪就可以根据不同的设置捕获无线网络(网卡的硬件属性决定了是否支持A\B\G\N报文)上传输的原始802.11报文,无论是PC机发往其他机器的网络数据包还是共享设备上进行传输的各种网络数据包,并把捕获到的网络数据包存储,同时统计网络流量信息。
步骤(3):对捕获到的空口报文进行解析,根据上层的调用再对所捕获的报文进行分类统计;
步骤(3)采用抓包解析模块实现,空口报文解析是根据IEEE802.11协议,对捕获到的空口报文进行解析,包括802.11MAC头、802.11管理帧、控制帧、未加密的数据帧载荷等。对每个报文的帧类型、协议、源地址、目的地址、帧长、电源管理、CRC校验等等进行解析,再根据上层的调用再对所捕获的报文进行分类统计。
步骤(4):对解析后的空口报文按照信道、收发设备进行统计,分析无线设备的配置参数,并生成报表输出;
步骤(4)采用采测模块实现,针对WLAN设备、信道数据的进行统计分析并分类。工作原理:IEEE802.11协议、MAC层协议以及信标帧说明。此模块可以对捕获的报文按照信道、收发设备进行统计汇总;可以通过分析得到无线设备的配置参数,如网络类型(802.11a/b/g/n)、SSID、BSSID、MAC地址、加密方式、认证方式、使用信道、网络模式(AP/ADHOC/BRIDGE/STATION)、信号强度、噪声、同频干扰、邻频干扰、信道利用率等。
步骤(5):对解析后的空口报文进行分析,将实时采测数据与测试人员所在的地理位置关联起来,获得整个测试区域的整体覆盖情况,输送给测试人员;
步骤(5)项目路测模块实现,进行室内外项目路测,通过在测试区域内走动,同时捕获空口报文,并分析报文、统计结果,将实时采测数据与测试人员所在的地理位置关联起来,获得整个测试区域的整体覆盖情况。地理位置信息的获得可以通过手工在地图上标注或者通过GPS驱动模块自动在地图上标注。测试区域的覆盖情况分多种:比如信号强度效果、噪声干扰效果、信噪比效果、速率分布效果、丢包率情况分布以及覆盖区域存在的盲点分布情况等等。
步骤(6):将无线网卡工作模式置为FALSE,通过测试人员预设置,评估无线网络业务性能,完成无线业务的测试,并生成详细测试报告。
步骤(6)采用拨测(业务测试),包括一键通测试功能模块,本模块的工作原理:TCP/IP协议,功能:以普通无线客户端的身份接入无线网络,使用常用网络业务,如DHCP、PING、HTTP下载、FTP上传下载、访问网页测试、Portal弹出、网页认证登入登出、邮件收发、AP间切换漫游等,获取平均延时、成功率、平均速率等业务性能数据,评估网络业务性能,感知用户上网体验。软件***中的一键通测试功能是一个亮点,可以通过测试人员预先的设置,自动完成多项业务的测试,并生成详细测试报告。
本测试可以对测试的项目,测试配置、测试时间、测试目标、测试状态以及测试结果实时显示,并记录详细结果,是一项非常实用而方便的功能。
另外本实例还包括数据呈现模块,软件测试***获得的测试数据需要以易于识别的方式呈现给用户,本模块以图表、表格、树等方式呈现数据的数值,以及各数据之间的相互关系。测试人员也可以根据不同情况的需要同时监测各种数据的实时情况,大大降低了测试人员在现网排查问题的难度,提高了工作效率。
测试报告模块,测试报告生成的工作原理:调用MS Office OLE接口、XML格式规范、PDF格式规范等。从用户角度来看,整个报告***包括了业务拨测(接入网络,一键通、各项业务测试)、采测(空口报文捕获和对报文的解析统计汇总)和室内外项目路测三大类数据。报告可以根据具体用户的需求,以多种文件格式(xls、doc、xml、pdf),将统计分析数据、业务性能数据、路测数据等导出生成对应的报表。报告也可以根据测试人员对网络分析深浅程度生成数据总体概况的报告和详细测试数据的报告。
WLAN无线网络测试仪主要模块分布在3个层次,从底层驱动,充分利用已有的无线网卡驱动程序源代码以及GPS驱动模块驱动的直接调用,搭建好底层驱动模块的程序代码;再到中间层调用库,直接调用如WlanApi无线连接模块、WinPcap报文捕获模块、用于生成详细测试报告的Office OLE接口、802.11无线报文解析和统计模块;最后到用户界面层,也就是测试人员可以实际操作的部分,通过下发各种指令,进行业务性能的测试,分析现网存在问题、分类显示现网真实的工作状况,以及生成详细的测试报告等。
下面结合具体实例详细介绍WLAN无线网络测试仪重点模块具体实现方法:
一、无线网卡驱动模块设计
普通的有线网卡,在收到报文后,会检查报文的目标地址段,如果不是发往本机,则会丢弃,否则进入下一步的处理,通常这个过滤过程是在网卡驱动程序里进行的。有线网卡(基于802.3MAC),可以通过设置网卡工作模式为“混杂模式”,来取消这个过滤过程,将所有流经网卡的报文都发往上层网络协议栈,用户就可以通过网络抓包工具将所有报文捕获并处理了。
而对于无线网卡(基于802.11MAC)来说,并不支持“混杂模式”,而且无线网络与有线网络逻辑上也存在不同,IEEE802.11协议报文除了数据帧类型报文,还有管理帧、控制帧类型的报文,后两者是用于无线管控的,与网络数据业务本身没有关系,所以通常只在网卡硬件或者网卡驱动这一层就处理了。如果依然沿用有线抓包的方式来抓包,即只是从网络协议栈拷贝一份报文数据出来分析的话,只能得到已经改写为802.3协议类型的数据报文;对于无线分析至关重要的802.11MAC头、管理帧、控制帧,以及错误帧、重传帧等WLAN无线网络特有的且与无线网络质量密切相关的报文,都无法被捕获到,所以需要对驱动进行修改。
驱动中的报文详细接收过程(RxThread)的改写基于既要支持无线抓包模式,又要支持无线终端模式的需求,在驱动程序中加定义开关变量MonitorMode,当MonitorMode的变量值为TRUE时进入无线抓包模式的工作流程,否则进入无线终端(Station)模式的工作流程;启动无线报文接收线程RXThread后,发现无线网卡收包队列中有报文被接收时,不直接进入目的地址过滤,首先检查当前工作模式;在Monitor模式下,为了更有效的分析空口环境,通常还需要获得关于报文协议速率、报文接收信号强度等信息,而这些信息并没有包含在802.11协议规定的报文格式中;可以通过访问对应的网卡硬件寄存器(程序需要增加对应的网卡寄存器访问接口,这些接口实现时,需要参考对应无线网卡主芯片的DataSheet,不同的芯片,有不同的实现方法)获得这些数据,并添加到报文尾部后,提交给上层。在Station模式下,报文继续进行正常的包过滤流程,包括检查报文错误、检查报文地址、检查报文类型、响应管理和控制报文、Ack数据报文、数据报文MAC头的转换(802.11MAC头转换为802.3MAC头)等一系列的处理后,提交给上层。
二、无线网卡驱动和NDIS交互流程的设计
在NDIS和无线网卡驱动进行交互之前,需要对NDIS协议层驱动程序的初始化函数DriverEntry中注册的接口函数SetInformation和QueryInformation做修改和控制,增加对无线网卡驱动程序的开关变量Monitor模式的处理。
(1)对于模式切换的支持,通过对SetChannel这个SetInformation接口的支持,切换到Monitor模式;通过对GetBssList这个QueryInformation接口的支持,切换回Station模式。
(2)当SetChannel时,无线网卡驱动程序的开关变量MonitorMode就被置true;同时设置网卡工作在SnifferMode,无线网卡硬件在SnifferMode下,不会过滤错误报文,只会保证完整的报文向上提交,否则无线网卡硬件就会把错误报文丢弃;最后根据上层命令设置网卡的工作信道。
(3)当GetBssList时,如果无线网卡驱动程序的开关变量MonitorMode为true,则设置MonitorMode为false,同时设置SnifferMode为false来启用网卡的硬件过滤功能,接下来无线网卡就可以正常的进入获取BSS列表请求的响应过程了。
(4)需要注意的是,当无线网卡驱动程序的开关变量MonitorMode为true时,将关闭SetInformation和QueryInformation中大部分无关的请求,使其直接返回NDIS_SUCCESS,从而避免无关的上层应用请求对无线抓包过程的干扰。
协议层NDIS和无线网卡驱动程序的具体交互过程可参照图3,NDIS通过接口函数SetInformation和QueryInformation去控制无线网卡的模式开关控制量MinitorMode。当MonitorMode为ture,无线网卡工作在抓包模式,数据增加报尾后直接交给NDIS协议层驱动,通过NDIS与WinPcap交互,再由WinPcap交给应用层,使得所有报文均能不被过滤,完整地提交给应用层;当MonitorMode为false,无线网卡切换到无线终端模式,按正常流程把数据提交给NDIS协议层驱动,再交给各种网络应用程序。
三、抓包模块驱动设计
WinPcap是Windows平台上用于数据包捕获与网络分析的一个架构。它包含一个内核空间数据包过滤器(Netgroup Packet Filter,NPF)、一个底层动态数据链接库(Packet.dll)和一个高层并独立于操作***的动态链接库(wpcap.dll)。
网络上的数据包通过物理网络接口卡(Network Interface Card,NIC)经目的信令点编码(Destination Point Code,DPC)和对应的驱动程序传递到操作***的内核空间,对应的协议驱动程序(对WinPcap而言就是NPF内核驱动)将会处理所接收的数据包,然后向右的应用程序就会获得该数据包。数据包从NIC到应用程序的传输路径如图4所示。
WinPcap设计之初主要是用于对有线网络的报文捕获,它对于捕获控制有“混杂模式”、“回环模式”、“过滤方式”等几种。而对于空口报文捕获很重要的一个步骤是“设置工作信道”,它并没有实现,所以需要我们去添加。
在修改设计抓包模块驱动程序前,需要对WinPcap在整个软件***架构中的位置有所了解,可见图5。
图5中,Wpcap.dll、Packet.dll和NPF组成了WinPcap架构,WinPcap和NDIS、无线网卡的驱动各层数据的交互也一目了然。
WinPcap一般抓包步骤有:①获取网卡设备列表(如果有多块网卡,则从中选择一块),并将其设置为混杂(Promis2cuous)模式;同时设置好过滤器等其他参数。②把网卡收到的数据包复制到内核缓冲区中。③通过上层的调用,把内核缓冲区中的数据包拷贝到用户缓冲区中。经过一定的处理,再把数据包存放到硬盘上。所以WinPcap抓包模块的驱动可以按照如下流程做设计:
(1)WinPcap需要使用到的***函数DeviceIOControl,它会对一个设备驱动发送一个IOCTROL命令,这样对应的设备就会执行相应的操作,其原型如下:
hDevice为输入参数,它是执行操作的设备句柄;dwIOControlCode为输入参数,它是命令码;lpInBuffer为输入参数,指向包含操作所需输入参数的内存区;nInBufferSize为输入参数,输入参数内存区的字节数;lpOutBuffer为输出参数,指向接收操作返回数据的输出内存区;nOutBufferSize为输入参数,输出参数内存区的字节数;lpBytesReturned为输出参数,存储在输出参数内存区中的数据字节数;lpoverlapped为输入参数,指向LPOVERLAPPED结构体的一个指针,如果hDevice没有使用FILE_FLAG_LPOVERLAPPED表示打开,则无需理会lpoverlapped。
如果DeviceIOControl函数执行成功,则返回非0值,否则返回0。
(2)PacketRequest函数位于WinPcap的Packet.dll动态链接库中,它在驱动程序上执行一个参数查询和设置操作,其原型如下:
BOOLEAN PacketRequest(LPADAPTER AdapterObject,BOOLEAN Set,PPACKET_OID_DATA OidData);
第一个参数LPADAPTER AdapterObject,程序中所选择的无线网卡;第二个参数BOOLEAN Set,Set为TRUE,表示对驱动程序进行写操作,如果是从驱动程序读的操做,比如获取BSS列表,那就设为FALSE;PPACKET_OID_DATA是个结构体,参数OidData是指向PACKET_OID_DATA结构体的指针,该结构体包含了所传递的数据,主要定义了结构体的长度、OID、返回数据缓冲区或者写入长度等等。比如指定信道,那么就要有个标识设置信道的OID,然后再加上保存要设的信道的Buffer。
(3)WinPcap的PacketRequest函数就是依赖于***函数DeviceIOControl来实现的,通过使用IOCTROL下发OID的方式来实现下发指定的SetInformation和QueryInformation请求。此外,在上层的无线数据报文解析和分类统计模块中通过新增相应接口函数来调用PacketRequest接口,从而实现在应用层进行指定参数的设置。
四、无线报文解析模块设计
通常的协议解析,是对802.3报文进行解析,主要是基于TCP/IP协议进行解析,获得具体网络业务的统计情况。而用于空口环境分析的无线报文解析,与之有所不同:需要通过对802.11MAC头的分析,得到各种帧类型、重传、加密、分片等各种报文的统计;还需要通过对管理帧的信息字段和信息单元的解析,得到无线设备的各种配置、性能信息;至于具体网络业务,由于加密帧的普遍存在,反而不是很重要了(加密帧的数据载荷已加密,通常无法做进一步解析)。
图6表示无线报文解析和统计模块在软件***中的动作。为当用户层通过OID给Winpcap向驱动下发控制指令后,无线网卡开关变量MonitorMode被置为ture,无线网卡进入到抓包模式。网卡接收到的报文通过相应的处理后递交到NDIS协议层,NDIS和Winpcap的内核驱动NPF交互后,递交到上层定义的数据缓冲区中,再根据上层下发的特定要求对数据流进行解析,然后统计汇总,上传到上层页面呈现。
对无线报文进行解析的前提是,网卡工作在无线抓包模式。
(1)首先对PacketRequest重新封装,用于模块内使用。
1)PacketRequest接口函数位于Winpcap的Packet.dll动态链接库中,暂时只支持Windows***环境;PacketRequest接口函数通过对第二个参数BOOLEAN SET的设置,分别支持SetInformation和QueryInformation。
2)增加WlanSetChannel接口函数用于设置工作信道,进入无线抓包模式。
3)增加WlanGetBssList接口函数用于获取BSS网络列表,进入客户端模式。
4)增加WlanGetNoise用来获取当前信道噪声。
5)以上接口实现时均需要在无线网卡驱动中提供对应的支持。
由以上接口函数的定义,无线网卡要切换到无线抓包模式,需要进行的操作可以用图7概括。
(2)定义数据解析模块在过程控制中的接口函数:
1)增加Initialize和Release接口函数,用来绑定无线网卡、初始化资源和解除无线网卡绑定、释放资源。
2)增加StartCapture和StopCapture接口函数,用来对抓包过程进行控制;在StartCapture接口实现时,调用WlanSetChannel,设置工作信道。
3)根据功能需求,增加其它改变解析过程的接口,如果需要支持项目路测功能时,就要增加StartWalkMode和StopWalkMode两个接口函数,因为项目路测时和定点监测时对解析数据的要求是不同的,需要进入不同的处理流程。
(3)无线报文解析过程的实现:
1)在Initialize时,将创建报文接收处理线程,线程函数为ReceiveProc;在ReceiveProc中,通过回调函数,将WinPcap接收缓冲区中的报文拷贝到用户层,并使用指定的报文处理函数进行解析。
2)在报文处理函数中,首先解析报尾信息,通过报尾信息,可以获得时间戳、协议速率、RSSI、报文长度等信息。
3)检查CRC错误,如果所用无线网卡支持硬件CRC校验,会在报尾有相应的数据表明CRC校验结果;如果所用无线网卡不支持硬件CRC校验,则需要在这里增加软件CRC校验。
4)CRC校验失败的报文,直接统计到工作信道的错误数据帧统计列表中去,然后结束数据解析过程;
5)CRC校验成功的报文,按照帧类型分别进行解析:对于管理帧和控制帧可以根据802.11协议文档进行完全的解析;对于数据帧,对于无线网优的目标来说,只需要解析MAC帧头,至于数据载荷部分的解析,可以留待以后扩展(用于其它应用场景,如802.1x认证过程监控、用户监控等)。
6)对于管理帧的解析,最主要的是对信标帧中的固定字段(field)和信息元素(information element,IE)的解析,通过解析信标帧所带的固定字段和信息元素,可以得到网络类型、所用信道、网络名、加密认证方式等信息。
7)将解析后的数据按照不同的设备进行统计;各设备统计时,也会按照收发、帧类型、协议速率等分别统计。详细参见统计汇总过程的实现。
8)根据管理报文的解析结果,变更客户端与接入点的设备关系。
9)最后,将解析后的数据汇总到当前工作信道统计数据中去。
五、无线报文统计模块的设计
无线报文统计汇总过程和统计数据查询过程的实现:
1)按照WLAN无线网络测试仪功能需求,创建信道统计(CChStatistics)、接入点统计(CBssStatistics)、终端统计(CStaStatistics)三个类用于不同的统计对象。
2)按照WLAN无线网络测试仪功能需求,创建信道信息(CChInfo)、接入点信息(CBssInfo)、终端信息(CStaInfo)三个类用于描述不同类型对象的各种属性。
3)信道统计类CChStatistics按照工作信道不同,统计各个信道中的报文信息、设备信息(统计类);因为国内可用的工作信道是确定的(1~13,149~165,共18个),并且统计后不需要增删,所以使用数组的方式,数组的每个元素存储信道信息类(CChInfo)实例的指针。
4)接入点统计类CBssStatistics,按照接入点BSSID,统计各个扫描到的接入点收发的报文信息,以及接入点下接入的客户端信息(CStaStatistics);由于接入点个数会随着解析过程的进行逐渐增加,并且解析过程中经常需要查询到某个接入点,所以我们采用以BSSID为键值的map类型来作为统计类的主要数据成员的类型,map的数据元素为接入点信息类(CBssInfo)实例的指针;这样保证添加元素或者检索元素都能有比较高的效率。
5)终端统计类CStaStatistics,按照终端的MAC地址,统计各个扫描到的终端收发的报文信息;对于该类的实现,与接入点统计类CBssStatistics相同,也是以MAC地址为键值的map类型作为主要数据成员的类型,map的数据元素为终端信息类(CStaInfo)实例的指针。
6)由于各统计类支持多线程访问,所以需要为各统计类和信息类增加线程同步机制,出于效率和资源的考虑,我们选择使用临界区的方式来实现线程同步,为各类增加CRITICAL_SECTION类型的成员变量,并在各自的构造函数和析构函数里分别进行初始化和清除。
7)为各统计类增加统计汇总时用到的接口函数,主要包括:增加和删除子信息元素的接口;按键值查询子信息元素的接口;将解析结果加入对应统计类的接口等。
8)为各统计类增加外部查询和访问的接口函数,主要包括:按键值查询子信息元素的接口(与前一条同);将统计类导出的接口;将子信息元素导出的接口等。
9)为各信息类增加接口函数,主要包括:初始化接口;解析结果汇总的接口;数据导出接口等。
10)按照信道、接入点、终端三者不同特点,实现关系变更和特定信息的更新、查询的接口,如,在接入点信息类中,可能需要增加:关联终端添加和关联终端删除接口;接入点信息更新接口;接入点信息查询接口等。
11)如此,在数据解析过程即可同时进行数据的统计汇总;并且同时还支持从外部对统计数据进行查询。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种WLAN无线网络测试仪,其特征在于:包括数据采集卡驱动模块、WinPcap抓包驱动模块、抓包解析模块、采测模块、拨测模块、项目路测模块、测试报告模块和数据呈现模块;
所述数据采集卡驱动模块控制无线网卡工作在无线抓包模式或无线终端模式;
所述WinPcap抓包驱动模块通过无线网卡捕获无线网络上传输的原始空口报文,并把捕获到的原始空口报文存储并发送给抓包解析模块,同时统计网络流量信息;
所述抓包解析模块对捕获到的原始空口报文进行解析,并发送给采测模块、项目路测模块;
所述采测模块对捕获的报文按照信道、收发设备进行统计汇总,通过分析得到无线设备的配置参数,并将统计分析数据发送给测试报告模块;
所述拨测模块通过测试人员预设置调用数据采集卡驱动模块完成无线业务性能的测试,并将业务性能数据发送给测试报告模块;
所述项目路测模块分析统计捕获的原始空口报文,将实时采测数据通过GPS驱动模块与测试人员所在的地理位置关联起来,获得整个测试区域的整体覆盖情况,并将路测数据输出给测试报告模块;
所述测试报告模块将统计分析数据、业务性能数据、路测数据输出给测试人员;
该测试仪从上到下依次设有用户界面层、中间层调用库、底层驱动;
所述底层驱动包括数据采集卡驱动模块,所述底层驱动利用现有无线网卡驱动程序搭建而成,并直接调用GPS驱动模块;
所述WinPcap抓包驱动模块、抓包解析模块工作在中间层调用库,所述中间层调用库用于连接底层驱动和用户界面层;所述中间层调用库还直接调用现有WLAN应用接口、用于生成详细测试报告的Office OLE接口;
所述采测模块、拨测模块、项目路测模块、数据呈现模块和测试报告模块工作在用户界面层,所述用户界面层根据测试人员控制完成无线网络性能测试;
所述数据呈现模块将从测试报告模块获得的测试数据以及测试数据之间的相互关系以易于识别的方式呈现给测试人员。
2.一种WLAN无线网络测试方法,其特征在于包括如下步骤:
(1)在数据采集卡驱动模块的驱动程序中加定义开关变量MonitorMode,当MonitorMode的变量值为TRUE时控制无线网卡进入无线抓包模式的工作流程,否则进入无线终端模式的工作流程;启动无线报文接收线程RXThread后,发现无线网卡收包队列中有报文被接收时,不直接进入目的地址过滤,首先检查当前工作模式:无线抓包模式下,通过访问对应的网卡硬件寄存器获得报文协议速率、报文接收信号强度数据,并添加到报文尾部后,提交给上层;在无线终端模式下,报文继续进行正常的包过滤流程,包括检查报文错误、检查报文地址、检查报文类型、响应管理和控制报文、响应Ack数据报文、数据报文MAC头的转换;报文经过包过滤处理后提交给上层;
(2)将无线网卡工作模式置为TRUE,根据测试需求捕获无线网络上传输的空口报文并存储,同时统计网络流量信息;
(3)对捕获到的空口报文进行解析,根据上层的调用再对所捕获的报文进行分类统计;
(4)对解析后的空口报文按照信道、收发设备进行统计,分析无线设备的配置参数,并生成报表输出;
(5)对解析后的空口报文进行分析,将实时采测数据与测试人员所在的地理位置关联起来,获得整个测试区域的整体覆盖情况,输送给测试人员;
(6)将无线网卡工作模式置为FALSE,通过测试人员预设置,评估无线网络业务性能,完成无线网络业务性能的测试,并生成详细测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310481875.3A CN103532782B (zh) | 2013-10-15 | 2013-10-15 | 一种wlan无线网络测试仪及其测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310481875.3A CN103532782B (zh) | 2013-10-15 | 2013-10-15 | 一种wlan无线网络测试仪及其测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103532782A CN103532782A (zh) | 2014-01-22 |
CN103532782B true CN103532782B (zh) | 2017-07-28 |
Family
ID=49934481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310481875.3A Active CN103532782B (zh) | 2013-10-15 | 2013-10-15 | 一种wlan无线网络测试仪及其测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103532782B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869576B (zh) * | 2014-02-24 | 2019-07-26 | 北京奇安信科技有限公司 | 一种无线热点识别方法和装置 |
WO2015148965A2 (en) * | 2014-03-28 | 2015-10-01 | Weigel Broadcasting Co. | Channel bonding |
CN105024872B (zh) * | 2014-04-25 | 2019-02-26 | 腾讯科技(北京)有限公司 | 网络性能测试的方法及装置 |
CN104507115A (zh) * | 2014-12-23 | 2015-04-08 | 北京极科极客科技有限公司 | 一种无线报文抓取方法及设备 |
CN105357684B (zh) * | 2015-09-29 | 2018-10-09 | 北京大学深圳研究生院 | 一种WiFi热点布设位置的优化方法及装置 |
CN106572010A (zh) * | 2015-10-12 | 2017-04-19 | 小米科技有限责任公司 | 数据包抓取方法、装置及终端 |
CN105916162A (zh) * | 2016-04-25 | 2016-08-31 | 上海聚美物联网科技有限公司 | 动态扫描方法 |
CN105960016B (zh) * | 2016-06-23 | 2019-12-20 | 成都信息工程大学 | 一种获取rssi的方法 |
CN106376030A (zh) * | 2016-08-31 | 2017-02-01 | 成都科来软件有限公司 | 一种WiFi信道的监听方法 |
CN108260151B (zh) * | 2016-12-29 | 2021-09-28 | 上海大唐移动通信设备有限公司 | 一种基于LTE-Fi设备的测试数据采集方法及装置 |
CN107942138A (zh) * | 2017-11-27 | 2018-04-20 | 浙江胜百信息科技有限公司 | 一种基于wifi的客户端检测设备 |
CN108419256B (zh) * | 2018-03-16 | 2020-12-15 | 四川长虹电器股份有限公司 | wifi测试优化***及方法 |
CN110582075B (zh) * | 2018-06-07 | 2022-11-29 | 中国电信股份有限公司 | 窄带物联网信号测量方法、***和应用客户端 |
CN109005082A (zh) * | 2018-07-03 | 2018-12-14 | 中国人民解放军国防科技大学 | 一种利用crc校验字段捕获以太网报文的方法及装置 |
TWI731287B (zh) * | 2018-12-22 | 2021-06-21 | 威聯通科技股份有限公司 | 網路應用程式產品及處理應用層協定的方法 |
CN109462616A (zh) * | 2018-12-29 | 2019-03-12 | 杭州全维技术股份有限公司 | 基于分析无线控制帧和数据帧的扫描方法 |
CN110113428B (zh) * | 2019-05-21 | 2021-10-08 | 四川虹美智能科技有限公司 | 一种wifi产品在生产线上数据采集分析***及方法 |
CN111970678B (zh) * | 2020-08-06 | 2023-04-28 | Oppo(重庆)智能科技有限公司 | 抓取空口数据包的方法、装置、电子设备及存储介质 |
CN112437463B (zh) * | 2020-11-24 | 2022-09-16 | 展讯半导体(成都)有限公司 | 终端Wi-Fi兼容性自动测试方法、装置、***、设备及介质 |
CN112653595B (zh) * | 2020-12-15 | 2022-08-12 | 成都海光集成电路设计有限公司 | 芯片网络功能测试方法、装置、存储介质及设备 |
CN113992531B (zh) * | 2021-10-20 | 2023-02-24 | 成都长虹网络科技有限责任公司 | 路由器稳定性测试方法、***、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571283A (zh) * | 2012-01-19 | 2012-07-11 | 神州数码网络(北京)有限公司 | 一种无线网络设备的报文测试方法和*** |
CN102905296A (zh) * | 2012-10-24 | 2013-01-30 | 三维通信股份有限公司 | 一种wlan网络测试分析方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050266803A1 (en) * | 2004-06-01 | 2005-12-01 | Nati Dinur | Apparatus and methods for adaptation of signal detection threshold of a WLAN receiver |
-
2013
- 2013-10-15 CN CN201310481875.3A patent/CN103532782B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571283A (zh) * | 2012-01-19 | 2012-07-11 | 神州数码网络(北京)有限公司 | 一种无线网络设备的报文测试方法和*** |
CN102905296A (zh) * | 2012-10-24 | 2013-01-30 | 三维通信股份有限公司 | 一种wlan网络测试分析方法及设备 |
Non-Patent Citations (1)
Title |
---|
WLAN测试***的设计与实现;许建勋;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20130515;正文第3章至第5章以及图3.1、图4.1至图4.10、图5.1至图5.12 * |
Also Published As
Publication number | Publication date |
---|---|
CN103532782A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103532782B (zh) | 一种wlan无线网络测试仪及其测试方法 | |
Coleman et al. | Cwna: certified wireless network administrator official study guide: exam Pw0-105 | |
Milarokostas et al. | A comprehensive study on LPWANs with a focus on the potential of LoRa/LoRaWAN systems | |
CN113615239A (zh) | 无线时间敏感联网 | |
CN107920122A (zh) | 游戏玩家匹配方法、装置、匹配服务器及可读存储介质 | |
US20160242043A1 (en) | Service coverage management systems and methods | |
CN104159244A (zh) | 一种便携式无线网络探测取证*** | |
CN108898691A (zh) | 基于蓝牙与nb-iot的签到***及方法 | |
CN108770009A (zh) | 链路故障定位方法、装置、设备以及可读存储介质 | |
Takai et al. | Scenargie as a network simulator and beyond | |
US9877295B2 (en) | Method and apparatus for recording information from a plurality of mobile devices in an area | |
CN102196529A (zh) | 无线传感器网络的接入方法及*** | |
CN104735414B (zh) | 面向视频监控***的半实物仿真方法 | |
CN110337103A (zh) | 一种基于802.11协议的无连接数据隐蔽传输方法 | |
CN103763676B (zh) | Ap与ac间的通信方法和设备 | |
Senk et al. | Open-source testbeds for integrating time-sensitive networking with 5g and beyond | |
CN108307431A (zh) | 一种寻呼的方法、网络侧设备和终端 | |
Tanaka et al. | Trace‐based simulation for 6TiSCH | |
CN102056194A (zh) | 基于cdma网的wlan网络质量监测***及方法 | |
Wu et al. | ZigBee wireless location system research | |
CN203313414U (zh) | 能对wlan***进行监测及预警的wlan感知*** | |
CN101977398B (zh) | 一种传感器网络试验床无线环境模拟***及其方法 | |
CA3150968A1 (en) | Method of and system for monitoring civil air defense equipment maintenance | |
Alves et al. | On the Development of a Test-Bed Application for the ART-WiSe Architecture | |
Jin et al. | Research and implementation of physical layer protocol basing on the single-chip ZigBee platform of MC13213 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |