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

前言

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

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

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

       这就是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 你了解吗?

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值