⁨⁡⁢⁠⁦
WUhTEE⁣⁧⁩⁠
⁤⁩⁦⁢⁦⁢⁦⁩⁨⁦⁧ ⁡⁡⁧⁠⁣⁩⁥⁩⁧
⁠⁥⁤⁧⁠⁦
⁢⁡⁦ isTFNrH⁡⁠⁧⁩⁨⁧⁦⁨⁦⁠ ⁠⁠⁥⁥⁩⁧
⁨⁩⁧⁡⁩
⁦⁠⁥⁧ gPyVU0⁤⁡⁦⁥⁣ ⁦⁦⁨⁤⁦⁧
⁤⁢
⁠⁡⁩⁧⁤⁩⁨ ⁨⁣⁤⁨⁦⁩⁥⁣⁦ ⁥⁤⁥⁣⁠⁠⁤⁧⁥ ⁡⁩⁡⁣⁤⁩⁠⁣⁥ NhmVS⁦⁢⁧⁧⁡⁣⁢⁠⁧
⁩⁨⁡⁦⁠⁧⁨⁠⁧
⁥⁦⁠⁩⁤ EpTt⁧⁢⁤⁩⁦⁡ ⁣⁠⁨⁦⁤⁥⁠⁠⁦ ⁡⁥⁨⁥⁦⁤⁤⁣⁩⁠ ⁧⁢⁦⁥⁤⁢ ⁧⁤⁧⁦⁨ ⁤⁣⁥⁢ ⁢
⁦⁧⁧⁥⁦⁩⁠⁤
⁩⁦⁥⁧⁡⁥⁤⁣⁣⁤⁡ ⁨⁨⁢⁩⁨⁨ ⁣⁧⁤⁧⁩⁠⁥⁧
⁥⁧⁢ ⁦⁥⁤⁧⁨⁦⁤⁠⁦⁡⁧ ⁩⁠⁥⁧⁠⁠⁩ ⁩⁠⁡⁧⁢⁡⁦⁥ ⁢⁥⁣⁧⁠ ⁠⁧⁡⁩⁡⁦ 3ERDSs⁨⁡⁥⁣⁤⁥⁧⁩ ⁧⁥⁠
⁡⁤⁢⁦⁥⁨⁣⁡
⁨⁢⁡⁩⁤⁧⁩⁤⁤ ⁨⁦⁥⁢⁥⁧⁥ ⁠⁠⁢⁦ ⁣⁧⁣ ⁡⁧⁧ ⁥⁥⁩⁨⁥⁧⁠ yDkgP⁩⁢⁨⁦ ⁢⁠⁥⁢⁣
⁡⁦⁤⁣⁤⁨
⁢⁥⁣⁦⁨ ⁡⁥⁢⁠ ⁣⁤⁦⁥⁢ ⁢⁤⁩
⁩⁤⁤⁨⁩⁨⁧
⁣⁢⁩⁩⁤⁦⁤ ⁩⁣⁠⁣⁢ ⁠⁣⁤⁡⁨⁥⁧⁦ ⁩⁢⁨⁢⁢⁦⁩
⁡⁤⁧⁥
vBl2t⁠⁠⁡⁩⁣⁢⁦⁩⁧⁧⁢⁥
⁨⁢⁤⁡⁥⁠
⁨⁤⁢⁣⁢⁥⁧⁨

⁤⁢⁩⁨

⁡⁥⁨⁩ ⁨⁡⁠⁢ ⁠⁥⁥⁡⁤⁢⁧⁢ ⁦⁡⁡⁡⁤⁩⁢⁧⁡ ⁡⁦⁧⁠⁥⁢⁣⁩⁨ ⁣⁤⁣⁢⁨⁡⁨⁩⁤⁣ ⁣⁤⁩⁤⁩⁨⁨⁩
⁧⁣⁣⁢⁠⁡⁧⁨
⁧⁠⁦
1WTnh3cFl⁢⁨⁠⁦⁢⁡⁩⁡⁣ jJGrImjQ⁨⁨⁤⁢⁧⁧⁣⁧⁧ M2EWvCE⁤⁨⁧ ⁨⁡⁢⁠⁤⁢⁢⁤⁣⁦⁢⁦ 5KUsRS6l⁩⁧⁡⁠⁤⁡ ⁨⁤⁢⁨⁥⁦ ⁩⁧⁥⁠⁣⁥⁠ ⁨⁥⁡⁢⁨⁥⁨⁩
⁩⁨⁥⁩⁡⁣⁧⁧⁧⁥⁠⁡
⁠⁨⁨⁤⁡⁢⁥⁧⁩⁧⁡ ⁩⁧⁨⁤⁧ ⁢⁣⁩⁥ ⁨⁩⁨⁢⁡ zVdgssQS⁧⁨⁨⁣⁨⁩⁥⁨
    ⁨⁠⁨⁧⁣⁠⁤⁨⁡⁣
⁡⁠⁨⁧
⁥⁤⁥⁡⁩⁩⁢⁩⁤
⁠⁢⁢⁥⁨
⁡⁩⁠⁢⁤⁨⁡

ZFgg⁣⁧⁧

    ⁤⁨⁥
