叠加网广播消息的发送方法、装置及系统与流程

文档序号:15752110发布日期:2018-10-26 17:58阅读:193来源:国知局

本发明涉及通信领域,具体而言,涉及一种叠加网广播消息的发送方法、装置及系统。



背景技术:

叠加网(overlay network),是指构建于另一已存在的网络(例如,IP(Internet Protocol,网际协议)网络)之上的计算机网络。叠加网中相邻的两个节点间可以认为存在逻辑连接,即叠加网中两节点的直接连接路径,在IP层可能对应于多跳的连接,在物理上可能对应多个物理连接。从网络结构看,叠加网可分为结构化和非结构化两类。结构化叠加网是一种维护节点之间在应用层上互联的组织方法,按照一定的逻辑拓扑结构将系统中的节点互连起来,并通过路由消息使得系统中任意两个节点可以互相通信。在有节点动态加入和退出的情况下,结构化叠加网要能够保证节点之间的互连性。非结构化拓扑的叠加网也有着大量实际应用,其通过泛洪优化、随机搜索、提示性搜索、复制等技术进行叠加网内消息的发送、资源的查找等。叠加网技术在文件交换、分布式计算、服务共享等方面已经充分显示出了其强大的技术优势。

在叠加网中,各节点均需具有唯一的标识,是对节点地址的一个映射。例如,在如图1所示的叠加网中,由各类担负相同或不同角色的叠加网节点组成一张逻辑网络,叠加网中的节点为叠加网的基本组成部分,是能够为同一叠加网中其它节点或叠加网外部提供各种服务的节点。若将叠加网中的节点按照其节点标识排序,并首尾相连,可组成一个环,且对叠加网中的任一节点,均存在一个前趋节点和一个后继节点。

在某些情形,节点需在叠加网内部发送广播消息。例如,某些叠加网要求中各节点存储的路由表与叠加网实际拓扑情况保持同步,当发生节点加入或退出等叠加网调整时,负责节点需将此路由更新消息发送到整个叠加网;又例如,叠加网自身或运行于其上的应用的相关配置发生变化时,需将更新后的配置发送到叠加网所有节点等。

若各节点均保存叠加网完整路由表,广播发起节点可以单播的形式向叠加网所有其它节点逐一发送消息,以达到叠加网内广播的效果。例如,在如图1所示的叠加网中,节点A发起叠加网内广播,将消息发送给叠加网内所有其它节点。但采用此种方式,广播发起节点(节点A)负载会显著增大,相同的网络链路也可能传输重复的数据报文。



技术实现要素:

针对相关技术中由于广播发起节点发送广播消息时需要分别将消息发送给叠加网内所有其他节点而导致广播发起节点负载增加,以及在消息发送过程中相同的网络链路重复传输发送的消息的问题,本发明提供了一种叠加网新节点的加入方案和一种叠加网广播消息的发送方案,以至少解决上述问题。

根据本发明的一个方面,提供了一种叠加网新节点的加入方法,包括:处于支持网际协议IP组播网络环境中的新节点在加入叠加网时,获取请求加入的所述叠加网的配置信息,其中,所述配置信息包括:所述新节点用于发送和接收路由更新消息的IP组播地址;所述新节点绑定所述IP组播地址,加入所述IP组播地址所指示的IP组播组;所述新节点向所述叠加网中的负责节点发送加入叠加网请求,其中,所述叠加网请求中携带有所述配置信息;所述负责节点向所述叠加网中的所有节点发送路由更新消息,更新各节点的本地叠加网路由表,其中,所述本地叠加网路由表中记录的所述新节点的路由信息包括:所述新节点是否处于支持IP组播的网络环境、以及所述新节点的IP组播地址。

优选地,所述IP组播组包括一个或多个组播孤岛,所述配置信息及所述路由信息还包括:所述新节点所属的IP组播孤岛在所述叠加网中的标识。

优选地,所述方法还包括:所述新节点侦听所述IP组播组的组播地址对应的端口,接收发送到所述IP组播组的组播地址的消息。

根据本发明的另一个方面,提供了一种叠加网广播消息的发送方法,包括:当叠加网中的第一节点需要向所述叠加网中的其它第二节点发送广播消息时,所述第一节点查询本地叠加网路由表获取所有所述第二节点的路由信息,其中,所述路由信息包括:所述第二节点是否处于支持IP组播的网络环境中、以及处于支持所述IP组播的网络环境中的所述第二节点的IP组播地址;所述第一节点根据所述第二节点的路由信息,确定处于支持IP组播的网络环境中的所述第二节点所属的IP组播组;对于属于同一IP组播组的所述第二节点,所述第一节点按照所述IP组播组的组播地址,向所述IP组播组中的部分第二节点发送所述广播消息,由所述部分第二节点将所述广播消息转发给所述IP组播组中的其它第二节点。

优选地,所述IP组播组包括一个或多个组播孤岛,所述路由信息还包括:所述第二节点所属的组播孤岛在所述叠加网中的标识;向所述IP组播组中的部分第二节点发送所述广播消息,包括:如果所述第一节点处于支持IP组播的网络环境,则对于与所述第一节点同属于同一组播孤岛的第二节点,所述第一节点以组播的方式发送所述广播消息,对于与所述第一节点不属于同一组播孤岛的第二节点,所述第一节点以单播方式分别向各个组播孤岛中的第二节点之一发送所述广播消息,各个所述组播孤岛中的所述第二节点之一以组播的方式将所述广播消息转发给本组播孤岛中的其它第二节点;如果所述第一节点处于不支持IP组播的网络环境,则所述第一节点以单播方式分别向各个所述组播孤岛中的第二节点之一发送所述广播消息,各个所述组播孤岛中的所述第二节点之一以组播的方式将所述广播消息转发给本组播孤岛中的其它第二节点。

