一种获取RSSI的方法技术

技术编号:13745457 阅读:260 留言:0更新日期:2016-09-23 20:11
本发明专利技术公开了一种获取RSSI的方法,属于室内定位领域。本发明专利技术方法中AP由挂载着无线网卡的路由器上组成,利用处于Monitor模式的无线网卡监听无线局域网中的数据传输,主动采集周边手机的Wi‑Fi广播信息;利用Tcpdump抓包工具和Libpcap数据包捕获函数库,捕获无线介质中的Wi‑Fi数据包,并将Wi‑Fi数据包保存为后缀为.cap的文件;AP把Wi‑Fi数据包传送至系统服务器,服务器对Wi‑Fi数据包进行格式分析,根据RSSI值封装在Wi‑Fi数据包中的格式和在数据包中的位置,利用程序自动解析数据包并提取RSSI数据。采用本发明专利技术方法后,手机客户端不需要安装任何软件,不需要利用手机客户端的接口获取RSSI数据,对手机客户端的操作系统和性能没有要求。

【技术实现步骤摘要】

本专利技术涉及室内定位领域,具体涉及一种利用处于Monitor模式的无线网卡主动采集周边手机的Wi-Fi广播信息,并从Wi-Fi数据包中提取所需的RSSI数据的方法。
技术介绍
随着智能手机的普及和基于位置服务需求的增加,在建筑环境复杂且人流密集的室内场所,常常需要室内定位来帮助用户获得位置信息。基于Wi-Fi的室内定位系统,利用室内场所已有的网络基础设施和广泛覆盖的Wi-Fi热点进行定位系统的建设,无需另外布置线路及添加额外硬件设备,是一种方便可行的定位方法。基于Wi-Fi的室内定位技术,利用AP(Access Point,访问接入点)的位置坐标来测算手机客户端的位置,以实现定位目的。而AP与手机客户端的位置用接收信号强度指示(Received Signal Strength Indication,RSSI)来衡量。Wi-Fi是基于IEEE802.11b的无线通讯技术,利用载波侦听多路访问/冲突避免协议(CSMA/CA)来传输数据访问介质,采用广播机制。由于无线信号是扩散到整个空间的,Wi-Fi中无论是广播包或是单播包,其物理层上仍然是广播的。共享广播式的信道是在无线网络中实现抓包的前提条件,是捕获数据包的物理基础。手机客户端通过Wi-Fi接入AP时,首先要经历扫描阶段。在IEEE802.11无线局域网存在主动扫描和被动扫描两种获取RSSI的方式。手机客户端接入Wi-Fi时,其802.11MAC层使用scanning功能来完成扫描。在被动扫描模式下,由手机客户端测量Probe Response帧的RSSI。在主动扫描模式下,则由AP测量得到Probe Request帧的RSSI。现有的基于Wi-Fi的室内定位系统,通常由手机客户端、AP端、服务器端三个部分构成。目前,许多基于Wi-Fi的室内定位解决方案都是基于手机客户端的定位系统,利用Android系统提供的接口获得周围AP的RSSI特征功能,这意味着需要在手机上安装应用软件来完成RSSI搜索与传输工作。手机客户端需要获得周围AP的RSSI数据,然后把这些检测到的数据发送给服务器,服务器会将得到的实时RSSI信息与数据库里的样本进行匹配运算,从而得到手机客户端的坐标。
技术实现思路
本专利技术所要解决的技术问题是提供一种获取RSSI的方法,通过处于Monitor模式的无线网卡主动采集周边手机的Wi-Fi广播信息,把Wi-Fi数据包传送至系统服务器,服务器利用解析程序从Wi-Fi数据包中提取所需的RSSI数据,在服务器端运行定位计算,用户的手机客户端无需安装任何软件。为解决上述技术问题,本专利技术采用的技术方案是:一种获取RSSI的方法,包括以下步骤:步骤1:在OpenWRT路由操作系统下,将USB无线网卡挂载到路由器上,即安装USB扩展设备驱动程序安装包以及无线网卡芯片相对应的驱动程序安装包;步骤2:将路由器本身的无线网络端口设置为Master模式,将无线网卡的端口设置为Monitor模式;步骤3:利用处于Monitor模式的无线网,监听无线局域网中的数据传输;利用Tcpdump抓包工具和Libpcap数据包捕获函数库,捕获无线介质中的Wi-Fi数据包,并将Wi-Fi数据包保存为后缀为.cap的文件;步骤4:分析Wi-Fi数据包文件头、数据帧头、数据帧内容,找到所需信息所在的字节;步骤5:解析Wi-Fi数据包并按字节提取所需的数据,包括RSSI数据,具体为:步骤5.1:定义头文件、结构体和声明文件指针,打开Wi-Fi数据包文件,读取Wi-Fi数据包文件;步骤5.2:读取Wi-Fi数据包文件的类型,判断链路层类型标志位link-type,若链路层类型为Radio类型,则标志位正确,进而读取数据帧头,否则结束对该文件的解析;步骤5.3:读取Frame Header,判断这帧的捕获长度,若捕获长度大于160字节,将文件指针移到Beacon Frame的位置,若不符合条件,将文件指针移至下一个Frame Header的初始位置;步骤5.4:读取Beacon Frame的源地址MAC地址信息,读取提出定位请求的手机客户端的MAC地址,对比源地址MAC地址与手机客户端的MAC地址是否相同,若MAC相同则符合匹配条件,将文件指针移回Radiotap Header的位置,读取Radiotap Header里的RSSI信息,若MAC地址不同则读取下一帧数据;步骤5.5:将提取到的数据信息打印并保存在txt文件中,数据信息包括link-type类型、捕获长度、RSSI、源地址MAC和时间戳。根据上述方案,所述Wi-Fi数据包为符合IEEE 802.11标准的通讯设备的Wi-Fi数据包。根据上述方案,在步骤4中,所述文件头包含标识位、版本号、区域时间、精确时间戳、数据包最大长度和链路层类型。根据上述方案,在步骤4中,所述帧头包括这帧数据的时间信息、数据包长度和数据包捕获长度。与现有技术相比,本专利技术的有益效果是:采用本专利技术方法后,手机客户端不需要安装任何软件,不需要利用手机客户端的接口获取RSSI数据,对手机客户端的操作系统和性能没有要求。附图说明图1为本专利技术获取RSSI的系统功能示意图。图2为本专利技术中Wi-Fi数据包格式图。图3为本专利技术中Wi-Fi数据包解析流程示意图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术一种获取RSSI的方法,基于Wi-Fi的室内定位系统,由具备Wi-Fi功能的手机客户端、挂载无线网卡的路由器、服务器三个部分构成。如图1所示,AP端由无线网卡和路由器构成。在OpenWRT路由操作系统下,将USB无线网卡挂载到路由器上。安装USB扩展设备驱动程序安装包及无线网卡芯片相对应的驱动程序安装包,使得路由能识别出无线网卡。设置路由器和无线网卡的工作模式。将路由本身的无线网络端口设置为Master模式,提供无线接入服务以及路由功能;将无线网卡的端口设置为Monitor模式,用于捕获手机客户端的Wi-Fi数据包,只能接收数据,不能发送数据。在OpenWRT路由操作系统系统下,安装报文抓包工具Tcpdump和数据包捕获函数库Libpcap。Tcpdump工具为用户层和数据链路驱动程序间提供接口,使用户层能采集所需的网络数据报文,可以针对网络层、协议、网络、主机或端口进行过滤,实现报文的截取。在安装Tcpdump的同时,安装数据包捕获函数库Libpcap(the Packet Capture Libmry),以便将无线介质中传送的IEEE802.11b的帧完全捕获。将无线网卡进行设置为Monitor模式,使用Tcpdump捕获Wi-Fi数据包,将完整的IEEE802.11b数据包捕获,并存为后缀为.cap格式文件。如图2所示,根据IEEE802.11国际标准,任何符合IEEE 802.11标准的通讯设备,在向外发送数据时,RSSI值都已封装在了数据包中。RSSI值封装在Wi-Fi数据包中,其格式和在数据包中的位置都有具体规定。分析Wi-Fi数据包文件头(Cap Header)。所述文件头包含了标识位、版本号、区域时间、精确时间戳、数据包最大长度和链路层类型(Link-type)。每个Wi-Fi数据包文件头有24个字节的文件头信息,本文档来自技高网
...

