一種無線網(wǎng)絡(luò)設(shè)備間快速鏈路狀態(tài)檢測的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及物聯(lián)網(wǎng)、無線自組織聯(lián)網(wǎng)領(lǐng)域,具體是一種無線網(wǎng)絡(luò)設(shè)備間快速鏈路狀態(tài)檢測的方法。
【背景技術(shù)】
[0002]隨著無線技術(shù)的發(fā)展及成熟,在物聯(lián)網(wǎng)、無線自組織聯(lián)網(wǎng)領(lǐng)域,出現(xiàn)了大量的通過無線通訊技術(shù)實(shí)現(xiàn)設(shè)備聯(lián)網(wǎng)的產(chǎn)品和應(yīng)用,這些產(chǎn)品和應(yīng)用通過無線通訊技術(shù)實(shí)現(xiàn)人與物、物與物的聯(lián)網(wǎng)通訊,實(shí)現(xiàn)產(chǎn)品和應(yīng)用的智能化。
[0003]目前這些無線聯(lián)網(wǎng)的產(chǎn)品和應(yīng)用中,存在大量的點(diǎn)對多點(diǎn)、多點(diǎn)對多點(diǎn)的無線自組織網(wǎng)通訊應(yīng)用,這些無線通訊設(shè)備節(jié)點(diǎn)都能夠自主的向其它設(shè)備節(jié)點(diǎn)發(fā)送指令和數(shù)據(jù),并獲得其它設(shè)備節(jié)點(diǎn)的應(yīng)答。
[0004]在自組織網(wǎng)絡(luò)中,同一個(gè)無線空域內(nèi)存在眾多的無線通訊設(shè)備,設(shè)備間的聯(lián)網(wǎng)通訊基礎(chǔ)是建立在設(shè)備節(jié)點(diǎn)間的鏈路狀態(tài)上的,設(shè)備節(jié)點(diǎn)間進(jìn)行無線網(wǎng)絡(luò)數(shù)據(jù)交互時(shí),必須先查詢設(shè)備節(jié)點(diǎn)的鏈路狀態(tài)是否正常,檢測設(shè)備節(jié)點(diǎn)是否接入網(wǎng)絡(luò)、設(shè)備節(jié)點(diǎn)是否處于活躍狀態(tài)、設(shè)備節(jié)點(diǎn)是否能夠穩(wěn)定可靠的收發(fā)數(shù)據(jù)信息。
[0005]為了保證設(shè)備節(jié)點(diǎn)能夠可靠的將數(shù)據(jù)發(fā)送到目的設(shè)備節(jié)點(diǎn),無線網(wǎng)絡(luò)中各個(gè)設(shè)備節(jié)點(diǎn)間需要制定一個(gè)網(wǎng)絡(luò)鏈路狀態(tài)檢測機(jī)制,該機(jī)制定期的相互發(fā)送鏈路檢測信息,以確定數(shù)據(jù)發(fā)送節(jié)點(diǎn)和數(shù)據(jù)接收節(jié)點(diǎn)的設(shè)備是否處于活躍狀態(tài)、通訊鏈路是否是否正常;為了檢測無線節(jié)點(diǎn)活躍狀態(tài)及通訊鏈路狀態(tài)是否正常,目前無線網(wǎng)絡(luò)常用的鏈路狀態(tài)檢測機(jī)制是兩節(jié)點(diǎn)間相互發(fā)心跳握手幀實(shí)現(xiàn)鏈路狀態(tài)的檢測;如圖1,節(jié)點(diǎn)A向節(jié)點(diǎn)B發(fā)送SYN握手命令,節(jié)點(diǎn)B向節(jié)點(diǎn)A發(fā)送ACK握手應(yīng)答命令,節(jié)點(diǎn)A收到ACK握手應(yīng)答指令后,表示A — B的鏈路正常,反之,節(jié)點(diǎn)B也需要一個(gè)這個(gè)過程檢測B — A的鏈路狀態(tài);節(jié)點(diǎn)A和節(jié)點(diǎn)C的鏈路狀態(tài)檢測也需要經(jīng)歷這一過程,節(jié)點(diǎn)B和節(jié)點(diǎn)C的鏈路狀態(tài)檢測也需要經(jīng)歷這一過程;如此無線網(wǎng)絡(luò)中的每個(gè)數(shù)據(jù)發(fā)送節(jié)點(diǎn)需要周期性的和每個(gè)數(shù)據(jù)接收節(jié)點(diǎn)交互一對心跳握手幀才能夠檢測所有節(jié)點(diǎn)間的鏈路狀態(tài)。
[0006]如在一個(gè)具有5節(jié)點(diǎn)的無線空域內(nèi),如圖2,為了保證設(shè)備節(jié)點(diǎn)的數(shù)據(jù)傳輸可靠性,這5個(gè)節(jié)點(diǎn)需要定時(shí)的相互發(fā)送心跳握手幀,按每兩個(gè)節(jié)點(diǎn)間發(fā)送一對心跳握手幀來計(jì)算,5個(gè)節(jié)點(diǎn)總共需要發(fā)送5x5共25對心跳握手幀,才能保證5個(gè)節(jié)點(diǎn)間所有的鏈路狀態(tài)的有效性,若該無線空域內(nèi)節(jié)點(diǎn)增加到20個(gè)節(jié)點(diǎn)時(shí),每個(gè)時(shí)間周期內(nèi)需要發(fā)送400對心跳握手幀才能保證所有節(jié)點(diǎn)間鏈路狀態(tài)的有效性,隨著無線空域內(nèi)節(jié)點(diǎn)數(shù)量的增多,相同時(shí)間周期內(nèi)出現(xiàn)的心跳握手幀就會(huì)急劇增加,如此眾多的心跳握手幀會(huì)占用大量的無線通訊帶寬,干擾和阻礙網(wǎng)絡(luò)中設(shè)備節(jié)點(diǎn)有效數(shù)據(jù)的正常傳輸。
[0007]當(dāng)無線空域內(nèi)某些節(jié)點(diǎn)出現(xiàn)故障時(shí),為了保證設(shè)備節(jié)點(diǎn)通訊的有效性和及時(shí)性,若增加心跳握手幀的發(fā)送次數(shù)和發(fā)送頻率,會(huì)占用更多的無線通訊帶寬,甚至?xí)斐蔁o線網(wǎng)絡(luò)擁塞,導(dǎo)致無線網(wǎng)絡(luò)通訊癱瘓。
[0008]當(dāng)無線空域內(nèi)的所有設(shè)備節(jié)點(diǎn)同時(shí)上電啟動(dòng)時(shí),在進(jìn)行無線數(shù)據(jù)交互前都會(huì)發(fā)送心跳握手幀,用于檢測設(shè)備節(jié)點(diǎn)的鏈路狀態(tài),所有的設(shè)備節(jié)點(diǎn)同時(shí)發(fā)送心跳握手幀,會(huì)造成無線空域中無線通訊頻段的阻塞。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的目的在于提供一種降低了心跳握手?jǐn)?shù)據(jù)對無線帶寬的過多占用,有效的提高了無線網(wǎng)絡(luò)的通訊效率的無線網(wǎng)絡(luò)設(shè)備間快速鏈路狀態(tài)檢測的方法,以解決上述【背景技術(shù)】中提出的問題。
[0010]為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
[0011]一種無線網(wǎng)絡(luò)設(shè)備間快速鏈路狀態(tài)檢測的方法,其特征在于,在無線網(wǎng)絡(luò)中,一個(gè)無線空域內(nèi),含有不超過480個(gè)節(jié)點(diǎn),節(jié)點(diǎn)依次編號(hào)為A、B、C、D、E……,節(jié)點(diǎn)A根據(jù)基礎(chǔ)檢測時(shí)間N為間隔,以無線廣播的方式向無線空域內(nèi)所有的節(jié)點(diǎn)發(fā)送節(jié)點(diǎn)A的鏈路檢測幀,該幀會(huì)攜帶鄰近節(jié)點(diǎn)的鏈路狀態(tài)基礎(chǔ)信息,節(jié)點(diǎn)A以無線廣播的方式發(fā)送了鏈路檢測幀后,節(jié)點(diǎn)B會(huì)收到節(jié)點(diǎn)A的鏈路檢測幀,這時(shí),節(jié)點(diǎn)B更新其節(jié)點(diǎn)內(nèi)鄰近節(jié)點(diǎn)鏈路狀態(tài)表中節(jié)點(diǎn)A的鏈路基礎(chǔ)信息單元的收幀檢測計(jì)時(shí)時(shí)間為0,表示節(jié)點(diǎn)B收到了節(jié)點(diǎn)A的鏈路檢測幀,節(jié)點(diǎn)A處于活躍狀態(tài),并記錄接收節(jié)點(diǎn)A的接收功率數(shù);若節(jié)點(diǎn)B后續(xù)未收到節(jié)點(diǎn)A的鏈路檢測幀時(shí),CPU處理器會(huì)每I秒鐘將該計(jì)時(shí)時(shí)間加I,表示節(jié)點(diǎn)B持續(xù)若干秒沒有接收到節(jié)點(diǎn)A的鏈路檢測信息;節(jié)點(diǎn)B會(huì)收到節(jié)點(diǎn)A的鏈路檢測幀后,查找節(jié)點(diǎn)A發(fā)送的鏈路檢測幀中鄰近節(jié)點(diǎn)鏈路狀態(tài)表中的節(jié)點(diǎn)鏈路基礎(chǔ)信息單元節(jié)點(diǎn)B的收幀檢測計(jì)時(shí)K,該計(jì)時(shí)時(shí)間K值表示由節(jié)點(diǎn)A記錄的節(jié)點(diǎn)B的活躍時(shí)間,節(jié)點(diǎn)B根據(jù)從節(jié)點(diǎn)A記錄的自身的活躍時(shí)間,判斷是否小于等于收幀檢測握手檢測超時(shí)時(shí)間M的值,若收幀檢測計(jì)時(shí)K <檢測超時(shí)時(shí)間M時(shí),表示節(jié)點(diǎn)B在K秒之前還和節(jié)點(diǎn)A進(jìn)行過鏈路檢測幀的發(fā)送接收交互,表示節(jié)點(diǎn)B對節(jié)點(diǎn)A方向鏈路狀態(tài)為正常,將節(jié)點(diǎn)B — A的鏈接狀態(tài)標(biāo)記為正常;若收幀檢測計(jì)時(shí)K >檢測超時(shí)時(shí)間M時(shí)表示節(jié)點(diǎn)B向節(jié)點(diǎn)A的方向已經(jīng)超過收幀檢測計(jì)時(shí)K的時(shí)間都沒有進(jìn)行過鏈路檢測幀的發(fā)送接收交互了,則判定鏈路出現(xiàn)故障;隨后無線空域內(nèi)其他的節(jié)點(diǎn)B、C、D、E……根據(jù)基礎(chǔ)檢測時(shí)間N為間隔,以無線廣播的方式向無線空域內(nèi)所有的節(jié)點(diǎn)發(fā)送鏈路檢測幀,各節(jié)點(diǎn)通過對接收到的鏈路檢測幀中的鏈路狀態(tài)基礎(chǔ)信息進(jìn)行計(jì)算,就能夠保證所有的節(jié)點(diǎn)的鏈路狀態(tài)的實(shí)時(shí)有效性;在無線網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)根據(jù)基礎(chǔ)檢測時(shí)間N為間隔發(fā)送鏈路檢測幀前,都會(huì)根據(jù)節(jié)點(diǎn)設(shè)備地址計(jì)算一個(gè)發(fā)送退避時(shí)間,并等待該退避時(shí)間后再發(fā)送鏈路檢測幀;
[0012]節(jié)點(diǎn)鏈路基礎(chǔ)信息單元包含節(jié)點(diǎn)的設(shè)備地址、收幀檢測計(jì)時(shí)、無線接收功率;每個(gè)節(jié)點(diǎn)都存儲(chǔ)有一個(gè)鄰近節(jié)點(diǎn)鏈路狀態(tài)表,該表以節(jié)點(diǎn)鏈路基礎(chǔ)信息單元為基礎(chǔ),存儲(chǔ)當(dāng)前節(jié)點(diǎn)所有鄰近節(jié)點(diǎn)的鏈路基礎(chǔ)信息;設(shè)備節(jié)點(diǎn)初次上電運(yùn)行時(shí),會(huì)對鄰近節(jié)點(diǎn)鏈路狀態(tài)表進(jìn)行初始化;同時(shí)以設(shè)定的基礎(chǔ)檢測時(shí)間N為周期向外部以廣播方式發(fā)送鏈路檢測幀,鏈路檢測幀中包含各個(gè)鄰近節(jié)點(diǎn)的鏈路基礎(chǔ)信息,每個(gè)節(jié)點(diǎn)根據(jù)鄰近節(jié)點(diǎn)的鏈路基礎(chǔ)信息計(jì)算當(dāng)前節(jié)點(diǎn)與鄰近節(jié)點(diǎn)的鏈路狀態(tài)是否正常,基礎(chǔ)檢測時(shí)間N取值范圍為10?1200 ;當(dāng)設(shè)備節(jié)點(diǎn)檢測到鄰近節(jié)點(diǎn)處于鏈路故障狀態(tài)時(shí),設(shè)備節(jié)點(diǎn)會(huì)以設(shè)定的快速檢測時(shí)間L為周期以廣播方式發(fā)送鏈路檢測幀,加快鏈路狀態(tài)的檢測速度,快速檢測時(shí)間L取值為基礎(chǔ)檢測時(shí)間N的1/3 ;每個(gè)設(shè)備節(jié)點(diǎn)都具有一個(gè)設(shè)備地址,設(shè)備地址取值為I?60000。
[0013]作為本發(fā)明進(jìn)一步的方案:在無線網(wǎng)絡(luò)中,若某節(jié)點(diǎn)故障,無法向無線空域中發(fā)送鏈路檢測幀時(shí),無線網(wǎng)絡(luò)中的其它節(jié)點(diǎn)在檢測超時(shí)時(shí)間M內(nèi)未收到該節(jié)點(diǎn)的鏈路檢測幀,這時(shí)其它節(jié)點(diǎn)都會(huì)將該節(jié)點(diǎn)的鏈路狀態(tài)標(biāo)記為鏈路故障,檢測超時(shí)時(shí)間M取值為基礎(chǔ)檢測時(shí)間N的3.2倍,后續(xù)無線網(wǎng)絡(luò)中其它節(jié)點(diǎn)向該節(jié)點(diǎn)發(fā)送的應(yīng)用命令和數(shù)據(jù)都會(huì)繞過該節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),直到該節(jié)點(diǎn)故障恢復(fù)后,該節(jié)點(diǎn)會(huì)向其它節(jié)點(diǎn)發(fā)送鏈路檢測幀,重新計(jì)算節(jié)點(diǎn)鏈路狀態(tài)。
[0014]作為本發(fā)明進(jìn)一步的方案:若某節(jié)點(diǎn)由于發(fā)射功率過小或信號(hào)干擾的原因,該節(jié)點(diǎn)的鏈路檢測幀無法發(fā)送到其它節(jié)點(diǎn),其它節(jié)點(diǎn)記錄的該節(jié)點(diǎn)的收幀檢測計(jì)時(shí)K會(huì)每秒累計(jì)加1,當(dāng)收幀檢測計(jì)時(shí)K >檢測超時(shí)時(shí)間M后,其它節(jié)點(diǎn)會(huì)將該節(jié)點(diǎn)的鏈路狀態(tài)標(biāo)記為鏈路故障,而該節(jié)點(diǎn)又能收到其它節(jié)點(diǎn)的發(fā)送的鏈路檢測幀,但是這些鏈路檢測幀中的節(jié)點(diǎn)自身的收幀檢測計(jì)時(shí)K >檢測超時(shí)時(shí)間M,且該節(jié)點(diǎn)的無線接收功率小于有效的接收功率時(shí),該節(jié)點(diǎn)會(huì)調(diào)整加大發(fā)射功率和采用快速檢測時(shí)間L為間隔加快進(jìn)行鏈路檢測幀的發(fā)送;在該節(jié)點(diǎn)故障恢復(fù)或信號(hào)干擾清除后,實(shí)現(xiàn)該節(jié)點(diǎn)同其它節(jié)點(diǎn)間快速的鏈路狀態(tài)建立,快速的從鏈路故障狀態(tài)向鏈路正常狀態(tài)切換。
[0015]作為本發(fā)明進(jìn)一步的方案:鏈路檢測幀長為256字節(jié),攜帶不高于48個(gè)節(jié)點(diǎn)的鏈路基礎(chǔ)信息單元。
[0016]作為本發(fā)明進(jìn)一步的方案:若在一個(gè)無線空域內(nèi),節(jié)點(diǎn)的數(shù)量超過48個(gè),則分多個(gè)鏈路檢測幀發(fā)送鄰近節(jié)點(diǎn)的鏈路狀態(tài)信息,當(dāng)節(jié)點(diǎn)的數(shù)量為480個(gè),分