法律状态公告日
法律状态信息
法律状态
2018-05-04
授权
授权
2015-07-08
实质审查的生效 IPC(主分类):H04W40/02 申请日:20150314
实质审查的生效
2015-06-10
公开
公开
技术领域:
本发明属于通信技术领域,尤其涉及一种多播路由方法,可用于无线自组织 网络。
技术背景:
无线自组织网络是一种复杂的分布式网络系统,由于其自组织、无需固定基 础设施、节点可移动以及良好的抗毁性等优点而在军事指挥、紧急救援等军用和 民用领域得以广泛应用。多播作为一种一点对多点或多点对多点的通信方式,具 有较高的分组发送和传播效率。由于无线自组织网络的应用场合常常要求支持 多播业务,因此对无线自组织网络的多播路由协议进行研究显得尤为重要。近年 来,国内外已经提出了一系列的无线自组织网络多播路由协议,比如基于树的组 播路由协议包括组播自组网按需距离矢量路由协议MAODV,使用递增标号的 组播路由协议AMRIS,基于网格的按需组播路由协议ODMRP,无状态型的差 异目标组播路由协议DDM。
在以上这些路由协议中,基于树形拓扑的MAODV和AMRIS结构简单并 能确保路由无环路,但树形链路的限制使得网络转发效率低下;基于网格的 ODMRP结构灵活且提供冗余链路作为备用,但是维护开销较大;DDM协议支 持无状态模式,使得数据转发路径中的节点不需要维护组播转发状态,该协议一 般用于小规模自组织网络,当节点数量过多时,会产生效率的降低。
发明内容:
本发明的目的在于针对上述已有技术的不足,提供一种无线分布式网络中基 于辅助链路的组播路由方法,以提高多播数据在多播树内部传输的效率,并减少 遍历所有组成员所需要的转发次数。
为实现上述目的,本发明的技术方案包括如下步骤:
(1)建立跳数为H>=1的辅助链路:
(1a)多播树上除组长节点外的每个节点广播发送生存时间TTL=H的hello 报文,该报文携带源节点拓扑地址T,用来表示本节点在多播树中的拓扑位置, 其中T由多播地址M和节点序列L共同构成,节点序列L包括上游节点序列 Lu和本节点号N,即:T=M+L=M+Lu+d+N,其中字母d表示节点号N 之前插入的间隔信息,根据拓扑地址T中字母d的个数能够直接计算出节点的 网络深度D;
(1b)当一个节点收到hello报文时,首先判断报文是否重复,若是,则丢 弃,否则,提取报文携带的生存时间TTL和多播M并判断:若TTL=1且该节 点属于M,则执行步骤(1c);若TTL>1且该节点不属于M,则从TTL中减一, 并在建立反向路径之后继续广播转发;否则,丢弃报文;
(1c)提取hello报文携带的源节点拓扑地址T,统计T与本节点拓扑地址 T0二者之间重合部分中字母d出现的次数,即共同祖先节点的网络深度D0;分 别统计T与T0中字母d出现的次数,得到源节点网络深度D1和收到hello报文 节点网络深度D2,并进行如下判断:
若满足(D1–D0)+(D2-D0)<=H,则丢弃报文,否则,本节点执行(1d);
(1d)收到hello报文的节点向hello报文的源节点发送一个多播探测报文, 设探测报文的生存时间TTL=H,并通过监测在一段时间内能否收到hello报文 源节点的回复来判断拓扑中是否存在跳数小于H的路径:若能够收到回复,说 明存在跳数小于H的路径,则丢弃hello报文;否则,沿反向路径建立辅助链路, 即沿反向路径向hello报文的源节点发送build报文;
(1e)当一个节点收到build报文时,首先判断是否存在build报文重复或者 本节点非反向路径的下一跳接收节点的情况:若是则丢弃报文,否则,将build 报文中携带的发送节点Send添加进本地多播路由表相应表项的接收节点集合 Receive中,以刷新多播路由表,并进行如下判断:若收到build报文的节点不是 build报文的目的节点,则继续沿反向路径转发build报文,否则停止转发;
(2)在某节点收到多播报文之后,提取多播报文所携带的目标多播M,并 在刷新后的本地多播路由表中查找有无其对应表项:若无对应表项,则表示该节 点既不属于多播M,也不是多播M的辅助节点,丢弃该报文;若有对应表项, 则进一步判断报文是否重复:若重复,则丢弃该报文,否则,通过查询刷新后的 多播路由表,得到多播M表项中的接收节点集合Receive;
(3)提取多播报文所携带发送地址Send,并在本地邻节点表中查找其对应 表项,得到覆盖节点集合Cover;
(4)根据覆盖节点集合Cover,发送地址Send和接收节点集合Receive之 间的关系进行判断:若Receive–Send–Cover∩Receive!=Null,∩代表求交集 运算,!=代表不等于关系,Null代表空集,即Receive中除了发送地址Send和 Cover中已包含的属于Receive的节点之外还存在其他节点,则表示一跳范围内 仍存在需要接收报文的节点,故将报头中发送地址Send替换为本节点地址并转 发;反之,则表示周围所有需要接收报文的节点已被覆盖,停止转发。
本发明由于充分利用了无线信道的广播特性,使用邻节点和多播拓扑树外部 节点搭建辅助链路,使得多播报文突破了多播树链路的限制,可同时沿原有链路 和辅助链路进行多播报文转发;同时由于本发明使用了辅助链路,因而减小了多 播报文的转发次数和转发跳数,进而提高了多播报文覆盖所有组成员的效率。
附图说明
图1是本发明的实现流程图;
图2是本发明中处理hello报文的流程图。
具体实施方式
下面结合附图对做进一步详细说明。
本发明的实施是在假设多播共享树的已经采用MAODV协议构建好的场景 下,多播共享树中的节点包括三种类型:组长节点,组成员节点和中转节点;另 外,本发明特别应用了多播共享树的外部节点作为辅助节点,这些辅助节点只用 于多播报文的转发。
本发明使用的多播路由表结构如表1:
表1 多播路由表
其中,M1代表节点所属的多播,M2代表节点作为辅助节点能过转发的多播, Null代表该部分内容为空。
参照图1,本发明的实现步骤如下:
步骤1,建立跳数为H>=1的辅助链路。
(1.1)设计hello报文结构如表2:
表2 hello报文结构
其中,Type为报文类型,H为该hello报文要建立的辅助链路的跳数,TTL 为生存时间,拓扑地址T用来表示本节点在多播树中的拓扑位置,T由多播地址 M和节点序列L共同构成,节点序列L包括上游节点序列Lu和本节点号N, 即:T=M+L=M+Lu+d+N,其中字母d表示节点号N之前插入的间隔信息, 根据拓扑地址T中字母d的个数能够直接计算出节点的网络深度D;
(1.2)多播树上除组长节点外的每个节点广播发送生存时间TTL=H的 hello报文;
(1.3)处理hello报文;
参照图2,本步骤实现如下:
(1.3a)当一个节点收到hello报文时,首先判断报文是否重复,若是,则丢 弃,否则,提取报文携带的生存时间TTL和多播M并判断:若TTL=1且该节 点属于M,则执行步骤(1.3b);若TTL>1且该节点不属于M,则从TTL中减 一,并在建立反向路径之后继续广播转发;否则,丢弃报文;
(1.3b)提取hello报文携带的源节点拓扑地址T,统计T与本节点拓扑地址 T0二者之间重合部分中字母d出现的次数,即共同祖先节点的网络深度D0;分 别统计T与T0中字母d出现的次数,得到源节点网络深度D1和收到hello报文 节点网络深度D2,并进行如下判断:若满足(D1–D0)+(D2-D0)<=H,则丢 弃报文,否则,本节点执行(1.3c);
(1.3c)收到hello报文的节点向hello报文的源节点发送一个多播探测报文, 设探测报文的生存时间TTL=H,并通过监测在一段时间内能否收到hello报文 源节点的回复来判断拓扑中是否存在跳数小于H的路径:若能够收到回复,说 明存在跳数小于H的路径,则丢弃hello报文;否则,执行步骤(1.3d);
(1.3d)设计build报文结构如表3:
表3 build报文结构
(1.3e)沿反向路径建立辅助链路,即沿反向路径向hello报文的源节点发送 build报文;
(1.4)当一个节点收到build报文时,首先判断是否存在build报文重复或 者本节点非反向路径的下一跳接收节点的情况:若是,则丢弃报文,否则,将 build报文中携带的发送节点Send添加进本地多播路由表相应表项的接收节点集 合Receive中,以刷新多播路由表,并进行如下判断:若收到build报文的节点 不是build报文的目的节点,则继续沿反向路径转发build报文,否则停止转发。
步骤2,接收多播报文,判断是否从多播路由表中提取接收节点集合Receive。
(2.1)在某节点收到多播报文之后,提取多播报文所携带的目标多播M, 并在刷新后的本地多播路由表中查找有无其对应表项:若无对应表项,则表示该 节点既不属于多播M,也不是多播M的辅助节点,丢弃该报文;否则,执行步 骤(2.2);
(2.2)判断报文是否重复:若重复,则丢弃该报文,否则,通过查询刷新后 的多播路由表,得到多播M表项中的接收节点集合Receive。
步骤3,判断是否继续转发多播报文。
(3.1)提取多播报文所携带发送地址Send,并在本地邻节点表中查找其对 应表项,得到覆盖节点集合Cover;
(3.2)根据覆盖节点集合Cover,发送地址Send和接收节点集合Receive之 间的关系进行判断:若Receive–Send–Cover∩Receive!=Null,即Receive中 除了发送地址Send和Cover中已包含的属于Receive的节点之外还存在其他节 点,则表示一跳范围内仍存在需要接收报文的节点,故将报头中发送地址Send 替换为本节点地址并转发,其中∩代表求交集运算,!=代表不等于关系,Null 代表空集;反之,则表示周围所有需要接收报文的节点已被覆盖,停止转发。
机译: 测量基于无线电信噪比的无线网络的实时下行链路质量指标的方法,从基站接收下行信道质量指标的方法,通过无线网络控制向用户提供基于信号的下行链路信道质量测量站的功率损耗的方法无线电网络控制器中的派生用户设备,无线电用户台设备,无线电网络控制器
机译: 无线传感器网络中地理多播路由的方法和基于网络编码的地理多播路由方法
机译: 面向连接的网络中的分布式多播路由的方法以及应用该方法的网络