一种分群自组路由方法与装置的制作方法

文档序号:7652557阅读:211来源:国知局
专利名称:一种分群自组路由方法与装置的制作方法
技术领域
本发明涉及无线网络的路由技术领域,特别是涉及一种分群自组路由方法与装置。

背景技术
现有的无线局域网设备以及MESH节点设备具有如下问题 覆盖范围有限。现有的无线通信网络依赖于预先部署的网络基础设施,从而造成网络的覆盖范围有限。在一些场合虽然可以通过增加接入点来扩大覆盖范围,但这一定程度上增加了系统成本,灵活性与可用性均较差; 无法充分利用现有的网络资源。现有各种无线通信网络都有自己的频段范围,互不兼容,更无从谈互为补充,因此无法充分利用和挖掘现有的网络和设备资源,造成极大的浪费; 提供的业务能力有限,无法适用于多频段应用需求。公网蜂窝移动通信系统占用的是800M-900M以及1800-1900M频段,主要提供话音业务;无线局域网工作在2.4G或5.8G频段,主要提供数据业务,与人们实现多种业务的需要相距甚远; 抗毁能力和机动性差。现有通信网络依赖于预先部署的网络设施,但在一些特殊场合,如战场上部队快速展开和推进、发生地震或水灾后的营救、野外科学考察、偏远山区、意外情况等,现有无线网络极难部署且抗毁能力差,机动性差,无法满足应用需求。
无法满足大规模自组应用条件。现有MESH设备只适用于节点数有限的情况下,在大规模情况下使用会出现诸多问题。