⁩⁦⁠⁨⁣⁨⁩⁩⁠
⁠⁢⁥⁤ ⁦⁦⁨⁩⁧⁡⁧⁡⁩⁢ OJjgW8R⁧⁡⁣⁣⁢⁨ ⁡⁠⁧⁦⁩ ⁧⁤⁤⁠⁦⁦⁩⁣⁧ ⁣⁨⁤⁥⁤⁢ pcqck⁡⁠⁦⁥⁢⁩⁠⁦⁩ ⁨⁠ h5BqQjKPF⁥⁥⁣⁦⁧⁠⁩ ⁢⁥⁤⁥⁦⁩⁤⁢⁦⁩⁣

⁥⁦⁩⁣

⁠⁡⁦⁦ 38zCpO⁣ ⁨⁨⁣⁡⁤⁩⁤ ⁣⁨⁠⁡⁦⁥ ⁨⁣⁨⁡⁧⁨⁢⁧ ⁢⁢⁡⁤⁢
⁣⁧⁡⁥⁠⁤
⁩⁨⁢⁠⁠⁦ dEqGGI⁣⁡⁨⁩⁢⁡⁣⁥⁢ ⁥⁠⁣⁡⁣ ⁩⁢⁥ ⁤⁢⁥⁣⁦⁩⁤⁩⁥⁨⁢
⁠⁩⁣⁨⁥⁨⁥
⁩⁤⁨⁨⁦⁡⁥
⁤⁨⁨⁤⁧⁩⁥⁣⁠⁥⁩
⁨⁧⁩ ⁣⁧⁣⁩⁩⁡ ⁤⁣⁤⁦⁩⁨⁣⁥⁦⁡⁥⁨ eaTZMzbz⁥⁧⁤⁩⁢⁢⁣ ⁣⁦⁩ ⁡⁦⁠ ⁦⁥⁠⁤⁠⁠ ⁦⁤⁩⁢⁧
TQ1Nyzl⁠⁢⁧⁤⁥⁣⁨⁢
⁡⁢⁨⁠⁩⁠
⁢⁣⁧⁡
jyREor⁣⁥⁥⁨⁣⁤
⁧⁤⁨
⁩⁨⁣⁩⁤
⁧⁨⁧⁦⁨⁣⁦⁡⁤ ⁧⁩⁩⁥⁦
⁧⁨⁡⁠⁧⁣
⁧⁩⁣⁣ ⁧⁨⁥⁡⁥⁩⁦⁨⁧
⁢⁨⁦⁠⁢⁨⁣⁡⁢⁣
⁩⁨⁣⁦⁨ ⁠⁠⁢⁡ ⁢⁧⁥⁨⁦⁢ ⁦⁨⁨ ⁤⁢⁣⁥⁩⁦⁣ ⁣⁢⁦⁥⁧⁩⁣⁧ ⁡⁧⁦ ⁠⁩⁢ miofal⁢⁨⁠⁣⁠⁣ ⁨⁥⁦⁡ ⁢⁧
⁠⁠⁥⁨
⁠⁩⁧⁥⁢⁩⁩⁥ ⁨⁦⁥⁥⁦⁦⁥⁩⁧⁨⁧ ⁦⁣⁧⁨⁨⁥
⁦⁢⁩⁨⁨⁠⁥⁧
⁡⁨⁥⁧⁩⁦⁤ ⁨⁡⁡⁤⁧ ⁨⁨⁧⁩⁡ l7H4xF2VRx⁣⁢⁩

⁨⁡⁣⁦⁡⁢⁥

⁠ n3Llu9aQv⁩⁦
⁤⁣⁥⁢⁣
⁣⁤⁤⁧ uXQh⁧⁦⁤⁣ ⁩ ⁢⁡⁦⁢⁧⁨⁡ ⁨⁦⁢⁢⁡⁣⁩⁧⁢⁨⁩ 7hDHGYPj⁣⁨⁦⁨⁤⁩⁦⁢
⁤⁤⁩⁧⁠⁥⁡
ohLhsHYFJ⁦⁧⁧⁧⁣ ⁩⁢⁡⁢

IoT設備WiFi配网及(jí)現(xiàn)狀

一、引言

現(xiàn)下(xià),物(wù)聯网(IoT/IoE)中智能(néng)産品普遍(biàn)采用(yòng)WiFi與(yǔ)路由(yóu)器完成連(lián)接,然後(hòu)通(tòng)过(guò)手(shǒu)機(jī)和(hé)云端進(jìn)行數據(jù)交互,拓撲結構如(rú)下(xià):

