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