一种面向边缘计算的多策略信道分配算法的制作方法

文档序号:20840876发布日期:2020-05-22 17:29阅读:300来源:国知局
一种面向边缘计算的多策略信道分配算法的制作方法

【技术领域】

本发明属于通信领域,具体涉及一种面向边缘计算的多策略信道分配算法。



背景技术:

无线mesh网络也被称为“多跳”网络,是一种新的无线网络技术,与传统的wifi网络不同,它是一种基于多跳路由和对等网络的网络技术,是一种新的网络结构。wmns具有可以动态扩展,自组织,自管理,自动修复和自我平衡的特点。通常,wmns由客户端、路由器和网关设备组成。客户端包括手机、电脑、智能电器等无线设备,通常请求从客户端处发出,再由路由器将数据包转发到网关,网关负责将数据包转发到internet。

组播是指主机向一组主机发送消息,存在于这个组的所有主机都可以接收到消息。不同于单播的点对点的传输方式,组播是采用点对多的传输方式,发送方仅发送一份数据包,此后数据包仅在需要复制分发的地方才会被复制分发,每一网段中都将保存有这一份数据流,从而可以减轻服务器负担,节省网络带宽。众所周知,组播可以将相同的数据流传输到多个目的地,而且不会产生重复的数据流和浪费带宽,它的主要应用有多媒体会议、数据分发和游戏仿真等。

组播通信最大的挑战之一就是如何处理节点信息传递过程中的网络干扰和时隙多用户的碰撞问题。wmns中的路由器通常设置有多个网络接口,并在不同的信道上运行,来增加网络吞吐量。组播进行网络传输时,尤其是相邻的两个节点在同一信道上传输时,它们彼此之间可能会产生相互干扰,从而导致数据丢失、网络吞吐量下降和加大节点间端到端延迟。因此,我们就需要一个有效的解决方案来减少网络干扰,提高网络吞吐量、降低传输延迟和网络整体能量消耗。为了减少数据丢失和降低网络整体能量消耗,我们将边缘计算技术运用于多播树节点上,为每个网络节点构建一个缓存结构,使其拥有存储和计算能力,来方便对后续的信道分配过程进行计算和对上一级传来的数据包进行短时间存储,减少丢包过程中的源节点到该节点的数据包传输时长,增大网络吞吐量。为了减少网络干扰,提高网络利用率,我们将为每个无线节点分配一个信道用于信息传输。



技术实现要素:

本发明的目的是解决组播进行网络传输时,尤其是相邻的两个节点在同一信道上传输时,它们彼此之间可能会产生相互干扰,从而导致数据丢失、网络吞吐量下降和加大节点间端到端延迟。本发明通过创新性地采用边缘计算技术构建节点数据缓存模型和分步计算节点信道间隔的方式,提出了一种面向边缘计算的多策略信道分配算法(msca算法)。该算法的机制是通过运用边缘计算技术对多播树中的节点进行数据预存储和计算节点之间的信道间隔,进而选出对节点干扰最小的发送信道号,来避免节点信息传输之间的相互干扰。通过实验测试,msca算法与多个典型信道分配算法(proposed、laca、qasa)相比,在满足吞吐量和端到端延迟的同时,能够最小化信道干扰和网络整体能量消耗。

本发明提供的面向边缘计算的多策略信道分配算法,主要包括如下关键步骤:

第1、构建边缘计算多播树模型;主要包括:

第1.1、建立网络模型;

第1.2、建立节点缓存模型;

第2、算法的设计;给出与算法相关的定义,算法的详细步骤,具体包括:

第2.1、给出与算法相关的定义,定义了两个节点集合nz和nnoz,nz是指分配了信道号的节点集合,nnoz是指没有分配信道号的节点集合,d(m,n)表示节点m到节点n的传输延迟,每个传感器节点在t时间内消耗的能量enode;

第2.2、算法的详细步骤,第一步是计算多播树中所有节点对的信道间隔,msca考虑多播树中的所有节点对<m,n>,尝试得到cs<m,n>;如果得到的cs<m,n>对应的干扰因子与传输范围的乘积大于节点的物理距离,则需要通过增加信道间隔来消除两个节点之间的网络干扰;第二步是确定多播树节点之间是否存在cszero,确定是否存在cszero有两种情况:一是两个节点之间存在cszero,另一种情况是不存在具有cszero的节点对;首先我们需要根据第一步的结果,在多播树模型中找到cszero的节点对,如果不存在,我们再尝试去寻找信道间隔的最大值;第三步是为多播树的所有节点分配一个最优的信道号,msca会将集合nnoz中每个节点与集合nz中所有节点的信道间隔进行比较,选出对应集合nnoz中的最大信道间隔的节点j;对于集合nz中的每个节点i,msca会为节点j的信道号分配生成多个条件:1)、j的信道号可能大于等于cs<i,j>与i的信道号之和;2)、j的信道号可能小于等于cs<i,j>与i的信道号之差;3、基于集合nz中节点数量,条件1)、2)中对所有i∈nz都满足;4)、j的信道号小于总的信道号11;基于这些条件,msca将为节点j分配一个最优的信道号,此时,将节点j从集合nnoz中移出,并放入集合nz中;这个过程将一直持续到集合nnoz中没有节点为止。