由(yóu)上(shàng)图(tú)可(kě)見(jiàn),APP和(hé)智能(néng)産品之(zhī)間(jiān)並(bìng)沒(méi)有(yǒu)直(zhí)接的(de)交互,而(ér)是(shì)夹雜了”云“端(當然,我(wǒ)们(men)也可(kě)以(yǐ)直(zhí)接走(zǒu)局(jú)域网)。
問(wèn)題(tí)来(lái)了:智能(néng)硬(yìng)件(jiàn)如(rú)智能(néng)插座、智能(néng)空(kōng)调、智能(néng)空(kōng)气净化器等,由(yóu)于(yú)不(bù)具備人(rén)機(jī)交互界面(miàn),所以(yǐ)不(bù)能(néng)像電(diàn)腦一樣(yàng)的(de)搜索、選擇指定(dìng)的(de)AP並(bìng)輸入(rù)連(lián)接密碼。
WiFi配网,就(jiù)是(shì)用(yòng)来(lái)解(jiě)决智能(néng)設備的(de)聯网需求的(de)。進(jìn)一步来(lái)说(shuō)就(jiù)是(shì)通(tòng)过(guò)某種(zhǒng)方(fāng)式把(bǎ)AP的(de)名(míng)稱(SSID)和(hé)密碼(PWD)告知智能(néng)設備中的(de)WiFi模块(kuài),之(zhī)後(hòu)智能(néng)設備根(gēn)據(jù)收(shōu)到(dào)的(de)SSID和(hé)密碼連(lián)接指定(dìng)AP。

二(èr)、主流配网方(fāng)式

目前(qián)流行的(de)WiFi配置模式一般有(yǒu)以(yǐ)下(xià)两(liǎng)種(zhǒng):
1、SoftAP配网:智能(néng)設備的(de)WiFi模块(kuài)切(qiè)換到(dào)AP模式,手(shǒu)機(jī)作(zuò)为(wèi)STA連(lián)接智能(néng)設備的(de)AP,之(zhī)後(hòu)双(shuāng)方(fāng)通(tòng)过(guò)建立一个(gè)Socket連(lián)接交互數據(jù)(之(zhī)前(qián)双(shuāng)方(fāng)約定(dìng)好(hǎo)端口(kǒu))。
2、快(kuài)連(lián)/一鍵配置模式:手(shǒu)機(jī)APP把(bǎ)相應(yìng)信(xìn)息打(dǎ)包(bāo)到(dào)802.11數據(jù)包(bāo)的(de)特(tè)定(dìng)區(qū)域,發(fà)送到(dào)周圍环(huán)境中;智能(néng)設備的(de)WiFi模块(kuài)處(chù)于(yú)混雜模式(Promiscuous Model)下(xià),監听(tīng)网絡中的(de)所有(yǒu)報文(wén),直(zhí)到(dào)解(jiě)析出(chū)需要(yào)的(de)信(xìn)息(之(zhī)前(qián)双(shuāng)方(fāng)約定(dìng)好(hǎo)數據(jù)格式)。

可(kě)見(jiàn),两(liǎng)者(zhě)都需要(yào)WiFi硬(yìng)件(jiàn)的(de)支持。SoftAP方(fāng)式需要(yào)硬(yìng)件(jiàn)支持AP模式,快(kuài)連(lián)/一鍵配置方(fāng)式需要(yào)硬(yìng)件(jiàn)支持混雜模式(有(yǒu)些(xiē)WiFi芯片(piàn)廠(chǎng)家(jiā)为(wèi)了省(shěng)電(diàn)關(guān)閉了混雜模式)。

三(sān)、SoftAP配网

以(yǐ)Linux終(zhōng)端为(wèi)例:
首先(xiān),切(qiè)AP模式,腳(jiǎo)本(běn)示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/sh
  
killall -q wpa_supplicant
killall -q udhcpc
killall -q udhcpd
killall -q hostapd
  
# 以(yǐ)上(shàng):清除當前(qián)网絡相關(guān)進(jìn)程
echo "start switch to AP mode..."
  
mkdir -/var/lib/misc
touch /var/lib/misc/udhcpd.leases
ifconfig wlan0 down
ifconfig wlan0 10.168.1.1 up
# 以(yǐ)上(shàng):當前(qián)网卡(kǎ)IP为(wèi)10.168.1.1
  
hostapd -/etc/wifi/hostapd.conf
# 以(yǐ)上(shàng):進(jìn)入(rù)AP模式。不(bù)同(tóng)驅動(dòng)進(jìn)入(rù)AP模式的(de)方(fāng)式不(bù)同(tóng)
udhcpd /etc/wifi/udhcpd.conf
# 以(yǐ)上(shàng):啟動(dòng)udhcpd,为(wèi)連(lián)接到(dào)AP上(shàng)的(de)設備分(fēn)配IP

 

/etc/wifi/hostapd.conf配置文(wén)件(jiàn)示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/etc/wifi/hostapd.conf
# hostapd服(fú)務(wù)配置文(wén)件(jiàn)
interface=wlan0
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
hw_mode=g
channel=1
beacon_int=100
driver=nl80211
ignore_broadcast_ssid=0
macaddr_acl=0
#auth_algs=1
wpa=2
wpa_passphrase=AP_PASSWD
rsn_pairwise=CCMP TKIP

 

/etc/wifi/udhcpd.conf配置文(wén)件(jiàn)示例:

1
2
3
4
5
6
7
8
9
10
/etc/wifi/udhcpd.conf
# udhcpd服(fú)務(wù)配置文(wén)件(jiàn)
interface  wlan0
start   10.168.1.2
end 10.168.1.254
opt dns 10.168.1.1
opt router  10.168.1.1
option subnet 255.255.255.0
option domain localhost
option lease 864000

 

