查看: 2916|回复: 6

[技术交流] LoRaWAN网络服务器算法---下行路径选择算法对比与仿真

[复制链接]

74

主题

169

帖子

573

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
573
发表于 2019-12-30 13:50:32 | 显示全部楼层 |阅读模式
LoRaWAN网络服务器算法---下行路径选择算法对比与仿真

一、        概述

LoRaWAN 网络是典型的星型架构网络,但单节点的广播数据也可以同时被多个网关收到并同时上报NS服务器,对于此消息有下行需求时,需要通过NS服务器的下行网关选择算法,选择合适网关进行下行。
一个健全的算法需要考虑到不同网关的网络延时、空口负载、信号质量及任务队列选择最优网关进行下行,确保下行消息可靠送达并使整体网络负载趋于均衡。

利尔达的下行选择算法也随着NS服务器的更新在不断迭代升级,下面对两种常用的算法进行分析描述,并与利尔达Unicore 3.0 LoRaWAN NS服务器的最新下行选择算法进行仿真比较,通过仿真一起看看各种算法在实际应用场景中是如何表现的。


二、        现有算法简述

LoRaWAN的NS服务器中常用以下两种下行选择算法,原理简介如下:
2.1 算法1:信号质量优先法
上行数据有下行需求时,对所有收到该包数据网关的接收信号质量(RSSI或SNR)进行比较,选择上行信号质量最佳的网关进行下行。

2.2 算法2:影响因子得分加权法
下行数据前,根据四点影响因子(RSSI、SNR、网关网络延迟、网关通信负载)对所有收到上行数据的网关进行打分,所有影响因子数值与网关优先度均呈负相关,所以将所有影响因子归一化后加权求和计算出网关得分,并选择分数最小的网关响应下行任务。

三、        应用场景问题分析

在实际工程环境下,以上两种下行选择算法已经暴露出一些问题,下面对一些已知问题进行描述分析。

【上下链路不对等问题】
网关与节点使用的射频基带芯片不同(SX1301与SX1278/SX1276)决定了通信的上下行链路不会完全对等,网关侧基带芯片的接收灵敏度较高,且带有LNA低噪声放大器,可以解调更低信号强度与信噪比的LoRa数据,因此为了保证网关收到上行后,下行的消息可被节点收到,网关的发射功率会大于节点以补偿链路预算的差值。经外场实验测试。节点发射功率为19dBm时,网关需要使用24dBm左右的发射功率才能保证上下行链路平衡。然而因为不同国家对免费频段设备功率的限制,网关的发射功率很可能无法设定为24dBm。上下行链路不平衡会导致网络的下行变得不可靠,带来一些本可以避免的下行丢包。下面以实际案例说明:

1、利尔达配合某客户在某园区部署了深度覆盖的LoRaWAN网络以接入车位锁、地磁、井盖报警器等应用,使用的是第三方的LoRaWAN NS 服务器。2平方公里左右的区域内部署了5台网关深度覆盖地上地下所有应用,然而在部署完成后的测试中缺频繁出现确认帧丢包的现象,排查后发现所有丢包都发生在下行链路,原因在于NS选择了园区外较远处其他项目下的网关下行,而节点的上行可以到达该网关,网关的下行节点缺收不到。
2、某路灯客户也出现过类似现象,距离网关200m内的节点却收不到下行。原因在于NS选择了极远处的一台网关下行导致下行丢包。

以上都暴露出NS下行路径选择的问题,即使上下行链路不对等,算法需要保证不选择信号极差的网关下行。使用算法二时面对该问题可能会无法有效地进行处理

【负载问题】
1、某项目中接入了水表、电表、温湿度、水浸报警等应用,电表的485转LoRaWAN设备集中安装于高压配电房内,数量大(几百只)且上报频次高(unconfirm帧5min周期),配电房附近部署了一台网关以保障配电房内的网络覆盖。而附近的水浸报警器使用Confirm帧通信并且在各类设备首次安装或集体断电时,该网关也需要响应大量JoinAccpet的下行请求。

配电房附近的这台网关因为上行负载极大,若也被分配到较多附近节点的下行请求,由于网关是半双工,在下行时势必会导致一定数量上行数据包的丢失。而若选择其他稍远处空闲网关下行,则可以避免该问题。使用算法一时无法做到负载均衡。



四、        现有算法缺陷及优化算法提出

3.1 信号质量优先法
算法简化流程图如下:


缺陷:
1、该算法仅以信号质量作为选择标准,NS可以选择出距离节点最近的网关,但是没有考虑网关网络延迟,若选择的网关为4G网关,网络波动严重,将产生大量下行丢包。
2、未考虑网关上行负载情况,遇到第三章中所述的负载问题时也无法进行有效处理。