本发明的优点和积极效果

本发明主要设计一种面向边缘计算的多策略信道分配算法,在该算法中,主要研究组播进行网络传输时,尤其是相邻的两个节点在同一信道上传输时,它们彼此之间可能会产生相互干扰,从而导致数据丢失、网络吞吐量下降和加大节点间端到端延迟。通过创新性地采用边缘计算技术构建节点数据缓存模型和分步计算节点信道间隔的方式,提出了一种面向边缘计算的多策略信道分配算法。该算法的机制是通过运用边缘计算技术对多播树中的节点进行数据预存储和计算节点之间的信道间隔,进而选出对节点干扰最小的发送信道号,来避免节点信息传输之间的相互干扰。通过实验测试,msca算法与多个典型信道分配算法(proposed、laca、qasa)相比,在满足吞吐量和端到端延迟的同时,能够最小化信道干扰和网络整体能量消耗。

【附图说明】

图1是msca算法的流程图;

图2是边缘计算节点网络模型示意图;

图3是边缘计算节点缓存模型示意图;

图4是多播树边缘计算节点分布示意图;

图5是接收到的平均包数图;

图6是边缘计算网络吞吐量图;

图7是端到端延迟图;

图8是数据包丢失数量图;

图9是网络能量总体消耗图;

图10是数据包丢失测试图;

图11是信道号分配网络消耗图;

图12是吞吐量性能cdf曲线图;

图13是基于智慧农场测试结果示意图。

【具体实施方式】

本发明是采用matlab和omnet++仿真工具来对msca算法进行模拟仿真和实验分析的,我们把msca与近两年提出的多个典型信道分配算法(proposed、laca、qasa)通过一些性能指标进行了对比说明。参见附图1,具体实施过程详述如下:

步骤1、构建边缘计算多播树模型:

步骤1.1、建立网络模型

针对本发明所要研究的wmns组播通信信息传输过程中所产生的通信时延、网络带宽、丢包和吞吐量等问题,构建了一个边缘计算节点多播树模型,如附图2所示。

在附图1模型中我们采用了zigbee通信协议,集群是在2.4ghz的频段运行,原始数据速率为240kb/s,设置节点之间的时间间隔为t=1s。因此,节点可以每隔1s醒来一次,从父节点处获取信息。我们假设在上述研究模型中,误码率足够低(ber=10-5),节点平均每60s发送一条消息,3次尝试重传能够提供足够的可靠性,数据包大小为127bytes,节点数据的刷新时间为t=60s。

步骤1.2、建立节点缓存模型

如附图3所示,我们将边缘计算节点缓存结构逻辑上分为协议层、网络层和逻辑控制层三层架构。当发送端进行数据包传输时,我们假设数据包按照泊松过程到达下一级节点,并且节点内每一层的线程都有指数分布的执行时间。与包到达的时间相比,线程的执行时间要短的多。

网络层阶段通过udp协议发送和接收消息。网络层线程的执行时间可以表示为服务速率μv的指数分布它的执行时间为

网络层有一个阻塞队列使数据包在被线程执行之前进行排队。我们假设包根据泊松过程到达队列的数据包的概率为pt,假设线程的执行时间远小于包的到达时间,这样就可以对无限大的队列进行排队分析。因此可以将网络层建模为m/m/1排队系统,根据burke定理,包的出站也同样遵循泊松过程。网络阶段的响应时间是事件队列中的等待时间与执行时间之和,因此排队等待时间的拉普拉斯变换为

那么,网络层的总响应时间为(1)和(2)之积

协议层阶段执行与数据传输的可靠性和单路复用或多路复用相关的功能,这些任务由一个线程处理来自阻塞队列中的数据包来提供服务。假设线程的执行时间用指数分布的参数μp来表示,根据burke定理,包在协议层的到达率为λv,可以建模为m/m/1的排队系统,此时运行时间的拉普拉斯变换为tp(s)=μp/(s+μp),因此,协议层响应时间为