优选地,所述广播消息中还携带有所述第一节点获知的IP组播组列表,所述方法还包括:接收到所述广播消息的所述第二节点作为加入所述叠加网的新节点的后继节点,在将所述新节点加入所述叠加网之后,根据本地叠加网络路由表及所述第一节点获知的组播孤岛列表,确定所述新节点所属的组播孤岛尚未为所述第一节点获知;所述后继节点将所述广播消息发送给所述新节点;所述新节点以组播方式将所述广播消息转发所述新节点所属的组播孤岛中的其它节点。

优选地,所述广播消息中还携带有指示接收到所述广播消息的第二节点各自需要负责转发的组播孤岛标识范围;所述方法还包括:接收到所述广播消息的所述第二节点作为加入所述叠加网的新节点的后继节点,在将所述新节点加入所述叠加网之后,根据本地叠加网路由表及所述组播孤岛编号标识范围,确定所述新节点所属的组播孤岛的标识在所述组播孤岛编号标识范围内;所述后继节点将所述广播消息发送给所述新节点。

优选地,对于所述叠加网络中处于不支持IP组播的网络环境的第二节点,所述方法还包括:所述第一节点根据所有所述处于不支持IP组播的网络环境的第二节点的节点标识将所有所述处于不支持IP组播的网络环境的第二节点分为一个或多个组,其中,各组中包括多个所述处于不支持IP组播的网络环境的第二节点;所述第一节点分别向各组中的一个所述第二节点发送所述广播消息;各个组中的接收到所述广播消息的所述第二节点将所述广播消息转发给其所在组中的其他第二节点。

优选地,发送给各组的所述第二节点的所述广播消息中携带有该组内的所述第二节点的节点标识的取值范围;各个组中的接收到所述广播消息的所述第二节点将所述广播消息转发给其所在组中的其他第二节点,包括:各个组中的接收到所述广播消息的所述第二节点将所述广播消息转发给节点标识在所述广播消息携带的所述取值范围内的第二节点。

优选地,所述广播消息中还携带有指示所述广播消息需要转发至的节点标识范围;所述方法还包括:接收到所述广播消息的所述第二节点作为加入所述叠加网的新节点的后继节点,在将所述新节点加入所述叠加网之后,确定所述新节点的节点标识在所述后继节点接收到的广播消息中携带的节点标识范围内;所述后继节点将所述广播消息发送给所述新节点。

根据本发明的又一个方面,提供了一种叠加网广播消息的发送装置,位于叠加网中广播消息的发起节点,所述装置包括:查询模块,用于在需要向所述叠加网中的其它第二节点发送广播消息时,查询本地叠加网路由表获取所有所述第二节点的路由信息,其中,所述路由信息包括:所述第二节点是否处于支持IP组播的网络环境、以及处于支持IP组播的网络环境的所述第二节点的IP组播地址;确定模块,用于根据所述第二节点的路由信息,确定处于支持IP组播的网络环境的所述第二节点所属的IP组播组;发送模块,用于对于属于同一IP组播组的所述第二节点,按照所述IP组播组的组播地址,向所述IP组播组中的部分第二节点发送所述广播消息,由所述部分第二节点将所述广播消息转发给所述IP组播组中的其它第二节点。

优选地,所述IP组播组包括一个或多个组播孤岛,所述路由信息还包括:所述第二节点所属的组播孤岛在所述叠加网中的标识;所述发送模块用于通过以下方式发送所述广播消息:如果所述发起节点处于支持IP组播的网络环境中,则对于与所述发起节点同属于同一组播孤岛的第二节点,以IP组播的方式发送所述广播消息,对于与所述发起节点不属于同一组播孤岛的第二节点,以单播方式分别向各个组播孤岛中的第二节点之一发送所述广播消息,由各个所述组播孤岛中的所述第二节点之一以IP组播的方式将所述广播消息转发给本组播孤岛中的其它第二节点;如果所述发起节点处于不支持IP组播的网络环境中,则以单播方式分别向各个所述组播孤岛中的第二节点之一发送所述广播消息,由各个所述组播孤岛中的所述第二节点之一以IP组播的方式将所述广播消息转发给本组播孤岛中的其它第二节点。

优选地,所述装置还包括:分组模块,用于根据所述叠加网中所有处于不支持IP组播的网络环境的第二节点的节点标识将所有所述处于不支持IP组播的网络环境的第二节点分为一个或多个组,其中,各组中包括多个所述处于不支持IP组播的网络环境的第二节点;所述发送模块还用于分别向各组中的一个所述第二节点发送所述广播消息,由各个组中的接收到所述广播消息的所述第二节点将所述广播消息转发给其所在组中的其他第二节点。

根据本发明的在一个方面,提供了一种叠加网广播消息的发送系统,包括:叠加网中互为对等的第一节点和第二节点,其中,所述第一节点,用于在需要向所述叠加网中的所述第二节点发送广播消息时,查询本地叠加网路由表获取所有所述第二节点的路由信息,根据所述第二节点的路由信息,确定处于支持IP组播的网络环境的所述第二节点所属的IP组播组,对于属于同一IP组播组的所述第二节点,按照所述IP组播组的组播地址,向所述IP组播组中的部分第二节点发送所述广播消息,其中,所述路由信息包括:所述第二节点是否处于支持IP组播的网络环境、以及处于支持所述IP组播的网络环境的所述第二节点的IP组播地址;各个IP组播组中的所述部分第二节点,用于将所述广播消息转发给所述IP组播组中的其它第二节点。