【技术保护点】
一种获取RSSI的方法,其特征在于,包括以下步骤:步骤1:在OpenWRT路由操作系统下,将USB无线网卡挂载到路由器上,即安装USB扩展设备驱动程序安装包以及无线网卡芯片相对应的驱动程序安装包;步骤2:将路由器本身的无线网络端口设置为Master模式,将无线网卡的端口设置为Monitor模式;步骤3:利用处于Monitor模式的无线网,监听无线局域网中的数据传输;利用Tcpdump抓包工具和Libpcap数据包捕获函数库,捕获无线介质中的Wi‑Fi数据包,并将Wi‑Fi数据包保存为后缀为.cap的文件;步骤4:分析Wi‑Fi数据包文件头、数据帧头、数据帧内容,找到所需信息所在的字节;步骤5:解析Wi‑Fi数据包并按字节提取所需的数据,包括RSSI数据,具体为:步骤5.1:定义头文件、结构体和声明文件指针,打开Wi‑Fi数据包文件,读取Wi‑Fi数据包文件;步骤5.2:读取Wi‑Fi数据包文件的类型,判断链路层类型标志位link‑type,若链路层类型为Radio类型,则标志位正确,进而读取数据帧头,否则结束对该文件的解析;步骤5.3:读取Frame Header,判断这帧的捕获长度,若捕获长度大于160字节,将文件指针移到Beacon Frame的位置,若不符合条件,将文件指针移至下一个Frame Header的初始位置;步骤5.4:读取Beacon Frame的源地址MAC地址信息,读取提出定位请求的手机客户端的MAC地址,对比源地址MAC地址与手机客户端的MAC地址是否相同,若MAC相同则符合匹配条件,将文件指针移回Radiotap Header的位置,读取Radiotap Header里的RSSI信息,若MAC地址不同则读取下一帧数据;步骤5.5:将提取到的数据信息打印并保存在txt文件中,数据信息包括link‑type类型、捕获长度、RSSI、源地址MAC和时间戳。...

