关于AP如何获取station的rssi
最近在研究一个问题:如何通过AP来获取station的rssi。
具体可以拆分为以下三种情况:
1、首先station如果已经连接到AP上,这种情况很容易就能够得到station的RSSI.这里就不讨论这种情况。
2、当station并未与设定AP连接,但是这个时候station与另外一个AP连接,并且这两个AP具有相同的channel,这个时候需要通过一种方式去获取station相对于
设定AP的RSSI。
3、当station并未与设定AP连接,但是这个时候station与另外一个AP连接,当时这个时候两个AP具有不同的channel,这个时候需要通过一种方式去获取station
相对于设定AP的RSSI。
问题分析:
1、第一种情况很简单,一些ioctl就可以轻松的得到。
2、第二种和第三种情况相似,唯一的区别是channel不相同。在station与AP之间未进行连接的情况下,想要去获取station相对于AP的RSSI,只有一种方式
那就是通过AP向station发送报文,发送什么报文呢?802.11帧请求帧(proble request/null data/Qos null data/RTS)。通过实验发现发送proble request/
Qos null data 帧,station并没有做出回应,(RTS还未进行实验)。当通过AP向station发送null data帧的时候,station会返回给AP一个ACK报文,通过这
个ACK可以得到RSSI,这是在QCA 一种叫position的功能上得到的,在QCA上发送普通的null data的时候,不能将station帧收到driver上来,这里就简单通过这种方式,获取到RSSI。但是在这个测试验证的过程中发现有些网卡并不能及时的回复ACK报文,导致AP这边的发送状态始终是放失败,最终不能得到station的RSSI,这种情况还在分析原因。
分析原因很有可能是station没有跟设定AP连接,所以station就不会正面回复ACK,但是有些网卡会回复ACK,测试过程中ralink的网卡会回复,inter和realtek都不会正面回复。下面将把抓包得到的信息以图片的形式贴出来。
总之通过上面的方式不能获取所有网卡的RSSI,经过一份思索,回想起QCA里面通过一种欺骗的手段来获取ACK.
首先看看null data帧:
ACK报文内容非常简单,只有一个receiver的mac地址,
两种情况的区别在bssid,正常情况下bssid是填写的ap1的mac,而在欺骗的情况下是填写的AP2的mac,当sta收到null data的时候,发现bssid为AP2,AP2刚好是自己连接的,所以sta就会正面回复一个ACK.ACK报文对于同一channel的所有AP来说都是一样的,大家都会收到这个ACK.
关于AP如何获取station的rssi的更多相关文章
- ESP8266开发之旅 网络篇④ Station——ESP8266WiFiSTA库的使用
1. 前言 在前面的篇章中,博主给大家讲解了ESP8266的软硬件配置以及基本功能使用,目的就是想让大家有个初步认识.并且,博主一直重点强调 ESP8266 WiFi模块有三种工作模式: St ...
- ESP8266 station模式下建立client、server TCP连接
程序实现内容: 1.在station模式下,ESP8266作为client.server进行TCP连接2.实现数据的发送.接收(同时回传)实现思路:TCP网络通信分层为:应用层.网络层.数据链路层.物 ...
- ESP8266-Soft AP模式 —— 谁想连上我
AP是Access Point简称,也就是访问接入点,是网络的中心节点.一般家庭的无线路由器就是一个AP,众多站点(STA)加入到它所组成的无线网络,网络中的所有的通信都通过AP来转发完成. 软AP也 ...
- wifi mode: AP,Client,Ad-hoc,802.11s,Pseudo Ad-hoc(ahdemo),Monitor,AP(WDS),Client(WDS)
openwrt wifi mode:APClientAd-hoc802.11sPseudo Ad-hoc(ahdemo)MonitorAP(WDS)Client(WDS) http://forum.a ...
- C++ 中获取 可变形參函数中的參数
#include <iostream> #include <stdarg.h> using namespace std; int ArgFunc(const char * st ...
- Android WiFi 获取国家码
记录一下Android获取国家码的方式 Wifi 国家码获取途径 1.DefaultCountryTablefield in WCNSS_qcom_wlan_nv.bin-read during dr ...
- 使用WIFI网卡的AP功能
前几篇博客中,wifi无线网卡都工作于STA模式,那么它能否工作于AP模式.本篇博客就研究使wifi 无线网卡工作于AP模式.使用一个应用程序hostapd,关于它的介绍可以去此网站https://w ...
- ESP8266-Station模式--我想连上谁
Station模式又叫做站点工作模式,类似于无线终端 处于Station模式下的ESP8266,可以连接到AP.通过Station(简称为“STA”)模式,ESP8266作为客户端连接到路由的wifi ...
- WIFI WPA1/2 Crack for Windows
0x00 前言 目前WIFI WPA破解主要 以“aircrack-ng”为代表,运行于Linux系统( 如Kali Linux ),Windows系统比较少见,主要是Windows系统下WIFI网卡 ...
随机推荐
- ORCAD导网表:遇"No_connect" property
问题: Orcad Capture中将No Connect标识放置到了原本应该放置连线的管脚上,不知道怎么删除. 虽然添加一根Wire可以掩盖该管脚上已经添加的No Connect标识,但是到处网表的 ...
- tomcat服务器经常需要重启
程序看着运行正常,但是点击几下就没反应了. 可能原因:1.tomcat内存不足 2.程序中有资源未释放.比如session(hibernate的)等(需要close)
- 【转载】解决jquery-1.10.2.min.map 404 Not Found错误
最近写代码遇到问题,报错说jquery-1.10.2.min.map NOT FOUND.但是我检查了几遍代码发现代码中没有问题,而且根本就没有包含甚至提到jquert-1.10.2.min.map这 ...
- Linux命令之grep用法详解:grep与正则表达式 [转]
正则表达式与通配符不一样,它们表示的含义并不相同. grep命令的选项用于对搜索过程进行补充说明.grep命令的模式十分灵活,可以是字符串.变量,还可以是正则表达式. 无论模式是何种形式,只要模式中包 ...
- ControlTemplate in WPF —— Checkbox
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- 阶段3 2.Spring_07.银行转账案例_8 基于接口的动态代理回顾
创建 Producer 生产者的类 创建标准.这标准就是接口 创建消费者的类 以前的方式,客户直接找生产厂家 代理商出现以后,怎么去联系代理商 动态代理 第一个参数是ClassLoader 第二个参数 ...
- Fiddler抓取APP接口
1.获取本机IP地址 2.打开手机设置无线连接(需要和电脑在同一局域网) 长按wifi连接修改无线连接 打开高级选项,设置主机名和端口后保存 3.设置Fiddler 从下图可以看出,抓到的全是HTTP ...
- Idea创建项目后,提交项目到码云的问题
1.创建git仓库:vcs->import int version control->Create git repository 2.在项目头点击右键->git->add 3. ...
- java:Springmvc框架2(Ajax,Json,Interceptor,Upload,Exception)
1.springmvcAjax: springmvc.xml: <?xml version="1.0" encoding="UTF-8"?> < ...
- linux 设备树中 dwc3 节点的phys参数含义
找了好久今天找到了,记录一下: &dwc3_0 { ... phys = <&lane3 PHY_TYPE_USB3 1 2 26000000>; ... } Requir ...