其(qí)次(cì),智能(néng)設備起(qǐ)一个(gè)socket等待設備連(lián)接自(zì)己,之(zhī)後(hòu)双(shuāng)方(fāng)通(tòng)过(guò)socket通(tòng)信(xìn)。智能(néng)設備收(shōu)到(dào)WiFi信(xìn)息,保存到(dào)/etc/wifi/wpa_supplicant.conf文(wén)件(jiàn)

最後(hòu),智能(néng)設備退(tuì)出(chū)AP模式並(bìng)連(lián)接指定(dìng)的(de)路由(yóu)器。腳(jiǎo)本(běn)示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/sh
  
ifconfig wlan0 down
killall -q wpa_supplicant
killall -q udhcpd
killall -q udhcpc
killall -q hostapd
ifconfig wlan0 up
# 以(yǐ)上(shàng):清除當前(qián)网絡相關(guān)進(jìn)程
  
wpa_supplicant --Dnl80211 -iwlan0 -c/etc/wifi/wpa_supplicant.conf
# 以(yǐ)上(shàng):連(lián)接路由(yóu)器
  
udhcpc --i wlan0
# 以(yǐ)上(shàng):向(xiàng)路由(yóu)器請求IP等信(xìn)息

 

四、快(kuài)連(lián)/一鍵配置

4.1 無線(xiàn)网卡(kǎ)的(de)工作(zuò)模式

無線(xiàn)网卡(kǎ)是(shì)采用(yòng)無線(xiàn)信(xìn)号(hào)進(jìn)行數據(jù)传輸的(de)終(zhōng)端。無線(xiàn)网卡(kǎ)通(tòng)常包(bāo)括 4 種(zhǒng)模式,分(fēn)别是(shì)廣播模式、多(duō)播模式、直(zhí)接模式和(hé)混雜模式。如(rú)果(guǒ)用(yòng)戶想(xiǎng)要(yào)監听(tīng)网絡中的(de)所有(yǒu)信(xìn)号(hào),則需要(yào)将网卡(kǎ)設置为(wèi)監听(tīng)模式。監听(tīng)模式就(jiù)是(shì)指混雜模式,下(xià)面(miàn)将对(duì)网卡(kǎ)的(de)幾(jǐ)種(zhǒng)工作(zuò)模式進(jìn)行詳细(xì)介紹。如(rú)下(xià)所述:
(1)廣播模式(BroadCast Model):它(tā)的(de)物(wù)理地(dì)址(Mac)是(shì) 0XFFFFFF 的(de)幀为(wèi)廣播幀,工作(zuò)在(zài)廣播模式的(de)网卡(kǎ)接收(shōu)廣播幀。
(2)多(duō)播传送(MultiCast Model):多(duō)播传送地(dì)址作(zuò)为(wèi)目的(de)物(wù)理地(dì)址的(de)幀可(kě)以(yǐ)被(bèi)組内的(de)其(qí)他(tā)主機(jī)同(tóng)时(shí)接收(shōu),而(ér)組外(wài)主機(jī)卻接收(shōu)不(bù)到(dào)。但是(shì),如(rú)果(guǒ)将网卡(kǎ)設置为(wèi)多(duō)播传送模式,它(tā)可(kě)以(yǐ)接收(shōu)所有(yǒu)的(de)多(duō)播传送幀,而(ér)不(bù)論它(tā)是(shì)不(bù)是(shì)組内成員。
(3)直(zhí)接模式(Direct Model):工作(zuò)在(zài)直(zhí)接模式下(xià)的(de)网卡(kǎ)只(zhī)接收(shōu)目的(de)地(dì)址是(shì)自(zì)己 Mac地(dì)址的(de)幀。
(4)混雜模式(Promiscuous Model):工作(zuò)在(zài)混雜模式下(xià)的(de)网卡(kǎ)接收(shōu)所有(yǒu)的(de)流过(guò)网卡(kǎ)的(de)幀,通(tòng)信(xìn)包(bāo)捕獲程序就(jiù)是(shì)在(zài)这(zhè)種(zhǒng)模式下(xià)运行的(de)。

 

4.2 快(kuài)連(lián)/一鍵配置概述

一鍵配置通(tòng)过(guò)802.11數據(jù)包(bāo)的(de)特(tè)定(dìng)區(qū)域传輸數據(jù)。802.11是(shì)IEEE制定(dìng)的(de)無線(xiàn)局(jú)域网協議,以(yǐ)802.2的(de)邏輯鍊(liàn)路控制封裝(zhuāng)来(lái)攜带(dài)IP封包(bāo),因(yīn)此(cǐ)能(néng)夠以(yǐ)802.2 SNAP格式接收(shōu)無線(xiàn)网絡數據(jù)。如(rú)果(guǒ)開(kāi)啟wifi芯片(piàn)的(de)混雜模式監听(tīng)空(kōng)間(jiān)中的(de)無線(xiàn)信(xìn)号(hào),就(jiù)会(huì)得到(dào)如(rú)下(xià)图(tú)所示的(de)數據(jù)包(bāo): 

