徐石雄,曹秋挺
(1.杭州??低晹?shù)字技術(shù)股份有限公司,浙江 杭州 310000;2.浙江建設(shè)職業(yè)技術(shù)學(xué)院,浙江 杭州 310000)
隨著物聯(lián)網(wǎng)的發(fā)展,越來(lái)越多的智能硬件存在接入無(wú)線網(wǎng)絡(luò)的需求[1-2]。智能手機(jī)、電腦等具有輸入裝置(觸摸屏或鍵盤(pán))的終端[3]易于接入無(wú)線網(wǎng)絡(luò),即通過(guò)輸入裝置輸入所要接入無(wú)線網(wǎng)絡(luò)的網(wǎng)絡(luò)名稱(chēng)和密碼,待該網(wǎng)絡(luò)名稱(chēng)和密碼得到產(chǎn)生該無(wú)線網(wǎng)絡(luò)的中轉(zhuǎn)設(shè)備(如路由器)的認(rèn)證后即可快速連接。但對(duì)于智能攝像頭和智能插座等終端而言,由于產(chǎn)品上未設(shè)置類(lèi)似輸入裝置,只有依靠具備輸入裝置的其他終端(手機(jī)等),使用無(wú)線通信才能接入網(wǎng)絡(luò)。因此,針對(duì)WiFi無(wú)線通信的物聯(lián)網(wǎng)設(shè)備,通過(guò)設(shè)置WiFi芯片的嗅探模式[4]偵聽(tīng)WiFi的用戶(hù)名以及密碼,用以解決無(wú)輸入裝置的智能硬件接入無(wú)線網(wǎng)絡(luò)的問(wèn)題。該設(shè)計(jì)方案已在智能攝像機(jī)、智能插座等產(chǎn)品上得到應(yīng)用。
系統(tǒng)總體結(jié)構(gòu)如圖1所示,主要包括發(fā)送設(shè)備、轉(zhuǎn)發(fā)設(shè)備和接收設(shè)備。發(fā)送設(shè)備是指一個(gè)已經(jīng)接入有線或無(wú)線網(wǎng)絡(luò)功能的智能設(shè)備,如電腦、智能手機(jī)等。接收設(shè)備是指一個(gè)或多個(gè)待接入網(wǎng)絡(luò)的無(wú)線網(wǎng)絡(luò)智能設(shè)備,通常缺少便捷的輸入裝置,如智能攝像頭、智能插座等。轉(zhuǎn)發(fā)設(shè)備是指具有無(wú)線路由功能的設(shè)備,如無(wú)線路由器等。
圖1 系統(tǒng)總體結(jié)構(gòu)
用戶(hù)在發(fā)送設(shè)備中輸入網(wǎng)絡(luò)名稱(chēng)與網(wǎng)絡(luò)密碼,其他由用戶(hù)自定義原始信息,點(diǎn)擊“OK”,加密待發(fā)送數(shù)據(jù)后發(fā)送給轉(zhuǎn)發(fā)設(shè)備。轉(zhuǎn)發(fā)設(shè)備對(duì)發(fā)送設(shè)備發(fā)出的數(shù)據(jù)在某個(gè)信道上進(jìn)行轉(zhuǎn)發(fā),接收設(shè)備獲取周?chē)h(huán)境的WiFi網(wǎng)絡(luò)信道情況。接收設(shè)備在混雜模式下循環(huán)判斷之前獲取的信道列表,接收設(shè)備在混雜模式下獲得轉(zhuǎn)發(fā)設(shè)備發(fā)送的數(shù)據(jù)后判斷是否接收完畢。接收設(shè)備接收完轉(zhuǎn)發(fā)設(shè)備發(fā)送的全部數(shù)據(jù)后退出混雜模式。接收設(shè)備解密收到全部數(shù)據(jù)后獲得輸入網(wǎng)絡(luò)名稱(chēng)和網(wǎng)絡(luò)密碼。接收設(shè)備向SSID對(duì)應(yīng)的轉(zhuǎn)發(fā)設(shè)備執(zhí)行接入連接請(qǐng)求操作。
用戶(hù)數(shù)據(jù)的發(fā)送充分利用了組播IP地址與MAC地址的對(duì)應(yīng)映射關(guān)系。MAC地址與IP地址的映射規(guī)則:組播MAC共6字節(jié),地址前25位規(guī)定為01005e(十六進(jìn)制),后23位對(duì)應(yīng)IP地址的后23位。
IP地址:1110yyyy.yxxxxxxx.xxxxxxx.xxxxxxxx
MAC地址:00000001.00000000.01011110.0xxxxxxx.xxxxxxx.xxxxxxxx
例如組播IP地址224.215.145.230對(duì)應(yīng)的MAC地址為:01-00-5e-57-91-e6,215.145.230換算為二進(jìn)制 :1101,0111,1001,0001,1110,0110,取最后23位放入MAC地址中計(jì)算。用戶(hù)數(shù)據(jù)的單個(gè)字節(jié)組成對(duì)應(yīng)的IP地址,該IP地址對(duì)應(yīng)相應(yīng)的MAC轉(zhuǎn)換,用戶(hù)數(shù)據(jù)通過(guò)組播發(fā)送,接收方根據(jù)收到的MAC地址得到用戶(hù)發(fā)送的IP地址,進(jìn)而得到用戶(hù)數(shù)據(jù)。
用戶(hù)輸入到發(fā)送設(shè)備的網(wǎng)絡(luò)名稱(chēng)為SSID,網(wǎng)絡(luò)密碼為PASSWD,其他由用戶(hù)自定義原始信息,通過(guò)序列號(hào)轉(zhuǎn)換后為字節(jié)流數(shù)據(jù),記為Xi。發(fā)送數(shù)據(jù)流程如圖2所示。
圖2 發(fā)送數(shù)據(jù)流程
(1) 發(fā) 送 設(shè) 備 將 待 發(fā) 送 數(shù) 據(jù)X1,X2,...,Xi進(jìn) 行加密;
(2)發(fā)送設(shè)備在發(fā)送過(guò)程中判斷待發(fā)送數(shù)據(jù)是否全部發(fā)送,若未全部發(fā)送,則發(fā)送設(shè)備選取組播IP[5]地址224.0.0.0~239.255.255.255中的某些地址,將當(dāng)前的待發(fā)送數(shù)據(jù)字節(jié)構(gòu)建成目標(biāo)組播地址,并設(shè)置該UDP負(fù)載長(zhǎng)度[6]為1,否則結(jié)束發(fā)送;
(3)當(dāng)Xi對(duì)應(yīng)的UDP包發(fā)送完成后,進(jìn)行Xi+1字節(jié)的發(fā)送,即回到步驟(2),直到數(shù)據(jù)全部發(fā)送完成。
接收待發(fā)送數(shù)據(jù)流程如圖3所示。
圖3 數(shù)據(jù)接收流程
(1)接收設(shè)備接收數(shù)據(jù),掃描周?chē)鸁o(wú)線網(wǎng)絡(luò)信號(hào),獲取轉(zhuǎn)發(fā)設(shè)備的信道列表。
(2)接收設(shè)備獲取信道列表后進(jìn)入混雜模式。
(3)接收設(shè)備按順序在已獲得的轉(zhuǎn)發(fā)設(shè)備信道列表中設(shè)置當(dāng)前接收設(shè)備的信道。
(4)檢查接收設(shè)備在當(dāng)前信道下的規(guī)定時(shí)間內(nèi)是否收到需要的目標(biāo)數(shù)據(jù),如果未收到數(shù)據(jù),則回到步驟(3)設(shè)置下一個(gè)可能的信道;如果收到數(shù)據(jù),則停止切換信道,繼續(xù)在當(dāng)前信道下接收剩余的數(shù)據(jù)。
(5)接收設(shè)備接收到當(dāng)前目標(biāo)數(shù)據(jù)后,判斷是否接收全部數(shù)據(jù),如果接收完成,則退出混雜模式,否則繼續(xù)接收數(shù)據(jù),直到接收完成。
(6)接收設(shè)備接收全部待發(fā)送數(shù)據(jù),并對(duì)此按照與發(fā)送方事先約定好的解密規(guī)則解密[7]。
數(shù)據(jù)解析流程如圖4所示。
圖4 數(shù)據(jù)解析流程
(1)接收設(shè)備解析待發(fā)送數(shù)據(jù),獲得完整的網(wǎng)絡(luò)數(shù)據(jù)幀[8];
(2)接收設(shè)備從完整的網(wǎng)絡(luò)數(shù)據(jù)幀中分離出MAC地址;
(3)接收設(shè)備對(duì)該MAC地址進(jìn)行分析,獲得待發(fā)送數(shù)據(jù)索引i的數(shù)據(jù)為Xi;
(4)獲得第i個(gè)數(shù)據(jù)Xi后判斷數(shù)據(jù)是否全部接收,若未全部接收則回到步驟(2),繼續(xù)接收,直到全部接收完成;
(5)接收設(shè)備解密收到的全部數(shù)據(jù),獲得輸入網(wǎng)絡(luò)名稱(chēng)SSID與網(wǎng)絡(luò)密碼PASSWD,其他由用戶(hù)自定義原始信息;
(6)接收設(shè)備解析待發(fā)送數(shù)據(jù)后流程結(jié)束。
連接結(jié)果反饋流程如圖5所示。
圖5 連接結(jié)果反饋流程
(1)接收設(shè)備根據(jù)解密的網(wǎng)絡(luò)名稱(chēng)與網(wǎng)絡(luò)密碼及其他用戶(hù)自定義的原始信息,執(zhí)行接入SSID對(duì)應(yīng)轉(zhuǎn)發(fā)設(shè)備網(wǎng)絡(luò)接入請(qǐng)求操作;
(2)若接入成功,則生成相應(yīng)的通知消息,相反,則生成失敗的消息通知,失敗的消息通知可以攜帶失敗原因[9];
(3)接收設(shè)備利用UDP廣播生成相應(yīng)的數(shù)據(jù)消息包,周期性廣播該消息通知;
(4)接收設(shè)備在規(guī)定時(shí)間內(nèi)若收到反饋信息則停止周期性廣播,否則繼續(xù)廣播,此時(shí)發(fā)送設(shè)備根據(jù)發(fā)送方反饋的結(jié)果,停止發(fā)送數(shù)據(jù)并提示用戶(hù)當(dāng)前操作是否成功。
本文結(jié)合物聯(lián)網(wǎng)相關(guān)技術(shù)設(shè)計(jì)的網(wǎng)絡(luò)接入方式表明,該方案切實(shí)解決了智能攝像機(jī)、智能插座等無(wú)輸入屏幕裝置的物聯(lián)網(wǎng)設(shè)備接入WiFi網(wǎng)絡(luò)的問(wèn)題,方便快捷,具有廣闊的應(yīng)用前景。但該方式也存在一些不足,有待進(jìn)一步完善,而這也是后續(xù)研究的方向。