一种适于无线自组网的主动式路由通信方法与流程

文档序号:19688650发布日期:2020-01-14 18:37阅读:215来源:国知局
一种适于无线自组网的主动式路由通信方法与流程

本发明涉及路由协议通信领域,具体涉及一种适于无线自组网的主动式路由通信方法。



背景技术:

无线自组网(adhoc网络)是一种由多个无线通信设备组成的分布式网络,具有无中心、动态拓扑变化、能自我组织、多跳路由等特点,其建网灵活便捷,抗毁性强。

无线自组网通常使用无线传输技术作为通信手段,无线信道物理特性使得无线自组网的网络带宽一般较小。

现有无线自组网设备的路由协议主要分为主动式路由协议和按需路由协议,其中,按需路由协议如果在节点发送数据时没有达到目的节点的路由,则需要临时发起路由发现过程,等到路由发现完成后才能将数据发送出去,这将引起一定的延时,实时性达不到一定的要求;主动式路由协议所有节点都周期性的广播发送协议报文,以维护到所有目的节点的路由信息。

周期性发送的路由协议报文与拓扑数据报文均为小包,在无线自组网中频繁的发送小包会导致信道资源的浪费,使得路由协议与拓扑演示系统的开销较大。



技术实现要素:

本发明的目的在于提供一种适于无线自组网的主动式路由通信方法,在针对主动式路由的路由协议报文及拓扑数据报文的发送及转发方面进行优化,减少路由协议报文及拓扑数据报文的发送次数,降低路由协议和拓扑演示系统的开销,提高无线信道利用率。

本发明的目的是这样实现的,包括以下步骤:

s1,自组网中每个节点周期性发送路由协议报文;

s2,节点发送路由报文前,初始化路由报文,获取本节点的拓扑数据,将所述的拓扑数据组合到路由协议报文的尾部,然后将组合后的路由协议报文添加到路由协议报文缓存队列等待发送;

s3,当节点收到其邻居节点的路由协议报文之后,对于需要转发的路由协议报文,如果路由协议报文缓存队列中存在待发送报文,则将该需要转发的路由协议报文聚合到该待发送报文中;

s4,节点收到路由协议报文后,将报文拆分后分别进行处理,建立或更新本地路由表;

s5,获取路由协议报文尾部的拓扑数据,在全局拓扑数据中新增或者更新该报文源节点对应的拓扑数据。

具体地,所述的路由协议报文包括本节点的mac地址,有效生存期ttl,报文序列号seqno和路由路径传输质量tq;所述的拓扑数据包括本节点到所有邻居节点的mac地址,链路质量和信噪比。

具体地,在s4中,当节点接收到路由协议报文后,如果该路由协议报文是由两个以上路由协议报文聚合而成,则将该聚合报文拆分后分别进行处理;否则直接对该路由协议报文进行处理;根据接收到的路由协议报文,新增或者更新本节点到达源节点的路由信息;在s5中,根据接收到的路由协议报文,获取该路由协议报文尾部的拓扑数据,并将该拓扑数据添加到本地的全局拓扑数据中;对于拆分后的一个或者多个路由协议报文,分别判断是否需要进行转发,如果需要转发,则将其与路由协议缓存队列中的待发送报文进行聚合发送。

具体的,在原有路由协议报文格式的基础上添加一个拓扑数据长度字段,无线自组网中每个节点周期性发送路由协议报文,在一个周期完成之后,即生成下一个周期需要发送的路由协议报文,在生成路由协议报文的时候,根据本地一跳邻居表,获取一跳邻居表中所有节点的mac地址,链路质量,信噪比等信息并组合成定义的拓扑数据格式,计算组合后的拓扑数据的长度值,将该值填充到拓扑数据长度字段,并将拓扑数据添加到拓扑数据长度字段的尾部,然后将该路由协议报文添加到一个新的聚合报文中,并将该新的聚合报文的发送时间设置为:当前时间+路由协议报文发送周期route_period,缓存在路由协议缓存队列中等待发送。

进一步的,对于接收到的邻居节点的路由协议报文,根据报文序列号seqno以及生存期字段ttl判断该路由协议报文是否需要转发,如果需要转发,则查找本节点的路由协议缓存队列中是否存在待发送聚合报文:

如果不存在,则产生一个新的路由协议聚合报文,将该需要转发的报文填充到该聚合报文中,并将该新的聚合报文的发送时间的设置为:当前时间currtime+最大聚合时间maxaggrtime,然后将报文缓存在路由协议缓存队列中等待发送;

如果存在,则按照以下步骤判断是否将该需要转发的路由协议报文聚合到待发送聚合报文中:

节点获取待发送聚合报文的发送时间sendtime,判断currtime是否满足条件:currtime+maxaggrtime>sendtime:

