Wi-Fi Aware -- 用Wi-Fi来发现世界

news/2024/10/27 19:28:05/

前言

       相像一下,走在商场里,看到一家没吃过的新店,拿出手机,就能收到店家的菜单,然后再决定要不要进去。

       走在博物馆里,看到一件文物,很好奇这是什么,但是周围又没有向导,这时候如果只要掏出手机,就会跳出简介。

       地铁里,为了打发时间,但是信号又不好,这时候想找个陌生人抱怨一下,掏出手机,随手发条消息,只要静静等待有缘人的回复....

       这就是Wi-Fi的感知技术,让Wi-Fi可以发现周围的“同类”,集自由组网,数据传输和测距于一身的Wi-Fi Aware技术。

Wi-Fi Aware 发展史

        Wi-Fi Aware又名 Neighbor Awareness Networking(NAN),业内大多数人更喜欢用NAN来称呼他。从2015年协议第一版至今,总共经历了三个大版本,5个版本的迭代,发展到了如今的3.2版本,发展历程如下图所示:

NAN milestone​

       第一版NAN协议定下了NAN的三大功能,组网,数据链路建立和测距。此后的版本升级都是围绕着这三大功能中的某部一份进行着完善。

        2017年第二版NAN协议增加了对数据链路的加密保护,允许建立加密的数据链路进行数据传输。

        2018年在V3.0版本中又增加了建立IPv6数据链路和使用BLE来进行service的发现操作。

        2020年1月在V3.1版本中补充了相关的NFC操作,方便双方进行秘钥的协商操作。

        下面我们先根据NAN的三大主体功能介绍一些相关的概念和名词,后续再根据这三大功能分别展开。

NAN的自由组网

       NAN的组网不同于我们熟悉的Wi-Fi组网,在NAN的网络中,没有STA和AP的概念,大家只要加入到同一个集群中那就是同属于同一个网络。这里先引出第一个概念NAN的集群,NAN Cluster。

      在一个NAN集群中,会存在1个NAN Master和0~n个普通NAN设备。但是NAN Master并不同于Wi-Fi网络中的AP,其他NAN设备并不需要跟NAN Master建立连接。NAN Master的主要责任是负责向外界广播NAN集群的存在。宣传的方法就是广播NAN的beacon帧。

每个NAN Cluster都有自己的一个ID,这个ID是从 50:6F:9A:01:00:00~50:6F:9A:01:FF:FF中随机生成的。发送属于这个集群的所有帧的A3地址位都需要使用这个ID用于表明自己所属的集群。

       对于加入一个集群的过程也很简单,只要遇到最高CG(Cluster Grade)的集群就无条件加入到该集群中去。

       由于NAN的集群是间歇性工作的,每隔一段时间才醒来进行集群信息的同步,所以大家需要遵循其中某一个设备的时钟来方便大家的同时唤醒,而这个负责维护集群时钟的设备则被称为锚设备(Anchor Master),而大家一起醒来同步时钟的这个时间段则被称为Discovery Window。

       在一个集群里的设备可以发布自己的服务,也可以订阅别人的服务,发布服务的一方叫做Publisher,订阅服务的一方则称之为Subscriber。完成了服务的发布和订阅后双方才算建立了真正的联系。接下来我们来总结一下在组网过程中提到的概念。

NAN数据链路的建立 

       当需要进行类似图片或者文件的传输时,这时候就需要建立NAN的Data Path也就是数据链路了。这里需要先介绍几个和数据链路相关的概念:

       首先是NAN Manager Interface(NMI)说的直白点这就是一个MAC地址,但是NAN所有和管理相关的操作都是通过这个MAC地址发出的,例如建立通信数据链路,测速。

       接下来是NAN Data Interface(NDI)这又是另一个MAC地址,当通讯数据链路建立好后,将会使用这个MAC地址完成数据通信工作。

       再接着是NAN Data Path(NDP)用于表示两个NAN设备之间建立的一条数据链路。

       然后是NAN Data Link(NDL),由于两个NAN设备之间可能存在多个服务队,每个服务队之间可能有不同的NDP,但是这两个NAN设备是唯一的,所以NDL泛指两个NAN设备之间建立的NDP的集合。

       最后则是NAN Data Cluster,指的是NDL的集合。

       用一组关系图来表示则可以如下:

 

       在协议的最初版本,建立的数据链路都是采用open的方式,即不加密传输。到了协议的第二版本则引入了NAN的加密传输,也就是在建立NDP的时候像正常的Wi-Fi一样,通过4次握手的过程协商出一套用于后续数据通信的加密秘钥。这个过程称为NAN对等加密协商。在后续的文章里我们将慢慢展开如何协商NAN的加密秘钥,已经如何用NFC进行密码的生成。

