基于软件定义的LoRa自组织网络研究与实现
2020-01-09孙严智胡劲松刘宇明
孙严智,胡劲松,刘宇明
(云南电力调度控制中心,昆明 650011)
0 前言
在传统的广域连接应用中,很多行业主要是借助电信运营商提供的蜂窝网络实现互联,但在我们的现实生活中却还存在着大量的设备是无法利用现有的蜂窝网络技术,比如环境恶劣情况下水文、气象、山体、矿井数据的采集,大面积的农业灌溉和畜牧养殖以及偏远地区的户外作业等[1]。基于以上原因,本文提出一种基于软件定义的LoRa(Long Range,广距)自组织网络。
LoRa(Long Range,广距)是由Semtech(升特)公司提供的一种基于扩频技术的超远距离无线传输方案,也是一种低功耗网络无线接入技术[2]。与现有成熟的无线通信技术如WiFi、蓝牙和ZigBee 等相比,它具有传输距离远、发射功耗低、抗干扰性强等特点,适合于长距离发送标量数据的终端设备[3]。LoRa 采用扩频调制解调技术可以解调低于20dB 的噪声,这确保了网络的可靠连接[4]。基于LoRa 的自组织网络架构是一个典型的星型拓扑结构,其中心节点是基于Lora 的无线模块,而终端的每个Lora模块都与传感器相连,整个自组织网络无需架设网络基础设施即可实现快速、自动组网,若终端测的模块故障,网络也可以快速恢复,因此整个通信系统具有较高的网络抗毁性、安全性和机动性,保证各种信息的安全可靠。但是Lora 自组织网络采用传统的分布式多跳组网,普通传感节点的路由开销过大,若是中心节点出现故障,难以快速进行全局拓扑感知和故障恢复[5]。
软件定义网络是由美国斯坦福大学Clean slate 研究组提出的一种新型网络创新架构,其核心技术OpenFlow 将网络设备的控制平面和数据平面分离开来,通过软件编程的方式实现网络硬件对数据转发规则的集中控制,从而实现对网络流量自由、灵活的控制[6]。其最大的优势就是实现控制平面与数据平面的分离,对网络设备进行集中管理,通过协议将数据下发至底层的平面去执行[7]。软件定义网络技术可以使网络架构更加灵活,并且由于数据与控制平面的分离,使得每一层的网元的处理能力和效率大大提高[8]。
所以,本文在Lora 自组织网中采用软件定义网络中的集中控制和数控分离思想,在数据层主要进行数据的采集、传输和处理,在控制层通过控制节点收集全网的拓扑信息,并用于拓扑发现、流表生成和下发算法。通过在无线传感网中使用LoRa 增大传输距离并降低系统功耗,通过控制层的集中控制和管理功能提高路由成功率,从而使得基于软件定义网络技术的LoRa 自组织网络架构在节能、兼容性、缓解节点计算压力和网络的整体性能等方面都有很大的提高。
1 基于软件定义的LoRa自组织网络架构
本文提出的一种基于软件定义的LoRa 自组织网络架构如图1 所示,该网络由传感节点、中心控制节点和LoRa 无线传输模块组成。网络中的终端传感节点负责实现终端侧的软件定义算法、数据信息的采集和控制信息的接收[9]。网络中的中心控制节点负责实现控制器侧的软件定义算法,收集整个网络的拓扑连接、节点信息和链路状态等多维度信息,并对信息进行集中地分析和处理,计算出全网最佳的路由信息。LoRa 无线模块是一种基于扩频调制技术的无线通讯模块,它具有传输距离远、发射功耗低、抗干扰性强等特点,所以该LoRa 自组织网络中各个节点之间均采用LoRa 模块进行无线连接。最终,中心控制节点及多个传感节点以LoRa 作为无线传输模块组成星型多跳自组织网络[10]。
图1 基于软件定义的LoRa自组织网络的架构
该基于软件定义的LoRa 自组织网络已经集成了PM2.5、温湿度和烟感等信息采集模块。传感器将采集到的这些数据信息,通过LoRa 模块发送出去,然后中心控制节点可以根据网络环境制定合理有效的转发规则,并可以对网络中的传感节点的数据采集行为进行集中管理。该网络还采用了软件定义网络中数控分离的思想,通过中心控制节点对整个网络的集中管控,省去了普通节点进行路由发现的过程,可以降低寻路不佳或者寻路失败所造成的路由不稳定的情况[11]。另外中心节点还可以收集全网的拓扑信息,并用于拓扑发现算法和流表生成和下发算法中[12]。拓扑发现、流表生成和下发等基于集中控制思想的相关算法的设计和实现是整个网络的核心功能,直接影响着整个网络的稳定性、兼容性、节能性以及网络管理便捷性。因此如何设计和实现拓扑发现算法、流表生成和下发算法,对LoRa 自组织网络后期的规划、建设、维护有着长远的影响。
2 系统实现
基于软件定义的LoRa 自组织网络架构的主要设计目标是在应用层开发适用于自组织无线传感器网络的、基于数控分离思想的广距抗扰低耗的星型多跳自组织网络,该网络实现的功能有PM2.5、温湿度和烟感等标量传感信息的采集转发,数据管理,拓扑发现、流表生成和下发等。由于该网络采用数控分离的思想,利用中心控制节点对整个网络进行集中的管控,所以基于链路质量的网络拓扑发现算法和基于负载均衡的流表生成和下发算法的设计和实现是整个网络架构的基础和重点,将直接影响着网络的整体性能。
2.1 基于链路质量的网络拓扑发现算法设计和实现
在传统的无线自组织网络中,节点可以自由的加入到当前网络,这将导致网络规模的扩大和网络拓扑结构的错综复杂,再加上网络中节点可以随意移动和增减,因此网络的拓扑结构在不断变化,能否及时准确的把握网络拓扑的动态变化,获得正确完整的网络拓扑信息对于网络管理来说至关重要,所以高效的拓扑发现算法是基于软件定义的LoRa 自组织网络实现的基础算法。
在拓扑发现算法中,网络中的控制节点通过广播方式收集全网的拓扑信息,形成一张包含全局节点的网络连接关系图,并用于流表生成和下发算法。普通节点通过邻居发现算法采集各自的邻居信息,采用滑动窗口算法统计邻居节点的链路质量并形成邻居节点信息表;控制器定时发起拓扑发现,广播拓扑请求包采集全网拓扑和链路质量信息,形成全网节点信息表。其拓扑发现和拓扑维护的具体过程可细分为控制器侧和终端侧两部分。
控制器侧首先需要进行初始化,之后控制器通过广播拓扑请求包进行拓扑发现,根据终端上报的邻居列表填写邻接矩阵,利用F 算法计算全网路由,生成流表。控制器将流表下发至每一台终端,终端接收流表后改写自身路由表,由此,全网路由建立。若拓扑发生更新,那控制器会收到拓扑修复包,根据包中的信息更新拓扑表,完成一次拓扑的维护过程。其控制器侧详细的拓扑发现与更新流程如图2 所示。
而在终端侧,终端节点通过广播Hello 包寻找邻居节点,邻居节点收到Hello 包后会回复源节点,由此建立起一条双向的邻居链路,并将此记录在源节点中。终端通过定时发送Hello 包,不间断地维护自己的邻居列表。当收到控制器发出的拓扑请求包时,立即向控制器上报自身邻居列表,并向网络中继续广播相同的拓扑请求包,实现拓扑请求包在全网范围内的分发。随后,终端进入拓扑维护状态,当且仅当自身邻居列表发生改变时,才向控制器报告新的邻居列表。其终端侧详细的拓扑发现与更新流程如图3 所示。
图2 拓扑发现和拓扑维护控制器侧流程
2.2 基于负载均衡的流表生成和下发算法设计
流表生成和下发算法是基于软件定义的LoRa 自组织网络建立的关键算法。整个流表生成和下发的过程充分考虑了无线多跳网络的连接特性,将链路质量信息作为负载均衡算法设计的基础,并且采用了动态F 算法依次完成了各节点流表转发规则的生成,最后通过逐步扩散传播的方式实现全网节点的流表下发。其流表生成和下发的具体过程也可细分为控制器侧和终端侧两部分。
图3 拓扑发现和拓扑维护终端侧流程
控制器侧在基于全局拓扑连接关系以及全网链路质量信息的基础上,控制节点采用动态F算法完成普通节点到控制器的路由选择,形成基于负载均衡的流表转发规则。控制器将改转发规则进行逐跳下发,直到网络边缘的节点收集到对应的转发规则,完成流表下发过程。其控制器侧详细的流表生成与下发具体流程如图4所示。
终端侧的普通节点在整个过程中只需要接收控制器的流表信息,然后修改各自的流表转发规则并向控制器发送ACK 回复即可,大大的减轻了普通传感节点的计算和通信压力,有效提高了普通节点的能效和通信效率。其终端侧详细的流表生成与下发具体流程如图5 所示。
本文流程图均使用SDL 图,SDL 图是一种使用规范和说明语言(SDL)为网络创建面向对象的图表。SDL 图例说明如下:
图4 流表生成和下发控制器侧流程
3 网络的测试与分析
为了评估基于软件定义的LoRa 自组织网络的有效性和可靠性,本文从网络的时延和丢包率两方面的性能进行测试和分析。准备控制器和多个LoRa 模块传感节点,通过控制端使用ping 命令进行整个网络的性能测试,主要过程如下:
1)开启各个终端节点,进行PM2.5、温湿度和烟感等表量数据信息的采集。
2)开启控制器,并启动控制器的拓扑发现程序,收集全网拓扑信息,随后生成流表和下发流表。
3)最后使用ping 命令进行时延和丢包率的测试。在控制端ping 不同跳数的终端传感节点,记录最短时延、平均时延和最长时延以及丢包率。
图5 流表生成和下发终端侧流程
3.1 网络时延测试与分析
时延是衡量网络性能的一个重要指标,时延越小说明网络的性能越好,网络越稳定。本节测试的时延主要指发送一段完整报文到接收该完整报文所用的总时间。
图6-图9 分别为传感节点按不同距离摆放时的网络时延测试。图中蓝色实线代表的是网络的最大时延。红色实线代表的是网络的平均时延。黑色实线代表的是最小时延。
图6 传感节点近距离摆放的网络时延
图7 传感节点间距50m摆放的网络时延
图8 传感节点间距100m摆放的网络时延
图9 传感节点间距200m摆放的网络时延
从图中可以看出,网络的时延随跳数和距离的增加而上升。当传感节点间距在100 m 之内时,网络的时延随跳数的增加缓慢上升,在10 跳之内平均时延都在3000ms 以内,20 跳之内平均时延都在7000 ms 以内。当传感节点间距达到200 m 时,网络时延随着跳数的增加急剧上升,网络性能变差,跳数增加到7 跳时,网络甚至无法正常工作。
测试结果表明该网络最大跳数可以达到10跳,且每跳距离可达100 m,能够很好的满足传送PM2.5、温湿度和烟感等信息的应用需求。
3.2 网络丢包率测试与分析
丢包率是指测试时所发送数据包总量中丢失数据包所占的比率,其计算公式如下:
式(1)中,total-data指测试时发送的总报文数量,total-data指测试过程中丢失的数据报文数量。丢包率反映了报文的丢失状况,同时也反映了算法的性能。
图10 传感节点近距离摆放的丢包率
图11 传感节点间距50m摆放的丢包率
图12 传感节点间距100m摆放的丢包率
图13 传感节点间距200m摆放的丢包率
图10-图13 分别为传感节点按不同距离摆放时的网络丢包率情况。
从图中可以看出,网络的丢包率在一定的跳数和距离范围内维持稳定,之后随着跳数和距离的增加而上升。当传感节点间距在100m 之内且跳数在10 跳之内时,网络性能较稳定,丢包率呈现平稳的状态,最坏情况丢包率为5%,网络状态良好时甚至无丢包。不过10 跳之后,网络的丢包率随着跳数的增加急剧上升。当传感节点间距达到200m 时,网络丢包率随着跳数的增加急剧上升,网络性能变差,最大丢包率甚至高达70%,跳数增加到7 跳之后,网络无法正常工作。由此可得该网络在保持较优性能的情况下可达10 跳,每跳距离可达100m。
4 结束语
本文设计的一种基于软件定义的LoRa 自组织网络架构是为了满足在无法利用传统蜂窝网络技术的情况下对特定环境中的数据采集的需要而提出的。该网络将软件定义网络、Lora 技术和自组织网络的优势相结合,既可以在数据平面完成温湿度信息、烟感信息、PM2.5 等信息的采集传输和处理,又可以在控制平面上完成实时感知维护全网的拓扑结构、集中配置普通传感节点、修改传感信息采集规则和节点转发规则等功能。该网络设计和实现的重点在于提出了一种基于集中控制思想的拓扑发现和维护算法以及一种基于负载均衡的流表生成和下发算法,该算法可以准确地把握网络拓扑的动态变化,提高路由成功率和网络的整体性能。测试结果表明该网络最大跳数可以达到10 跳,且每跳距离可达100 m,能够很好的满足传送PM2.5、温湿度和烟感等信息的应用需求。
该网络架构实际上还有可以优化的余地,下一步目标是研究如何在不影响网络拓扑感知和路由成功率的基础上有效地提升节点信息传输速率及其最大跳数并降低网络能耗。