优选地,所述IP组播组包括一个或多个IP组播孤岛,所述路由信息还包括:所述第二节点所属的组播孤岛在所述叠加网中的标识;如果所述第一节点处于支持IP组播的网络环境中,则对于与所述第一节点同属于同一组播孤岛的第二节点,所述第一节点用于以IP组播的方式发送所述广播消息,对于与所述第一节点不属于同一组播孤岛的第二节点,所述第一节点用于以单播方式分别向各个组播孤岛中的第二节点之一发送所述广播消息;各个所述组播孤岛中的所述第二节点之一用于以IP组播的方式将所述广播消息转发给本组播孤岛中的其它第二节点;如果所述第一节点处于不支持IP组播的网络环境中,则所述第一节点用于以单播方式分别向各个所述组播孤岛中的第二节点之一发送所述广播消息,各个所述组播孤岛中的所述第二节点之一用于以IP组播的方式将所述广播消息转发给本组播孤岛中的其它第二节点。

优选地,所述第一节点还用于根据所有所述处于不支持IP组播的网络环境的第二节点的节点标识将所有所述处于不支持IP组播的网络环境的第二节点分为一个或多个组,其中,各组中包括多个所述处于不支持IP组播的网络环境的第二节点,并分别向各组中的一个所述第二节点发送所述广播消息;各个组中的接收到所述广播消息的所述第二节点,用于将所述广播消息转发给其所在组中的其他第二节点。

通过本发明,第一节点在需要发送广播消息时,按照第二节点所属的IP组播组的组播地址,向IP组播组中的部分第二节点发送广播消息,由接收到广播消息的第二节点以组播方式,将广播消息转发给该节点所属的IP组播组中的其它第二节点,从而减少了第一节点发送广播消息的负载以及广播消息发送占用的网络带宽。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据相关技术的叠加网的示意图;

图2是根据本发明实施例的叠加网广播消息的发送系统的示意图;

图3是根据本发明实施例的叠加网广播消息的发送装置的结构框图;

图4是根据本发明实施例优选的叠加网广播消息的发送装置的结构框图;

图5是根据本发明实施例的叠加网广播消息的发送方法的流程图;

图6是根据本发明实施例的叠加网新节点的加入方法的流程图;

图7是根据本发明实施例一的叠加网的示意图;

图8是根据本发明实施例一的又一叠加网的示意图;

图9是根据本发明实施例二的NM节点加入叠加网的方法的流程图;

图10是根据本发明实施例三的叠加网节点发送叠加网内广播消息的方法的流程图;

图11是根据本发明实施例四的叠加网节点发送广播消息的方法的流程示意图;

图12是根据本发明实施例四的非NM节点对广播进行分级转发的流程示意图;

图13是根据本发明实施例五的广播消息的发送方法的流程示意图;

图14是根据本发明实施例六的广播消息的发送方法的流程示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

针对相关技术中由于广播发起节点发送广播消息时需要分别将消息发送给叠加网内所有其他节点而导致广播发起节点负载增加,以及在消息发送过程中相同的网络链路重复传输发送的消息的问题,本发明实施例提供了一种叠加网广播消息的发送方案,该方案采用IP组播和应用层组播混合的方式进行叠加网内广播消息的发送,实现了减少广播消息发送占用的网络带宽和节点的处理开销,并且保证在叠加网调整发生的情况下,广播消息亦能被送达叠加网所有节点。

根据本发明实施例,提供了一种叠加网广播消息的发送系统,图2是根据本发明实施例的叠加网广播消息的发送系统的示意图,如图2所示,该系统包括:第一节点10和第二节点20。其中,第一节点10和第二节点20为一个叠加网中的对等节点,第一节点10为当前的广播消息的发起节点,第二节点20为叠加网中需要接收所述广播消息的节点。

第一节点10,用于在需要向叠加网中的其它第二节点20发送广播消息时,查询本地叠加网路由表获取所有第二节点20的路由信息,根据第二节点20的路由信息,确定处于支持IP组播的网络环境的第二节点20所属的IP组播组,对于属于同一IP组播组的第二节点20,按照IP组播组的组播地址,向IP组播组中的部分第二节点20发送广播消息,其中,上述路由信息包括:第二节点20是否处于支持IP组播的网络环境、以及处于支持IP组播的网络环境的第二节点20的IP组播地址。

各个IP组播组中的部分第二节点20,用于将上述广播消息转发给上述IP组播组中的其它第二节点20。

通过本发明实施例,第一节点(即广播消息的发起节点)在发送广播消息时,按照第二节点(即广播消息的接收节点)所属的IP组播组的组播地址,向IP组播组中的部分第二节点以单播形式发送需广播的广播消息,由接收到广播消息的第二节点以IP组播方式,将广播消息转发给该节点所属的IP组播组中的其它第二节点,从而减少了第一节点发送广播消息的负载。

一个IP组播组中包含一个或多个组播孤岛(即连续部署的支持IP组播消息收发的一片网络环境),组播孤岛中的节点所发送组播消息仅能被位于该组播孤岛中的节点收到,而无法被位于其他组播孤岛的节点收到。因此,在本发明实施例的一个优选实施方式中,对于所处网络环境支持IP组播的第二节点20,本地叠加网路由表中的第二节点20的路由信息还可以包括:该第二节点所属的组播孤岛在叠加网中的标识。在该优选实施方式中,如果第一节点10所处网络环境支持IP组播,则对于与之同属于一个组播孤岛的第二节点20,第一节点10用于以组播的方式向这些第二节点20发送广播消息,对于与第一节点10不属于同一组播孤岛的第二节点20,第一节点10用于以单播的方式分别向各个组播孤岛中的一个第二节点20发送广播消息,该第二节点20用于以组播的方式将该广播消息转发级本组播孤岛中的其它第二节点。如果第一节点10所处网络环境不支持IP组播,则第一节点10用于以单播的方式分别向各个组播孤岛中的一个第二节点20发送广播消息,该第二节点20用于以组播的方式将该广播消息转发级本组播孤岛中的其它第二节点。本实施例中,以组播方式发送广播消息,使得广播消息仅发送一次即可到达属于同一IP组播组的节点,减少广播消息发送占用的网络带宽。