逻辑控制层阶段包含处理器、控制器和系统软件等部分。该阶段负责处理来自和到其他节点的post/get请求或者响应。为了提高效率,协议阶段线程通过指定的处理程序调用逻辑控制阶段中的新线程。我们假设搜索缓存的操作记录行为和更新缓存的时间都是和事件队列相关,并且这两个时间都是参数μb的指数分布。由于涉及到数据一致性的问题,读操作可以并发执行,而写操作则必须顺序执行。因此,读操作可以建模为参数为μbr的m/m/m服务,写操作可以建模为参数为μbw的m/m/1服务。逻辑控制层阶段执行时间的拉普拉斯变换分别为

tbr(s)=μbr/(μbr+s)(5)

tbw(s)=μbw/(μbw+s)(6)

那么,用于读操作和写操作的缓存的响应时间分别为

由(3)(4)(7)(8)得,数据包在节点缓存结构中响应的总体时间为

t=tsum(s,pt)+trp(s,pt)+tbr(s,pt)+tbw(s,pt)(9)

步骤2、算法的设计:

我们将提出一种面向边缘计算的多策略信道分配算法(msca算法)。该算法是为了解决广播通信过程中所产生的网络干扰、信息碰撞等所带来的整体信息包传输的消息准确性、时延以及能量消耗问题,从而最大限度的减少网络节点之间信息传输的相互干扰,提高网络传输的吞吐量。

msca算法的主要工作流程如下:

当多播树中的边缘计算节点需要对自己所存储的资源保持实时更新时,它会发送一个get请求,主动检查自己缓存数据的有效性,通过向本地物联网域发送请求和接收响应来同步边缘计算节点数据。

步骤2.1、给出与算法相关的定义

定义1集合nz和nnoz:在下述算法中定义了两个节点集合nz和nnoz,nz是指分配了信道号的节点集合,nnoz是指没有分配信道号的节点集合。

定义2端到端延迟:在wmns网络中,数据包在端到端之间发送的延迟主要包括传输延迟、传播延迟和在缓存结构中的延迟,而传播延迟相比于传输延迟和在缓存结构中的延迟来说可以忽略不计(通常是纳米单位级)。因此对于本发明中的延迟模型,我们主要考虑传输延迟:

dsum=∑(d(m,n)+tsum)(10)

其中,d(m,n)表示节点m到节点n的传输延迟。

定义3网络能量消耗:在wmns网络中,节点的能量消耗主要来源于无线通信模块上的信道分配和数据传输,因此当我们将k-bit的信息传送距离l时,每个传感器节点在t时间内消耗的能量为:

enode=t(ek+εkln)(11)

其中,e表示传感器上发射装置和接收电路发送或接收单位bit的耗能;ε表示发射放大器将每bit传送单位平方米所耗的能量;l表示发送装置所在的节点与其相邻单跳节点接收电路之间的距离;n为传播衰减指数。

下表1给出了边缘计算节点对在不同网速下的信道间隔所对应的的干扰因子的大小。

表1干扰因子

步骤2.2、算法的详细步骤

msca算法接受多播树作为输入,并为树中每个无线传感器网络节点的通信接口生成信道分配策略。该算法总共有三步。第一步是计算多播树中所有节点对的信道间隔。第二步是确定多播树节点之间是否存在cszero。第三步是msca算法为多播树的所有节点分配一个最优的信道号。

1)计算在边缘计算网络多播树模型中除叶节点外的所有节点对之间的信道间隔。msca考虑多播树中的所有节点对(例<m,n>),尝试得到cs<m,n>。如果得到的cs<m,n>对应的干扰因子与传输范围的乘积大于节点的物理距离,则需要通过增加信道间隔来消除两个节点之间的网络干扰。第一步算法需要计算多播树模型中所有节点对的信道间隔,因此算法的时间复杂度为o(n),n为模型中的节点总数。算法的伪代码如下:

2)确定边缘计算网络多播树模型中除叶节点之外的节点是否存在cszero。确定是否存在cszero,有两种情况:一是两个节点之间存在cszero,另一种情况是不存在具有cszero的节点对。首先我们需要根据步骤1)的结果集c,在多播树模型中找到cszero的节点对,如果不存在,我们再尝试去寻找结果集c中信道间隔的最大值。

对于多播树模型中的任一对节点<m,n>,我们首先判断它们之间是否存在cszero。如果存在,我们就为m和n分配一个特定的信道号6(信道号6是一个特定的正交数)作为m和n的发送接口信道号。此时,把节点m和n放入到集合nz中,其余节点放入到集合nnoz中。接下来,判断集合nz是否为空,如果nz不空,继续判断集合nz中的节点与集合nnoz中的节点是否存在cszero。如果遍历出cszero的节点,我们就将其从集合nnoz中移出,放入到集合nz中,并给该节点分配特定的信道号6,这个过程一直持续到集合nnoz中节点已全部被遍历且没有cszero节点为止。

