飞行自组网中基于网络连通性的副本自适应转发路由方法

文档序号:26147517发布日期:2021-08-03 14:34阅读:100来源:国知局
飞行自组网中基于网络连通性的副本自适应转发路由方法

本发明属于飞行自组网技术领域,更为具体地讲,涉及一种飞行自组网中基于网络连通性的副本自适应转发路由方法。



背景技术:

近年来,多无人机执行任务的场景日趋广泛,由多无人机组成的飞行自组织网络具有配置灵活、覆盖范围广等优势。然而,由于节点的高移动性、随机动态变化的拓扑等特点使得端到端之间不存在完整的传输路径,节点间只能间歇性进行通信甚至长时间处于中断状态,只能依赖节点移动带来的机会通信完成消息转发,因此这类网络属于延时容忍网络(delaytolerantnetworks,dtn)。为了支持飞行自组网中长时间的数据传输、间歇式的链路连通和机会性的节点接触,亟需设计高效的消息传输策略来保证数据传输的成功率。

传统的dtn网络采用“存储-携带-转发”的模式转发消息,即节点在收到消息后,没有遇到合适的转发节点时执行存储消息,在移动过程中遇到合适的中继节点时才执行转发,通过这种方式实现网络的数据收集和交换功能。常用的转发策略有单副本转发和多副本转发两种,单副本转发策略即网络中仅存一个消息副本来节省资源,但是如果携带此消息副本的节点转发失败,目的节点就不会接收到这个消息;在多副本转发策略中,洪泛的消息副本会加剧网络资源的消耗,降低网络性能,尤其是在网络资源受限的飞行自组织网络中。因此,在使用多副本路由的网络中进行副本数量控制是不可忽视的重要步骤。

大多数研究中使用预先设置副本数量阈值的方法来控制消息的副本数量,在传输消息之前先计算最佳的副本数并将它们分散到网络的各个节点,通过节点的移动进行机会性传输。虽然前人提出的多副本传输算法在特定的应用场景下各有其优势,但针对特殊的飞行自组织网络中的数据传输问题,仍面临一些关键挑战:(1)消息转发存在盲目性,会在网络中产生过多的消息副本,消耗有限的缓存空间,甚至导致网络拥塞;(2)在网络频繁中断的情况下,传统的机会转发模式会造成较高的传输时延,频繁重传也会消耗有限的能量资源。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种飞行自组网中基于网络连通性的副本自适应转发(connectivity-basedcopyadaptivetransmit,ccat)路由方法,节点可以根据估计的网络连通性在局部决定转发数据包副本的数量,结合投递预测值来选择转发节点,既利用了复制策略中多副本的高效性,又优化选择了较为合适的中继节点以控制数据包副本的数量,提高了转发路由的灵活性。

为实现上述发明目的,本发明飞行自组网中基于网络连通性的副本自适应转发路由方法包括以下步骤:

s1:记飞行自组网的节点数量为n,每个节点分别维护一个投递预测值表,用于记录该节点到其他节点的投递预测值;每个节点在加入飞行自组网时将其与其他节点的投递预测值初始化为0,并为每个投递预测值设置一个计时器进行计时;

每个节点会周期性地更新其投递预测值表,具体方法为:节点广播节点发现消息,其他节点在接收到该节点发现消息后会向其反馈投递预测值表;记节点发现消息的源节点为节点i,i=1,2,…,n,对于其他的任意节点j,j=1,2,…,n且j≠i,如果节点i在广播节点发现消息后的预设时间内接收到节点j反馈的投递预测值表,则节点i首先采用以下方法更新节点i到节点j的投递预测值dp(i,j):

dp(i,j)=dp(i,j)old+(1-dp(i,j)old)×dpinit

其中,dpinit表示预设的常数,其取值范围为dpinit∈(0,1),可以根据实际情况确定具体取值;dp(i,j)old表示节点i的投递预测值表中节点i到节点j当前的投递预测值;然后将节点i中投递预测值dp(i,j)对应的计时器重置为0;

如果节点i在广播节点发现消息后的预设时间内未接收到节点j反馈的投递预测值表,则节点i采用以下方法计算节点i与节点j的衰减投递预测值

其中,y表示投递预测值的衰减因子,t(i,j)表示节点i中投递预测值dp(i,j)对应的计时器所计时间;