在实际应用中,对于IP组播组的所有第二节点不属于同一组播孤岛的情况,也可以通过其他方式发送广播消息,例如,第一节点将广播消息以单播方式发送给IP组播组中第二节点之一,由该节点向不同的组播孤岛中的第二节点之一以单播方式发送广播消息,不同的组播孤岛中的第二节点之一接收到广播消息后,以组播方式将广播消息转发给所属的组播孤岛。

此外,叠加网中可能存在处于不支持IP组播的网络环境中的第二节点,若分别向处于不支持IP组播网络环境的第二节点发送广播消息,第一节点依然需要发送大量IP单播消息。因此,在本发明实施例的一个优选实施方式中,为了进一步减轻第一节点的处理负载,第一节点10还用于根据所有处于不支持IP组播的网络环境中的第二节点的节点标识将所有处于不支持IP组播的网络环境中的第二节点分为一个或多个组,其中,各组中包括多个处于不支持IP组播的网络环境中的第二节点,并分别向各组中的一个第二节点发送广播消息;各个组中的接收到广播消息的第二节点20,用于将广播消息转发给其所在组中的其他第二节点。

鉴于上述优选实施方式,若叠加网中包含大量处于不支持IP组播网络环境中的第二节点,通过上述优选实施例的发送方法,各个组中的一个第二节点依然需要向其所在组中的大量的第二节点发送广播消息,为了进一步的减小单个节点的处理负载,可以对所有第二节点进行多级分组,即在分组后的组中进一步分组,各组中的一个第二节点在接收到广播消息后,将广播消息发送给进一步分组的各组中的一个第二节点,由该节点将广播消息转发给进一步分组的各组中其他第二节点。

在本发明实施例中,上述用于转发广播消息的第二节点可以是预先配置的第二节点,也可以根据预设选取算法选取,或者也可以随机选取。

根据本发明实施例,提供了一种叠加网广播消息的发送装置,位于本发明上述实施例提供的第一节点10中,即位于叠加网中的广播消息的发起节点,可以实现本发明上述实施例的功能。

图3是根据本发明实施例的叠加网广播消息的发送装置的结构框图,如图3所示,该装置可以包括:查询模块102、确定模块104和发送模块106。

查询模块102,用于在需要向叠加网中的其它第二节点发送广播消息时,查询本地叠加网路由表获取所有第二节点的路由信息,该路由信息可以包括:第二节点是否处于支持IP组播的网络环境、以及处于支持IP组播的网络环境的第二节点的IP组播地址。

确定模块104,与查询模块102相耦合,用于根据第二节点的路由信息,确定处于支持IP组播的网络环境的第二节点所属的IP组播组。

发送模块106,与确定模块104相耦合,用于对于属于同一IP组播组的第二节点,按照IP组播组的组播地址,向该IP组播组中的部分第二节点发送广播消息,由部分第二节点将广播消息转发给上述IP组播组中的其它第二节点。

通过本发明实施例,在需要发送广播消息时,第一节点通过其查询模块查询所有第二节点的路由信息,根据第二节点的路由信息,通过确定模块确定处于支持IP组播的网络环境的第二节点所属的IP组播组,按照确定的IP组播组的组播地址,向该IP组播组中的部分第二节点发送广播消息,由该部分第二节点将广播消息转发给上述IP组播组中的其它第二节点,使得第一节点仅需向叠加网中的部分节点发送关闭广播消息,减小了第一节点的处理负载。

一个IP组播组中包含一个或多个组播孤岛(即连续部署的支持IP组播消息收发的一片网络环境),组播孤岛中的节点所发送组播消息仅能被位于该组播孤岛中的节点收到,而无法被位于其他组播孤岛的节点收到。因此,在本发明实施例的一个优选实施方式中,上述路由信息还可以包括:第二节点在所属的组播孤岛在叠加网中的标识。发送模块106可以用于通过以下两种方式发送广播消息:

1)如果所述广播消息的发起节点所处网络环境支持IP组播,则对于与所述发起节点同属于同一组播孤岛的第二节点,以组播的方式发送需要广播的广播消息,对于与所述发起节点不属于同一组播孤岛的第二节点,以单播方式分别向各个组播孤岛中的第二节点之一发送所述广播消息,由各个所述组播孤岛中的所述第二节点之一以组播的方式将所述广播消息转发给本组播孤岛中的其它第二节点。

2)如果所述广播消息的发起节点所处网络环境不支持IP组播,则以单播方式分别向各个所述组播孤岛中的第二节点之一发送所述需广播消息,由各个所述组播孤岛中的所述第二节点之一以组播的方式将所述广播消息转发给本组播孤岛中的其它第二节点。

通过本优选实施方式,实现了在IP组播组中存在多个组播孤岛的情况下,通过组播方式转发广播消息,避免了同一链路重复传输相同报文,从而减小了发送广播消息占用的网络带宽。