另一种情况,当结果集c中不存在cszero的节点对时,就选择其中最大信道间隔的节点对(例如cs<m,n>=4),将信道号6分配给其中一个节点(例如m),然后将信道号6和最大信道间隔值之和(10)分配给另一个节点n作为其信道号。最后,我们将节点m和n放入到集合nz中,并从集合nnoz中移出节点m和n。第二步算法需要遍历多播树模型中全部节点的信道间隔,因此此过程的时间复杂度也为o(n),n为总的节点数。算法的伪代码如下:

3)msca为多播树模型中的所有节点分配一个最优的信道号。在上一步集合nz中的节点是已经分配好信道号了,此时我们只需要考虑集合nnoz中的节点即可。首先,msca会将集合nnoz中每个节点与集合nz中所有节点的信道间隔进行比较,选出对应集合nnoz中的最大信道间隔的节点(比如j)。接下来,对于nz中的每个节点i,msca会为节点j的信道号分配生成多个条件:1)、j的信道号可能大于等于cs<i,j>与i的信道号之和;2)、j的信道号可能小于等于cs<i,j>与i的信道号之差;3)、基于集合nz中节点数量,条件1)、2)中对所有i∈nz都满足;4)、j的信道号小于总的信道号11(总共只有11个信道)。基于上述条件,msca将为节点j分配一个最优的信道号。此时,将节点j从集合nnoz中移出,并放入集合nz中。这个过程将一直持续到集合nnoz中没有节点为止。第三步算法在最差的情况下需要给多播树模型中的所有节点分配一个信道号,因此算法的时间复杂度为o(n),n为总的结点数。算法的伪代码如下:

步骤2.3、对算法进行举例说明

附图4为多播树边缘计算节点信道分配示意图,其中a为源节点,b、c、d、e、f为中继节点,g、h、i、k为信息接收节点。我们假设a和d的物理距离为390m,b和c的物理距离为410m,给定的两个节点的传输范围为250m。在计算cs<a,b>时,如果任意两个节点的信道间隔为1,则由表1可得,网络在2mbps时的干扰因子为1.6,那么此时的干扰范围为250乘以1.6,得出任何节点之间的干扰范围为400m。如果两个节点的物理距离在此干扰范围内,那么它们就可能会相互干扰。因为a和d的物理距离为390m,小于400m,因此可能会相互干扰。此时,应增加两个节点的信道间隔,来避免网络干扰。a和d相互干扰,应增加信道间隔至2,而b和c没有干扰,保持信道间隔为1不变。cs<a,b>取最大值,则a和b的信道间隔为2。其余非叶节点的信道间隔取值过程同上。

算法第二步示例如下:我们假设附图4所示的多播树模型示意图中的节点b和e之间存在cszero。在这种情况下,msca为节点b和e分配相同的信道号6,并将这两个节点放入集合nz中,同时,将其余的非叶子节点放入到集合nnoz中。由于集合nz不空,msca将继续遍历集合nnoz中的节点,并判断其与集合nz中的b、e节点是否存在cszero。假如在遍历过程中发现b和f节点,e和f节点之间都存在cszero,那么就将b和e相同的信道号分配给f节点,并将其从集合nnoz中移出,放入到集合nz中。此过程一直持续到集合nnoz中的节点被全部遍历完为止。在第二种情况中,我们假设多播树模型中任意一对节点之间都不存在cszero。在这种情况下,msca会选择信道间隔最大的两个节点。假设节点c和d的信道间隔最大为4,那么此时我们就将特定的信道号6分配给节点c(或d),得出节点d(或c)的信道号为10,并将节点c和d放入到集合nz中,其余的节点就都位于集合nnoz中。

算法第三步示例如下:我们假设nz={b、f},nnoz={a、c、d、e},最大信道间隔为cs<b,e>=3,其中b的信道号为6,f的信道号为11,cs<f,e>=2。则由条件1、2可知,e的信道号值大于等于9或者小于等于3。由条件3可知,e的信道号大于等于13或者小于等于9。由条件4可知,e的信道号小于等于11。综上,节点e的最优信道号为9,并将节点e从集合nnoz中移出,放入到集合nz中。同理,节点a、c、d的最优信道号分别为1、7、5。

步骤3、实验测试