3.2 影响因子得分加权法
算法简化流程图如下:

缺陷:
1、        遇到第三章中所述的上下行链路不对等问题时,算法可能因为其他网关的网络延迟及通信负载较好而选择极远处网关下行而导致丢包
2、        经过模拟测试,网关网络延迟大于450ms时,任何下行数据都将失败,使用权重来考虑该因素并不合理
3、        其实该算法的几个权重值都很难定夺,任何的影响因子出现较为极限的情况时,都会使最终得分有失合理性,很难通过权重值平衡各种极限情况。

3.3 算法三:利尔达Unicore 3.0 下行选择算法
考虑到现有算法的缺点并结合实际应用场景可能遇到的问题,现提出一种新的解决办法,由于核心部分涉及公司机密,故简单介绍其特点如下:
1、充分进行网络负载均衡,保证网络内所有网关的下行负载处于健康状态,面对个别网关网络拥堵的状况时可以很好地将任务均分给附近网关。
2、网关的下行充分考虑下行质量,所有的下行保证处于安全边际内,不会因为个别因素的影响而选择信号质量在安全边际外的网关下行。保证上下行链路双向可达。
3、可以处理较大的网络波动,保证选择的下行网关不受网络波动影响。


五、        算法仿真

基于Python实现上述三种算法,并对实际应用场景进行图形化建模,用以分析算法的执行情况。效果图如下:



该算法仿真基于以下原理与假设:
1、在1*1的正交坐标轴内以随机生成或手动指定的方式确定网关数量及坐标位置。网关位置以红色三角进行标注
2、网关属性包含上行负载及下行负载,每个网关的上行负载可手动设定,且为静态值,与下行负载没有任何直接联系。网关的下行负载在仿真算法中动态计算,网关每处理一个下行请求都会累加下行负载
3、坐标轴1*1区域内以均匀分布的方式随机生成指定数量的坐标点,代表有下行需求的节点,坐标点与网关的距离代表上行信息的信号质量,距离越远信号质量越差。
4、无需考虑实际环境中建筑、树林等遮挡物带来的信号衰减,因为坐标轴内的点位置即代表上行信号质量,并非现实中的节点位置。
5、每随机生成一个下行需求点,运行指定的下行选择算法,选择出最优网关下行后,该网关下行负载增加,并将该点以该网关对应的颜色标注在坐标轴内。
6、不考虑下行速率及TOA时间,将网关的上下行通信占空比抽象为简单的数值,每有一个下行请求,网关下行负载+0.1。
7、假定下行点数量即为周期时间内整个系统需要处理的下行请求,且网关计算动态负载的周期与这个周期时间一致。因此增加点数量即为模拟更高频次的下行请求,且代码中动态负载只需累加即可无需循环计算。
8、为简化算法模拟过程,假定周期时间都所有网关的网络延时均正常。
8、处理完所有点的下行请求后坐标轴内会显示大量着色节点,代表单位时间内对应网关处理的下行请求。
9、代码运行结束后各网关的上下行负载情况会以表格的形式打印出来。



六、        算法对比

手动设定网关位置及各网关上行负载,模拟出常规及各种特殊情况,对比三种不同算法的表现,验证算法效果。


算法一:信号质量优先法
算法二:影响因子得分加权法
算法三:利尔达Unicore 3.0 下行选择算法


【常规情况】

条件:
-        下行请求数量1000 / 网关数量3 / 随机分布 / 网关上行轻负载  

结果:
                无负载均衡                                       负载均衡效果差                                负载均衡效果佳

结果分析:
算法一算法二在网关分布均匀且个网关上行负载无明显差距的情况下,呈现的效果类似,基本是按照就近原则择优,图上可以看到明显的三条明显的分界线,即网关两两连线的中垂线。最终的网关上下行负载都不是很均匀。
算法三中无明显边界线,距离网关较近处的节点选择下行时较为灵活,点位分布存在交叉区域,而较偏远的点则选择了信号质量最好的网关下行。网络负载也做到了很理想的均衡。

【部分网关位置较偏远】
条件:
-        下行请求数量1000 / 网关数量3 / 随机分布 / 网关上行轻负载 / 网关分布不均匀

结果:
                无负载均衡                            负载均衡效果差、部分下行可能丢包                  下行质量可靠、负载均衡效果尚可


结果分析:
该情况下选取的三个网关位置中,两个的位置较偏远。由于下行行请求散点是均匀分布,难以按照设想随意调整分布密度,因此改变网关位置其实相当于改变下行请求的分布情况。该情况下下行请求主要集中于中央网关的附件,下面看下三种算法对于这种情况的处理。