如果不满足,则产生一个新的路由协议聚合报文,将该需要转发的报文填充到该新的聚合报文中,并将该新的聚合报文的发送时间的设置为:当前时间currtime+最大聚合时间maxaggrtime,然后将报文缓存在路由协议缓存队列中等待发送;

如果满足,则进一步的,获取待发送聚合报文大小aggrsize,以及需要转发的报文的大小currsize,判断currsize是否满足条件:currsize+aggrsize<maxaggrsize:

如果不满足,则产生一个新的路由协议聚合报文,将该需要转发的报文填充到该新的聚合报文中,并将该新的聚合报文的发送时间的设置为:当前时间currtime+最大聚合时间maxaggrtime,然后将报文缓存在路由协议缓存队列中等待发送;

如果满足,则将该需要转发的报文聚合到该待发送聚合报文中。

其中,最大聚合时间maxaggrtime:即对于收到的需要转发的路由协议报文,允许聚合后延迟发送的最大时间;最大聚合大小maxaggrsize:即任意聚合报文的最大字节数。

进一步的,对于接收到的路由协议聚合报文,将该聚合报文拆分成单个的路由协议报文,分别进行处理:

如果路由表中不存在到达路由协议报文源节点的路由信息,则需要建立新的路由;

如果路由表中已经存在到该路由协议报文源节点的路由信息,则更新该路由信息;

进一步的,获取路由协议报文中的拓扑数据长度字段,根据该字段获取路由协议报文中的拓扑数据,并将该路由协议报文的源地址与获取的拓扑数据添加到全网拓扑信息中。

相比现有技术,本发明具有以下技术效果:通过将主动式路由协议的协议报文与拓扑数据进行组合;同时将组合后的路由协议报文与需要转发的路由协议报文进行聚合发送,有效的减少了无线自组网广播小包的发送次数,降低了路由协议和拓扑数据传递的开销,提高了无线信道利用率。

附图说明

图1为本发明方法的流程示意图;

图2是本发明实施例中路由协议报文格式示意图;

图3是本发明实施例中拓扑数据格式示意图;

图4是本发明实施例中路由协议聚合报文格式示意图;

图5是本发明实施例中进行路由协议报文聚合流程图;

图6是本发明实施例中路由信息表格式示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的说明,但不以任何方式对本发明加以限制,基于本发明教导所作的任何变更或改进,均属于本发明的保护范围。

图1为本发明所述的主动式路由通信方法的流程示意图,虽然流程图中每一步操作被描述成顺序的处理,但其中许多操作可以并行、并发或同时实施。

本发明提供了一种适于无线自组网的主动式路由通信方法,包括以下步骤:

s1,自组网中每个节点周期性发送路由协议报文;如图2所示,所述路由协议报文格式包括报文类型、生存时间、报文序列号、源节点mac地址、路径传输质量、拓扑数据长度和拓扑数据信息。

其中,报文类型指定为路由协议报文;报文生存时间表示该报文可以在网络中转发的最大跳数;报文序列号是节点自身维护的一个协议报文序列号,每发送一个路由协议报文,递增1;源节点mac地址是本节点自身分配的mac地址,具有唯一性,它们可以和报文序列号唯一的标识每一个路由协议报文;路径传输质量表示到达源节点的路径传输质量;拓扑数据长度表示本报文携带的拓扑数据的长度;拓扑数据为具体的拓扑数据,表示源节点mac地址代表的节点的局部拓扑结构。

路由协议报文用于告知网络中的其它节点自身的存在,网络中的其它节点依据接收到的路由协议报文构建到报文源节点的路由信息,获取报文源节点的局部拓扑信息等。

s2,在生成路由协议报文的时候,获取本地一跳邻居表中所有邻居节点的mac地址、链路质量、信噪比信息并组合成定义的拓扑数据格式,计算组合后拓扑数据的长度值,所述拓扑数据格式如图3所示,然后将计算得到的拓扑数据的长度值填充到图2所示路由协议报文的拓扑数据长度字段,将组合得到的拓扑数据填充到拓扑数据长度字段的尾部。

将路由协议报文缓存队列中到达发送时间的报文发送出去。

s3:对于接收到的路由协议报文,获取报文中的“报文序列号”和“生存时间”字段,如果对应该路由协议报文源节点,之前只接收过相对该“报文序列号”更旧的报文,且“生存时间”字段大于1,则对该路由协议报文进行转发。

聚合后的报文称为路由协议聚合报文,所述路由协议聚合报文格式如图4所示,包括聚合帧buffer指针、buffer总长度、聚合包个数和发送时间。