发明内容
鉴于现有技术的不足,本发明的目的在于提供一种分群自组路由的方法和装置。
本发明的技术方案是分群自组路由的方法,其特征在于包括下列步骤 1)设定参数及其结构; 2)寻找传输路由源节点首先查看路由表中是否已有到目的节点的新路由,如有,则可直接使用该路由如不存在,则通过向邻居以洪泛方式广播路由请求报文RREQ来查找路由;收到RREQ的中间节点,查看自己的路由表中是否记录有到该目的节点的有效的路由;若没有,中间节点更新路由表数据并向其邻居转发RREQ;若有或该中间节点就是目的节点,将发送“路由回答”报文RREP给源节点;源节点收到后,就获得了到目的节点的路由; 在寻找传输路由的同时,采用伴随建群的分簇路由算法来控制RREQ的洪泛,减少RREQ分组的传播,所述的伴随建群就是当有广播分组扩散时,利用分组逐级扩散的特点,在分组扩散的同时建立起分群结构,当再有分组需要扩散时,就可以利用其前面已建立好的分群结构进行传播;这种群的结构会因节点运动遭到破坏,当节点发现当前这种分群结构已不能满足其分组扩散的需要时,就不再利用这个分群结构,而是使用最初的方法进行分组广播,并在传播过程中对群进行重构。
还包括下列步骤 1)设定功率控制参数; 2)当网络拓扑发生变化时,节点利用路由协议获得邻居节点信息或网络的拓扑信息,在分群结构中,群首节点可以改变动态调整其到普通节点、网关节点的发射功率,而普通节点和网关节点的功率不发生任何改变。
还包括下列步骤传输路由维护通过周期性地广播hello报文来确认邻居的存在,如节点多次在规定的时间间隔内不再收到其某一邻居节点发来的hello报文,它就认为该邻居节点已移动,并将它到该邻居节点的链路标为断开。
还包括下列步骤路由差错控制,如果节点在使用某个链路时发现该链路断开,它将从路由表中删除包含该断开链路的路由,并发送“路由出错”报文RERR通知那些受链路断开影响的节点,让它们将对应路由从各自的路由表中删除,沿途转发RERR的节点也删除自己路由表中的对应路由。
还包括下列步骤重新建立路由,当传输路由中断时,节点如果想要发送数据包,发现到目的节点的路由已经不存在了,则该节点会把要传输的数据包放到缓存器里面,然后为目的节点继续建立一条路由。路由建立成功后,把缓存器里面的数据包继续发送出去。
所述设定参数及其结构包括 1)、源节点参数结构 其中,Rq_src为源节点的IP地址,Rq_src_seqno为源节点序列号,m_cs为源节点的状态,有四种初始化节点、群首、普通节点、群关。
2)、路由表参数结构为 其中,Dst为目的节点IP地址,Seqno为目的节点序列号,Next_hop为下一跳节点的IP地址,Hops为到目的点的距离,Flag标示该路由是否有效,Expire_time为这条路由的有效期。Req_timeout和Req_cnt用于控制RREQ发送的次数。
3)、新路由参数结构 其中,Dst为目的节点IP地址,Seqno为目的节点序列号,Next_hop为下一跳节点的IP地址,Hops为到目的点的距离,Flag标示该路由是否有效,Expire_time为这条路由的有效期。Req_timeout和Req_cnt用于控制RREQ发送的次数。
4)、通过路由搜索信息包搜索路由信息,路由搜索信息包的参数结构为 其中,Rq_type为分组的类型,在路由搜索信息包中应该为AODVTYPE_RREQ;Rq_hop_count为分组累计的跳数;Rq_bcast_id为分组的广播ID;Rq_dst为分组的目的IP地址;Rq_dst_seqno为分组的目的节点序列号;Rq_src为分组的源IP地址;Rq_src_seqno为分组的源节点序列号;Rq_cs为发送该分组的节点的状态,有四种初始化节点、群首、普通节点、群关;Rq_c为分组标识普通分组还是建群分组;Rq_timestamp为源节点发出分组的时间。
5)、路由应答信息,参数结构为 其中,Rp_type为分组的类型,在路由应答信息中应为AODVTYPE_RREP;Rp_hop_count为分组累计的跳数;Rp_dst为RREQ分组的目的IP地址;Rp_dst_seqno为RREQ分组的目的节点序列号;Rp_src为分组的源IP地址;Rp_lifetime为该路由的有效期;Rp_timestamp为源节点发出分组的时间。
6)、分组扩散信息包参数结构为 其中,Rq_type为分组的类型,在路由搜索信息包中应该为AODVTYPE_RREQ;Rq_hop_count为分组累计的跳数;Rq_bcast_id为分组的广播ID;Rq_dst为分组的目的IP地址;Rq_dst_seqno为分组的目的节点序列号;Rq_src为分组的源IP地址;Rq_src_seqno为分组的源节点序列号;Rq_cs为发送该分组的节点的状态,有四种初始化节点、群首、普通节点、群关;Rq_c为分组标识普通分组还是建群分组;Rq_timestamp为源节点发出分组的时间。
7)、分群结构的参数结构为 分群结构中,节点有四种角色和一种状态。
其中,准群首状态为当节点M收到一个普通节点N发来的建群分组,则M将自己置为准群首状态,随机延时一段时间,转发之前未收到来自其他群首的分组时,就将自己变为群首,并在该分组中作出标识,进行转发;若转发之前收到来自其他群首转发的同一个分组,则将自己的角色由准群首变为普通节点,设置标志后转发。
8)、群结构失效信息参数结构为 其中,Rt_req_cnt为源节点利用现有的群结构已经发起路由搜索的次数;RREQ_RETRIES为节点可以发送路由搜索次数的上限;Rq_cs为发送分组的节点的状态;Rq_c为分组的标识,是普通分组还是建群分组;m_cs为本节点的状态; 当节点发送路由搜索次数已超过其上限值时,就表明现有的群结构已经失效,不再满足分组扩散的要求,需要进行群的重构。则节点将在下一次路由搜索时发起群的重构,并将m_cs及Rq_cs置为群首,将Rq_c标识为建群分组。
9)、hello报文邻居搜索信息包参数结构为 Hello分组是一种未被请求的RREP分组。
其中,Rp_type为分组的类型,在hello报文邻居搜索信息包中应为AODVTYPE_HELLO;Rp_hop_count为分组累计的跳数,在hello报文邻居搜索信息包中应为1;Rp_dst为发送HELLO分组的源IP地址;Rp_dst_seqno为RREQ分组的目的节点序列号;Rp_lifetime为该路由的有效期。
10)、路由出错信息包参数结构为 其中,Re_type为分组的类型,在路由出错信息包中应为AODVTYPE_RERR;DestCount为不可达目的节点的个数;Unreachable_dst为不可达目的节点IP地址;Unreachable_dst_seqno为不可达目的节点序列号。
11)、群首节点参数结构 其中,m_cs为节点自身的状态,为群首;Rq_cs为发送分组的节点状态,为群首;Rq_c为要发送的分组的标识,普通分组还是建群分组。
12)、普通节点参数结构 其中,m_cs为节点自身的状态,为普通节点;Rq_cs为发送分组的节点状态,为普通节点;Rq_c为要发送的分组的标识,应为建群分组。
13)、广播ID参数结构 其中,Src为发出该广播分组的节点IP地址,ID为该广播分组的序列号,Expire_time为这一记录在表中的存活期。
实现上述的分群自组路由的装置,其特征在于由ARM控制器、音频处理芯片、SD卡接口、PCMCIA/USB无线网卡接口、电源、存储器、以太网接口、调试接口、复位电路、SMC接口、功能扩展接口组成,所述音频处理芯片、SD卡接口、PCMCIA/USB无线网卡接口、电源、存储器、以太网接口、调试接口、复位电路、SMC接口、功能扩展接口均与ARM控制器相连。所述ARM控制器,是所述音频、数据传输节点设备的控制器,用Linux作操作系统。
音频处理芯片与所述ARM控制器互连,该音频芯片在采集完数据之后,由ARM控制器进行处理,把处理后的数据压缩编码存放在缓存区内,ARM控制器再通过PCMCIA/USB网卡接口用UDP传输协议把缓存区中的数据进行传输。
PCMCIA/USB无线网卡接口,通过无线网卡接到音频数据后,把数据存入ARM控制器的数据缓存区,经过ARM控制器解码后用所述音频处理芯片播放。在网络节点要传送文件时,ARM控制器通过调用所述无线网卡的传输接口,用FTP协议发送到目的地址,所述无线网卡在收到文件数据后,经过该ARM控制器处理存放到存储空间中; SD卡接口是一个安全数码存储卡用的接口,与该ARM控制器互连,用于扩展存储空间,进行数据业务扩展; ARM控制器,是所述音频、数据传输节点设备的控制器,用Linux作操作系统,所述传输节点设备基于开放系统互连OSI网络模型,其基于嵌入式Linux内核系统的网络层在IP协议的基础上开发了一套无线自组网络层算法,以实现多跳、抗毁及可扩展的无线自组网。
本发明的有益效果 所述的分群自组路由协议(称为G-AODV路由协议)为基于AODV进行改进,能够进行分群并综合考虑路由质量,其对于AODV路由协议作了以下两点改进 1、采用伴随建群的分簇路由算法来控制RREQ(路由请求)的洪泛,减少RREQ分组的传播。“伴随建群”就是当有广播分组扩散时,利用分组逐级扩散的特点,在分组扩散的同时建立起分群结构。当再有分组需要扩散时,就可以利用其前面已建立好的分群结构进行传播。这种群的结构会因节点运动遭到破坏,当节点发现当前这种分群结构已不能满足其分组扩散的需要时,就不再利用这个分群结构,而是使用最初的方法进行分组广播,并在传播过程中对群进行重构。“伴随建群”是一种随分组传播而同时进行的相伴过程,它不需要任何专门的控制分组,无需对伴随群的结构进行维护,可有效地降低路由协议对带宽的占用。
2、采用网络层功率控制路由协议,动态调整群首的发射功率,既减少了能量消耗,又避免了节点之间的多重干扰,提高了网络性能。
提出该G-AODV路由协议的主要原因有 AODV路由协议是一种典型的按需驱动的路由协议,它不需要维护及时准确的路由信息,仅当需要发送报文时,源节点才在网络中发起路由查找过程,因此开销较小;另外,它通过使用目的序列号有效地防止了循环的发生,解决了传统的基于距离向量算法的无限计数问题。AODV还允许中间节点发送RREP,使源节点能快速获得路由。因此,它更适合于拓扑动态变化、资源受限的MANET网络,已成为MANET路由协议的主流。但进一步分析发现,AODV路由协议在通常情况下能工作得很好,而当节点数较多时,协议的性能就会急剧下降,这主要是因为AODV的路由发现本质上还是使用洪泛方式的扩散法,当网络规模较大,节点数较多时,RREQ等路由控制报文激增,导致网络超负荷运行和拥塞,大大降低了网络的性能。因此,减少网络中以RREQ为代表的路由控制报文的数量,是提高性能的关键。另外,在手持设备等资源贫乏的移动终端上,必须考虑电源因素,因为有限的能量供应会阻止数据包的传送,所以基于节点能量的路由是保障路由协议持久性的一个重要方法。
我们在NS2网络仿真平台对此路由协议进行了模拟和实现,通过模拟结果表明G-AODV路由协议的分组数据的投递率、分组数据的丢包率、分组数据端到端的平均延迟以及路由协议的效率等性能指标均比AODV路由协议有所提高。
本方法与装置应用于无线通信领域,在具有固定基础设施和无固定基础设施的情况下均能支持大规模节点的有效自组网,能够兼容多种类型的无线网卡以适用应用多频段的需求,能够自适应、高效地大规模组网,具有抗毁性、自组性以及便携性等特点。



