重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关WiFi组播配网原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供成都网站建设、成都网站制作、网站策划、网页设计、域名与空间、网络空间、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。
随着物联网的兴起,接入网络的IoT WiFi设备呈爆发趋势增长,这其中有很大一部分没有用户交互界面,而接入WiFi热点通常需要输入SSID和Password,WiFi组播配网技术很好的解决了这个问题,只需要一部手机就可以完成配网。
一、组播。
组播,英文名Multicast,这里有必要同时提下Broadcast和Unicast,翻译成中文分别是广播和单播,顾名思义,广播就是单台主机向网络中所有主机发送消息,单播是两台主机之间进行对话,而组播则是单台主机向特定的一组主机发送消息。在以太网数据帧头中会需要指定发送以及接受设备的MAC地址,以确定该数据包的来源与去向,广播时接收方的MAC地址为0xFFFFFFFFFFFF,单播时接收方的MAC地址为对端MAC地址,而组播时,接收方的MAC地址则与组地址之间有一个映射关系,而WiFi组播配网正是利用了这个组地址与MAC地址的映射。
用过网络抓包工具的肯定知道,抓包时会发现电脑经常与一些奇怪的ip地址进行UDP通讯,例如224.0.0.251,224.0.0.1,224.0.0.22,这些地址代表了一组特定的主机,路由器会将这些UDP包发送到加入该组的主机。关于组播技术的具体细节可以查阅相关文档了解,本文将不再赘述。ieee将224.0.0.0 ~ 239.255.255.255划定为组播保留地址,在以太网中,目的IP地址为组播保留地址的数据包,目的MAC地址需要做一个映射。具体做法是,MAC地址的3个高字节固定为01:00:5E,后三个字节依次为组地址的从高字节起的第二字节取低7位、组地址的第三字节和第四字节,例如组地址225.215.145.230对应的MAC地址为01:00:5E:57:91:E6,这里需要了解的是,虽然我们看到的组播MAC地址大多都为01:00:5E开头,但并不是只有以01:00:5E开头的MAC地址才是组播MAC地址,MAC地址的前24bit叫做organization unique identifier(OUI),01:00:5E是ieee的OUI,习惯性的被大多数厂商和文献使用,判断一个MAC是否为组播MAC的依据是MAC地址的第一个字节的bit0是否为1。
二、WiFi数据帧头结构
在介绍WiFi帧头结构之前,我们先了解下WiFi通信的一些基本原理。WiFi工作于2.4GHz与5.8GHz两个频段,为简单起见,5.8GHz频段暂时忽略。WiFi在2.4G频段共有14个信道,分别是1-14信道,其中14信道只有日本在使用,这些信道的中心频率依次是2.412GHz /2.417GHZ /2.422GHz /2.427GHz /2.432GHz /2.437GHz /2.442GHz /2.447GHz /2.452GHz /2.457GHz /2.462 GHz / 2.467GHz /2.472 GHz /2.484 GHz,第14信道与第13信道中心频率相差12MHz, 其他各相邻信道的中心频率相差5MHz。使用时,路由器工作在一个固定信道,wifi网卡会循环在1-13信道扫描wifi热点,最终用户选择的热点在哪个信道wifi网卡就会跳到该信道去连接这个热点。
下面是一个常见的802.11MAC帧,在802.11的MAC帧会标明目的MAC地址/源MAC地址/BSSID分别表示这个wifi数据帧发给哪个设备,来自哪个设备,从哪个路由器发出来的,wifi网卡需要根据目的MAC地址来区分哪些数据包是发给自己的应对处理,哪些数据包不是发给自己的需要丢弃。
802.11 MAC帧
2 byte | 2 byte | 6 byte | 6 byte | 6 byte | 2 byte | 6 byte | 0-2312 byte | 6 byte |
Frame Control | Duration /ID | Addr1 | Addr2 | Addr3 | Seq-ctrl | Addr4 | Frame body | FCS |
三、WiFi组播配网
wifi组播配网正是利用了之前所说的组地址与组播MAC地址之间的映射及wifi数据帧头中的MAC地址信息来传输配网信息。
在发送端,将需要传输的数据以2个字节为单位通过组播传输出去,为保证数据先后顺序的正确性,需要为这些数据编上号,为了便于接收端区分wifi组播数据帧是配网,双方约定使用一个同步头来作为前导,此外为保证传输的有效性还需要将校验值、数据长度、协议和版本号告诉接受端,如果消息超出了一次分包消息的长度,需要将数据分成多个数据包来传输,为了确保数据的安全性,采用AES加密算法将ssid/passphrase/pmk加密,为了确保不会出现0结尾的组地址,采用base64编码算法对密文进行编码。
监听端,使wifi网卡循环在1-13信道监听组播wifi数据帧,以约定的组播MAC地址为同步头,当监听到同步头之后,进入接收模式,只接收来自该MAC地址的组播wifi数据帧,在接收完包头信息及数据之后进行解析,依次将base64编码还原成aes密文,再使用之前约定的密钥解密,得到ssid/passphrase/pmk,完成配网。
关于WiFi组播配网原理是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。