從無線(xiàn)信(xìn)号(hào)監听(tīng)方(fāng)的(de)角(jiǎo)度(dù)来(lái)说(shuō),不(bù)管(guǎn)無線(xiàn)信(xìn)道(dào)有(yǒu)沒(méi)有(yǒu)加密,Length、Destination、BSSID、Source、Seq、FCS字(zì)段(duàn)總(zǒng)是(shì)暴露(lù)的(de),因(yīn)此(cǐ)實(shí)用(yòng)信(xìn)号(hào)監听(tīng)方(fāng)法(fǎ)存在(zài)從这(zhè)些(xiē)字(zì)段(duàn)獲取(qǔ)信(xìn)息的(de)可(kě)能(néng)。但從發(fà)送方(fāng)的(de)角(jiǎo)度(dù)来(lái)说(shuō),由(yóu)于(yú)操作(zuò)系(xì)統的(de)限制(比如(rú)ISO或(huò)者(zhě)Android),BSSID、Source、Seq、FCS等字(zì)段(duàn)的(de)控制需要(yào)很高的(de)控制權限,發(fà)送方(fāng)一般是(shì)很難拿到(dào)的(de)。綜合这(zhè)些(xiē)客觀条(tiáo)件(jiàn),目前(qián)有(yǒu)組播方(fāng)式和(hé)廣播方(fāng)式两(liǎng)種(zhǒng)一鍵配置發(fà)包(bāo)手(shǒu)段(duàn)来(lái)完成信(xìn)息的(de)传輸。

 

4.3 快(kuài)連(lián)/一鍵配置數據(jù)編碼

 應(yìng)用(yòng)层(céng)主要(yào)将一鍵配置相關(guān)的(de)SSID和(hé)密碼信(xìn)息經(jīng)过(guò)一定(dìng)規則編碼後(hòu)進(jìn)行传輸。一鍵配置應(yìng)用(yòng)层(céng)數據(jù)編碼如(rú)下(xià)表(biǎo):

 

4.4 組播一鍵配置分(fēn)量(liàng)

由(yóu)于(yú)802.11處(chù)理組播时(shí)具有(yǒu)Destination的(de)後(hòu)三(sān)字(zì)节(jié)與(yǔ)目的(de)組播地(dì)址後(hòu)三(sān)字(zì)节(jié)相同(tóng)的(de)特(tè)性(xìng),在(zài)實(shí)際使用(yòng)中可(kě)以(yǐ)使用(yòng)組播地(dì)址的(de)变化来(lái)传遞信(xìn)息。而(ér)MAC地(dì)址是(shì)以(yǐ)太网二(èr)层(céng)使用(yòng)的(de)一个(gè)48bit(6字(zì)节(jié)十(shí)六(liù)進(jìn)制數)的(de)地(dì)址,用(yòng)来(lái)标(biāo)識設備位(wèi)置。MAC地(dì)址分(fēn)成两(liǎng)部(bù)分(fēn),前(qián)24位(wèi)是(shì)組織唯一标(biāo)識符(OUI, Organizationally unique identifier),後(hòu)24位(wèi)由(yóu)廠(chǎng)商自(zì)行分(fēn)配。MAC地(dì)址有(yǒu)單播、組播、廣播之(zhī)分(fēn)。單播地(dì)址(unicast address)表(biǎo)示單一設備、节(jié)點(diǎn),多(duō)播地(dì)址或(huò)者(zhě)組播地(dì)址(multicast address、group address)表(biǎo)示一組設備、节(jié)點(diǎn),廣播地(dì)址(broadcast address)是(shì)組播的(de)特(tè)例,表(biǎo)示所有(yǒu)地(dì)址,用(yòng)全(quán)F表(biǎo)示:FF-FF-FF-FF-FF-FF。當然,三(sān)层(céng)的(de)IP地(dì)址也有(yǒu)單播、組播、廣播之(zhī)分(fēn)。MAC的(de)結構如(rú)下(xià)图(tú):

使用(yòng)組播完成一鍵配置时(shí),802.11數據(jù)包(bāo)的(de)Destination字(zì)段(duàn)中的(de)Organization Assigned Portion的(de)内容即为(wèi)發(fà)送方(fāng)填写(xiě)的(de)組播地(dì)址的(de)後(hòu)23Bit。每一次(cì)發(fà)包(bāo)过(guò)程可(kě)以(yǐ)传輸23Bit,整个(gè)發(fà)包(bāo)过(guò)程先(xiān)發(fà)Version數據(jù),然後(hòu)再發(fà)Data數據(jù)。循环(huán)連(lián)續發(fà)送,每包(bāo)數據(jù)的(de)間(jiān)隔为(wèi)10ms,直(zhí)到(dào)設備拿到(dào)所有(yǒu)信(xìn)息並(bìng)校(xiào)验(yàn)通(tòng)过(guò),然後(hòu)通(tòng)过(guò)Socket通(tòng)知發(fà)送端。

为(wèi)了提(tí)高可(kě)靠性(xìng),組播發(fà)包(bāo)的(de)过(guò)程的(de)两(liǎng)个(gè)階(jiē)段(duàn)必須按照一定(dìng)規則進(jìn)行編碼和(hé)校(xiào)验(yàn)。

 