图1是本发明一种分群自组路由的装置的结构组成示意图; 图2是本发明方法G-AODV路由协议的模块组成示意图; 图3是本发明方法的主要流程示意图; 图4是本发明方法的发送RREQ分组的流程图; 图5是本发明方法的接收RREQ分组的流程图; 图6是本发明方法的接收HELLO的流程图; 图7是本发明方法接收RERR的流程图。

具体实施例方式 下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
一、参数结构定义 1)、源节点参数结构 其中,Rq_src为源节点的IP地址,Rq_src_seqno为源节点序列号,m_cs为源节点的状态,有四种初始化节点、群首、普通节点、群关。
2)、路由表参数结构为 其中,Dst为目的节点IP地址,Seqno为目的节点序列号,Next_hop为下一跳节点的IP地址,Hops为到目的点的距离,Flag标示该路由是否有效,Expire_time为这条路由的有效期。Req_timeout和Req_cnt用于控制RREQ发送的次数。
3)、新路由参数结构 其中,Dst为目的节点IP地址,Seqno为目的节点序列号,Next_hop为下一跳节点的IP地址,Hops为到目的点的距离,Flag标示该路由是否有效,Expire_time为这条路由的有效期。Req_timeout和Req_cnt用于控制RREQ发送的次数。
4)、通过路由搜索信息包搜索路由信息,路由搜索信息包的参数结构为 其中,Rq_type为分组的类型,在路由搜索信息包中应该为AODVTYPE_RREQ;Rq_hop_count为分组累计的跳数;Rq_bcast_id为分组的广播ID;Rq_dst为分组的目的IP地址;Rq_dst_seqno为分组的目的节点序列号;Rq_src为分组的源IP地址;Rq_src_seqno为分组的源节点序列号;Rq_cs为发送该分组的节点的状态,有四种初始化节点、群首、普通节点、群关;Rq_c为分组标识普通分组还是建群分组;Rq_timestamp为源节点发出分组的时间。
5)、路由应答信息,参数结构为 其中,Rp_type为分组的类型,在路由应答信息中应为AODVTYPE_RREP;Rp_hop_count为分组累计的跳数;Rp_dst为RREQ分组的目的IP地址;Rp_dst_seqno为RREQ分组的目的节点序列号;Rp_src为分组的源IP地址;Rp_lifetime为该路由的有效期;Rp_timestamp为源节点发出分组的时间。
6)、分组扩散信息包参数结构为 其中,Rq_type为分组的类型,在路由搜索信息包中应该为AODVTYPE_RREQ;Rq_hop_count为分组累计的跳数;Rq_bcast_id为分组的广播ID;Rq_dst为分组的目的IP地址;Rq_dst_seqno为分组的目的节点序列号;Rq_src为分组的源IP地址;Rq_src_seqno为分组的源节点序列号;Rq_cs为发送该分组的节点的状态,有四种初始化节点、群首、普通节点、群关;Rq_c为分组标识普通分组还是建群分组;Rq_timestamp为源节点发出分组的时间。
7)、分群结构的参数结构为 分群结构中,节点有四种角色和一种状态。
其中,准群首状态为当节点M收到一个普通节点N发来的建群分组,则M将自己置为准群首状态,随机延时一段时间,转发之前未收到来自其他群首的分组时,就将自己变为群首,并在该分组中作出标识,进行转发;若转发之前收到来自其他群首转发的同一个分组,则将自己的角色由准群首变为普通节点,设置标志后转发。
8)、群结构失效信息参数结构为 其中,Rt_req_cnt为源节点利用现有的群结构已经发起路由搜索的次数;RREQ_RETRIES为节点可以发送路由搜索次数的上限;Rq_cs为发送分组的节点的状态;Rq_c为分组的标识,是普通分组还是建群分组;m_cs为本节点的状态; 当节点发送路由搜索次数已超过其上限值时,就表明现有的群结构已经失效,不再满足分组扩散的要求,需要进行群的重构。则节点将在下一次路由搜索时发起群的重构,并将m_cs及Rq_cs置为群首,将Rq_c标识为建群分组。
9)、hello报文邻居搜索信息包参数结构为 Hello分组是一种未被请求的RREP分组。
其中,Rp_type为分组的类型,在hello报文邻居搜索信息包中应为AODVTYPE_HELLO;Rp_hop_count为分组累计的跳数,在hello报文邻居搜索信息包中应为1;Rp_dst为发送HELLO分组的源IP地址;Rp_dst_seqno为RREQ分组的目的节点序列号;Rp_lifetime为该路由的有效期。
10)、路由出错信息包参数结构为 其中,Re_type为分组的类型,在路由出错信息包中应为AODVTYPE_RERR;DestCount为不可达目的节点的个数;Unreachable_dst为不可达目的节点IP地址;Unreachable_dft_seqno为不可达目的节点序列号。
11)、群首节点参数结构 其中,m_cs为节点自身的状态,为群首;Rq_cs为发送分组的节点状态,为群首;Rq_c为要发送的分组的标识,普通分组还是建群分组。
12)、普通节点参数结构 其中,m_cs为节点自身的状态,为普通节点;Rq_cs为发送分组的节点状态,为普通节点;Rq_c为要发送的分组的标识,应为建群分组。
13)、广播ID参数结构 其中,Src为发出该广播分组的节点IP地址,ID为该广播分组的序列号,Expire_time为这一记录在表中的存活期。
图2是本发明方法路由协议的模块组成示意图,所述G-AODV路由协议由寻找传输路由模块、传输路由维护模块、路由差错控制模块、重现建立路由模块和功率控制模块组成。各模块功能和原理详细介绍如下。
图3是本发明方法的主要流程示意图,具体步骤是系统给新的RREQ包分配一个内存空间301;源节点寻找到目的节点的路由302;判断路由是否有效303,如有效则退出304,如果无效则判断路由是否过期305;如果是过期,则退出304,如果不过期,则判断发送次数是否超过上限306,超过上限则重新设定时间、发送次数归零307,然后将发送缓存中的数据丢掉308;如果没有超过上限则判断发出请求的节点是否为初始化点309,如果为初始化点,则将RREQ分组标志为建群分组,发出此RREQ的节点设为群首310,如果不是初始化点,则发送次数是否超过BY_CLUSTER_RETRIES311;如果步骤311中判断结果超过BY_CLUSTER_RETRIES,则将RREQ分组标志为建群分组,发出此RREQ的节点设为群首310,如果步骤311中判断结果没有超过BY_CLUSTER_RETRIES,则将RREQ分组标志为普通分组;执行步骤310或312对RREQ分组进行标志后,重新设置TTL值313,然后判断TTL是否为0(即是否第一次广播RREQ)314,如果是第一次广播RREQ,则将TTL值设定为TTL-START,然后记录下次要用的TTL值319,重新设置路由请求超时时间320,填写RREQ内容并发送321;如果步骤314判断结果为不是第一次广播RREQ,则再判断TTL的值是否小于门限值316,如果是小于门限值,则增加TTL的值317,然后记录下次要用的TTL值319,重新设置路由请求超时时间320,填写RREQ内容并发送321;如果步骤316判断结果为TTL的值大于门限值,则将TTL值设定为NETWORK-DIAMETER318,然后记录下次要用的TTL值319,重新设置路由请求超时时间320,填写RREQ内容并发送321。
二、伴随建群 寻找传输路由步骤如图3所示,源节点首先查看路由表中是否已有到目的节点的新路由,如有,则可直接使用该路由如不存在,则通过向邻居以洪泛方式广播路由请求报文RREQ来查找路由;收到RREQ的中间节点,如图5所示查看自己的路由表中是否记录有到该目的节点的有效的路由;若没有,中间节点更新路由表数据并向其邻居转发RREQ;若有或该中间节点就是目的节点,将发送“路由回答”报文RREP给源节点;源节点收到后,就获得了到目的节点的路由; 图5是本发明方法的接收RREQ分组的流程图,具体工作过程如下 利用更新的反向路由转发缓存中目的地址为源节点的分组501,从路由表中查找到目的节点的正向路由502;判断节点是否为RREQ的目的节点503,是则向源节点返回RREP分组,然后丢弃RREQ分组504,如果步骤503的判断结果为节点不是RREQ的目的节点,则判断路由表中是否有到目的节点的最新路由505;如果有最新路由,则向源节点返回RREP分组,然后丢弃RREQ分组506,如果没有最新路由,则判断收到的RREQ分组是否为普通分组且节点M既非群首也非群关507,如果是普通分组且节点M既非群首也非群关,则丢弃RREQ分组508,如果不是普通分组且节点M是群首或群关,则判断RREQ分组是否为普通分组509,如果是普通分组,则转发RREQ分组510,如果不是普通分组,则判断节点M是否为普通节点511;如是普通分组,则转发RREQ分组512,不是普通分组,则判断节点M是否为准群首状态513;如果节点M是准群首状态,将分组缓存起来,并指定群关514,如果节点M不是准群首状态,则结束515。
在寻找传输路由的同时,采用伴随建群的分簇路由算法来控制RREQ的洪泛,减少RREQ分组的传播,如图4所示,所述的伴随建群就是当有广播分组扩散时,利用分组逐级扩散的特点,在分组扩散的同时建立起分群结构,当再有分组需要扩散时,就可以利用前面已建立好的分群结构进行传播;这种群的结构会因节点运动遭到破坏,当节点发现当前这种分群结构已不能满足其分组扩散的需要时,就不再利用这个分群结构,而是使用最初的方法进行分组广播,并在传播过程中对群进行重构。
图4是本发明方法的发送RREQ分组的流程图,详细步骤如下; 节点N广播RREQ401,判断收到RREQ的节点M是否为源节点402,收到RREQ的节点M是源节点,则丢弃RREQ分组,结束416;收到RREQ的节点M不是源节点,则判断节点M是否处于准群首状态403;节点M是处于准群首状态,则判断RREQ分组是否是建群分组404,节点M不是处于准群首状态,则判断节点M是否收到过节点N发来的RREQ分组407;步骤404判断结果为RREQ分组是建群分组,则判断节点N是否为群首405,步骤404判断结果为RREQ分组不是建群分组,则判断节点M是否收到过节点N发来的RREQ分组407;步骤405的判断结果为节点N是群首,则将节点M设置为普通节点406,步骤405的判断结果为节点N不是群首,则判断节点M是否收到过节点N发来的RREQ分组407; 步骤407中判断的结果为节点M没有收到过节点N发来的RREQ分组,则存储源节点地址、广播ID412,根据源节点IP查找路由表是否存在反向路由413,步骤413中,如果根据源节点IP查找路由表存在反向路由,则判断RREQ是否提供了到目的节点的最新路由414,如果根据源节点IP查找路由表不存在反向路由,则在路由表中建立新的反向路由415,然后再判断RREQ是否提供了到目的节点的最新路由414;步骤414中判断结果为RREQ提供了到目的节点的最新路由,则更新路由表(源节点序列号、跳数、下一跳、生存时间)417,步骤414中判断结果为RREQ没有提供到目的节点的最新路由,则从路由表中查找到目的节点的正向路由; 步骤407中判断的结果为节点M收到过节点N发来的RREQ分组,则判断节点M是否为普通节点408,如果节点M是普通节点,则判断节点N是否为群首409,如果节点M不是普通节点,则丢弃RREQ分组,结束416;步骤409中判断结果为节点N是为群首,则判断节点M是否在RREQ分组中被指定为群关410,步骤409中判断结果为节点N不是为群首,则丢弃RREQ分组,结束416;步骤410中判断结果为节点M在RREQ分组中被指定为群关,则将节点M的状态设置为群关411,步骤410中判断结果为节点M在RREQ分组中没有被指定为群关,则丢弃RREQ分组,结束416。
传输路由维护,周期性地广播hello报文,通过判断邻居列表中是否有该节点的存在,依次来确认邻居的存在,如节点多次在规定的时间间隔内不再收到其某一邻居节点发来的hello报文,它就认为该邻居节点已移动,并将它到该邻居节点的链路标为断开。
路由差错控制,如图7所示,如果节点在使用某个链路时发现该链路断开,它将从路由表中删除包含该断开链路的路由,并发送“路由出错”报文RERR通知那些受链路断开影响的节点,让它们将对应路由从各自的路由表中删除,沿途转发RERR的节点也删除自己路由表中的对应路由。
图7是接收路由错误报文RERR的流程图 准备接收错误报文RERR701,查找本节点到RERR中不可达的目的节点I的,并且下一跳是此RERR包的发送节点的最新可用路由是否存在702,若存在最新可用路由,则更新此路由序列号,并将其置为不可用703,设置转发RERR的更新信息704,若不存在最新可用路由,则判断本节点是否存在到达RERR中不可达目的节点的其他路由705,如存在则继续转发RERR 706,如不存在则结束。
重新建立路由步骤,如图6所示,当传输路由中断时,节点如果想要发送数据包,发现到目的节点的路由已经不存在了,则该节点会把要传输的数据包放到缓存器里面,然后为目的节点继续建立一条路由。路由建立成功后,把缓存器里面的数据包继续发送出去。
图6是接收hello报文的流程图,具体步骤如下系统广播hello报文601,判断邻居列表是否有该节点存在602,如该节点存在则更新生存时间604、结束605,如果该节点不存在,则将此节点添加到邻居节点列表中603,并且更新生存时间604、结束605。
三、网络层功率控制路由 当网络拓扑发生变化时,节点利用路由协议获得邻居节点信息或网络的拓扑信息,在分群结构中,群首节点可以改变动态调整其到普通节点、网关节点的发射功率,而普通节点和网关节点的功率不发生任何改变。
图1为分群自组路由装置的结构组成示意图,由ARM控制器、音频处理芯片、SD卡接口、PCMCIA/USB无线网卡接口、电源、存储器、以太网接口、调试接口、复位电路、SMC接口、功能扩展接口组成,所述音频处理芯片、SD卡接口、PCMCIA/USB无线网卡接口、电源、存储器、以太网接口、调试接口、复位电路、SMC接口、功能扩展接口均与ARM控制器相连,ARM控制器是所述音频、数据传输节点设备的控制器,用Linux作操作系统。
以上所述的实施例,只是本发明较优选的具体实施方式
,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
权利要求
1、一种分群自组路由的方法,其特征在于包括下列步骤
1)设定参数及其结构;
2)寻找传输路由源节点首先查看路由表中是否已有到目的节点的新路由,如有,则可直接使用该路由如不存在,则通过向邻居以洪泛方式广播路由请求报文RREQ来查找路由;收到RREQ的中间节点,查看自己的路由表中是否记录有到该目的节点的有效的路由;若没有,中间节点更新路由表数据并向其邻居转发RREQ;若有或该中间节点就是目的节点,将发送“路由回答”报文RREP给源节点;源节点收到后,就获得了到目的节点的路由;
在寻找传输路由的同时,采用伴随建群的分簇路由算法来控制RREQ的洪泛,减少RREQ分组的传播,所述的伴随建群就是当有广播分组扩散时,利用分组逐级扩散的特点,在分组扩散的同时建立起分群结构,当再有分组需要扩散时,就可以利用其前面已建立好的分群结构进行传播;这种群的结构会因节点运动遭到破坏,当节点发现当前这种分群结构已不能满足其分组扩散的需要时,就不再利用这个分群结构,而是使用最初的方法进行分组广播,并在传播过程中对群进行重构。
2、根据权利要求1所述的分群自组路由的方法,其特征在于还包括下列步骤
1)设定功率控制参数;
2)当网络拓扑发生变化时,节点利用路由协议获得邻居节点信息或网络的拓扑信息,在分群结构中,群首节点可以动态调整其到普通节点、网关节点的发射功率,而普通节点和网关节点的功率不发生任何改变。
3、根据权利要求1或2所述的分群自组路由的方法,其特征在于还包括下列步骤传输路由维护通过周期性地广播hello报文来确认邻居的存在,如节点多次在规定的时间间隔内不再收到其某一邻居节点发来的hello报文,它就认为该邻居节点已移动,并将它到该邻居节点的链路标为断开。
4、根据权利要求3所述的分群自组路由的方法,其特征在于还包括下列步骤
路由差错控制,如果节点在使用某个链路时发现该链路断开,它将从路由表中删除包含该断开链路的路由,并发送“路由出错”报文RERR通知那些受链路断开影响的节点,让它们将对应路由从各自的路由表中删除,沿途转发RERR的节点也删除自己路由表中的对应路由。
5、根据权利要求4所述的分群自组路由的方法,其特征在于还包括下列步骤重新建立路由,当传输路由中断时,节点如果想要发送数据包,发现到目的节点的路由已经不存在了,则该节点会把要传输的数据包放到缓存器里面,然后为目的节点继续建立一条路由。路由建立成功后,把缓存器里面的数据包继续发送出去。
6、根据权利要求5所述的分群自组路由的方法,其特征在于所述设定参数及其结构包括
1)、源节点参数结构
其中,Rq_src为源节点的IP地址,Rq_src_seqno为源节点序列号,m_cs为源节点的状态,有四种初始化节点、群首、普通节点、群关;
2)、路由表参数结构为
其中,Dst为目的节点IP地址,Seqno为目的节点序列号,Next_hop为下一跳节点的IP地址,Hops为到目的点的距离,Flag标示该路由是否有效,Expire_time为这条路由的有效期。Req_timeout和Req_cnt用于控制RREQ发送的次数;
3)、新路由参数结构
其中,Dst为目的节点IP地址,Seqno为目的节点序列号,Next_hop为下一跳节点的IP地址,Hops为到目的点的距离,Flag标示该路由是否有效,Expire_time为这条路由的有效期。Req_timeout和Req_cnt用于控制RREQ发送的次数;
4)、通过路由搜索信息包搜索路由信息,路由搜索信息包的参数结构为
其中,Rq_type为分组的类型,在路由搜索信息包中应该为AODVTYPE_RREQ;Rq_hop_count为分组累计的跳数;Rq_bcast_id为分组的广播ID;Rq_dst为分组的目的IP地址;Rq_dst_seqno为分组的目的节点序列号;Rq_src为分组的源IP地址;Rq_src_seqno为分组的源节点序列号;Rq_cs为发送该分组的节点的状态,有四种初始化节点、群首、普通节点、群关;Rq_c为分组标识普通分组还是建群分组;Rq_timestamp为源节点发出分组的时间;
5)、路由应答信息,参数结构为
其中,Rp_type为分组的类型,在路由应答信息中应为AODVTYPE_RREP;
Rp_hop_count为分组累计的跳数;Rp_dst为RREQ分组的目的IP地址;
Rp_dst_seqno为RREQ分组的目的节点序列号;Rp_src为分组的源IP地址;
Rp_lifetime为该路由的有效期;Rp_timestamp为源节点发出分组的时间;
6)、分组扩散信息包参数结构为
其中,Rq_type为分组的类型,在路由搜索信息包中应该为AODVTYPE_RREQ;Rq_hop_count为分组累计的跳数;Rq_bcast_id为分组的广播ID;Rq_dst为分组的目的IP地址;Rq_dst_seqno为分组的目的节点序列号;Rq_src为分组的源IP地址;Rq_src_seqno为分组的源节点序列号;Rq_cs为发送该分组的节点的状态,有四种初始化节点、群首、普通节点、群关;Rq_c为分组标识普通分组还是建群分组;Rq_timestamp为源节点发出分组的时间;
7)、分群结构的参数结构为
分群结构中,节点有四种角色和一种状态。
其中,准群首状态为当节点M收到一个普通节点N发来的建群分组,则M将自己置为准群首状态,随机延时一段时间,转发之前未收到来自其他群首的分组时,就将自己变为群首,并在该分组中作出标识,进行转发;若转发之前收到来自其他群首转发的同一个分组,则将自己的角色由准群首变为普通节点,设置标志后转发;
8)、群结构失效信息参数结构为
其中,Rt_req_cnt为源节点利用现有的群结构已经发起路由搜索的次数;RREQ_RETRIES为节点可以发送路由搜索次数的上限;Rq_cs为发送分组的节点的状态;Rq_c为分组的标识,是普通分组还是建群分组;m_cs为本节点的状态;
当节点发送路由搜索次数已超过其上限值时,就表明现有的群结构已经失效,不再满足分组扩散的要求,需要进行群的重构。则节点将在下一次路由搜索时发起群的重构,并将m_cs及Rq_cs置为群首,将Rq_c标识为建群分组;
9)、hello报文邻居搜索信息包参数结构为
Hello分组是一种未被请求的RREP分组。
其中,Rp_type为分组的类型,在hello报文邻居搜索信息包中应为AODVTYPE_HELLO;Rp_hop_count为分组累计的跳数,在hello报文邻居搜索信息包中应为1;Rp_dst为发送HELLO分组的源IP地址;Rp_dst_seqno为RREQ分组的目的节点序列号;Rp_lifetime为该路由的有效期;
10)、路由出错信息包参数结构为
其中,Re_type为分组的类型,在路由出错信息包中应为AODVTYPE_RERR;DestCount为不可达目的节点的个数;Unreachable_dst为不可达目的节点IP地址;Unreachable_dst_seqno为不可达目的节点序列号;
11)、群首节点参数结构
其中,m_cs为节点自身的状态,为群首;Rq_cs为发送分组的节点状态,为群首;Rq_c为要发送的分组的标识,普通分组还是建群分组;
12)、普通节点参数结构
其中,m_cs为节点自身的状态,为普通节点;Rq_cs为发送分组的节点状态,为普通节点;Rq_c为要发送的分组的标识,应为建群分组;
13)、广播ID参数结构
其中,Src为发出该广播分组的节点IP地址,ID为该广播分组的序列号,Expire_time为这一记录在表中的存活期。
7、一种实现上述各权利要求所述的分群自组路由的装置,其特征在于由ARM控制器、音频处理芯片、SD卡接口、PCMCIA/USB无线网卡接口、电源、存储器、以太网接口、调试接口、复位电路、SMC接口、功能扩展接口组成,所述音频处理芯片、SD卡接口、PCMCIA/USB无线网卡接口、电源、存储器、以太网接口、调试接口、复位电路、SMC接口、功能扩展接口均与ARM控制器相连。
8.根据权利要求7所述分群自组路由的装置,其特征在于所述ARM控制器,是所述音频、数据传输节点设备的控制器,用Linux作操作系统。
全文摘要
本方法与装置应用于无线通信领域,尤其涉及一种分群自组路由方法与装置。所述分群自组路由的装置由ARM控制器、音频处理芯片、SD卡接口、PCMCIA/USB无线网卡接口、电源、存储器、以太网接口、调试接口、复位电路、SMC接口、功能扩展接口组成。所述分群自组路由方法是基于嵌入式Linux内核系统的网络层在IP协议的基础上开发的一套无线自组网络层算法,该法由寻找传输路由、传输路由维护、路由差错控制、重新建立路由、功率控制模块组成。本发明应用于无线通信领域,能支持大规模节点的有效自组网,能够兼容多种类型的无线网卡以适用应用多频段的需求,自适应、高效地大规模组网,具有抗毁性、自组性以及便携性等特点。
文档编号H04L12/28GK101068203SQ20071010038
公开日2007年11月7日 申请日期2007年6月11日 优先权日2007年6月11日
发明者李旭, 惠博, 袁凯, 刘海霞, 薛宾, 昌文祥 申请人:北京交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1