點(diǎn)時(shí),確定移動(dòng)設(shè)備已連接無(wú)線(xiàn)訪(fǎng)問(wèn)節(jié)點(diǎn);
[0073]當(dāng)檢測(cè)到stat1n節(jié)點(diǎn)未開(kāi)啟或未連接無(wú)線(xiàn)訪(fǎng)問(wèn)節(jié)點(diǎn)時(shí),生成連接無(wú)線(xiàn)訪(fǎng)問(wèn)節(jié)點(diǎn)的提示信息,如“請(qǐng)打開(kāi)W1-Fi并連接路由器”。
[0074]子步驟S12,通過(guò)W1-Fi的P2P節(jié)點(diǎn)發(fā)送中繼指令至W1-Fi模組,以廣播移動(dòng)設(shè)備的登錄信息及通過(guò)P2P節(jié)點(diǎn)連接一個(gè)或多個(gè)電子設(shè)備;
[0075]如圖2所示,如果W1-Fi已連接到有效AP,則可以向W1-Fi模塊發(fā)送中繼指令,啟動(dòng)W1-Fi中繼。
[0076]在具體實(shí)現(xiàn)中,可以檢測(cè)stat1n節(jié)點(diǎn)連接的無(wú)線(xiàn)訪(fǎng)問(wèn)節(jié)點(diǎn)所在的第一信道;
[0077]獲取用于登錄移動(dòng)設(shè)備的登錄信息,該登錄信息包括服務(wù)集標(biāo)識(shí)和密碼;
[0078]計(jì)算與所述第一信道互不干擾的第二信道;
[0079]計(jì)算服務(wù)器標(biāo)識(shí)的第一長(zhǎng)度以及所述密碼的第二長(zhǎng)度;
[0080]將第二信道、服務(wù)集標(biāo)識(shí)、第一長(zhǎng)度、密碼和第二長(zhǎng)度封裝在中繼指令中;
[0081]通過(guò)W1-Fi的P2P節(jié)點(diǎn)的Group模式發(fā)送所述中繼指令,以在所述信道按照所述第一長(zhǎng)度廣播所述服務(wù)集標(biāo)識(shí)。
[0082]進(jìn)一步而言,W1-Fi的stat1n打開(kāi)并連接AP后,則可以獲取stat1n所連接的AP的第一信道,在P2P打開(kāi)的時(shí)候就可以在與第一信道互不干擾的第二信道發(fā)送的中繼指令。
[0083]不同信道對(duì)應(yīng)的頻率為:
[0084]Freq = 2412(信道 I) Freq = 2417 (信道 2) Freq = 2422 (信道 3)
[0085]Freq = 2427 (信道 4) Freq = 2432 (信道 5) Freq = 2437 (信道 6)
[0086]Freq = 2442 (信道 7) Freq = 2447 (信道 8) Freq = 2452 (信道 9)
[0087]Freq = 2457 (信道 10) Freq = 2462 (信道 11) Freq = 2467 (信道 1?
[0088]Freq = 2472 (信道 13)
[0089]如圖3所示,2.4G頻段中的1_14信道的圖譜為梯度矩陣,從頻段角度,共分3個(gè)獨(dú)立頻段,每個(gè)獨(dú)立頻段內(nèi)的信道均存在干擾,具體頻段如下:
[0090]一區(qū):1-5 信道
[0091]二區(qū):6-10 信道
[0092]三區(qū):11-14信道
[0093]從頻段隔離的角度,共分5個(gè)隔離區(qū)間,隔離區(qū)間內(nèi)的信道不存在干擾,具體區(qū)間如下:
[0094]一類(lèi):1、6、11
[0095]二類(lèi):2、7、12
[0096]三類(lèi):3、8、13
[0097]四類(lèi):4、9
[0098]五類(lèi):5、10
[0099]然后,在UI (User Interface,用戶(hù)界面)提示用戶(hù)輸入中繼設(shè)備(即移動(dòng)設(shè)備)的SSID (服務(wù)集標(biāo)識(shí))和密碼。
[0100]若用戶(hù)在UI輸入了 SSID和密碼,則使用該SSID和密碼,否則,使用默認(rèn)的SSID和密碼。
[0101]計(jì)算SSID的第一長(zhǎng)度和密碼的第二長(zhǎng)度,用作發(fā)送中繼指令。
[0102]P2P 目前有兩種模式:P2P group 和 P2P client。
[0103]P2P使得多個(gè)W1-Fi設(shè)備在沒(méi)有AP的情況下也能構(gòu)成一個(gè)網(wǎng)絡(luò)(P2P Network,也被稱(chēng)之為P2P Group)并相互通信。
[0104]在組建P2P Group之前,智能終端都是一個(gè)一個(gè)的P2P Device (P2P設(shè)備)。
[0105]當(dāng)這些P2P Device之間完成P2P協(xié)商后,那么其中將有一個(gè)Device來(lái)扮演GO (Group Owner)的角色(即充當(dāng)AP),而其他Device來(lái)扮演Client的角色。
[0106]原始的P2P group的函數(shù)為:
[0107]p2p_ctrl_group_add(struct wpa_supplicant*wpa_s, char*cmd)
[0108]在此P2P group函數(shù)中,無(wú)法發(fā)送信道、SSID、密碼等參數(shù)。
[0109]本發(fā)明實(shí)施例修改W1-Fi協(xié)議棧,強(qiáng)制設(shè)置P2P為group模式,并且該group模式可以按照用戶(hù)的需求設(shè)置SSID和密碼,以便中繼設(shè)備(即移動(dòng)設(shè)備)被外部的電子設(shè)備掃描到以后可以通過(guò)SSID識(shí)別,通過(guò)密碼保證通信的安全。
[0110]具體而言,在系統(tǒng)的W1-Fi協(xié)議棧Wpa_supplicant中擴(kuò)展了 P2P_GR0UP_ADD指令:
[0111]wpas_p2p_group_add_with_ssid (wpa_s, I, freq, ht40, ssid, passphrase, ssid_len,passphrase_len)
[0112]其中,freq為第二信道,ssid_len 為第一長(zhǎng)度,passphrase 為密碼,passphrase_Ien為第二長(zhǎng)度。
[0113]擴(kuò)展后的P2P group函數(shù)可以實(shí)現(xiàn)發(fā)送信道、SSID、密碼等參數(shù)的功能。
[0114]中繼指令發(fā)送后,中繼設(shè)備(即移動(dòng)設(shè)備)發(fā)出的廣播幀就會(huì)攜帶SSID,其它電子設(shè)備掃描到以后就可以用SSID和密碼進(jìn)行連接了。
[0115]子步驟S13,開(kāi)啟包轉(zhuǎn)發(fā)功能,以支持在移動(dòng)設(shè)備中W1-Fi的不同節(jié)點(diǎn)之間轉(zhuǎn)發(fā)數(shù)據(jù)包;
[0116]在具體實(shí)現(xiàn)中,可以通過(guò)echo屬性值開(kāi)啟包轉(zhuǎn)發(fā)功能。
[0117]echo l>/proc/sys/net/ipv4/ip_forward
[0118]包轉(zhuǎn)發(fā),是允許數(shù)據(jù)包從一個(gè)設(shè)備轉(zhuǎn)發(fā)到另一個(gè)設(shè)備。
[0119]在本發(fā)明實(shí)施例中,打開(kāi)包轉(zhuǎn)發(fā)功能,支持?jǐn)?shù)據(jù)包在stat1n與P2P之間相互轉(zhuǎn)發(fā)。
[0120]子步驟S13,發(fā)送包轉(zhuǎn)發(fā)的配置信息至W1-Fi模組,以在stat1n節(jié)點(diǎn)與P2P節(jié)點(diǎn)之間轉(zhuǎn)發(fā)數(shù)據(jù)包;
[0121]在實(shí)際應(yīng)用中,可以調(diào)用通過(guò)系統(tǒng)地址表服務(wù)iptables發(fā)送路由表至W1-Fi模組,該路由表中包括P2P節(jié)點(diǎn)的第一 IP地址與stat1n節(jié)點(diǎn)的第二 IP地址的路徑;
[0122]可以調(diào)用通過(guò)系統(tǒng)的地址表服務(wù)iptables發(fā)送地址轉(zhuǎn)換功能NAT (NetworkAddress Translat1n)的配置信息至W1-Fi模組,NAT將自動(dòng)修改IP報(bào)文的源IP地址和目的IP地址,以對(duì)P2P節(jié)點(diǎn)的第一 IP地址進(jìn)行偽裝。
[0123]當(dāng)然,在發(fā)送路由表和NAT之前,還可以清除在先的路由表。
[0124]Iptables、NAT配置的配置信息如下:
[0125]#remove old rules (清理在先的路由表)
[0126]iptables-F
[0127]iptables-t fiIter-F
[0128]iptables-t nat_F
[0129]#Bring up NAT rules
[0130]iptables-t nat_A POSTROUTING-s 192.168.49.0/24-d 0.0.0.0/0-jMASQUERADE
[0131]其中,假設(shè)中繼設(shè)備(即移動(dòng)設(shè)備)的IP段是192.168.49.0,發(fā)送Bring up NATrules可以將192.168.49.0/24網(wǎng)段為源地址的數(shù)據(jù)包進(jìn)行重新封包、解包處理,偽裝為0.0.0.0/0的源地址,轉(zhuǎn)發(fā)到stat1n上。
[0132]子步驟S15,發(fā)送域名系統(tǒng)DNS的配置信息至W1-Fi模組,以將P2P節(jié)點(diǎn)接收的數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā);
[0133]在具體實(shí)現(xiàn)中,可以調(diào)用系統(tǒng)中的地址表服務(wù)iptable發(fā)送基于傳輸控制協(xié)議TCP的域名系統(tǒng)DNS的網(wǎng)關(guān)地址至W1-Fi模塊;
[0134]命令格式為:
[0135]iptables-t nat_I PREROUTING-1 (中繼設(shè)備名)-p tcp—dport 53-jDNAT—to-destinat1n(路由器網(wǎng)關(guān))
[0136]可以調(diào)用系統(tǒng)中的地址表服務(wù)iptable,發(fā)送基于開(kāi)放式系統(tǒng)互聯(lián)協(xié)議UDP的域名系統(tǒng)DNS的網(wǎng)關(guān)地址至W1-Fi模塊。
[0137]子步驟S16,當(dāng)一個(gè)或多個(gè)電子設(shè)備通過(guò)廣播的登錄信息驗(yàn)證成功時(shí),在P2P節(jié)點(diǎn)接入一個(gè)或多個(gè)電子設(shè)備。
[0138]在具體實(shí)現(xiàn)中,中繼設(shè)備(即移動(dòng)設(shè)備)可以視為一個(gè)AP,它周期性地廣播Beacon幀,其他stat1n設(shè)備掃描到該Beacon幀就可以得到中繼設(shè)備(即移動(dòng)設(shè)備)的SSID0
[0139]當(dāng)接收到一個(gè)或多個(gè)電子設(shè)備針對(duì)登錄信息的服務(wù)集標(biāo)識(shí)發(fā)送的申請(qǐng)請(qǐng)求時(shí),向所述一個(gè)或多個(gè)電子設(shè)備返回應(yīng)答消息challenge text ;
[0140]當(dāng)接收到一個(gè)或多個(gè)電子設(shè)備發(fā)送的連接請(qǐng)求時(shí),根據(jù)登錄信息的密碼的第二長(zhǎng)度、驗(yàn)證連接請(qǐng)求中密碼與登錄信息的密碼是否相同;
[0141]若是,則接入一個(gè)或多個(gè)電子設(shè)備,例如圖2所示的電子設(shè)備stat1n Ustat1n2、stat1n 3σ
[0142]步驟102,確定經(jīng)所述移動(dòng)設(shè)備中繼轉(zhuǎn)發(fā)的、所述無(wú)線(xiàn)訪(fǎng)問(wèn)節(jié)點(diǎn)與所述電子設(shè)備之間通?目的狀態(tài)?目息;
[0143]在本發(fā)明實(shí)施例中,可以判斷當(dāng)前W1-Fi網(wǎng)絡(luò)的使用情況,檢測(cè)中繼網(wǎng)絡(luò)的狀態(tài)信息,該狀態(tài)信息可以包括網(wǎng)絡(luò)訪(fǎng)問(wèn)時(shí)延和/或通信吞吐量;
[0144]其中,網(wǎng)絡(luò)訪(fǎng)問(wèn)時(shí)延為從網(wǎng)絡(luò)的一端(如移動(dòng)設(shè)備)傳送到另