其中聚合帧buffer指针指向待发送的聚合帧buffer的首地址;buffer总长度表示聚合后buffer中包含的数据总长度;聚合包个数表示聚合帧中包含的小包的个数;发送时间表示该聚合帧buffer将要在这个时间发送到底层。

创建一个新的路由协议聚合报文后,将生成的路由协议报文添加到该聚合报文的“聚合帧buffer指针”所指向的buffer中;设置“buffer总长度”为该路由协议报文的长度;设置“聚合包个数”为1;并将该聚合报文的“发送时间”设置为:当前时间currtime+路由协议报文发送周期route_period,然后缓存在路由协议缓存队列中等待发送。

首先定义两个参数:

参数1:最大聚合时间maxaggrtime:即对于收到的需要转发的路由协议报文,允许聚合后延迟发送的最大时间,该值限制了需要转发的路由协议报文在本地缓存的时间,从而限制了路由协议报文扩散至全网的最大时间,对于及时的建立或者更新路由表具有重要意义。

参数2:最大聚合大小maxaggrsize:即任意聚合报文的buffer总长度的最大值。

遍历本地路由协议缓存队列,查找是否存在待发送的聚合报文:

如果不存在,则产生一个新的路由协议聚合报文,将该需要转发的报文填充到该聚合报文的“聚合帧buffer指针”所指向的buffer中;设置“buffer总长度”为该需要转发路由协议报文的长度;设置“聚合包个数”为1;并将该聚合报文的“发送时间”设置为:当前时间currtime+最大聚合时间maxaggrtime,然后缓存在路由协议缓存队列中等待发送。

如果存在,参照图5,按照以下步骤判断是否将该需要转发的路由协议报文聚合到待发送聚合报文中:

节点获取待发送聚合报文的“发送时间”sendtime,判断当前时间currtime是否满足条件:currtime+maxaggrtime>sendtime:

如果不满足,则产生一个新的路由协议聚合报文,将该需要转发的报文填充到该聚合报文的“聚合帧buffer指针”所指向的buffer中;设置“buffer总长度”为该需要转发路由协议报文的长度;设置“聚合包个数”为1;并将该聚合报文的“发送时间”设置为:当前时间currtime+最大聚合时间maxaggrtime,然后缓存在路由协议缓存队列中等待发送;

如果满足,则进一步的,获取待发送聚合报文的“buffer总长度”aggrsize,以及需要转发的报文的大小currsize,判断currsize是否满足条件:currsize+aggrsize<maxaggrsize:

如果不满足,则产生一个新的路由协议聚合报文,将该需要转发的报文填充到该聚合报文的“聚合帧buffer指针”所指向的buffer中;设置“buffer总长度”为该需要转发路由协议报文的长度;设置“聚合包个数”为1;并将该聚合报文的“发送时间”设置为:当前时间currtime+最大聚合时间maxaggrtime,然后缓存在路由协议缓存队列中等待发送;

如果满足,则将该需要转发的报文聚合到该待发送聚合报文中。将该需要转发的报文填充到该聚合报文的“聚合帧buffer指针”所指向的buffer的尾部;设置“buffer总长度”为aggrsize+currsize;将“聚合包个数”值加1;“发送时间”值保持不变。

s4:对于接收到的路由协议聚合报文,将该聚合报文拆分成单个的路由协议报文,分别进行处理:

以路由协议报文中的“源节点mac地址”为索引在本地路由表中查找是否已经存在到该地址的路由信息,所述路由信息如图6所示。

如果路由表中不存在到达“源节点mac地址”的路由信息,则需要建立新的路由。

如果路由表中已经存在到该“源节点mac地址”的路由信息,则更新该路由信息。

s5:获取路由协议报文中的“拓扑数据长度”的字段,以该字段为依据获取之后的拓扑数据,然后以路由协议报文中的“源节点mac地址”在本地全网拓扑信息中查找是否已经存在该地址的拓扑信息:

如果不存在,则在本地全网拓扑信息中添加该“源节点mac地址”对应的拓扑信息;

如果已经存在,则更新本地全网拓扑信息中该“源节点mac地址”对应的拓扑信息。

本发明工作原理和工作过程:

通过上述适于无线自组织网络的主动式路由及拓扑演示系统通信开销优化方法,可以使无线自组网中主动式路由协议与拓扑演示系统的开销有一定程度的降低,可以使无线自组网运行过程中的业务吞吐性能有一定的保证提升,本发明通过将主动式路由的协议报文与拓扑演示系统的拓扑数据这两类广播小包进行组合,并将需要转发的路由协议报文与节点自身发送的路由协议报文进行聚合发送,使得路由协议报文及拓扑数据报文的发送减少,降低了主动式路由协议和拓扑演示系统的通信开销,提高了无线信道利用率。

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