LoRaWAN網(wǎng)絡(luò)服務器算法--下行路徑選擇算法對比與仿真(下)
2024/02/05
瀏覽量:1927

??LoRaWAN 網(wǎng)絡(luò)是典型的星型架構(gòu)網(wǎng)絡(luò),但單節(jié)點的廣播數(shù)據(jù)也可以同時被多個網(wǎng)關(guān)收到并同時上報NS服務器,對于此消息有下行需求時,需要通過NS服務器的下行網(wǎng)關(guān)選擇算法,選擇合適網(wǎng)關(guān)進行下行。
??一個健全的算法需要考慮到不同網(wǎng)關(guān)的網(wǎng)絡(luò)延時、空口負載、信號質(zhì)量及任務隊列選擇最優(yōu)網(wǎng)關(guān)進行下行,確保下行消息可靠送達并使整體網(wǎng)絡(luò)負載趨于均衡。
??利爾達的下行選擇算法也隨著NS服務器的更新在不斷迭代升級,我們在上篇中對兩種常用的算法進行分析描述,今天將繼續(xù)通過仿真一起看看各種算法在實際應用場景中是如何表現(xiàn)的。
??一、現(xiàn)有算法缺陷及優(yōu)化算法提出
??算法一:信號質(zhì)量優(yōu)先法
??算法簡化流程圖如下:
??缺陷:
??1、該算法僅以信號質(zhì)量作為選擇標準,NS可以選擇出距離節(jié)點最近的網(wǎng)關(guān),但是沒有考慮網(wǎng)關(guān)網(wǎng)絡(luò)延遲,若選擇的網(wǎng)關(guān)為4G網(wǎng)關(guān),網(wǎng)絡(luò)波動嚴重,將產(chǎn)生大量下行丟包。
??2、未考慮網(wǎng)關(guān)上行負載情況,遇到第三章中所述的負載問題時也無法進行有效處理。
??算法二:影響因子得分加權(quán)法
??算法簡化流程圖如下:
??缺陷:
??1、遇到第三章中所述的上下行鏈路不對等問題時,算法可能因為其他網(wǎng)關(guān)的網(wǎng)絡(luò)延遲及通信負載較好而選擇極遠處網(wǎng)關(guān)下行而導致丟包
??2、經(jīng)過模擬測試,網(wǎng)關(guān)網(wǎng)絡(luò)延遲大于450ms時,任何下行數(shù)據(jù)都將失敗,使用權(quán)重來考慮該因素并不合理。
??3、其實該算法的幾個權(quán)重值都很難定奪,任何的影響因子出現(xiàn)較為極限的情況時,都會使最終得分有失合理性,很難通過權(quán)重值平衡各種極限情況。
??算法三:利爾達Unicore 3.0 下行選擇算法
??考慮到現(xiàn)有算法的缺點并結(jié)合實際應用場景可能遇到的問題,現(xiàn)提出一種新的解決辦法,由于核心部分涉及公司機密,故簡單介紹其特點如下:
??1、充分進行網(wǎng)絡(luò)負載均衡,保證網(wǎng)絡(luò)內(nèi)所有網(wǎng)關(guān)的下行負載處于健康狀態(tài),面對個別網(wǎng)關(guān)網(wǎng)絡(luò)擁堵的狀況時可以很好地將任務均分給附近網(wǎng)關(guān)。
??2、網(wǎng)關(guān)的下行充分考慮下行質(zhì)量,所有的下行保證處于安全邊際內(nèi),不會因為個別因素的影響而選擇信號質(zhì)量在安全邊際外的網(wǎng)關(guān)下行。保證上下行鏈路雙向可達。
??3、可以處理較大的網(wǎng)絡(luò)波動,保證選擇的下行網(wǎng)關(guān)不受網(wǎng)絡(luò)波動影響。
??二、算法仿真
??基于Python實現(xiàn)上述三種算法并對實際應用場景進行圖形化建模,用以分析算法的執(zhí)行情況。效果圖如下:
??該算法仿真基于以下原理與假設(shè):
??1、在1*1的正交坐標軸內(nèi)以隨機生成或手動指定的方式確定網(wǎng)關(guān)數(shù)量及坐標位置。網(wǎng)關(guān)位置以紅色三角進行標注
??2、網(wǎng)關(guān)屬性包含上行負載及下行負載,每個網(wǎng)關(guān)的上行負載可手動設(shè)定,且為靜態(tài)值,與下行負載沒有任何直接聯(lián)系。網(wǎng)關(guān)的下行負載在仿真算法中動態(tài)計算,網(wǎng)關(guān)每處理一個下行請求都會累加下行負載
??3、坐標軸1*1區(qū)域內(nèi)以均勻分布的方式隨機生成指定數(shù)量的坐標點,代表有下行需求的節(jié)點,坐標點與網(wǎng)關(guān)的距離代表上行信息的信號質(zhì)量,距離越遠信號質(zhì)量越差。
??4、無需考慮實際環(huán)境中建筑、樹林等遮擋物帶來的信號衰減,因為坐標軸內(nèi)的點位置即代表上行信號質(zhì)量,并非現(xiàn)實中的節(jié)點位置。
??5、每隨機生成一個下行需求點,運行指定的下行選擇算法,選擇出最優(yōu)網(wǎng)關(guān)下行后,該網(wǎng)關(guān)下行負載增加,并將該點以該網(wǎng)關(guān)對應的顏色標注在坐標軸內(nèi)。
??6、不考慮下行速率及TOA時間,將網(wǎng)關(guān)的上下行通信占空比抽象為簡單的數(shù)值,每有一個下行請求,網(wǎng)關(guān)下行負載+0.1。
??7、假定下行點數(shù)量即為周期時間內(nèi)整個系統(tǒng)需要處理的下行請求,且網(wǎng)關(guān)計算動態(tài)負載的周期與這個周期時間一致。因此增加點數(shù)量即為模擬更高頻次的下行請求,且代碼中動態(tài)負載只需累加即可無需循環(huán)計算。
??8、為簡化算法模擬過程,假定周期時間都所有網(wǎng)關(guān)的網(wǎng)絡(luò)延時均正常。
??9、處理完所有點的下行請求后坐標軸內(nèi)會顯示大量著色節(jié)點,代表單位時間內(nèi)對應網(wǎng)關(guān)處理的下行請求。
??10、代碼運行結(jié)束后各網(wǎng)關(guān)的上下行負載情況會以表格的形式打印出來。
??三、算法對比
??手動設(shè)定網(wǎng)關(guān)位置及各網(wǎng)關(guān)上行負載,模擬出常規(guī)及各種特殊情況,對比三種不同算法的表現(xiàn),驗證算法效果。
??算法一:信號質(zhì)量優(yōu)先法
??算法二:影響因子得分加權(quán)法
??算法三:利爾達Unicore 3.0 下行選擇算法
??【常規(guī)情況】
??條件:下行請求數(shù)量1000 / 網(wǎng)關(guān)數(shù)量3 / 隨機分布 / 網(wǎng)關(guān)上行輕負載
??結(jié)果:算法一無負載均衡;算法二負載均衡效果差;算法三負載均衡效果佳
??結(jié)果分析:
??算法一和算法二在網(wǎng)關(guān)分布均勻且個網(wǎng)關(guān)上行負載無明顯差距的情況下,呈現(xiàn)的效果類似,基本是按照就近原則擇優(yōu),圖上可以看到明顯的三條明顯的分界線,即網(wǎng)關(guān)兩兩連線的中垂線。最終的網(wǎng)關(guān)上下行負載都不是很均勻。
??算法三中無明顯邊界線,距離網(wǎng)關(guān)較近處的節(jié)點選擇下行時較為靈活,點位分布存在交叉區(qū)域,而較偏遠的點則選擇了信號質(zhì)量最好的網(wǎng)關(guān)下行。網(wǎng)絡(luò)負載也做到了很理想的均衡。
??【部分網(wǎng)關(guān)位置較偏遠】
??條件:下行請求數(shù)量1000 / 網(wǎng)關(guān)數(shù)量3 / 隨機分布 / 網(wǎng)關(guān)上行輕負載 / 網(wǎng)關(guān)分布不均勻
??結(jié)果:算法一無負載均衡;算法二負載均衡效果差、部分下行可能丟包;算法三下行質(zhì)量可靠、負載均衡效果尚可。
??結(jié)果分析:
??該情況下選取的三個網(wǎng)關(guān)位置中,兩個的位置較偏遠。由于下行行請求散點是均勻分布,難以按照設(shè)想隨意調(diào)整分布密度,因此改變網(wǎng)關(guān)位置其實相當于改變下行請求的分布情況。該情況下下行請求主要集中于中央網(wǎng)關(guān)的附件,下面看下三種算法對于這種情況的處理。
??算法一由于僅判斷信號質(zhì)量,在下行請求分布不均勻時,下行負載嚴重不均衡。
??算法二可以注意帶紅圈標注處的情況,由于網(wǎng)關(guān)負載在加權(quán)求和的算法中占有一定權(quán)重,因此當右上角網(wǎng)關(guān)負載較小時,得分較高。紅圈內(nèi)的綠色點即是因此原因被分配給了該網(wǎng)關(guān)來下行。然而這么偏遠位置的節(jié)點本身信號質(zhì)量已經(jīng)很差,還要選擇非最近網(wǎng)關(guān)下行,很可能遇到第三章所述的上下行不對等問題,而導致下行失敗。且由最終的下行負載情況可以看出負載分布也是差距懸殊。若調(diào)整網(wǎng)關(guān)負載所占的得分權(quán)重,調(diào)大則上下行不對等問題更加明顯,調(diào)小則負載分布更加不均勻。存在一定的局限性。
??算法三中右上角網(wǎng)關(guān)自身附近的下行請求較少,但是算法給他分配了大量中間網(wǎng)關(guān)附近的下行請求,最大程度地幫助整個系統(tǒng)分擔下行負載。并且該網(wǎng)關(guān)僅響應自己安全邊際內(nèi)的下行,對于偏遠點全部交由最近的網(wǎng)關(guān)處理以保障通信成功率。最終的下行負載情況雖然沒有做到完全均衡,但是優(yōu)于前兩者。
??【某網(wǎng)關(guān)負載較重情況】
??條件:下行請求數(shù)量1000 / 網(wǎng)關(guān)數(shù)量5 / 隨機分布 / 單網(wǎng)關(guān)上行重負載 / 網(wǎng)關(guān)分布較均勻
??結(jié)果:算法一無負載均衡;算法二負載均衡效果差;算法三負載均衡效果好。
??結(jié)果分析:
??這是一種較為常見的情況,區(qū)域內(nèi)分布了五臺網(wǎng)關(guān),最右側(cè)網(wǎng)關(guān)覆蓋的節(jié)點較多,且上行負載較大,設(shè)定值為17.5%,主要關(guān)注各算法對這個高負載網(wǎng)關(guān)的處理。
??算法一僅判斷信號質(zhì)量,不判斷負載情況,最右處網(wǎng)關(guān)在已有17.5%的上行負載時依然需要處理26.9%的下行負載。
??算法二在上一個模擬場景中暴露出負載權(quán)重過大的缺陷,本場景中未改變負載權(quán)重??梢钥闯鱿鄬τ谒惴ㄒ唬惴ǘ捎诰W(wǎng)關(guān)負載在加權(quán)求和的算法中占有一定權(quán)重,已經(jīng)起到了一定效果,將網(wǎng)關(guān)4的下行負載降低了一些,但是在該場景下,相對于上個場景反而顯得負載的權(quán)重太小,無法處理好大負載網(wǎng)關(guān)。
??算法三中可以看到左側(cè)的網(wǎng)關(guān)都向右分擔了更多的下行任務,最終網(wǎng)關(guān)4的下行負載僅為12.9%,相比于其他算法有明顯提升。
??四、總結(jié)
??綜合以上仿真結(jié)果——
??算法一由于為考慮網(wǎng)關(guān)負載情況,在負載均衡的處理上完全由節(jié)點與網(wǎng)關(guān)的位置決定,雖然能保證從信號最優(yōu)網(wǎng)關(guān)下行,但是缺點在于無法做到負載均衡。
??算法二在將考慮到了各類影響因素,設(shè)定不同的權(quán)重進行加權(quán)求和,看似可以通過權(quán)重因子的調(diào)節(jié)靈活地調(diào)整算法以應對各種情況,但是在仿真的模擬情況二和情況三中,使用相同的權(quán)重,卻暴露出相反方向的問題,也就是說權(quán)重因子無論如何調(diào)節(jié)都無法同時處理這兩種情況。并且在負載均衡方面算法二也僅是相對于算法一有一點點提升。
??算法三在上述模擬情況及其余大量隨機測試中沒有暴露出問題,算法從設(shè)計角度已經(jīng)保證了遠處節(jié)點可以得到最佳網(wǎng)關(guān)的響應,并且在負載均衡方面拿出近處節(jié)點靈活分配,最大程度的做到負載均衡。