进一步的,叠加网中可能存在处于不支持IP组播网络环境中的节点。对于叠加网中处于不支持IP组播的网络环境中的第二节点,若分别向处于不支持IP组播的网络环境的第二节点发送需广播消息,第一节点依然需要发送大量单播消息。为了进一步减轻第一节点的处理负载,第一节点可以根据所有处于不支持IP组播的网络环境的第二节点的节点标识,将所有处于不支持IP组播的网络环境中的第二节点分为一个或多个组,并分别向各组中的一个第二节点发送广播消息;各个组中的接收到广播消息的第二节点将广播消息转发给其所在组中的其他第二节点。

鉴于上述描述,如图4所示,在本发明实施例的一个优选实施方式中,上述装置还可以包括:分组模块108,与发送模块106和查询模块102相耦合,用于根据所有处于不支持IP组播的网络环境中的第二节点的节点标识将所有处于不支持IP组播的网络环境中的第二节点分为一个或多个组,其中,各组中包括多个处于不支持IP组播的网络环境中的第二节点;此时,发送模块106还用于分别向各组中的一个第二节点发送广播消息,由各个组中的接收到所述广播消息的第二节点将广播消息转发给其所在组中的其他第二节点。

对应于本发明实施例提供的上述系统及装置,根据本发明实施例,还提供了一种叠加网广播消息的发送方法。

图5是根据本发明实施例的叠加网广播消息的发送方法的流程图,如图5所示,该方法可以包括以下几个步骤(步骤S502-步骤S506):

步骤S502,当叠加网中的第一节点需要向叠加网中的其它第二节点发送广播消息时,第一节点查询本地叠加网路由表获取所有第二节点的路由信息。其中,该路由信息可以包括:上述第二节点是否处于支持IP组播的网络环境、以及处于支持IP组播的网络环境的第二节点的IP组播地址;

步骤S504,第一节点根据第二节点的路由信息,确定处于支持IP组播的网络环境的第二节点所属的IP组播组;

步骤S506,对于属于同一IP组播组的第二节点,第一节点按照IP组播组的组播地址,向上述IP组播组中的部分第二节点发送广播消息,由该部分第二节点将广播消息转发给上述IP组播组中的其它第二节点。

通过本发明实施例,第一节点在需要发送广播消息时,按照第二节点所属的IP组播组的组播地址,向IP组播组中的部分第二节点发送广播消息,由接收到广播消息的第二节点将广播消息转发给该节点所属的IP组播组中的其它第二节点,从而减少了第一节点发送广播消息的负载。

一个IP组播组中包含一个或多个组播孤岛,组播孤岛中的节点所发送组播消息仅能被位于该组播孤岛中的节点收到,而无法被位于其他组播孤岛的节点收到。因此,在本发明实施例的一个优选实施方式中,上述路由信息还可以包括:第二节点在所属的组播孤岛在所述叠加网中的标识。此时,向上述IP组播组中的部分第二节点发送广播消息可以包括以下两种方式之一:

1)如果第一节点所处网络环境支持IP组播,则对于与第一节点同属于同一组播孤岛的第二节点,第一节点以组播的方式发送广播消息,对于与第一节点不属于同一组播孤岛的第二节点,第一节点以单播方式分别向各个组播孤岛中的第二节点之一发送所述广播消息,各个组播孤岛中的第二节点之一以组播的方式将广播消息转发给本组播孤岛中的其它第二节点。

2)如果第一节点所处网络环境不支持IP组播,则第一节点以单播方式分别向各个组播孤岛中的第二节点之一发送广播消息,各个组播孤岛中的第二节点之一以组播的方式将广播消息转发给本组播孤岛中的其它第二节点。

通过本优选实施方式,实现了在IP组播组中存在多个组播孤岛的情况下,以组播方式发送广播消息,减少了广播消息发送占用的网络带宽。

此外,处于支持IP组播网络环境中的新节点加入叠加网后,若第一节点尚未获知该新节点所属的IP组播组,可由接收到广播消息且作为新节点的后继节点的第二节点向新节点转发广播消息。在本发明实施例的一个优选实施方式中,广播消息中还携带有第一节点获知的IP组播组列表,上述方法还可以包括:接收到广播消息的第二节点作为加入叠加网的新节点的后继节点,在将新节点加入叠加网之后,根据本地叠加网络路由表及第一节点获知的IP组播组列表,确定新节点所属的IP组播组尚未为第一节点获知,该后继节点将广播消息发送给新节点,新节点以组播方式将广播消息转发新节点所属的IP组播组中的其它节点。通过本优选实施方式,保证了在叠加网调整发生的情况下,广播消息亦能被送达叠加网中所有节点。

进一步的,若分别向处于不支持IP组播网络环境中的第二节点发送广播消息,第一节点依然需要处理大量的广播消息。因此,在本发明实施例的一个优选实施方式中,为了进一步减轻第一节点的处理负载,对于叠加网络中处于不支持IP组播网络环境中的第二节点,上述方法还包括:第一节点根据所有处于不支持IP组播网络环境中的第二节点的节点标识将所有处于不支持IP组播网络环境中的第二节点分为一个或多个组,各组中包括多个处于不支持IP组播网络环境中的第二节点;第一节点分别向各组中的一个第二节点发送广播消息;各个组中的接收到广播消息的第二节点将广播消息转发给其所在组中的其他第二节点。

鉴于上述优选实施方式,发送给各组的第二节点的广播消息中可以携带有该组内的第二节点的节点标识的取值范围,各个组中的接收到广播消息的所述第二节点将广播消息转发给其所在组中的其他第二节点,可以通过以下方式实现:各个组中的接收到广播消息的第二节点将广播消息转发给节点标识在广播消息携带的上述取值范围内的第二节点。