本发明是采用matlab和omnet++仿真工具来对msca算法进行模拟仿真和实验分析的,我们把msca与近两年提出的多个典型信道分配算法(proposed、laca、qasa)通过一些性能指标进行了对比说明。下面是本发明实验仿真所用到的一些参数和实验所得结果对比图以及应用案例测试说明。

由于本发明采用的对比算法所运用的原理、机制各不相同,为了保证实验的准确性和完整性,我们将仿真实验设置在同等标准条件下进行,采用相同的参数设置,下表即为具体的网络参数设定:

表2仿真参数的设置

在下面的实验中,omnet++每次都会在400m*400m的区域中进行,所有边缘计算节点随机部署在这个网络中。在这个场景中,我们先将其构造成一个多播树模型,并保留10个叶节点作为receiver。除receiver之外的每个节点都有两个用于发送和接收数据包的网络接口。信道分配共有11个信道号,每个节点的传输距离为200m,传输速率为11mbits/s,所有传输的数据包大小为512bytes,模拟总时长设置为300s。

步骤3.1、模拟仿真和实验分析

在实验中,发送端每秒会产生200个数据包,模拟时间为300s,因此发送端在每次实验过程中会发送60000个数据包。对于每组实验,我们测量每个receiver在不同网络拓扑结构下所接收的总数据包,并计算平均接收数据包数量。

本实例的实验测试结果如下:

1.由附图5可以得出,本发明所提出的msca算法接收到的数据包数量处于50000到60000之间,proposed算法接收到的数据包数量多数处于30000以下,laca算法接收到的数据包数量处于40000到50000之间,qasa算法接收到的数据包数量多数处于40000以下。因此,可以明显看出,msca算法在数据包成功接收数量上具有明显优势,这是因为msca采用了节点缓存结构,减少了数据包的丢失和运用信道间隔策略为边缘计算节点分配了最优信道号,减少了节点信息传输过程中的相互干扰,增大了数据包到达率。

2.附图6对四种算法进行了边缘计算网络吞吐量的比较,可以看出四种算法随着时间的增加,吞吐量都处于稳步上升趋势,这是因为当数据包从源节点开始传输时,各个算法都要依据各自算法机制动态选择最小干扰的信道号,随着时长的增加,节点信息传输的发送信道号逐渐趋于稳定,且彼此之间相互干扰较小,因此网络吞吐量逐步上升并最终趋于稳定状态。从图中我们还可以发现,msca算法相较于其他三种算法在吞吐量方面性能表现更为优异。

3.附图7是对四种算法进行了端到端延迟的比较。从图中可以明显看出msca算法相较于其他三种算法节点传输延迟较低,并且稳定在0.2s左右。这是因为msca运用了边缘计算技术构建了节点缓存结构,能够有更强的计算和存储能力对节点的信道选择进行预处理,并根据相应算法实时动态选择出最优信道号,避免节点相互干扰,使节点信息传输一直保持最优状态,从而使延迟维持在较低水平。

4.从附图8中可以得出,除qasa算法外,其余三个算法丢包数量都控制在50以下。laca算法通过la随机迭代过程中的效用值来评估信道选择策略,该效用值的标准之一就是低丢包率,因而该算法丢包数量较少。proposed算法采用遗传策略和学习自动机相结合的办法,利用选择最优信道路径时间更短的优势,在增大网络吞吐量的同时,保证了低丢包率。msca算法在控制包丢失这一指标上,因为采取了节点缓存策略,从而占据了天然优势,提高了数据包到达目的地的准确性。

5.附图9显示了四种算法在网络模型中的整体能量消耗。可以明显看出qasa算法在总体能量消耗方面与其它三种算法差距较大,这是因为qasa算法为了更加准确地定位二级用户的通信信道,采用了两种策略分步实现信道最优化选择,因而造成了信道切换和确定开销较大,从而导致整体网络能量消耗较大。其余三种算法在该指标上的测量结果显示差别较小,总体能量消耗都较小。

步骤3.2、应用案例测试

测试采用了labcenterelectronics公司发行的proteus软件模拟仿真了多个无线传感器网络节点接收和发送数据包的情况,并用virtualserialportdriver工具对proteus仿真的无线节点数据包进行采集,导出到数据后台,并编写软件进行数据展示,实时监测数据包采集和传递情况,监测信息传输过程中的干扰情况,防止丢包。

附图13是在智慧农场背景下进行的msca信道分配算法的应用,从附图10中展示的数据情况可以再次很好的证明msca算法的低丢包率,具有较强的实用性。附图11和附图12则分别显示了边缘结算节点最优信道号分配的网络单节点能量消耗和用户级的吞吐量cdf性能曲线,从图中可以明显看出msca算法的优势。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1