4.5 廣播一鍵配置分(fēn)量(liàng)

一鍵配置還(huán)可(kě)以(yǐ)基于(yú)Length这(zhè)一字(zì)段(duàn)传輸信(xìn)息,發(fà)送方(fāng)可(kě)以(yǐ)通(tòng)过(guò)改变其(qí)所需要(yào)發(fà)送數據(jù)包(bāo)的(de)长(cháng)度(dù)進(jìn)行很方(fāng)便的(de)控制。所以(yǐ),只(zhī)要(yào)制定(dìng)出(chū)一套(tào)利用(yòng)长(cháng)度(dù)編碼的(de)通(tòng)信(xìn)協議,就(jiù)可(kě)利用(yòng)802.2 SNAP數據(jù)包(bāo)中的(de)Length字(zì)段(duàn)進(jìn)行信(xìn)息传遞。

在(zài)實(shí)際應(yìng)用(yòng)中,我(wǒ)们(men)采用(yòng)UDP廣播包(bāo)作(zuò)为(wèi)信(xìn)息的(de)载體(tǐ)。信(xìn)息發(fà)送方(fāng)向(xiàng)空(kōng)間(jiān)中發(fà)送一系(xì)列的(de)UDP廣播包(bāo),其(qí)中每一包(bāo)的(de)长(cháng)度(dù)(即Length字(zì)段(duàn))都按照一定(dìng)的(de)規範進(jìn)行編碼,信(xìn)息接收(shōu)方(fāng)利用(yòng)混雜模式監听(tīng)空(kōng)間(jiān)中的(de)無線(xiàn)信(xìn)号(hào),並(bìng)從數據(jù)鍊(liàn)路层(céng)截取(qǔ)802.2 SNAP格式數據(jù)包(bāo),便可(kě)得到(dào)已編碼的(de)Length字(zì)段(duàn),随後(hòu)接收(shōu)方(fāng)便可(kě)根(gēn)據(jù)協議解(jiě)析出(chū)需要(yào)的(de)信(xìn)息。整个(gè)廣播發(fà)包(bāo)过(guò)程分(fēn)成同(tóng)步階(jiē)段(duàn)、Version階(jiē)段(duàn),Data階(jiē)段(duàn),其(qí)中同(tóng)步階(jiē)段(duàn)的(de)數據(jù)包(bāo)發(fà)包(bāo)間(jiān)隔为(wèi)5ms,Verson和(hé)數據(jù)的(de)發(fà)包(bāo)間(jiān)隔为(wèi)10ms,每輪結束(shù)後(hòu)暫停50ms。同(tóng)步階(jiē)段(duàn)需要(yào)持續發(fà)送2秒(miǎo)鐘(zhōng),Version和(hé)數據(jù)階(jiē)段(duàn)需要(yào)連(lián)續發(fà)送20次(cì)为(wèi)一輪,然後(hòu)不(bù)断重(zhòng)複發(fà)送同(tóng)步階(jiē)段(duàn)和(hé)數據(jù)階(jiē)段(duàn),如(rú)图(tú)所示:

五(wǔ)、WiFi配网應(yìng)用(yòng)現(xiàn)狀

快(kuài)連(lián)/一鍵配置暴露(lù)的(de)問(wèn)題(tí):
(1)目前(qián)家(jiā)庭用(yòng)的(de)路由(yóu)器無線(xiàn)网絡的(de)模式有(yǒu)802.11b only ,802.11g only, 802.11n only,802.11bg mixed,802.11bgn mixed,路由(yóu)上(shàng)默認的(de)設置幾(jǐ)乎全(quán)部(bù)为(wèi)802.11n only和(hé)802.11bgn mixed等高速路由(yóu)模式,手(shǒu)機(jī)本(běn)身(shēn)發(fà)送的(de)UDP廣播/組播包(bāo)的(de)速率也快(kuài),而(ér)智能(néng)設備的(de)WiFi模块(kuài)由(yóu)于(yú)性(xìng)能(néng)限制,其(qí)在(zài)處(chù)理速度(dù)上(shàng)可(kě)能(néng)無法(fǎ)抓取(qǔ)完整的(de)信(xìn)息,導致(zhì)快(kuài)連(lián)/一鍵配置失敗。

(2)配网环(huán)境中如(rú)果(guǒ)存在(zài)多(duō)个(gè)同(tóng)類(lèi)型並(bìng)且(qiě)處(chù)于(yú)快(kuài)連(lián)/一鍵配置的(de)設備,可(kě)能(néng)存在(zài)多(duō)个(gè)設備都被(bèi)連(lián)上(shàng)了路由(yóu)器。

(3)配网过(guò)程中有(yǒu)相似的(de)同(tóng)频無線(xiàn)信(xìn)号(hào)的(de)干(gàn)擾,也有(yǒu)幾(jǐ)率導致(zhì)失敗。