算法一由于仅判断信号质量,在下行请求分布不均匀时,下行负载严重不均衡
算法二可以注意带红圈标注处的情况,由于网关负载在加权求和的算法中占有一定权重,因此当右上角网关负载较小时,得分较高。红圈内的绿色点即是因此原因被分配给了该网关来下行。然而这么偏远位置的节点本身信号质量已经很差,还要选择非最近网关下行,很可能遇到第三章所述的上下行不对等问题,而导致下行失败。且由最终的下行负载情况可以看出负载分布也是差距悬殊。若调整网关负载所占的得分权重,调大则上下行不对等问题更加明显,调小则负载分布更加不均匀。存在一定的局限性。
算法三中右上角网关自身附近的下行请求较少,但是算法给他分配了大量中间网关附近的下行请求,最大程度地帮助整个系统分担下行负载。并且该网关仅响应自己安全边际内的下行,对于偏远点全部交由最近的网关处理以保障通信成功率。最终的下行负载情况虽然没有做到完全均衡,但是优于前两者。



【某网关负载较重情况】
条件:
-        下行请求数量1000 / 网关数量5 / 随机分布 / 单网关上行重负载 / 网关分布较均匀

结果:
                无负载均衡                               负载均衡效果差                              负载均衡效果好

结果分析:
这是一种较为常见的情况,区域内分布了五台网关,最右侧网关覆盖的节点较多,且上行负载较大,设定值为17.5%,主要关注各算法对这个高负载网关的处理。
算法一仅判断信号质量,不判断负载情况,最右处网关在已有17.5%的上行负载时依然需要处理26.9%的下行负载。
算法二在上一个模拟场景中暴露出负载权重过大的缺陷,本场景中未改变负载权重。可以看出相对于算法一,算法二由于网关负载在加权求和的算法中占有一定权重,已经起到了一定效果,将网关4的下行负载降低了一些,但是在该场景下,相对于上个场景反而显得负载的权重太小,无法处理好大负载网关。
算法三中可以看到左侧的网关都向右分担了更多的下行任务,最终网关4的下行负载仅为12.9%,相比于其他算法有明显提升。


七、        总结
综合以上仿真结果,
算法一由于为考虑网关负载情况,在负载均衡的处理上完全由节点与网关的位置决定,虽然能保证从信号最优网关下行,但是缺点在于无法做到负载均衡。
算法二在将考虑到了各类影响因素,设定不同的权重进行加权求和,看似可以通过权重因子的调节灵活地调整算法以应对各种情况,但是在仿真的模拟情况二和情况三中,使用相同的权重,却暴露出相反方向的问题,也就是说权重因子无论如何调节都无法同时处理这两种情况。并且在负载均衡方面算法二也仅是相对于算法一有一点点提升。
算法三在上述模拟情况及其余大量随机测试中没有暴露出问题,算法从设计角度已经保证了远处节点可以得到最佳网关的响应,并且在负载均衡方面拿出近处节点灵活分配,最大程度的做到负载均衡。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

4

帖子

16

积分

助理工程师

Rank: 1

积分
16
发表于 2022-8-19 18:03:48 | 显示全部楼层
有相关的数据集吗
回复

使用道具 举报

74

主题

169

帖子

573

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
573
 楼主| 发表于 2022-8-26 10:04:14 | 显示全部楼层
13609400734 发表于 2022-8-19 18:03
有相关的数据集吗

测试数据已重新补充。
回复

使用道具 举报

0

主题

4

帖子

16

积分

助理工程师

Rank: 1

积分
16
发表于 2022-8-29 18:18:40 | 显示全部楼层
RF_001 发表于 2022-8-26 10:04
测试数据已重新补充。

数据集补充在哪里,可以在哪里下载哇
回复

使用道具 举报

74

主题

169

帖子

573

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
573
 楼主| 发表于 2022-9-1 09:28:26 | 显示全部楼层
13609400734 发表于 2022-8-29 18:18
数据集补充在哪里,可以在哪里下载哇

我们只能开放部分测试数据,见图片。
回复

使用道具 举报

0

主题

4

帖子

16

积分

助理工程师

Rank: 1

积分
16
发表于 2023-8-16 14:26:18 | 显示全部楼层
RF_001 发表于 2022-9-1 09:28
我们只能开放部分测试数据,见图片。

您好,可以留下一下相关的联系方式,想针对上面的算法进行一些学术上面的交流
回复

使用道具 举报

0

主题

4

帖子

16

积分

助理工程师

Rank: 1

积分
16
发表于 2023-8-30 14:15:55 | 显示全部楼层
可以交流一下吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表