孫嚴智,胡勁松,劉宇明
(云南電力調(diào)度控制中心,昆明 650011)
在傳統(tǒng)的廣域連接應用中,很多行業(yè)主要是借助電信運營商提供的蜂窩網(wǎng)絡實現(xiàn)互聯(lián),但在我們的現(xiàn)實生活中卻還存在著大量的設備是無法利用現(xiàn)有的蜂窩網(wǎng)絡技術,比如環(huán)境惡劣情況下水文、氣象、山體、礦井數(shù)據(jù)的采集,大面積的農(nóng)業(yè)灌溉和畜牧養(yǎng)殖以及偏遠地區(qū)的戶外作業(yè)等[1]?;谝陨显?,本文提出一種基于軟件定義的LoRa(Long Range,廣距)自組織網(wǎng)絡。
LoRa(Long Range,廣距)是由Semtech(升特)公司提供的一種基于擴頻技術的超遠距離無線傳輸方案,也是一種低功耗網(wǎng)絡無線接入技術[2]。與現(xiàn)有成熟的無線通信技術如WiFi、藍牙和ZigBee 等相比,它具有傳輸距離遠、發(fā)射功耗低、抗干擾性強等特點,適合于長距離發(fā)送標量數(shù)據(jù)的終端設備[3]。LoRa 采用擴頻調(diào)制解調(diào)技術可以解調(diào)低于20dB 的噪聲,這確保了網(wǎng)絡的可靠連接[4]?;贚oRa 的自組織網(wǎng)絡架構是一個典型的星型拓撲結構,其中心節(jié)點是基于Lora 的無線模塊,而終端的每個Lora模塊都與傳感器相連,整個自組織網(wǎng)絡無需架設網(wǎng)絡基礎設施即可實現(xiàn)快速、自動組網(wǎng),若終端測的模塊故障,網(wǎng)絡也可以快速恢復,因此整個通信系統(tǒng)具有較高的網(wǎng)絡抗毀性、安全性和機動性,保證各種信息的安全可靠。但是Lora 自組織網(wǎng)絡采用傳統(tǒng)的分布式多跳組網(wǎng),普通傳感節(jié)點的路由開銷過大,若是中心節(jié)點出現(xiàn)故障,難以快速進行全局拓撲感知和故障恢復[5]。
軟件定義網(wǎng)絡是由美國斯坦福大學Clean slate 研究組提出的一種新型網(wǎng)絡創(chuàng)新架構,其核心技術OpenFlow 將網(wǎng)絡設備的控制平面和數(shù)據(jù)平面分離開來,通過軟件編程的方式實現(xiàn)網(wǎng)絡硬件對數(shù)據(jù)轉發(fā)規(guī)則的集中控制,從而實現(xiàn)對網(wǎng)絡流量自由、靈活的控制[6]。其最大的優(yōu)勢就是實現(xiàn)控制平面與數(shù)據(jù)平面的分離,對網(wǎng)絡設備進行集中管理,通過協(xié)議將數(shù)據(jù)下發(fā)至底層的平面去執(zhí)行[7]。軟件定義網(wǎng)絡技術可以使網(wǎng)絡架構更加靈活,并且由于數(shù)據(jù)與控制平面的分離,使得每一層的網(wǎng)元的處理能力和效率大大提高[8]。
所以,本文在Lora 自組織網(wǎng)中采用軟件定義網(wǎng)絡中的集中控制和數(shù)控分離思想,在數(shù)據(jù)層主要進行數(shù)據(jù)的采集、傳輸和處理,在控制層通過控制節(jié)點收集全網(wǎng)的拓撲信息,并用于拓撲發(fā)現(xiàn)、流表生成和下發(fā)算法。通過在無線傳感網(wǎng)中使用LoRa 增大傳輸距離并降低系統(tǒng)功耗,通過控制層的集中控制和管理功能提高路由成功率,從而使得基于軟件定義網(wǎng)絡技術的LoRa 自組織網(wǎng)絡架構在節(jié)能、兼容性、緩解節(jié)點計算壓力和網(wǎng)絡的整體性能等方面都有很大的提高。
本文提出的一種基于軟件定義的LoRa 自組織網(wǎng)絡架構如圖1 所示,該網(wǎng)絡由傳感節(jié)點、中心控制節(jié)點和LoRa 無線傳輸模塊組成。網(wǎng)絡中的終端傳感節(jié)點負責實現(xiàn)終端側的軟件定義算法、數(shù)據(jù)信息的采集和控制信息的接收[9]。網(wǎng)絡中的中心控制節(jié)點負責實現(xiàn)控制器側的軟件定義算法,收集整個網(wǎng)絡的拓撲連接、節(jié)點信息和鏈路狀態(tài)等多維度信息,并對信息進行集中地分析和處理,計算出全網(wǎng)最佳的路由信息。LoRa 無線模塊是一種基于擴頻調(diào)制技術的無線通訊模塊,它具有傳輸距離遠、發(fā)射功耗低、抗干擾性強等特點,所以該LoRa 自組織網(wǎng)絡中各個節(jié)點之間均采用LoRa 模塊進行無線連接。最終,中心控制節(jié)點及多個傳感節(jié)點以LoRa 作為無線傳輸模塊組成星型多跳自組織網(wǎng)絡[10]。
圖1 基于軟件定義的LoRa自組織網(wǎng)絡的架構
該基于軟件定義的LoRa 自組織網(wǎng)絡已經(jīng)集成了PM2.5、溫濕度和煙感等信息采集模塊。傳感器將采集到的這些數(shù)據(jù)信息,通過LoRa 模塊發(fā)送出去,然后中心控制節(jié)點可以根據(jù)網(wǎng)絡環(huán)境制定合理有效的轉發(fā)規(guī)則,并可以對網(wǎng)絡中的傳感節(jié)點的數(shù)據(jù)采集行為進行集中管理。該網(wǎng)絡還采用了軟件定義網(wǎng)絡中數(shù)控分離的思想,通過中心控制節(jié)點對整個網(wǎng)絡的集中管控,省去了普通節(jié)點進行路由發(fā)現(xiàn)的過程,可以降低尋路不佳或者尋路失敗所造成的路由不穩(wěn)定的情況[11]。另外中心節(jié)點還可以收集全網(wǎng)的拓撲信息,并用于拓撲發(fā)現(xiàn)算法和流表生成和下發(fā)算法中[12]。拓撲發(fā)現(xiàn)、流表生成和下發(fā)等基于集中控制思想的相關算法的設計和實現(xiàn)是整個網(wǎng)絡的核心功能,直接影響著整個網(wǎng)絡的穩(wěn)定性、兼容性、節(jié)能性以及網(wǎng)絡管理便捷性。因此如何設計和實現(xiàn)拓撲發(fā)現(xiàn)算法、流表生成和下發(fā)算法,對LoRa 自組織網(wǎng)絡后期的規(guī)劃、建設、維護有著長遠的影響。
基于軟件定義的LoRa 自組織網(wǎng)絡架構的主要設計目標是在應用層開發(fā)適用于自組織無線傳感器網(wǎng)絡的、基于數(shù)控分離思想的廣距抗擾低耗的星型多跳自組織網(wǎng)絡,該網(wǎng)絡實現(xiàn)的功能有PM2.5、溫濕度和煙感等標量傳感信息的采集轉發(fā),數(shù)據(jù)管理,拓撲發(fā)現(xiàn)、流表生成和下發(fā)等。由于該網(wǎng)絡采用數(shù)控分離的思想,利用中心控制節(jié)點對整個網(wǎng)絡進行集中的管控,所以基于鏈路質量的網(wǎng)絡拓撲發(fā)現(xiàn)算法和基于負載均衡的流表生成和下發(fā)算法的設計和實現(xiàn)是整個網(wǎng)絡架構的基礎和重點,將直接影響著網(wǎng)絡的整體性能。
在傳統(tǒng)的無線自組織網(wǎng)絡中,節(jié)點可以自由的加入到當前網(wǎng)絡,這將導致網(wǎng)絡規(guī)模的擴大和網(wǎng)絡拓撲結構的錯綜復雜,再加上網(wǎng)絡中節(jié)點可以隨意移動和增減,因此網(wǎng)絡的拓撲結構在不斷變化,能否及時準確的把握網(wǎng)絡拓撲的動態(tài)變化,獲得正確完整的網(wǎng)絡拓撲信息對于網(wǎng)絡管理來說至關重要,所以高效的拓撲發(fā)現(xiàn)算法是基于軟件定義的LoRa 自組織網(wǎng)絡實現(xiàn)的基礎算法。
在拓撲發(fā)現(xiàn)算法中,網(wǎng)絡中的控制節(jié)點通過廣播方式收集全網(wǎng)的拓撲信息,形成一張包含全局節(jié)點的網(wǎng)絡連接關系圖,并用于流表生成和下發(fā)算法。普通節(jié)點通過鄰居發(fā)現(xiàn)算法采集各自的鄰居信息,采用滑動窗口算法統(tǒng)計鄰居節(jié)點的鏈路質量并形成鄰居節(jié)點信息表;控制器定時發(fā)起拓撲發(fā)現(xiàn),廣播拓撲請求包采集全網(wǎng)拓撲和鏈路質量信息,形成全網(wǎng)節(jié)點信息表。其拓撲發(fā)現(xiàn)和拓撲維護的具體過程可細分為控制器側和終端側兩部分。
控制器側首先需要進行初始化,之后控制器通過廣播拓撲請求包進行拓撲發(fā)現(xiàn),根據(jù)終端上報的鄰居列表填寫鄰接矩陣,利用F 算法計算全網(wǎng)路由,生成流表??刂破鲗⒘鞅硐掳l(fā)至每一臺終端,終端接收流表后改寫自身路由表,由此,全網(wǎng)路由建立。若拓撲發(fā)生更新,那控制器會收到拓撲修復包,根據(jù)包中的信息更新拓撲表,完成一次拓撲的維護過程。其控制器側詳細的拓撲發(fā)現(xiàn)與更新流程如圖2 所示。
而在終端側,終端節(jié)點通過廣播Hello 包尋找鄰居節(jié)點,鄰居節(jié)點收到Hello 包后會回復源節(jié)點,由此建立起一條雙向的鄰居鏈路,并將此記錄在源節(jié)點中。終端通過定時發(fā)送Hello 包,不間斷地維護自己的鄰居列表。當收到控制器發(fā)出的拓撲請求包時,立即向控制器上報自身鄰居列表,并向網(wǎng)絡中繼續(xù)廣播相同的拓撲請求包,實現(xiàn)拓撲請求包在全網(wǎng)范圍內(nèi)的分發(fā)。隨后,終端進入拓撲維護狀態(tài),當且僅當自身鄰居列表發(fā)生改變時,才向控制器報告新的鄰居列表。其終端側詳細的拓撲發(fā)現(xiàn)與更新流程如圖3 所示。
圖2 拓撲發(fā)現(xiàn)和拓撲維護控制器側流程
流表生成和下發(fā)算法是基于軟件定義的LoRa 自組織網(wǎng)絡建立的關鍵算法。整個流表生成和下發(fā)的過程充分考慮了無線多跳網(wǎng)絡的連接特性,將鏈路質量信息作為負載均衡算法設計的基礎,并且采用了動態(tài)F 算法依次完成了各節(jié)點流表轉發(fā)規(guī)則的生成,最后通過逐步擴散傳播的方式實現(xiàn)全網(wǎng)節(jié)點的流表下發(fā)。其流表生成和下發(fā)的具體過程也可細分為控制器側和終端側兩部分。
圖3 拓撲發(fā)現(xiàn)和拓撲維護終端側流程
控制器側在基于全局拓撲連接關系以及全網(wǎng)鏈路質量信息的基礎上,控制節(jié)點采用動態(tài)F算法完成普通節(jié)點到控制器的路由選擇,形成基于負載均衡的流表轉發(fā)規(guī)則??刂破鲗⒏霓D發(fā)規(guī)則進行逐跳下發(fā),直到網(wǎng)絡邊緣的節(jié)點收集到對應的轉發(fā)規(guī)則,完成流表下發(fā)過程。其控制器側詳細的流表生成與下發(fā)具體流程如圖4所示。
終端側的普通節(jié)點在整個過程中只需要接收控制器的流表信息,然后修改各自的流表轉發(fā)規(guī)則并向控制器發(fā)送ACK 回復即可,大大的減輕了普通傳感節(jié)點的計算和通信壓力,有效提高了普通節(jié)點的能效和通信效率。其終端側詳細的流表生成與下發(fā)具體流程如圖5 所示。
本文流程圖均使用SDL 圖,SDL 圖是一種使用規(guī)范和說明語言(SDL)為網(wǎng)絡創(chuàng)建面向對象的圖表。SDL 圖例說明如下:
圖4 流表生成和下發(fā)控制器側流程
為了評估基于軟件定義的LoRa 自組織網(wǎng)絡的有效性和可靠性,本文從網(wǎng)絡的時延和丟包率兩方面的性能進行測試和分析。準備控制器和多個LoRa 模塊傳感節(jié)點,通過控制端使用ping 命令進行整個網(wǎng)絡的性能測試,主要過程如下:
1)開啟各個終端節(jié)點,進行PM2.5、溫濕度和煙感等表量數(shù)據(jù)信息的采集。
2)開啟控制器,并啟動控制器的拓撲發(fā)現(xiàn)程序,收集全網(wǎng)拓撲信息,隨后生成流表和下發(fā)流表。
3)最后使用ping 命令進行時延和丟包率的測試。在控制端ping 不同跳數(shù)的終端傳感節(jié)點,記錄最短時延、平均時延和最長時延以及丟包率。
圖5 流表生成和下發(fā)終端側流程
時延是衡量網(wǎng)絡性能的一個重要指標,時延越小說明網(wǎng)絡的性能越好,網(wǎng)絡越穩(wěn)定。本節(jié)測試的時延主要指發(fā)送一段完整報文到接收該完整報文所用的總時間。
圖6-圖9 分別為傳感節(jié)點按不同距離擺放時的網(wǎng)絡時延測試。圖中藍色實線代表的是網(wǎng)絡的最大時延。紅色實線代表的是網(wǎng)絡的平均時延。黑色實線代表的是最小時延。
圖6 傳感節(jié)點近距離擺放的網(wǎng)絡時延
圖7 傳感節(jié)點間距50m擺放的網(wǎng)絡時延
圖8 傳感節(jié)點間距100m擺放的網(wǎng)絡時延
圖9 傳感節(jié)點間距200m擺放的網(wǎng)絡時延
從圖中可以看出,網(wǎng)絡的時延隨跳數(shù)和距離的增加而上升。當傳感節(jié)點間距在100 m 之內(nèi)時,網(wǎng)絡的時延隨跳數(shù)的增加緩慢上升,在10 跳之內(nèi)平均時延都在3000ms 以內(nèi),20 跳之內(nèi)平均時延都在7000 ms 以內(nèi)。當傳感節(jié)點間距達到200 m 時,網(wǎng)絡時延隨著跳數(shù)的增加急劇上升,網(wǎng)絡性能變差,跳數(shù)增加到7 跳時,網(wǎng)絡甚至無法正常工作。
測試結果表明該網(wǎng)絡最大跳數(shù)可以達到10跳,且每跳距離可達100 m,能夠很好的滿足傳送PM2.5、溫濕度和煙感等信息的應用需求。
丟包率是指測試時所發(fā)送數(shù)據(jù)包總量中丟失數(shù)據(jù)包所占的比率,其計算公式如下:
式(1)中,total-data指測試時發(fā)送的總報文數(shù)量,total-data指測試過程中丟失的數(shù)據(jù)報文數(shù)量。丟包率反映了報文的丟失狀況,同時也反映了算法的性能。
圖10 傳感節(jié)點近距離擺放的丟包率
圖11 傳感節(jié)點間距50m擺放的丟包率
圖12 傳感節(jié)點間距100m擺放的丟包率
圖13 傳感節(jié)點間距200m擺放的丟包率
圖10-圖13 分別為傳感節(jié)點按不同距離擺放時的網(wǎng)絡丟包率情況。
從圖中可以看出,網(wǎng)絡的丟包率在一定的跳數(shù)和距離范圍內(nèi)維持穩(wěn)定,之后隨著跳數(shù)和距離的增加而上升。當傳感節(jié)點間距在100m 之內(nèi)且跳數(shù)在10 跳之內(nèi)時,網(wǎng)絡性能較穩(wěn)定,丟包率呈現(xiàn)平穩(wěn)的狀態(tài),最壞情況丟包率為5%,網(wǎng)絡狀態(tài)良好時甚至無丟包。不過10 跳之后,網(wǎng)絡的丟包率隨著跳數(shù)的增加急劇上升。當傳感節(jié)點間距達到200m 時,網(wǎng)絡丟包率隨著跳數(shù)的增加急劇上升,網(wǎng)絡性能變差,最大丟包率甚至高達70%,跳數(shù)增加到7 跳之后,網(wǎng)絡無法正常工作。由此可得該網(wǎng)絡在保持較優(yōu)性能的情況下可達10 跳,每跳距離可達100m。
本文設計的一種基于軟件定義的LoRa 自組織網(wǎng)絡架構是為了滿足在無法利用傳統(tǒng)蜂窩網(wǎng)絡技術的情況下對特定環(huán)境中的數(shù)據(jù)采集的需要而提出的。該網(wǎng)絡將軟件定義網(wǎng)絡、Lora 技術和自組織網(wǎng)絡的優(yōu)勢相結合,既可以在數(shù)據(jù)平面完成溫濕度信息、煙感信息、PM2.5 等信息的采集傳輸和處理,又可以在控制平面上完成實時感知維護全網(wǎng)的拓撲結構、集中配置普通傳感節(jié)點、修改傳感信息采集規(guī)則和節(jié)點轉發(fā)規(guī)則等功能。該網(wǎng)絡設計和實現(xiàn)的重點在于提出了一種基于集中控制思想的拓撲發(fā)現(xiàn)和維護算法以及一種基于負載均衡的流表生成和下發(fā)算法,該算法可以準確地把握網(wǎng)絡拓撲的動態(tài)變化,提高路由成功率和網(wǎng)絡的整體性能。測試結果表明該網(wǎng)絡最大跳數(shù)可以達到10 跳,且每跳距離可達100 m,能夠很好的滿足傳送PM2.5、溫濕度和煙感等信息的應用需求。
該網(wǎng)絡架構實際上還有可以優(yōu)化的余地,下一步目標是研究如何在不影響網(wǎng)絡拓撲感知和路由成功率的基礎上有效地提升節(jié)點信息傳輸速率及其最大跳數(shù)并降低網(wǎng)絡能耗。