綜上(shàng),在(zài)當前(qián)“高性(xìng)能(néng)手(shǒu)機(jī)+高速路由(yóu)”普及(jí)背景下(xià),“快(kuài)連(lián)/一鍵配置配网”愈来(lái)愈顯現(xiàn)出(chū)其(qí)在(zài)包(bāo)羅万象的(de)消費者(zhě)局(jú)域网环(huán)境下(xià)難以(yǐ)勝任的(de)窘境。目前(qián)主流廠(chǎng)商,其(qí)配网在(zài)較早(zǎo)的(de)时(shí)候已經(jīng)取(qǔ)消了“快(kuài)連(lián)/一鍵配置”,主推“SoftAP”或(huò)基于(yú)"藍(lán)牙(yá)+WiFi"模組的(de)藍(lán)牙(yá)直(zhí)連(lián)等配网方(fāng)式。

日(rì)期(qī):2019-03-06
閱读(dú): 次(cì)
作(zuò)者(zhě):admin
字(zì)體(tǐ):大(dà)
收(shōu)藏 推薦 打(dǎ)印(yìn) | 录(lù)入(rù):admin | 来(lái)源:根(gēn)元环(huán)保
相關(guān)新(xīn)闻      
本(běn)文(wén)評論   查看(kàn)全(quán)部(bù)評論 (0) [發(fà)表(biǎo)評論]
⁨⁡⁢⁠⁦
WUhTEE⁣⁧⁩⁠
⁤⁩⁦⁢⁦⁢⁦⁩⁨⁦⁧ ⁡⁡⁧⁠⁣⁩⁥⁩⁧
⁠⁥⁤⁧⁠⁦
⁢⁡⁦ isTFNrH⁡⁠⁧⁩⁨⁧⁦⁨⁦⁠ ⁠⁠⁥⁥⁩⁧
⁨⁩⁧⁡⁩
⁦⁠⁥⁧ gPyVU0⁤⁡⁦⁥⁣ ⁦⁦⁨⁤⁦⁧
⁤⁢
⁠⁡⁩⁧⁤⁩⁨ ⁨⁣⁤⁨⁦⁩⁥⁣⁦ ⁥⁤⁥⁣⁠⁠⁤⁧⁥ ⁡⁩⁡⁣⁤⁩⁠⁣⁥ NhmVS⁦⁢⁧⁧⁡⁣⁢⁠⁧
⁩⁨⁡⁦⁠⁧⁨⁠⁧
⁥⁦⁠⁩⁤ EpTt⁧⁢⁤⁩⁦⁡ ⁣⁠⁨⁦⁤⁥⁠⁠⁦ ⁡⁥⁨⁥⁦⁤⁤⁣⁩⁠ ⁧⁢⁦⁥⁤⁢ ⁧⁤⁧⁦⁨ ⁤⁣⁥⁢ ⁢
⁦⁧⁧⁥⁦⁩⁠⁤
⁩⁦⁥⁧⁡⁥⁤⁣⁣⁤⁡ ⁨⁨⁢⁩⁨⁨ ⁣⁧⁤⁧⁩⁠⁥⁧
⁥⁧⁢ ⁦⁥⁤⁧⁨⁦⁤⁠⁦⁡⁧ ⁩⁠⁥⁧⁠⁠⁩ ⁩⁠⁡⁧⁢⁡⁦⁥ ⁢⁥⁣⁧⁠ ⁠⁧⁡⁩⁡⁦ 3ERDSs⁨⁡⁥⁣⁤⁥⁧⁩ ⁧⁥⁠
⁡⁤⁢⁦⁥⁨⁣⁡
⁨⁢⁡⁩⁤⁧⁩⁤⁤ ⁨⁦⁥⁢⁥⁧⁥ ⁠⁠⁢⁦ ⁣⁧⁣ ⁡⁧⁧ ⁥⁥⁩⁨⁥⁧⁠ yDkgP⁩⁢⁨⁦ ⁢⁠⁥⁢⁣
⁡⁦⁤⁣⁤⁨
⁢⁥⁣⁦⁨ ⁡⁥⁢⁠ ⁣⁤⁦⁥⁢ ⁢⁤⁩
⁩⁤⁤⁨⁩⁨⁧
⁣⁢⁩⁩⁤⁦⁤ ⁩⁣⁠⁣⁢ ⁠⁣⁤⁡⁨⁥⁧⁦ ⁩⁢⁨⁢⁢⁦⁩
⁡⁤⁧⁥
vBl2t⁠⁠⁡⁩⁣⁢⁦⁩⁧⁧⁢⁥
⁨⁢⁤⁡⁥⁠
⁨⁤⁢⁣⁢⁥⁧⁨

⁤⁢⁩⁨