在本发明实施例的另一个优选实施方式中,广播消息中还携带有指示广播消息需要转发至的节点的标识范围。此时,对于节点的节点标识在后继节点接收到的广播消息中携带的标识范围内的新节点,接收到广播消息的第二节点作为加入所述叠加网的新节点的后继节点,在将新节点加入所述叠加网之后,确定该新节点的标识在上述后继节点接收到的广播消息中携带的标识范围内,该后继节点将广播消息发送给上述新节点。

根据本发明实施例,还提供了一种叠加网新节点的加入方法,在新节点加入叠加网后,负责节点更新各节点的本地叠加网路由表,本地叠加网路由表中记录新节点的是否处于支持IP组播的网络环境、以及新节点的IP组播地址等信息,使得第一节点在需要发送广播消息时,能够根据本地叠加网路由表中记录的信息,通过本发明上述实施例的方法发送广播消息。

图6是根据本发明实施例的叠加网新节点的加入方法的流程图,如图6所示,该方法可以包括以下几个步骤(步骤S602-步骤S608):

步骤S602,处于支持IP组播的网络环境的新节点在加入叠加网时,获取请求加入的叠加网的配置信息,其中,该配置信息包括:新节点用于发送和接收路由更新消息的IP组播地址;

步骤S604,新节点绑定上述IP组播地址,加入该IP组播地址所指示的IP组播组;

步骤S606,新节点向叠加网中的负责节点发送加入叠加网请求,其中,该叠加网请求中携带有上述配置信息;

步骤S608,负责节点向叠加网中的所有节点发送路由更新消息,更新各节点的本地叠加网路由表,其中,该本地叠加网路由表中记录的上述新节点的路由信息包括:该新节点是否处于支持IP组播的网络环境、以及该新节点的IP组播地址。

通过本发明实施例,处于支持IP组播的网络环境的新节点在加入叠加网络时,新节点根据叠加网的配置信息,绑定用于发送和接收路由更新消息的IP组播地址,并且由其负责节点向叠加网中的所有节点发送路由更新消息,更新各节点的本地叠加网路由表,在本地叠加网路由表中记录新节点是否处于支持IP组播的网络环境、以及新节点的IP组播地址等路由信息,使得在发送广播消息时,能够通过IP组播方式将广播消息发送为同一IP组播组的节点,进而能够减小广播发起节点的处理负载,并且减小发送广播消息占用的网络带宽。

在本发明实施例的一个优选实施方式中,为了避免新节点遗漏广播发起节点发送的广播消息,在新节点加入配置的IP组播地址所指示的IP组播组后,新节点可以侦听上述IP组播组的组播地址对应的端口,接收发送到该IP组播组的组播地址的消息。

根据本发明上述实施例提供的叠加网广播消息的发送方法,一个IP组播组中包含一个多个组播孤岛,组播孤岛中的节点所发送组播消息仅能被位于该组播孤岛中的节点收到,而无法被位于其他组播孤岛的节点收到。因此,上述配置信息及路由信息还可以包括:新节点所属的IP组播孤岛在叠加网中的标识。

具体的,新节点在加入叠加网前通过管理员配置或向引导服务器请求等方式获取叠加网全局配置和本地配置。若新节点所处网络环境支持IP组播消息的发送和接收,则配置中应包含节点用于发送和接收叠加网更新消息的组播地址,以及所处的组播孤岛在叠加网内部的编号。IP组播相关环境的情况,节点也可通过自行探测的方法获得。在本发明实施例中,上述所处网络环境支持IP组播的节点可以称为Native Multicast节点,下文中简称NM节点。

NM节点在执行加入叠加网步骤前先绑定所配置的组播地址,并侦听相关端口,以避免遗漏后续各叠加网节点发送的广播消息;之后NM节点向其负责节点发送请求加入叠加网,并与其交互,完成数据迁移等叠加网加入步骤。

对于新节点所处网络环境不具备发送和接收IP组播消息的能力的情况,则略去绑定组播地址的步骤,直接执行加入叠加网步骤。在本发明实施例中,上述节点可以称为Non-Native Multicast节点,下文中简称非NM节点。

各节点本地叠加网路由表中存储的各节点条目,除保存运行叠加网算法所需的信息外,还应包含:节点是否处于支持IP组播的网络环境;(对于处于支持IP组播的网络环境的节点条目)组播地址,组播孤岛的编号(叠加网内部使用,相同编号的节点位于同一组播孤岛内)。

鉴于上述新节点的加入方法,在节点需要向叠加网发送广播消息时,可以以IP组播和应用层组播混合方式将消息发送到整个叠加网。具体的,广播发起节点将广播消息转至各IP组播组内发送,广播发起节点将叠加网中的NM节点按其所加入的IP组播组分组,并从每组中随机或依一定算法选取1个节点,向其以单播形式发送消息;收到消息的NM节点向其配置的IP组播地址发送报文,将消息转发到其所在的IP组播组。若存在正在执行加入叠加网步骤,或者刚刚完成加入步骤且属于一个新组播组的NM节点,该组播组并不为广播发起节点所知,则由其在叠加网中的后继节点或后继组播组中的节点判定后将广播消息转发给该节点。

若叠加网中存在非NM节点,广播发起节点将这些节点组成一棵N叉树,以分级转发形式将更新消息发送给这些节点:按节点标识对这些节点排序,并分为若干段(各段所含节点数可由配置参数确定或依算法计算得到),向各段首节点,即各子树根节点发送消息,并指示该节点需负责转发的节点标识范围;消息被逐级转发,直至收到的指示负责区间不含除自身外的其它节点。若存在正在执行加入叠加网步骤,或者刚刚完成加入步骤的非NM节点,由其在叠加网中的后继节点将消息转发给该节点。

下面通过具体实施例进行描述。

实施例一