【技术特征摘要】
1.一种获取RSSI的方法,其特征在于,包括以下步骤:步骤1:在OpenWRT路由操作系统下,将USB无线网卡挂载到路由器上,即安装USB扩展设备驱动程序安装包以及无线网卡芯片相对应的驱动程序安装包;步骤2:将路由器本身的无线网络端口设置为Master模式,将无线网卡的端口设置为Monitor模式;步骤3:利用处于Monitor模式的无线网,监听无线局域网中的数据传输;利用Tcpdump抓包工具和Libpcap数据包捕获函数库,捕获无线介质中的Wi-Fi数据包,并将Wi-Fi数据包保存为后缀为.cap的文件;步骤4:分析Wi-Fi数据包文件头、数据帧头、数据帧内容,找到所需信息所在的字节;步骤5:解析Wi-Fi数据包并按字节提取所需的数据,包括RSSI数据,具体为:步骤5.1:定义头文件、结构体和声明文件指针,打开Wi-Fi数据包文件,读取Wi-Fi数据包文件;步骤5.2:读取Wi-Fi数据包文件的类型,判断链路层类型标志位link-type,若链路层类型为Radio类型,则标志位正确,进而读取数据帧头,否则结束对该文件的解析;步骤5.3:读取Frame Header,判断这帧的捕获长度,若捕获长...

【专利技术属性】
技术研发人员:李英祥陈婧霆
申请(专利权)人:成都信息工程大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1