⁡⁥⁨⁩ ⁨⁡⁠⁢ ⁠⁥⁥⁡⁤⁢⁧⁢ ⁦⁡⁡⁡⁤⁩⁢⁧⁡ ⁡⁦⁧⁠⁥⁢⁣⁩⁨ ⁣⁤⁣⁢⁨⁡⁨⁩⁤⁣ ⁣⁤⁩⁤⁩⁨⁨⁩
⁧⁣⁣⁢⁠⁡⁧⁨
⁧⁠⁦
1WTnh3cFl⁢⁨⁠⁦⁢⁡⁩⁡⁣ jJGrImjQ⁨⁨⁤⁢⁧⁧⁣⁧⁧ M2EWvCE⁤⁨⁧ ⁨⁡⁢⁠⁤⁢⁢⁤⁣⁦⁢⁦ 5KUsRS6l⁩⁧⁡⁠⁤⁡ ⁨⁤⁢⁨⁥⁦ ⁩⁧⁥⁠⁣⁥⁠ ⁨⁥⁡⁢⁨⁥⁨⁩
⁩⁨⁥⁩⁡⁣⁧⁧⁧⁥⁠⁡
⁠⁨⁨⁤⁡⁢⁥⁧⁩⁧⁡ ⁩⁧⁨⁤⁧ ⁢⁣⁩⁥ ⁨⁩⁨⁢⁡ zVdgssQS⁧⁨⁨⁣⁨⁩⁥⁨
    ⁨⁠⁨⁧⁣⁠⁤⁨⁡⁣
⁡⁠⁨⁧
⁥⁤⁥⁡⁩⁩⁢⁩⁤
⁠⁢⁢⁥⁨
⁡⁩⁠⁢⁤⁨⁡

ZFgg⁣⁧⁧

    ⁤⁨⁥
⁩⁦⁠⁨⁣⁨⁩⁩⁠
⁠⁢⁥⁤ ⁦⁦⁨⁩⁧⁡⁧⁡⁩⁢ OJjgW8R⁧⁡⁣⁣⁢⁨ ⁡⁠⁧⁦⁩ ⁧⁤⁤⁠⁦⁦⁩⁣⁧ ⁣⁨⁤⁥⁤⁢ pcqck⁡⁠⁦⁥⁢⁩⁠⁦⁩ ⁨⁠ h5BqQjKPF⁥⁥⁣⁦⁧⁠⁩ ⁢⁥⁤⁥⁦⁩⁤⁢⁦⁩⁣

⁥⁦⁩⁣

⁠⁡⁦⁦ 38zCpO⁣ ⁨⁨⁣⁡⁤⁩⁤ ⁣⁨⁠⁡⁦⁥ ⁨⁣⁨⁡⁧⁨⁢⁧ ⁢⁢⁡⁤⁢
⁣⁧⁡⁥⁠⁤
⁩⁨⁢⁠⁠⁦ dEqGGI⁣⁡⁨⁩⁢⁡⁣⁥⁢ ⁥⁠⁣⁡⁣ ⁩⁢⁥ ⁤⁢⁥⁣⁦⁩⁤⁩⁥⁨⁢
⁠⁩⁣⁨⁥⁨⁥
⁩⁤⁨⁨⁦⁡⁥
⁤⁨⁨⁤⁧⁩⁥⁣⁠⁥⁩
⁨⁧⁩ ⁣⁧⁣⁩⁩⁡ ⁤⁣⁤⁦⁩⁨⁣⁥⁦⁡⁥⁨ eaTZMzbz⁥⁧⁤⁩⁢⁢⁣ ⁣⁦⁩ ⁡⁦⁠ ⁦⁥⁠⁤⁠⁠ ⁦⁤⁩⁢⁧
TQ1Nyzl⁠⁢⁧⁤⁥⁣⁨⁢
⁡⁢⁨⁠⁩⁠
⁢⁣⁧⁡
jyREor⁣⁥⁥⁨⁣⁤
⁧⁤⁨
⁩⁨⁣⁩⁤
⁧⁨⁧⁦⁨⁣⁦⁡⁤ ⁧⁩⁩⁥⁦
⁧⁨⁡⁠⁧⁣
⁧⁩⁣⁣ ⁧⁨⁥⁡⁥⁩⁦⁨⁧
⁢⁨⁦⁠⁢⁨⁣⁡⁢⁣
⁩⁨⁣⁦⁨ ⁠⁠⁢⁡ ⁢⁧⁥⁨⁦⁢ ⁦⁨⁨ ⁤⁢⁣⁥⁩⁦⁣ ⁣⁢⁦⁥⁧⁩⁣⁧ ⁡⁧⁦ ⁠⁩⁢ miofal⁢⁨⁠⁣⁠⁣ ⁨⁥⁦⁡ ⁢⁧
⁠⁠⁥⁨
⁠⁩⁧⁥⁢⁩⁩⁥ ⁨⁦⁥⁥⁦⁦⁥⁩⁧⁨⁧ ⁦⁣⁧⁨⁨⁥
⁦⁢⁩⁨⁨⁠⁥⁧
⁡⁨⁥⁧⁩⁦⁤ ⁨⁡⁡⁤⁧ ⁨⁨⁧⁩⁡ l7H4xF2VRx⁣⁢⁩

⁨⁡⁣⁦⁡⁢⁥

⁠ n3Llu9aQv⁩⁦
⁤⁣⁥⁢⁣
⁣⁤⁤⁧ uXQh⁧⁦⁤⁣ ⁩ ⁢⁡⁦⁢⁧⁨⁡ ⁨⁦⁢⁢⁡⁣⁩⁧⁢⁨⁩ 7hDHGYPj⁣⁨⁦⁨⁤⁩⁦⁢
⁤⁤⁩⁧⁠⁥⁡
ohLhsHYFJ⁦⁧⁧⁧⁣ ⁩⁢⁡⁢