一種無線網狀網絡報文交互方法及系統與流程
2023-06-04 15:49:41

本發明涉及通信技術領域,特別涉及一種無線網狀網絡報文交互方法及系統。
背景技術:
隨著社會的發展,單純的有線網絡或無線網絡,難以滿足所有應用場合,因此,有線網絡與無線網絡混合連接,共同形成網狀網絡架構,形成無線網狀網絡。
無線網狀網絡也稱為「多跳」網絡,採用無中心的無線自組織網絡架構,是一種與傳統有中心的無線網絡完全不同的新型無線網絡技術。
在無線mesh(無線網狀網絡)自組網系統的應用過程中,通過將系統中任意設備節點間進行有線直連,形成有線、無線混合連接,可以實現覆蓋無線通信盲區,解決無線mesh自組網系統中多跳鏈路吞吐量衰減嚴重的問題,但往往會帶來另一個問題——網絡迴環。若不解決網絡迴環問題,網絡中的廣播第一報文,進入環路後便不斷地循環複製、轉發、廣播,無法結束,如果沒有針對網絡環路的解決措施,隨著時間積累,在網絡中將會充斥無數的無法到達目的網絡的數據包造成網絡廣播風暴,導致網絡癱瘓;並且環路會產生mac(multipleaccesschannel,多址接入信道)地址飄移,造成網絡中斷,由於無線mesh自組網系統中的設備節點具有學習功能,網絡內的設備節點只要發送廣播第一報文,mac地址都會被學習到存在網絡環路的埠中。錯誤的mac地址表,會直接造成網絡中斷。
如圖1所示,設備n1從l1口接收到一個廣播第一報文,通過w1口進入無線mesh網絡,經過無線mesh網絡傳輸,該廣播第一報文被設備n2從w2口接收轉發給l2,若此時無環路避免機制,則此廣播第一報文將從l2口發送給設備n1的l1口,形成環路。
技術實現要素:
有鑑於此,本發明的目的在於提供一種無線網狀網絡報文交互方法,解決了無線mesh自組網系統中存在有線+無線混連拓撲結構時的網絡迴環問題,同時,減少對於無線帶寬的佔用,降低無線網絡中csma/cd(carriersensemultipleaccesswithcollisiondetection,帶衝突檢測的載波監聽多路訪問)衝突重傳的發生概率,從而提高mesh網絡吞吐量。其具體方案如下:
一種無線網狀網絡報文交互方法,應用於第一設備,包括:
利用第一埠接收第二設備發送的第一報文;
判斷特徵庫中是否保存有所述第一報文中的第一特徵量;
若是,則禁止所述第一報文經過第二埠發送至所述第二設備;
若否,則判斷所述特徵庫中是否保存有所述第一報文中的第二特徵量;
若是,則將所述第一報文通過所述第一埠或所述第二埠轉發;
若否,則將所述第一設備的特徵量保存為所述第一報文的所述第一特徵量,得到第二報文,並將所述第二報文通過所述第一埠或所述第二埠轉發;
其中,所述第一埠與所述第二埠類型不同。
優選的,還包括:定期對所述特徵庫進行維護,刪除在預定時間內未接收到相應announce報文的失效特徵量。
優選的,所述將所述第一報文通過所述第一埠或所述第二埠轉發,包括:
將所述第一報文通過lan埠轉發。
優選的,所述特徵庫生成過程,包括:
接收設備通過lan埠發送的歷史announce報文;
從所述歷史announce報文中提取特徵量;
將所述特徵量保存,得到所述特徵庫。
本發明還公開了一種無線網狀網絡第一報文交互系統,應用於第一設備,包括:
接收模塊,用於利用第一埠接收第二設備發送的第一報文;
第一判斷模塊,用於判斷特徵庫中是否保存有所述第一報文中的第一特徵量;
禁止模塊,用於當所述第一判斷模塊判定所述特徵庫中保存有所述第一特徵量,則禁止所述第一報文經過第二埠發送至所述第二設備;
第二判斷模塊,用於當所述第一判斷模塊判定所述特徵庫中未保存有所述第一特徵量,則判斷所述特徵庫中是否保存有所述第一報文中的第二特徵量;
第一轉發模塊,用於當所述第一判斷模塊判定所述特徵庫中保存有所述第二特徵量,則將所述第一報文通過所述第一埠或所述第二埠轉發;
第二轉發模塊,用於當所述第一判斷模塊判定所述特徵庫中未保存有所述第二特徵量,則將所述第一設備的特徵量保存為所述第一報文的所述第一特徵量,得到第二報文,並將所述第二報文通過所述第一埠或所述第二埠轉發;
其中,所述第一埠與所述第二埠類型不同。
優選的,還包括:
維護模塊,用於定期對所述特徵庫進行維護,刪除在預定時間內未接收到相應announce報文的失效特徵量。
優選的,所述第一轉發模塊,具體用於將所述第一報文通過lan埠轉發。
優選的,所述第一判斷模塊,包括:
接收單元,用於接收設備通過lan埠發送的歷史announce報文;
提取單元,用於從所述歷史announce報文中提取特徵量;
特徵庫生成單元,用於將所述特徵量保存,得到所述特徵庫。
本發明中,無線網狀網絡第一報文交互方法,包括:利用第一埠接收第二設備發送的第一報文;判斷特徵庫中是否保存有第一報文中的第一特徵量,若是,則禁止第一報文經過第二埠發送至第二設備;若否,則判斷特徵庫中是否保存有第一報文中的第二特徵量;若是,則將第一報文通過第一埠或第二埠轉發;若否,則將第一設備的特徵量保存為第一報文的第一特徵量,得到第二報文,並將第二報文通過第一埠或第二埠轉發;其中,第一埠與第二埠類型不同。可見,本發明中第一設備在接收到第二設備發送的第一報文時,從第一報文中提取出第一特徵量和第二特徵量,並判斷特徵庫中是否包含第一特徵量,以此判斷第二設備是否與第一設備有線直連,若是,則禁止第一報文經過第二埠發送至第二設備,若否,則判斷特徵庫中是否保存有第二特徵量,以此判斷是否需要向與第一設備有線直連的設備轉發第一報文,若是,則將第一報文通過第一埠或第二埠轉發,若否,則將第一設備的特徵量保存為第一報文的第一特徵量,得到第二報文,並將第二報文通過第一埠或第二埠轉發,以此保證,第三設備接收第二報文時,能夠判斷第一設備是否與第三設備有線直連連,通過兩種情況的判斷,切斷了環路形成的前提,解決了無線mesh自組網系統中存在有線+無線混連拓撲結構時的網絡迴環問題,同時,還可以減少對於無線帶寬的佔用,降低無線網絡中csma/cd衝突重傳的發生概率,從而提高mesh網絡吞吐量。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為現有技術中一種網絡環路示意圖;
圖2為本發明實施例提供的一種無線網狀網絡報文交互方法流程示意圖;
圖3為本發明實施例提供的另一種無線網狀網絡報文交互方法流程示意圖;
圖4為本發明實施例提供的一種無線網狀網絡第一報文交互系統結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
本發明實施例公開了一種無線網狀網絡報文交互方法,應用於第一設備,參見圖2所示,該方法包括:
步驟s11:利用第一埠接收第二設備發送的第一報文。
具體的,當前設備作為第一設備,利用第一埠接收第二設備發送的第一報文,第二設備可以通過lan(localareanetwork,區域網)口進行發送,也可以通過wlan(wirelesslocalareanetworks,無線區域網路)口進行發送,第一設備的第一埠也可以為lan口或wlan口,第二設備的發送口與第一設備的接收口類型相同。
可以理解的是,第一埠與第二埠類型始終不同,例如,不會出現第一埠為lan口,第二埠也為lan口的情況,會出現第一埠為lan口,第二埠為wlan口的情況;第二設備即發送設備,第一設備即接收設備。
步驟s12:判斷特徵庫中是否保存有第一報文中的第一特徵量。
需要說明的是,在實際應用中,組網中的設備均通過無線網絡進行連接,但是,在一些應用情況下,設備間無線網絡信號較差或數據交換量大,單純的無線連接難以滿足需求,例如,在高層建築中,每3層分配一個設備,在6層與9層之間因為一些原因,無線信號強度不夠,使兩層的設備之間數據難以交互,因此,通過網線將兩設備有線直連。
可以理解的是,在判斷第一特徵量前,需要從第一報文中提取,可以在接收第一報文後就進行提取,也可以在判斷前進行提取;由於第一報文中本身包含有第一特徵量,因此,只需從第一報文中提取出第一特徵量以供後續判斷,而不需要對第一報文本身進行改進。
其中,第二特徵量可以為目的mac,當然第二特徵量還可以為其他能夠表明第一報文目的設備的特徵信息,在此不作限定。
具體的,為了防止一種以上鏈路連接的設備之間產生環路,利用提取的第一特徵量進行判斷,第一設備判斷自身特徵庫中是否保存有第一特徵量,如果保存有第一特徵量,則說明第二設備與第一設備之間不僅有無線連接,同時,也保持著有線直連;如果未保存,則說明第二設備與第一設備之間未保持有線直連。
步驟s13:若是,則禁止第一報文經過第二埠發送至第二設備。
具體的,當判定第一設備判定自身特徵庫中保存有第一特徵量,則需要禁止第一設備的第二埠,即非接收第二設備發送的第一報文的埠,以此防止第一報文通過第一埠進入第一設備,又通過第二埠轉發到第二設備形成環路。
步驟s14:若否,則判斷特徵庫中是否保存有第一報文中的第二特徵量。
可以理解的是,在判斷第二特徵量前,需要從第一報文中提取,可以在接收第一報文後就進行提取,也可以在判斷前進行提取;由於第一報文中本身包含有第二特徵量,因此,只需從第一報文中提取出第二特徵量以供後續判斷,而不需要對第一報文本身進行改進。
其中,第一特徵量可以為發送端mac(multipleaccesschannel,多址接入信道),當然第一特徵量還可以為其他能夠表明第一報文源設備的特徵信息,在此不作限定。
具體的,若否,則說明第二設備與第一設備之間僅有無線連接方式,因此,第一報文中的第一特徵量未能通過announce報文保存在第一設備的特徵庫中,但為了防止出現混合組網外的設備將第一報文發送到混合組網中的設備,而該第一報文還需要通過混合組網中的設備轉發到組網中的另一設備,所以如果只判斷第一特徵量,則會導致組網中的設備接收到第一報文後,將會對第一報文繼續轉發,組網中的另一設備接收第一報文後,通過非接收埠將第一報文轉發給發送設備,從而形成環路。
步驟s15:若是,則將第一報文通過第一埠或第二埠轉發。
具體的,當判斷特徵庫中保存有第二特徵量,則表明報文的目的設備與第一設備有線直連,因此只能選擇一個埠轉發報文至目的設備,以此防止產生環路。
步驟s16:若否,則將第一設備的特徵量保存為第一報文的第一特徵量,得到第二報文,並將第二報文通過第一埠或第二埠轉發。
具體的,當判斷特徵庫中未保存有第二特徵量,則說明目的設備為非直連設備,由於此時,無法對第一報文中的第一特徵量與第二特徵量進行判斷,若將第一報文直接轉發給第三設備時,若第三設備為與第一設備直連的設備,則可能在第一設備與第三設備之間造成環路,因此,需要第一設備自身的特徵量替換第一報文中原有的第一特徵量,得到第二報文,再將第二報文通過第一埠或第二埠轉發,這樣即使轉發到與第一設備有線直連的第三設備時,第三設備能通過第二報文中的第一特徵量,識別出第二報文發送自與自身有線直連的設備,因此,不會產生環路。
可見,本發明實施例中第一設備在接收到第二設備發送的第一報文時,從第一報文中提取出第一特徵量和第二特徵量,並判斷特徵庫中是否包含第一特徵量,以此判斷第二設備是否與第一設備有線直連,若是,則禁止第一報文經過第二埠發送至第二設備,若否,則判斷特徵庫中是否保存有第二特徵量,以此判斷是否需要向與第一設備有線直連的設備轉發第一報文,若是,則將第一報文通過第一埠或第二埠轉發,若否,則將第一設備的特徵量保存為第一報文的第一特徵量,得到第二報文,並將第二報文通過第一埠或第二埠轉發,以此保證,第三設備接收第二報文時,能夠判斷第一設備是否與第三設備有線直連,通過兩種情況的判斷,切斷了環路形成的前提,解決了無線mesh自組網系統中存在有線+無線混連拓撲結構時的網絡迴環問題,同時,還可以減少對於無線帶寬的佔用,降低無線網絡中csma/cd衝突重傳的發生概率,從而提高mesh網絡吞吐量。
需要說明的是,特徵庫生成過程為接收設備通過lan埠發送的歷史announce報文;從歷史announce報文中提取特徵量;將特徵量保存,得到特徵庫。
具體的,通過在無線mesh自組網系統中每個設備的lan埠周期性的廣播announce報文,例如,每隔十分鐘在lan埠廣播一次announce報文,即可實現當各設備之間有線直連時可接收到對方的announce報文,又可以避免announce廣播第一報文進入無線mesh網絡造成廣播風暴;設備接收到其他設備廣播的announce報文後,從中提取第一特徵量;將第一特徵量進行保存,得到特徵庫。
例如,第二設備通過lan埠周期性的廣播第一announce報文,第一設備與第二設備有線直連,第一設備也通過lan埠周期性的廣播第二announce報文,第一設備接收第二設備廣播的第一announce報文,從第一announce報文中提取第一特徵量,將第一特徵量進行保存,得到特徵庫,第二設備接收到第一設備廣播的第二announce報文後,與上述第一設備生成特徵庫的過程一致。
需要說明的是,從announce報文中提取出的第一特徵量,即announce報文發送設備的特徵量,因此,無論該發送設備的特徵量在第一報文中作為第一特徵量或第二特徵量,都能判斷特徵庫中是否保存,不會出現該發送設備的特徵量在第一報文中作為第二特徵量即目的設備的特徵量而無法判斷的情況。
其中,announce報文為根據arp第一報文標準制定的(arp,addressresolutionprotocol,地址解析協議),announce報文的發送端ip、目的ip欄位賦值為0.0.0.0,利用0.0.0.0為非標準網絡設備ip的特點來識別出該第一報文為非標準arp第一報文,不會觸發arp協議的自動應答機制,因此,當設備接收到announce報文時,不會進行轉發操作,且通過在announce報文添加第一特徵量和第二特徵量,設備可以進一步利用特徵量欄位來識別出該第一報文為announce報文。
可以理解的是,本發明實施例中第一設備、第二設備和第三設備均是同一類型設備,在無線網狀網絡報文交互過程中均可以作為目的設備或發送設備。
本發明實施例公開了一種具體的無線網狀網絡報文交互方法,應用於第一設備,相對於上一實施例,本實施例對技術方案作了進一步的說明和優化。參見圖3所示,具體的:
步驟s21:利用wlan埠接收第二設備發送的第一報文。
可以理解的是,可以通過wlan埠接收第二設備發送的第一報文,也可以通過lan埠接收第二設備發送的第一報文,在此不做限定。
步驟s22:判斷特徵庫中是否保存有第一報文中的第一特徵量。
步驟s23:若是,則禁止第一報文經過lan埠發送至第二設備。
具體的,因為接收埠為wlan埠,所以在判定特徵庫中保存有第一特徵量的情況下,為了防止產生環路,禁止第一報文經過第一設備的lan埠廣播,如果接收埠為lan埠,則相應的禁止第一報文經過第一設備的wlan埠廣播。
步驟s24:若否,則判斷特徵庫中是否保存有第一報文中的第二特徵量。
步驟s25:若是,則將第一報文通過lan埠轉發。
具體的,當需要轉發時,可以優先選擇通過lan埠轉發,以此減少對於無線寬帶的佔用,降低無線網絡中csma/cd衝突重傳的發生概率,從而提高mesh網絡吞吐量,當然,根據實際應用需求,也可以通過wlan口進行轉發,在此不做限定。
步驟s26:若否,則將第一設備的特徵量保存為第一報文的第一特徵量,得到第二報文,並將第二報文通過lan埠或wlan埠轉發。
需要說明的是,無線網狀網絡組網中設備的加入或退出時有發生,因此,需要及時更新特徵庫中的內容,避免出現不必要的錯誤,可以定期對特徵庫進行維護,刪除在預定時間內未接收到相應announce報文的失效特徵量,當一個設備退出組網,組網中的其餘設備將不會再接收到退出設備廣播的announce報文,所以超過announce報文的廣播周期仍未收到第一報文,則說明相應的設備已退出組網,特徵庫中保存的相應的特徵量以變為失效特徵量,可以進行刪除,當然,當有新設備加入組網後,特徵庫將對新的announce報文中的特徵量進行相應的保存,以保證設備能做出相應的判斷。
例如,設定每5分鐘為一周期對特徵庫進行維護,檢查特徵庫中在5分鐘內未收到相應announce報文的特徵量,查找到後將此類特徵量作為失效特徵量進行刪除處理,當特徵庫接收到從announce報文中提取的特徵量,判斷是否已保存在特徵庫中,若未保存在特徵庫中,則將特徵量進行保存。
可以理解的是,特徵庫可以設計為bbt數據結構(bbt,balancedbinarytree,平衡二叉樹),以bbt表形式保存特徵量,當然,也可以採用其他數據結構,在此不做限定。
相應的,本發明實施例還公開了一種無線網狀網絡報文交互系統,應用於第一設備,參見圖4所示,該系統包括:
接收模塊11,用於利用第一埠接收第二設備發送的第一報文;
提取模塊12,用於提取第一報文中的第一特徵量;
第一判斷模塊13,用於判斷特徵庫中是否保存有第一特徵量;
禁止模塊,用於當第一判斷模塊13判定特徵庫中保存有第一特徵量,則禁止第一報文經過第二埠發送至第二設備;
第二判斷模塊14,用於當第一判斷模塊13判定特徵庫中未保存有第一特徵量,則判斷特徵庫中是否保存有第二特徵量;
第一轉發模塊15,用於當第一判斷模塊13判定特徵庫中保存有第二特徵量,則將第一報文通過第一埠或第二埠轉發;
第二轉發模塊16,用於當第一判斷模塊13判定特徵庫中未保存有第二特徵量,則將第一設備的特徵量保存為第一報文的第一特徵量,得到第二報文,並將第二報文通過第一埠或第二埠轉發;
其中,第一埠與第二埠類型不同。
另外,上述第一判斷模塊13,可以包括接收單元、提取單元和特徵庫生成單元;其中
接收單元,用於接收設備通過lan埠發送的歷史announce報文;
提取單元,用於從歷史announce報文中提取特徵量;
特徵庫生成單元,用於將特徵量保存,得到特徵庫。
進一步的,上述第一轉發模塊15,具體用於將第一報文通過lan埠轉發。本發明實施例中,無線網狀網絡第一報文交互系統,還可以包括:
維護模塊,用於定期對特徵庫進行維護,刪除在預定時間內未接收到相應announce報文的失效特徵量。
可見,本發明實施例中第一設備在接收到第二設備發送的第一報文時,從第一報文中提取出第一特徵量和第二特徵量,並判斷特徵庫中是否包含第一特徵量,以此判斷第二設備是否與第一設備有線直連,若是,則禁止第一報文經過第二埠發送至第二設備,若否,則判斷特徵庫中是否保存有第二特徵量,以此判斷是否需要向與第一設備有線直連的設備轉發第一報文,若是,則將第一報文通過第一埠或第二埠轉發,若否,則將第一設備的特徵量保存為第一報文的第一特徵量,得到第二報文,並將第二報文通過第一埠或第二埠轉發,以此保證,第三設備接收第二報文時,能夠判斷第一設備是否與第三設備有線直連,通過兩種情況的判斷,切斷了環路形成的前提,解決了無線mesh自組網系統中存在有線+無線混連拓撲結構時的網絡迴環問題,同時,還可以減少對於無線帶寬的佔用,降低無線網絡中csma/cd衝突重傳的發生概率,從而提高mesh網絡吞吐量。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上對本發明所提供的一種無線網狀網絡報文交互方法和系統進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。