图7是根据本发明实施例一的叠加网的示意图,该叠加网中的所有节点均为NM节点。各节点所在的组播孤岛编号由配置确定或探测获得,同一编号组播组中的节点需位于同一组播孤岛中。组播孤岛是指连续部署的支持IP组播消息收发的一片网络环境,即孤岛中的节点所发送的组播消息可以被位于同一孤岛中的加入组播组的所有节点接收到。图中701、702、703所示的节点分属3个组播孤岛,节点在叠加网中的位置与其所处的组播孤岛无关。

图8是根据本发明实施例一的又一叠加网的示意图,此叠加网中既含NM节点,也含非NM节点。各节点所在的组播孤岛的编号由配置确定或探测获得,同一组播孤岛的编号中的节点位于同一组播孤岛中,所发送的组播消息可以互通。以组播孤岛的编号作为节点标识的前4比特前缀。在本发明实施例中,设置了前缀为0x1至0xF的共15个组播孤岛,0x0前缀保留供非NM节点使用。图中801为非NM节点,802、803、804、805分别为4个组播孤岛中的节点。

实施例二

图9是根据本发明实施例二的NM节点加入叠加网的方法的流程图,如图9所示,该方法可以包括以下几个步骤(步骤S902-步骤S910):

步骤S902,加入节点通过管理员手工配置,向引导服务器请求,或探测等方式获取叠加网全局配置和本地配置,其中应包括节点标识等;若加入节点为NM节点,配置中还应包含节点用于发送和接收路由更新消息的IP组播地址,节点所在的组播孤岛的编号等。

步骤S904,若加入节点为NM节点,则绑定配置指定的IP组播地址,加入组播组,并侦听相关的端口,后续可接收到所有发往该组播地址的所有报文;若加入节点为非NM节点,则略过此步骤。

步骤S906,加入节点向叠加网中其已知的任一在网节点发送附着请求消息,目的地址设为自身节点标识,加入节点在叠加网中的后继节点回复附着响应。

步骤S908,加入节点向其负责节点发送加入叠加网请求,负责节点向加入节点回复加入叠加网响应,之后两节点交互,直至完成数据迁移等加入叠加网步骤。

步骤S910,在加入节点已完成加入叠加网的所有准备后,接入节点的负责节点发起叠加网内广播消息,将新节点加入叠加网的路由更新消息发送到叠加网所有其它节点。

实施例三

图10是根据本发明实施例三的叠加网节点发送叠加网内广播消息的方法的流程图,如图10所示,该方法可以包括以下步骤(步骤S1002-步骤S1010):

步骤S1002,节点在需要发送叠加网内广播消息时,例如:节点检测到叠加网调整发生,需要向叠加网发送路由更新消息;

步骤S1004,广播发起节点根据本地存储的路由表中的节点信息,选定需发送路由更新消息的目的节点,准备发起路由更新广播。具体的可以包括:1.将具备发送和接收IP组播消息的节点(NM节点)按其所在的组播组分组,并从每组中随机或依一定算法选取1个节点;2.按节点标识对不具备发送和接收IP组播消息的节点(非NM节点)排序,按照配置或依据算法将这些节点分为若干段,选取每段的首个节点;

步骤S1006,若广播发起节点自身为NM节点,向自身所在组播组以IP组播形式发送路由更新请求;若广播发起节点自身为非NM节点,则略过此步骤;

步骤S1008,广播发起节点向步骤S1004中所选定的NM节点以IP单播形式发送路由更新请求消息;

步骤S1010,广播发起节点向步骤S1004中所选定的非NM节点以IP单播形式发送路由更新请求消息,消息中还含有这些节点需要负责转发消息的节点标识区间。

以上步骤S1004至步骤S1010,除步骤S1004需在步骤S1008和步骤S1010之前执行外,并无其它执行顺序要求。

实施例四

在本发明实施例中,采用组播组编号作为节点标识的4比特前缀,分别存在前缀为0x3、0x6、0x8、0xB的4个组播组;前缀为0x0的节点为非NM节点。图中节点A为广播发起节点。图11是根据本发明实施例四的叠加网节点发送广播消息的流程示意图,如图11所示,在本实施例中广播消息的发送可以包括以下步骤(步骤S1102-步骤S1108):

步骤S1102,节点A将消息发送给各组播组中选取的1个节点,并在消息中附带其需负责转发的组播组编号范围。例如,组播组0x3需负责的组播组编号范围为0x1至0x3,组播组0x6需负责的组播组编号范围为0x4至0x6,组播组0x8需负责的组播组编号范围为0x7至0x8,组播组0xB需负责的组播组编号范围为0x9至0xB;

步骤S1104,节点A其将消息发送给非NM节点各分段的首节点(图11中仅示出了1段),并在消息中附带其需负责转发的节点标识区间范围。节点标识前缀为0xC至0xF(组播组0xC至组播组0xF内的节点)的范围与非NM节点首段合并,由该段首节点负责;

步骤S1106,各组播组中收到消息的节点以IP组播方式将消息转发到各自所在的组播组,消息中附带的负责转发组播组编号范围保持不变;

步骤S1108,各非NM节点分段的段首节点将消息转发到各自负责区间内的所有节点。

在上述步骤S1108中,非NM节点可以对广播进行分级转发。图12是根据本发明实施例四的非NM节点对广播进行分级转发的流程示意图,图中仅具体示出了非NM节点所占的节点标识区间,共含16个非NM节点,NM节点所占区间的情况未具体示出。节点A为广播发起节点,节点J为新加入的非NM节点,节点R为后继节点,负责接纳其加入叠加网的过程。节点J加入叠加网过程尚未完成,其存在仅为节点R所知。如图12所示,该本实施例中向非NM节点发送广播消息可以包括以下几个步骤(步骤S1202-步骤S1206):