然后节点i从接收到反馈的投递预测值表中查找是否存在其他节点到节点j的投递预测值,如果不存在,则令节点i到节点j的传递投递预测值如果存在,则从中筛选出到节点j投递预测值最大的节点m,m=1,2,…,n且m≠j、m≠i;采用以下方法计算节点i到节点j的传递投递预测值

其中,dp(i,m)表示节点i的投递预测值表中节点i到节点m的投递预测值,dp(m,j)表示节点m的投递预测值表中节点m到节点j的投递预测值,β为预设的传递因子;

从衰减投递预测值和传递投递预测值中筛选出较大值作为更新后的节点i到节点j的投递预测值dp(i,j);

s2:当某个节点i需要进行数据包发送时,记节点i所需发送数据包的目标节点为t,节点i从其投递概率值表中查询到目标节点t的投递概率值dp(i,t),判断其是否大于预设阈值τ1,如果是,进入步骤s3,否则进入步骤s4;

s3:节点i将数据包发送至目标节点t,转发结束;

s4:节点i对网络连通性进行估计,具体方法为:

该节点i通过gps模块与飞行自组网中的其他每个节点j发起可通信节点数量查询,节点j在接收到查询信息后,统计其投递预测值表中大于预设阈值τ2的投递预测值数量,作为节点j的可通信节点数量反馈至节点i;同时节点i统计其投递预测值表中大于预设阈值的投递预测值数量,作为节点i的可通信节点数量;然后节点i采用以下公式计算飞行自组网的平均最大簇大小s:

其中,cn表示节点n的可通信节点数量,n=1,2,…,n;

然后采用如下公式计算归一化最大簇大小snormalized:

当snormalized=1,表示网络处于连通状态;当snormalized<1,表示网络处于间歇性连通状态;

s5:节点i广播邻居发现消息,获取其邻居节点集合φi以及各个邻居节点的投递预测值表,从各个邻居节点的投递预测值表中查询该邻居节点到目标节点t的投递预测值dp(d,t),d∈φi;

s6:判断步骤s4网络连通性估计的结果,如果网络处于连通状态,进入步骤s7,否则进入步骤s10;

s7:从节点i的邻居节点集合φi中筛选出投递预测值dp(d,t)小于节点i到目标节点t投递预测值dp(i,t)的邻居节点,从这些邻居节点中选择投递预测值最大的节点作为最优节点;

s8:判断最优节点是否存在,如果是,进入步骤s9,否则进入步骤s13;

s9:节点i将数据包发送至最优节点,进入步骤s14;

s10:从节点i的邻居节点集合φi中筛选出投递预测值dp(d,t)大于节点i到目标节点t投递预测值dp(i,t)的邻居节点,构成潜在节点集合γi;

s11:判断潜在节点集合γi是否为空,如果不是,进入步骤s12,否则进入步骤s13;

s12:节点i根据潜在节点集合γi中节点数量对数据包进行复制生成数据包副本,然后将原始数据包和数据包副本分别发送至潜在节点,进入步骤s14;

s13:节点i保留数据包,返回步骤s2等待下一次发送;

s14:接收节点在接收到数据包后,生成确认包并反馈至节点i;

s15:接收节点作为新的发送节点,返回步骤s2对数据包进行下一跳转。

本发明飞行自组网中基于网络连通性的副本自适应转发路由方法,飞行自组网中每个节点分别维护一个投递预测值表,用于存储该节点到其他节点的投递预测值,在节点运动过程中会周期性地更新投递预测值表;当节点需要发送数据包时,先对网络连通性进行估计,如果网络处于连通状态,则根据邻居节点到目标节点的投递预测值筛选出最优节点,否则根据邻居节点到目标节点的投递预测值筛选出潜在节点,然后转发数据包。

本发明具有以下有益效果:

1)本发明无需设置副本数量阈值,而是基于网络连通性和投递预测值来选择节点,以确定副本数量,当节点的通信范围或飞行自组网中的节点密度发生变化时,不需要对网络参数进行重新配置,而是可以自适应地确定副本数量,以减少不必要的数据包副本,提高了转发路由的灵活性;

2)本发明通过投递预测值来选择转发节点,可以解决传统方法中数据转发的盲目性问题。

附图说明

图1是本发明飞行自组网中基于网络连通性的副本自适应转发路由方法的具体实施方式流程图;

图2是本实施例中飞行自组网结构示例图;

图3是本发明中接收节点生成确认包的流程图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