NAN的测距

       作为NAN网络三大功能之一的测距,其实相对简单,即利用RTT算法进行时间往返计算,最后取平均值后得到两个NAN设备之间的距离。

 

总结

       作为Wi-Fi联盟推出的一项Wi-Fi标准,不知道是限于没有好的应用还是大家不熟悉,不论是在国内还是国外都很少被提及,尤其是在国内,个人感觉还是挺可惜的,后续会抽时间按照NAN的三大功能展开,争取解释清楚NAN协议的内容,方便在以后的开发时,能让更多工程师不至于因为协议不清楚而错失一个好的选项。

参考:【1】Wi-Fi Aware Speciation V3.2

           【2】Wi-Fi Aware | Wi-Fi Alliance

           【3】iBeacon的强劲对手:Wifi Aware 你了解吗?


http://www.ppmy.cn/news/893632.html

相关文章

11 fi

#include<bits/stdc.h> using namespace std;int gw_sum(int n){int sum0;//不管几位&#xff0c;直接取个位&#xff0c;相加//类比进制转化中取每一位 while(n){sumn%10;n/10;} return sum; } int main(){int n,num0;int str1[1002],str2[1002];while(cin>>n){if…

WFI

1. WFI与WFE的区别为&#xff0c;WFI等待的是中断&#xff0c;而WFE等待是事件&#xff0c;所以WFE不能进入中断服务函数&#xff0c;而WFI可以。 2. 实验现象和WFE一样。 CLK_Config();//切换LSI为主时钟 //不使用的IO全部设置为输出低电平 GPIO_Init(GPIOA, GP…

Wi-Fi Direct

目录 前言 一、P2P的模型 1.1 P2P的组成 1.2 P2P的拓扑 1.3 P2P并发模式 1.4 功能和服务 1.4.1 基本功能和服务 1.4.2 P2P的特殊功能和服务 1.4.3 P2P的两种地址 二、P2P discovery阶段 2.1 介绍 2.2 P2P设备Discovery过程 2.3 Group Formation过程 2.3.1 P2P Ne…

Wi-Fi技术

1、Wi-Fi简介 Wi-Fi技术&#xff1a; Wi-Fi是一个创建于IEEE 802.11标准的无线局域网技术。IEEE 802.11是无线局域网通用的标准&#xff0c;它是由电气和电子工程师协会&#xff08;IEEE&#xff09;所定义的无线网络通信的标准。虽然经常将Wi-Fi与802.11混为一谈&#xff0…

Shell中的条件判断语句if~then~fi

Shell中的条件判断语句是前面一篇“Shell中的条件测试语句”的升级篇,也就是说,前面的测试语句是为了现在的判断语句if~then~fi语句服务的。 我们还是按照注意点和代码实现的方式铺开: 1)基本的if-then-fi语句可以用来判断基本的单层的分支结构,其形式如下:

FI 名词解释

1. 总帐科目主数据 general ledger account master data&#xff1a; 业务交易需要通过帐户进行记录和管理。R/3中需要为每一个帐户创建主记录&#xff0c;它包括控制业务交易的输入和数据处理的信息。 2.会计科目表 chart of accounts&#xff1a; 是R/3系统中所有总帐科目…

脚本中fi是什么意思

脚本中fi是什么意思 说明 说明 fi为if语句的结束,相当于end if //使用模板 if command thencommand elseif commandthencommandfi fi

Vue绑定class样式

效果&#xff1a;指定变换成某种颜色 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.basic{width: 400px;height: 100px;border: 1px solid black;}.happy{backg…