步骤S1202,节点遇有需发送叠加网广播的情形,根据本地路由表,将非NM节点按节点标识排序,并组成一个N叉树(图12中为4叉树),其中节点H为一棵子树的根节点。节点A向节点H等子树根节点以IP单播形式发送消息,并在消息中附带各节点需负责转发的节点标识区间;

步骤S1204,节点H将本地路由表中,节点A发送消息中指示的区间中的节点按节点标识排序,并组成一个4叉树,其中节点R和节点P为其中2棵子树的根节点。节点A向节点R和节点P等子树根节点以IP单播形式发送消息,并在消息中附带各节点需负责转发的节点标识区间;

步骤S1206,节点R收到的消息中指示其需负责其自身到节点P之间的区间,其查询路由表,发现该区间包含1个节点,即新加入的节点J,于是将消息转发之,并在消息中附带节点J需负责转发的节点标识区间为自身至节点P之间的区间,此区间不含任何节点,故节点J不需进一步进行转发。

实施例五

图13是根据本发明实施例五的广播消息发送的流程示意图,在本发明实施例中,新加入节点属新的组播组,其后继节点将收到的广播消息转发给该节点。具体的,采用组播组编号作为节点标识的4比特前缀,分别存在前缀为0x3、0x6、0x8、0xB的4个组播组;前缀为0x0的节点为非NM节点。图中节点A为广播发起节点。图中节点J1和J2为新加入的NM节点,分别位于全新的组播组0x4和组播组0xE中,在其之前叠加网未有节点处于这2个组播组中。节点R1和R2分别为J1和J2的后继节点,各自负责接纳J1和J2加入叠加网的过程。关于节点J1和J2加入叠加网的路由更新消息的发送和转发过程存在一定时延,尚未为广播发起节点A所知。如图13所示,本实施例中,广播消息的发送可以包括以下几个步骤(步骤S1302-步骤S1312):

步骤S1302,节点A将消息发送给各组播组中选取的1个节点,并在消息中附带其需负责转发的组播组编号范围。例如,组播组0x3需负责的组播组编号范围为0x1至0x3,组播组0x6需负责的组播组编号范围为0x4至0x6,组播组0x8需负责的组播组编号范围为0x7至0x8,组播组B需负责的组播组编号范围为0x9至0xB;

步骤S1304,节点A其将消息发送给非NM节点各分段的首节点(图13中仅示出了1段),并在消息中附带其需负责转发的节点标识区间范围。节点标识前缀为0xC至0xF(组播组0xC至组播组0xF内的节点)的范围与非NM节点首段合并,由该段首节点负责;

步骤S1306,各组播组中收到消息的节点以IP组播方式将消息转发到各自所在的组播组,消息中附带的负责转发组播组编号范围保持不变;

步骤S1308,各非NM节点分段的段首节点将消息转发到各自负责区间内的所有节点;

步骤S1310,节点R1为节点J1的后继节点,其查询本地路由表,发现节点J1在收到消息中所附的需转发范围内,将消息转发之;

步骤S1312,节点R2收到段首节点转发来的消息,附带的转发范围为前缀为C至其自身节点标识。其查询本地路由表,发现节点J1在收到消息中所附的需转发范围内,将消息转发之。

实施例六

图14是根据本发明实施例六的广播消息的发送的流程示意图,在本发明实施例中,新加入节点属新的组播组,其后继节点将收到的广播消息转发给该节点。图中节点在叠加网中的位置与其所处的组播组无关。图中节点A为广播发起节点。图中节点J为新加入的NM节点,位于全新的组播组中,在其之前叠加网未有节点处于该组播组中。节点R为节点J的后继节点,负责接纳J加入叠加网的过程。关于节点J加入叠加网的路由更新消息的发送和转发过程存在一定时延,尚未为广播发起节点A所知。如图14所示,本实施例中,广播消息的发送以包括以下几个步骤(步骤S1402-步骤S1406):

步骤S1402,节点A将消息发送给各组播组中选取的1个节点,并在消息中附带其所知的组播组列表;节点M收到该消息;

步骤S1404,节点M以IP组播形式向其所在的组播组转发消息。节点R和节点M位于同一组播组中,收到该消息;

步骤S1406,节点R对比收广播消息中所附带的组播组列表和本地路由表中所有节点所属的组播组,发现节点J所属的组播组尚未为广播发起节点A所知,故将消息转发给节点J;节点J进一步以IP组播形式向其所在的新组播组转发消息。

从以上的描述中,可以看出,本发明实现了如下技术效果:

1)处于支持IP组播的网络环境的新节点在加入叠加网络时,新节点根据叠加网的配置信息,绑定用于发送和接收路由更新消息的IP组播地址,并且由其负责节点向叠加网中的所有节点发送路由更新消息,更新各节点的本地叠加网路由表,在本地叠加网路由表中记录新节点是否处于支持IP组播的网络环境、以及新节点的IP组播地址等路由信息,使得在发送广播消息时,能够通过IP组播方式将广播消息发送给该节点。

2)第一节点在需要发送广播消息时,按照第二节点所属的IP组播组的组播地址,向IP组播组中的部分第二节点发送广播消息,由接收到广播消息的第二节点以组播方式,将广播消息转发给该节点所属的IP组播组中的其它第二节点,并且,若第一节点自身处于支持IP组播的网络环境中,则以IP组播方式将消息发送给自身所加入的组播组,从而减少了第一节点发送广播消息的负载。同时,接收到广播消息的第二节点以组播方式发送广播消息,减少了广播消息发送占用的网络带宽。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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