图1是本发明飞行自组网中基于网络连通性的副本自适应转发路由方法的具体实施方式流程图。如图1所示,本发明飞行自组网中基于网络连通性的副本自适应转发路由方法的具体步骤包括:

s101:维护节点投递预测值表:

记飞行自组网的节点数量为n,每个节点分别维护一个投递预测值表,用于记录该节点到其他节点的投递预测值((deliverprobability,dp)。dp值表示将数据包从某个节点成功传输到另一节点的概率,是衡量节点投递概率的指标。每个节点在加入飞行自组网时将其与其他节点的投递预测值初始化为0,并为每个投递预测值设置一个计时器进行计时。

每个节点会周期性地更新其投递预测值表,具体方法为:节点广播节点发现消息,其他节点在接收到该节点发现消息后会向其反馈投递预测值表。记节点发现消息的源节点为节点i,i=1,2,…,n,对于其他的任意节点j,j=1,2,…,n且j≠i,如果节点i在广播节点发现消息后的预设时间内接收到节点j反馈的投递预测值表,则节点i首先采用以下方法更新节点i到节点j的投递预测值dp(i,j):

dp(i,j)=dp(i,j)old+(1-dp(i,j)old)×dpinit

其中,dpinit表示预设的常数,其取值范围为dpinit∈(0,1),可以根据实际情况确定具体取值。dp(i,j)old表示节点i的投递预测值表中节点i到节点j当前的投递预测值。然后将节点i中投递预测值dp(i,j)对应的计时器重置为0。

如果节点i在广播节点发现消息后的预设时间内未接收到节点j反馈的投递预测值表,则节点i采用以下方法计算节点i与节点j的衰减投递预测值

其中,y表示投递预测值的衰减因子,t(i,j)表示节点i中投递预测值dp(i,j)对应的计时器所计时间。

然后节点i从接收到反馈的投递预测值表中查找是否存在其他节点到节点j的投递预测值,如果不存在,则令节点i到节点j的传递投递预测值如果存在,则从中筛选出到节点j投递预测值最大的节点m,m=1,2,…,n且m≠j、m≠i。考虑到节点之间的传递性,因此可以采用以下方法计算节点i到节点j的传递投递预测值

其中,dp(i,m)表示节点i的投递预测值表中节点i到节点m的投递预测值,dp(m,j)表示节点m的投递预测值表中节点m到节点j的投递预测值,β为预设的传递因子。

从衰减投递预测值和传递投递预测值中筛选出较大值作为更新后的节点i到节点j的投递预测值dp(i,j)。

根据以上投递预测值的计算方法可以看出,dp值越大,表明该节点对的投递概率越高。相反,dp值低则表示该节点对相遇频率较低,意味着两个节点之间距离较远,只能通过很多个中继节点进行连接,或者其中一个节点被网络孤立而不存在完整的路径。在后续的转发路由过程中,发送数据包的节点会按照投递概率值对邻居节点进行选择,不仅避免了数据包的无效复制,减轻了缓冲区的流量负担,而且增加了数据包成功投递的效率,节省网络中数据传输的成本。

s102:当某个节点i需要进行数据包发送时,首先判断是否可以直接向目标节点发送,如果可以,进入步骤s103,否则进入步骤s104。判断是否可以直接向目标节点发送的具体方法为:记节点i所需发送数据包的目标节点为t,节点i从其投递概率值表中查询到目标节点t的投递概率值dp(i,t),判断其是否大于预设阈值τ1,如果是,说明目标节点t在节点i附近,可以直接发送,否则不可以直接发送。在实际应用中,τ1的具体取值可以根据实际情况设置。

s103:发送数据包至目标节点:

节点i将数据包发送至目标节点t,转发结束。

s104:网络连通性估计:

当某个节点i不能直接将数据包发送至目标节点t时,就需要选择中间节点进行转发,此时需要对网络连通性进行估计。本发明中网络连通性的情况是利用网络归一化平均簇大小来进行测量,平均最大簇大小是网络中每个节点可以通信的平均节点数,包括邻近的节点和可以通过多跳通信到达的节点。因此,本发明中网络连通性估计的具体方法为:

该节点i通过gps模块与飞行自组网中的其他每个节点j发起可通信节点数量查询,节点j在接收到查询信息后,统计其投递预测值表中大于预设阈值τ2的投递预测值数量,作为节点j的可通信节点数量反馈至节点i。阈值τ2可以根据实际情况设置,当投递预测值大于阈值τ2则说明两个节点可以通信。同时节点i统计其投递预测值表中大于预设阈值的投递预测值数量,作为节点i的可通信节点数量。然后节点i采用以下公式计算飞行自组网的平均最大簇大小s:

其中,cn表示节点n的可通信节点数量,n=1,2,…,n。

然后采用如下公式计算归一化最大簇大小snormalized:

归一化最大簇大小即可用于测量独立于网络大小的连通性,估计网络连通性的方法为:当snormalized=1,表示网络处于连通状态,所有节点都可以相互通信;当snormalized<1,表示网络处于间歇性连通状态,部分节点与其他节点分离。

图2是本实施例中飞行自组网结构示例图。如图2所示,本实施例中飞行自组网存在节点a、b、c、d和e,其中节点a可以和节点b和c之间的投递概率值大于,节点b可以和节点a和c通信,节点c可以和节点a和b通信,节点d和e可以相互通信。那么飞行自组网的平均最大簇大小s为:

归一化后的平均最大簇大小snormalized为:

snormalized小于1,说明此时网络处于间歇性连通状态,与图2所示结构图相符。

s105:获取邻居节点信息:

节点i广播邻居发现消息,获取其邻居节点集合φi以及各个邻居节点的投递预测值表,从各个邻居节点的投递预测值表中查询该邻居节点到目标节点t的投递预测值dp(d,t),d∈φi。

s106:判断步骤s104网络连通性估计的结果,如果网络处于连通状态,进入步骤s107,否则进入步骤s110。

s107:筛选最优节点:

从节点i的邻居节点集合φi中筛选出投递预测值dp(d,t)小于节点i到目标节点t投递预测值dp(i,t)的邻居节点,从这些邻居节点中选择投递预测值最大的节点作为最优节点。

s108:判断最优节点是否存在,如果是,进入步骤s109,否则进入步骤s113。

s109:发送数据包至最优节点:

节点i将数据包发送至最优节点,进入步骤s114。

s110:筛选潜在节点:

从节点i的邻居节点集合φi中筛选出投递预测值dp(d,t)大于节点i到目标节点t投递预测值dp(i,t)的邻居节点,构成潜在节点集合γi。

s111:判断潜在节点是否存在,即潜在节点集合γi是否为空,如果存在,进入步骤s112,否则进入步骤s113。

s112:发送数据包至潜在节点:

节点i根据潜在节点集合γi中节点数量对数据包进行复制生成数据包副本,然后将原始数据包和数据包副本分别发送至潜在节点,进入步骤s114。

s113:保留数据包:

节点i保留数据包,返回步骤s102等待下一次发送。

s114:数据包接收确认:

接收节点在接收到数据包后,生成确认包并反馈至节点i。

为了保证数据传输的可靠性,本实施例对接收节点的数据包确认流程进行了改进设计。图3是本发明中接收节点生成确认包的流程图。如图3所示,接收节点确认的具体步骤包括:

s301:接收节点在接收到数据包后,判断自身是否有足够空间接收数据包,如果没有,进入步骤302,否则进入步骤s303。

s302:附加丢弃标志:

接收节点丢弃该数据包,在确认包中附加丢弃标志。

s303:接收节点判断数据包是否来自投递预测值较高的节点,即判断自身到目标节点的投递预测值是否小于节点i到目标节点的投递预测值,如果是,进入步骤s304,否则进入步骤s305。

s304:附加路由循环标志:

接收节点在确认包中附加路由循环标志。

s305:接收节点判断所接收的数据包是否为副本,如果是,则进入步骤s306,否则进入步骤s307。

s306:附加副本标志:

接收节点在确认包中附加副本标志。

s307:生成常规确认包:

接收节点生成常规确认包。

相应地,节点i在接收到确认包后,如果解析到副本标志,则删除向接收节点发送的数据包;如果解析到路由循环标志和丢弃标志,则广播推荐其到目标节点投递预测值的节点发现消息,其他节点在接收到该节点发现消息后则更新其投递预测值表;如果接收到的是常规确认包,则不作任何操作。

在实际应用中,与常规数据包转发类似,节点i在发送数据包会设置确认计时器,如果在预设时间内未收到确认包会重新发送数据包。当重传次数大于阈值则发送失败,丢弃该数据包。此外,会为每个数据包设置一个生存时间,当生存时间超过阈值,数据包也会被丢弃。

s115:进行下一跳转发:

接收节点作为新的发送节点,返回步骤s102对数据包进行下一跳转发。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

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