CN1747446A - 集中式与分布式相结合的应用层组播方法 - Google Patents

集中式与分布式相结合的应用层组播方法 Download PDF

Info

Publication number
CN1747446A
CN1747446A CNA2005100866804A CN200510086680A CN1747446A CN 1747446 A CN1747446 A CN 1747446A CN A2005100866804 A CNA2005100866804 A CN A2005100866804A CN 200510086680 A CN200510086680 A CN 200510086680A CN 1747446 A CN1747446 A CN 1747446A
Authority
CN
China
Prior art keywords
node
controller
multicast
bunch
tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005100866804A
Other languages
English (en)
Other versions
CN100440865C (zh
Inventor
徐恪
崔勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB2005100866804A priority Critical patent/CN100440865C/zh
Publication of CN1747446A publication Critical patent/CN1747446A/zh
Application granted granted Critical
Publication of CN100440865C publication Critical patent/CN100440865C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明设计互联网应用层组播技术组成,其特征在于采用超节点网络、簇网络和IP组播构成的三级网络结构,在超节点中设置控制器软件,通过簇网络代表节点控制各IP组播岛同时又通过簇网络代表节点在簇网络内构建最短路径树,快速发布会话数据,从而形成集中式与分布式相结合的应用层组播网络,在各簇网络中采用Mesh优先方案,超节点先构造Mesh网,在此基础上构建数据转发的最短路径树,以满足准实时应用。本发明具有延迟相对较小,组播能力强以及稳定性较高的优点,硬件开销也相对较小。

Description

集中式与分布式相结合的应用层组播方法
技术领域
本发明属于互联网技术领域,尤其涉及网络组播技术和应用层技术。
背景技术
近年来随着网络的普及,及带宽的提升,为通过网络提供视频、音频这种高带宽需求的多媒体应用提供了可能。现行通常的做法就是为每一个用户提供一个专用的信息通路。区别于这种传统的单播方式的信息传播,国际上提出了应用层组播的思想以降低成本、提高扩展性。然而对于应用层组播,端系统稳定性和性能不如路由器,这就造成了应用层组播在稳定性和效率上不如网络层组播。如何提高应用层组播的稳定性及扩展性成为了学术界的热点问题。
应用层组播的协议有很多。从不同角度可以进行不同分类。如按照数据转发树的计算是集中于一点还是由各个节点分布计算,可以分为集中式和分布式两种。集中式的优点是设计简单,收敛速度快,但形成了单一故障点,可以通过冗余来提高容错性。这种方式的代表是ALMI。ALMI适用于小规模组播应用,组播由控制节点和成员节点组成。控制节点集中管理成员的加入、离开和组播树的计算。而组播树的计算有赖于各个成员节点将感知的网络拓扑周期高速控制节点。而分布式的代表有Narada,NICE,Yoid等。如Narada,它得到若干个成员节点后,形成到它们的连接,周期检测它们以删除无用连接。周期探测一些新节点,来增加新连接。形成Mesh网络后通过节点间运行路由协议生成组播树。
按照是否完全对等可以分为代理式和对等式。代理式是指将一些服务器安置在某些策略相关的位置,一般一个域中有一个多几个代理节点,基于它们形成组播树,其优点是稳定性好,性能高,但灵活性降低,而且容易成为系统瓶颈,该方案的代表有Overcast,ScatterCast。Overcast设计用来提供带宽敏感的组播应用,并且提高带宽利用率。ScatterCast则主要针对如何为大规模,异质的用户提供组播服务。
按照是否引入分层和分群来提高可扩展性可以分为层次化和非层次化。层次化的方案有NICE,ZIGZAG。大部分组成员位于分层结构的底层,只和少量固定数目的节点存在联系,这样就大大降低了大部分组播成员的处理开销。NICE和Zigzag的主要区别是:在一个簇内部,在ZigZag中簇管理和数据分发是由不同节点完成的,而在NICE中这两个功能统一在一个节点上。
按照先建树还是先建Mesh网可以分为树优先和Mesh优先。树优先是指先构件数据转发树,并为了容错的考虑再与不是父节点的节点保持控制连接,形成控制结构。基于这种方式的有Yoid,Overcast,SwitchTree等。Mesh优先是先形成Mesh网并在此基础上形成数据转发树,如Narada。一般树优先的方案延迟要大于Mesh优先的方案,并且Mesh优先方案在容错性上要强于树优先方案。但Mesh结构一般可扩展性不好。
本发明提出了一种多层次的,稳定的应用层方案:CBroadcast。本方案是适用于单源准实时应用的应用层组播方案,将集中控制与分布式相结合、应用层组播与网络层组播相结合,提高了可扩展性,最大化提高网络可支持的用户数量,降低了成本,解决了网络电视对稳定性要求高和应用层网络动态变化大之间的矛盾,是稳定应用层组播的重要技术。
发明内容
本发明的目的在于提供一种多层次的,稳定的应用层组播方案:CBroadcast。
本发明所提出的方法的思路在于:采用层次化的管理策略,结合多种组播技术达到稳定和准实时地要求,具体分为以下四点:1、采用集中式与分布式相结合,选取超节点集中负责下层组播树的建造和维护,下层应用层拓扑采用分布式的自组织协议以提高组播树的能力及稳定性;2、采用层次和分群的思想为提高用户数量,降低成本;3、采用Mesh优先方案,先构造Mesh网,在此基础上生成数据转发树以满足准实时应用;4、将应用层组播和网络层组播结合在一起,能尽量发挥网络层组播优势。
本发明的特征在于:该方法是在下述网络层次结构中实现的,所属网络层次结构由以下3个层次组成:
超节点网络是由超节点之间通过点对点的单播方式形成的星形网络,距离发布源最近的超节点是这个网络的中心节点,它的拓扑信息存于源节点中;
簇网络是由10至20个IP组播岛节点自组织形成的一个应用层网络,这些IP组播岛之间构建一棵应用层组播转发树,该树的根节点就是由一个簇内的IP组播岛公推的簇代表节点,该代表节点从所属超节点获取数据,并转发簇内其它IP组播岛节点,组成Mesh结构;
IP组播岛即用户群,它是支持组播的任意大小的网络,每个IP组播岛公推一个用户成为组播岛的代表节点,该节点使用IP组播接受和发送数据;
上述3个层次组成了一棵以节目源为树根的应用层转发树;
所述节目源与超节点、茶节点与醋代表节点之间都使用传统的客户机/服务器模型,所述簇网络中的一条链路代表了两个IP组播岛之间的一条采用UDP协议的单薄连接链路的全重为其两个节点之间包含延迟或可用带宽在内的单播的链路度量;
每一个簇还包含一个由一个程序实体构成的簇控制器,该实体运行在簇所在属的超节点上,该控制器维护着加入簇成员间包括所有促成员标识在内的全局Mesh网信息,并负责以簇代表节点为根,再给Mesh网的成员之间构造一棵最短路径树,从而使会话数据沿着组播转发树分发,而控制信息则通过该控制器和簇内各成员之间经过簇代表节点实现的单播连接进行传输;
本发明所述的应用层组播方法在上述集中式控制与分布式转发相结合的网络层次结构依次按照以下步骤实现:
1.向各超节点控制器输入节目源节点ip地址;
2.如果节点A向控制器发送加入消息则执行3,如果是离开消息则执行步骤8;
3.如果节点A所在组播岛已加入簇组播树,则直接加入该组播岛;否则继续往下执行;
4.节点A先向源节点发请求,得到超节点列表,选择延迟最小的超节点及该超节点下连接下的簇;
5.节点A加入簇的Mesh网络;
a)节点A向控制器发出加入Mesh网络消息,请求加入控制器维护的Mesh网;
b)控制器通过加入回应消息返回当前Mesh网中所有节点的IP地址列表,并向其他节点发送组成员更新消息;
c)节点A根据获得的IP地址列表,测量到其他节点的单播延迟,并将测量结果封装在刷新消息中发送给控制器;
d)控制器收到刷新消息后,更新本地所维护的Mesh网拓扑信息,更新后的Mesh信息以单播的形式发送给Mesh网中的其他节点;
6.控制器计算出父节点后,所述节点A加入组播树;
a)节点A向控制器发送加入组播树的请求加入树消息:消息中包括S的IP地址;
b)控制器计算出的节点A在组播树中的父节点和子节点,封装在加入树回应消息中发送给节点A,同时树形拓扑的变化通过更新树消息通知所属簇内的相关节点;
c)节点A的父亲节点收到更新树消息后,将节点A加入到自己的儿子节点列表中。节点A的子节点收到更新树消息后,将节点A加入到自己的父亲节点列表中,同时向节点A发送加入父节点消息;
d)节点A点收到加入父节点消息后,表示自己加入组播树成功。
7.超时限制内如果没有选出父节点,则直接选择超节点作为父节点,则此时节点A成为簇代表节点,加入过程结束;
8.节点A主动离开某棵组播树;
a)节点A向控制器发送离开树消息;
b)控制器通知节点A的父亲节点,从其儿子节点列表中删除节点A的标识,如果是簇代表节点离开,控制器在簇网络中重新选取簇代表节点;
c)根节点向节点A发送离开树回应消息。
9.通知控制器离开Mesh网络。
a)节点A向控制器发送离开MESH网消息通知,并启动一个计时器;
b)控制器更新本地所维护的Mesh网拓扑信息,删除节点A对应的节点以及节点A连接的链路,并将A离开的消息广播给Mesh网的其他节点,向节点A发送确认该节点A离开MESH网的回应消息;
c)如果计时器超时后还没有收到离开MESH网回应消息,则节点A重复向控制器发送离开MESH网消息,直到收到离开MESH网回应消息为止。
实验模拟与结果分析
CBroadcast协议模拟的主要目的是验证CBroadcast协议是否能完成设计目标。本文通过模拟器myns在模拟实验中比较CBroadcast协议和Narada协议。实验使用1000个节点的随机图,节点的平均度数为5。从图中节点随机的挑选出一部分节点构建应用层组播树,并对100张图的模拟结果取平均值,获得图4到图6的结论。
一个好的应用层组播方案应该能保证数据路径的质量。应用层组播数据路径的质量通常采用下面两个参数来衡量:强度和伸展度。图4研究就是CBroadcast的传输延,其中X轴表示应用层组播组的成员序号。从图中节点随机的挑选出500个节点构建应用层组播树,比较了两种方案的延时:CBroadcast和Narada。从图4可以看出,CBroadcast在节点的传输延时性能上与Narada类似,参考Narada的结论,CBroadcast也能获得与网络层组播可比较的性能。
用户加入和离开CBroadcast的时间也是评价组播系统地一个重要因素。加入延时定义为:用户加入应用层组播组到获得数据的时间。加入延时是应用层组播设计中一个重要的参数,一种应用层组播获得广泛的应用之前,它的加入延时必须足够的低。低加入延时能在很大程度上提高应用层组播方案的用户体验,同时降低上游节点失败对下游节点的影响。图5表示对CBroadcast的加入延的研究,其中X轴表示应用层组播组的成员序号。从图中节点随机的挑选出200个节点形成应用层组播组,比较了两种方案的加入延时。从图中可以观察到,CBroadcast的加入延时远远低于Narada。图6研究CBroadcast的离开延时的情况,其中X轴表示应用层组播组的成员序号。从图中节点随机的挑选出200个节点形成应用层组播组,比较了CBroadcast与Narada的离开延时。实验表明CBroadcast在节点的节点离开延时与Narada类似。
在PlanetLab实验网上实现了CBroadcast的原型系统,原型系统包括了PlanetLab实验网中几乎所有的活跃节点,主要用来研究CBroadcast在真实网络中的稳定性和协议开销。实验环境配置如下:所有的节点在初始100秒内随机加入CBroadcast组播组,然后在120分钟之内随机的离开。数据源默认的发送速率为300Kbps。
CBroadcast中大部分控制消息是节点间交换的状态信息,这类信息主要发生在Cluster内部,因此Cluster的节点数量可能成为影响协议开销的一个重要因素。图7给出了平均协议开销相对于平均Cluster节点数量的变化函数。基本上,随着Cluster的规模的增加,协议开销随之增加,但是相对于数据流量,协议开销是非常低的。
维持数据稳定性是CBroadcast的一个主要目标,为了评价CBroadcast的数据稳定性,我们定义一个连续性因子CI,CI是用户接收到的数据和发送端发送数据的一个比值。图8给出了节点平均的连续性因子相对于平均Cluster节点数量的变化函数。从图8可以看出,连续性随着Cluster规模的提高而提高,因为每个用户节点有更多的父节点可供选择。
附图说明
图1.CBroadcast网络结构:
 节目源  
Figure A20051008668000092
 超节点
Figure A20051008668000093
Cluster
Figure A20051008668000094
IP组播岛
图2.CBroadcast中的IP组播网络:
Figure A20051008668000095
 组播路由器      
Figure A20051008668000096
组播岛代表节点
Figure A20051008668000097
其他CBroadcast用户
Figure A20051008668000098
非CBroadcast用户
图3CBroadcast方案工作流程;
图4CBroadcast和Narada的节点传输延时;
图5CBroadcast和Narada的节点加入延时;
图6CBroadcast和Narada的节点离开延时;
图7CBroadcast的协议开销:
□10个节点
■20个节点
Figure A20051008668000099
50个节点
Figure A200510086680000910
100个节点
150个节点
Figure A200510086680000912
200个节点
图8CBroadcast的数据连续性:
□l0个节点
■20个节点
Figure A200510086680000913
50个节点
Figure A200510086680000914
100个节点
Figure A200510086680000915
150个节点
Figure A200510086680000916
200个节点
在CBroadcast中,网络拓扑被划分为3个层次:超节点网络、簇网络、组播岛。超节点网络是超节点之间通过点对点的单播方式形成星形网络,距离发布源最近的超节点是这个网络的中心节点。簇是10-20个组播岛节点(定义见后)自组织形成一个应用层网络,称为簇。这些用户之间构建一棵应用层组播转发树。一个簇选举出一个簇代表节点,簇代表节点从超节点获取数据,再转发给簇内的其他用户。簇代表节点就是簇网络内应用层组播转发树的树根。IP组播岛是支持IP组播的任意大小的网络,它可以是一台主机,一个以太网,一个校园网等等。假设现在的主机都支持IP组播(对Windows操作系统都是成立的)。在一个IP组播岛中,主机使用IP组播接收/发送数据。在一次CBroadcast直播过程中,每个IP组播岛会挑选一个用户成为组播岛代表节点。CBroadcast的网络结构图如附图1所示:
从附图1可以看出,CBroadcast是一种层次化的、基于树的应用层组播协议。它建立一棵以节目源为树根的应用层转发树,转发树的第一层是超节点网络,超节点与节目源采用单播连接。转发树的第二层是簇网络,簇由10~20个组播岛组成,每个簇选举出一个代表节点簇代表节点,簇代表节点从某台超节点获取数据,转发给簇内的其他组播岛。
组播岛结构图如附图2所示。不同的组播岛之间通过组播岛代表节点组播岛代表节点之间的UDP通道连接。数据被封装进UDP包中,从一个组播岛的代表节点发送到另一个岛的代表节点。一旦组播岛接收到UDP数据,代表节点将UDP数据解封装,然后通过IP组播发送给岛内的其他用户节点。组播岛内的网络结构图见附图2。
在CBroadcast的系统框架中,发布源与超节点、超节点与簇代表节点之间都使用传统的C/S模型,因此,在每个簇内部选举出一个好的代表节点,并构建一棵小型的、高效的应用层组播网络成为成功的关键。每个簇有一个控制器,集中管理簇成员的加入、离开和簇拓扑的维护,并计算以簇代表节点为根的应用层组播树。每个簇成员加入、离开都要通知控制器。每个簇成员间全连通的构成Mesh结构,周期将到其他节点的链路状态告知控制器。
下面简单介绍CBroadcast怎样处理组成员的加入、离开及失效检测的。
节点加入遵循如下步骤:如果该节点所在组播岛已加入CBroadcast,则直接加入该组播岛,否则该节点作为组播岛代表节点加入CBroadcast。它先向公开节点发请求,得到超节点列表,选择超节点,再选择该超节点下连接的若干个簇,加入簇。加入簇的过程遵循簇协议。也就是先加入该簇的Mesh网,在通过控制器计算出父节点后,加入组播树。超时限制内如果没有选出父节点,则直接选择超节点作为父节点,则此时该节点成为簇代表节点。
节点离开的过程是,首先离开组播树,再离开Mesh网络。节点的失效是控制器长期没有收到来自节点的刷新消息检测到。
簇代表节点和超节点间不断交换状态信息,包括簇代表节点是否在线,簇代表节点所在的资源系数等。资源系数是衡量簇负载的指标,定义为:簇内节点可提供的带宽资源和当前簇使用的带宽资源的比值。簇内部的各节点维护到簇其他节点的状态信息,本设计中主要考虑延迟。
每个簇有两个组成部分:一个簇控制器和多个簇组成员。簇控制器是一个程序实体,它运行在所有成员都能访问到的位置。在当前的设计版本中,它运行在簇所属的超节点上。控制器首先在组成员之间构建一个全连通的应用层网络-Mesh网络,Mesh网络中的一条链路代表两个成员之间的一条单播连接,链路的权重为其两端节点之间单播路径的度量(如延迟、可用带宽等),处于设计简单的考虑,目前只使用延迟作为度量方式。
簇控制器维护加入簇成员间的全局Mesh网信息,并负责以簇代表节点为根,在Mesh网络的成员之间构造一棵最短路径树。使用Mesh网能非常方便的进行最短树的构造,同时提高组播树的可靠性,使组播树性能优化成为可能。另外,这种构建最短组播树的方式,能比较好的满足广播应用延时比较低的需求。会话数据沿着组播树进行分发,而控制信息则通过控制器和各个成员之间的单播连接进行传输。这种集中式控制与分布式转发融合的方案更有利于系统的稳定性。
由于基于源的最短路径树完全在Mesh网的基础上构造,所以需要构造一个高效的Mesh网。CBroadcast与Narada的Mesh网设计不同,它为每个簇维护一个全连通的Mesh网来实现组播功能。CBroadcast中的簇的节点数很少,一般在10-20个,这使得构造一棵全连通的Mesh网络成为可能,在每个成员中都保存组中其他所有成员的信息也不会带来太大的开销。另外,CBroadcast在超节点存储当前Mesh中的所有成员的标识(如IP地址)。超节点的IP地址是众所周知的,用于新加入组播组的成员得到目前组播组成员的信息。用户可以通过离线方式得到超节点的信息(例如通过网页链接)。CBroadcast为每个簇使用集中式控制策略来维护组播树的连续性和效率。这是出于多方面的考虑的:提高系统可靠性和降低复杂性(组成员变化和结点失效恢复引起)。另一方面,超节点仅仅在控制平面上进行操作,不会影响到结点间的高速率数据传输。
簇控制器所在超节点的IP地址是众所周知的,它负责整个Mesh网拓扑信息的收集、维护,同时为每个簇节点维护一棵组播树。它在Mesh网中的主要作用有以下几点:
处理用户的加入Mesh网请求:新加入Mesh网的第n个节点In向控制器发送加入MESH网消息,控制器通过加入MESH网回应消息向In返回Mesh网中已存在的节点的IP地址列表(I1,Λ,In-1)。获得该IP地址列表后,新加入的节点In测量到其他所有节点I1,Λ,In-1的单播延迟,并将测量结果封装在刷新消息中发送给控制器。控制器收到刷新消息后,更新本地维护的Mesh网拓扑信息,向Mesh网中加入节点In及In到其它节点的链路信息。
周期性更新Mesh网的信息:Mesh网中的每个成员节点Ik周期性的测量到其他节点Ii的延迟,即在Mesh网中两点间链路Lki的权重,并将测量结果封装在刷新消息中发送给簇控制器。控制器在收到刷新消息后,更新本地维护的Mesh网拓扑信息。
处理用户的离开Mesh网请求:当某个成员节点Ik主动离开Mesh网时,向控制器发送离开MESH网消息。控制器收到Ik发送的离开MESH网消息后,更新本地所维护的Mesh网拓扑信息,删除A对应的节点以及A所连接的链路,并向Mesh网的除Ik以外的所有成员节点发送更新后的用户列表信息。同时向A发送应答消息离开MESH网回应。
处理用户的失效:如果控制器在一段时间Tm内没有收到某个节点Ik发送的刷新消息,则认为Ik可能失效。于是控制器向Ik连续发送一定数量的探测(探测)消息。如果这些探测消息均没有回复,则控制器断定Ik失效。此时控制器将维护的Ik的信息标志为失效,但不能删除此成员节点的信息,以防在收到关于此成员的过时的刷新信息后,误将此成员认为是新加入组播组的成员。控制器更新本地所维护的Mesh网拓扑信息,删除Ik对应的节点以及Ik所连接的链路,并将Ik失效的信息通知给Mesh网中与Ik有组播树的节点(Ik在组播树中的父节点和子节点)。一段时间后,失效成员的信息Ik就可以被控制器删除了。
由上面说明中可以看出:在四种情况下需要控制器更新自己所维护的Mesh网拓扑信息,并向Mesh网的每个节点发送通知:控制器收到某个节点的请求加入Mesh网的加入MESH网消息;控制器收到某个成员节点发送来的刷新消息;收到某个成员节点请求离开Mesh网的离开MESH网消息;在一段时间内没有收到某成员的刷新消息,控制器认为该成员失效。
其中后两种情况对组播树建立和数据转发的正确性有直接的影响,因此控制器在这两种情况下需要马上将相关的信息通知给Mesh网中的所有成员节点。对于第二种情况,由于只涉及链路质量的变化,只会影响数据转发的效率。为了降低这种情况下由于向节点发送更新信息而给网络带来的额外开销,以及组播树的拓扑切换开销,本文采用延时发送的方式:控制器在收到某个节点发送来的刷新消息后,更新本地维护的Mesh网拓扑信息,但在更新过程中统计链路度量的相对变化量之和,如果此次更新过程链路度量的相对变化量之和没有超过“更新阈值”,则不会向Mesh网中的节点发送更新后的信息,直到收到某些节点发送来的刷新消息,使得链路度量的相对变化量之和超过了更新阈值,才会触发更新的拓扑信息的发送。
簇成员的执行的任务包括:定位控制器,数据转发,监控其他节点,树形切换。
控制器在组播树中相邻的节点间建立起一种父—子关系,组成员利用这种关系来监控组播树的性能和连接。例如,当子节点检测到父节点的连接失败,他会切换到其他的节点。树形切换的原因有两种:控制器计算出更优化的组播树;组成员发现父节点失败或离开组播树。这两种情况下,控制器都会为该节点找到一个新的父节点。
控制器为每个节点i维护一个表项,包括以下内容:i的IP地址;最近一次从i收到的刷新消息的序列号si;上一次收到序列号为si的刷新消息的本地时间;成员i到其他节点k的路径向量信息列表。当控制器收到节点i发来的刷新消息时,遍历本地维护的节点信息表项,并进行如下的处理:如果i为新加入的成员时,在本地所维护的Mesh网信息中加入此成员节点的信息。否则,如果刷新消息中的序列号大于本地为i维护序列号si,更新本地信息。否则,控制器认为收到的刷新消息已经过时,不作任何处理。如果在规定时间内(Tm)控制器没有从节点i收到新的刷新消息,控制器认为节点i失效。
控制器维护整个Mesh网的拓扑信息(包括所有成员的信息),当一个新的成员加入或者一个已存在的老节点离开都会触发Mesh网的更新。Mesh网中的每个节点周期性的测量到Mesh中其它节点的应用层单播延迟,并将这些信息封装在刷新消息中发送给控制器。控制器在获得由Mesh网成员发送来的Mesh网拓扑信息后,更新本地所维护的Mesh网拓扑信息。Mesh网中每一个节点i周期性的产生刷新消息,此消息由单增的序号(SequenceNumber)标识。控制器从成员i接收到的刷新信息包括以下几项内容:i的IP地址;刷新消息的序列号si;成员i到其他节点的路径向量信息列表。
这里,本地到其它成员的路径向量信息通过距离向量算法计算得到。首先Mesh网中的每个成员周期性的得到它在Mesh网中所连接的各条边的度量(如对于边的延迟的测量,可以通过向邻居节点发送ping包来实现);然后通过和邻居节点交互这些信息并通过距离向量算法计算得到路径向量信息。路径向量信息除了包括本地到其他所有成员的路径的度量之外,还包括这些路径所经过的成员链表。
新节点A想加入Mesh网时,按照如下的步骤完成加入过程:A向控制器发出加入MESH网消息,请求加入控制器维护的Mesh网;控制器通过加入MESH网回应返回当前Mesh网中所有节点的IP地址列表,并向其他节点发送组成员更新消息更新。A根据获得的IP地址列表,测量到其他节点的单播延迟,并将测量结果封装在刷新消息中发送给控制器。控制器从收到的刷新消息中解析出A到其他节点的延迟信息,更新本地所维护的Mesh网拓扑信息,在Mesh网成员列表中加入A,同时还加入A到其它节点的链路状态信息,更新后的Mesh信息以单播的形式发送给Mesh网中的其他节点。此时A已经成功的加入了Mesh网。如果A希望接收数据,只需要加入以簇代表节点为根的组播树。加入组播树的过程详见后节描述。
如果某个节点A希望离开Mesh网,它依照以下的步骤完成离开流程:首先,A向控制器发送离开消息离开树,离开组播树的过程详见下节描述。在此阶段,A继续转发数据,减少由于A离开而造成的子节点的数据分组的丢失。在A完成离开组播树操作后,A不再接收其他节点的数据,也不再向其他节点发送数据。此时A向控制器发送离开MESH网消息通知,并启动一个计时器。控制器收到A发送的离开MESH网消息后,更新本地所维护的Mesh网拓扑信息,删除A对应的节点以及A连接的链路,并将A离开的消息广播给Mesh网的其他节点。同时向A发送确认消息离开MESH网回应。A收到离开MESH网回应消息后,表示成功离开Mesh网。如果计时器超时后还没有收到离开MESH网回应消息,则重复向控制器发送离开MESH网消息,直到收到离开MESH网回应消息为止。
Mesh网中的节点A突然失效(可能由于节点崩溃或者节点附近的网络失效),A无法主动的通知控制器。这样就需要控制器检测节点的失效。如果控制器在一段时间内没有收到节点A发送的刷新消息,控制器认为A可能失效。于是控制器连续向A发送一定数量的探测消息。如果这些探测消息均没有回复,则控制器认为A失效。控制器随后更新本地所维护的Mesh网拓扑信息,从Mesh网络中删除A对应的节点以及与A相关的链路,并将A失效的消息通过更新MESH网消息发送给Mesh网的每个节点。
控制器负责计算出一棵连接所有簇成员的最短路径树,并将计算结果传递给所有组成员。链路开销可以由用户自己选择,包括:延时、带宽等度量参数。对于视频直播这种实时应用,延时可能是最敏感的度量参数。
如果某个父节点失效,它的下游节点的数据会发生丢失,如果不及时为子节点选择一条合适的新路径,失效会蔓延到所有的下游子节点。CBroadcast提供了失败检测机制和链路备份机制,使子节点能有效的检测到父节点的失败,并迅速切换到备份父节点。
CBroadcast在Mesh之上运行距离向量路由协议。为了避免出现距离向量路由协议中的计数到无穷问题,采用类似于BGP协议[rfc1771]的策略。每个成员不仅维护到其他成员的路由的代价,而且需要维护相应的路径。另外,邻居结点间进行路由更新时不仅包括到目的地址的路由的代价,而且包括相应的路径。构造数据转发路径时采用了DVMRP协议[rfc1812]中采用的反向最短路径机制。也就是说,只有当N是从M到S的最短路径中的M的下一跳结点时,M才接收从源S经过N转发来的分组。而且,M也只把分组转发给到S的最短路径的下一跳结点的邻居结点。
节点A加入簇的组播树之前,首先加入Mesh网(参考上节),成为Mesh网络的节点。然后按照下面的步骤加入以簇代表节点簇代表节点为根的应用层组播树。节点A向控制器发送加入组播树的请求消息加入树:消息中包括S的IP地址。
由于在控制器上维护有当前Mesh中的每个成员沿组播树到S的路径及此路径的度量,于是控制器可以计算出一棵以簇代表节点为根的、包括节点A的度受限的最短路径树,除了考虑最短路径,控制器在生成组播转发树时还需要考虑尽量减少对原有组播树的改变;只要从簇代表节点到任意一个节点的延时不超过一个阈值(默认为600毫秒)。控制器计算出的A在组播树中的父节点和子节点,封装在加入树回应消息中发送给A,同时树形拓扑的变化通过更新树消息通知相关节点。
A的父亲节点收到更新树消息后,将A加入到自己的儿子节点列表中。此后,每当收到簇代表节点发送来的数据后,都要向自己儿子列表中的成员(包括A)转发此数据。A的子节点收到更新树消息后,将A加入到自己的父亲节点列表中,同时向A发送加入父节点消息。A节点收到加入父节点消息后,表示自己加入组播树成功。(A也要发送加入父节点给其父节点)
当节点A主动离开某棵组播树时,执行下面的过程:向控制器发送离开树消息。控制器收到某个成员发来的离开树消息后,执行如下的操作:根据当前Mesh网计算新的组播树,通知因组播树改变而收到影响的节点;通知A的父亲节点,从其儿子节点列表中删除A的标识;根节点向A发送离开树回应消息。
控制器可以通过Mesh网获得某个成员节点的失效信息,并通知给所有节点;另外,收到邻居发送来的通知某个成员失效的信息后,控制器将维护的该成员的信息标志为失效,但不删除该成员的信息,以防控制器在收到关于此成员的过时的刷新信息后,误将此成员认为是新加入组播组的成员。一段时间后,当失效信息通知到了Mesh网中的每个成员,这个失效成员的信息就可以被删除了。
组播树的根以某一种顺序(目前采用随机的顺序)遍历此组播组中的所有节点,从加入组播树的第2步开始为每个节点重新选择父亲节点。
需要注意两点:(1)在节点离开组播树的阶段,A继续转发数据,减少由于A离开而造成的子节点的数据分组的丢失。在A完成离开组播树操作后,A不再接收其他节点的数据,也不再向其他节点发送数据;(2)控制器可以通过Mesh网获得某个成员节点的失效信息,并通知给所有节点;另外,收到邻居发送来的通知某个成员失效的信息后,控制器将维护的该成员的信息标志为失效,但不删除该成员的信息,以防控制器在收到关于此成员的过时的刷新信息后,误将此成员认为是新加入组播组的成员。一段时间后,当失效信息通知到了Mesh网中的每个成员,这个失效成员的信息就可以被删除了。
在本发明中簇控制器维护加入簇成员间的全局Mesh网信息,并负责以簇代表节点为根,在Mesh网络的成员之间构造一棵最短路径树(SPT)。使用Mesh网能非常方便的进行最短树的构造,同时提高组播树的可靠性,使组播树性能优化成为可能。另外,这种构建最短组播树的方式,能比较好的满足广播应用延时比较低的需求。会话数据沿着组播树进行分发,而控制信息则通过控制器和各个成员之间的单播连接进行传输。这种集中式控制与分布式转发融合的方案更有利于系统的稳定性。

Claims (5)

1.集中式与分布式的结合的应用层组播方法,其特征在于,该方法是在下述网络层次结构中实现的,所属网络层次结构由以下3个层次组成:
超节点网络是由超节点之间通过点对点的单播方式形成的星形网络,距离发布源最近的超节点是这个网络的中心节点,它的拓扑信息存于源节点中;
簇网络是由10至20个IP组播岛节点自组织形成的一个应用层网络,这些IP组播岛之间构建一棵应用层组播转发树,该树的根节点就是由一个簇内的IP组播岛公推的簇代表节点,该代表节点从所属超节点获取数据,并转发簇内其它IP组播岛节点,组成Mesh结构;
IP组播岛即用户群,它是支持组播的任意大小的网络,每个IP组播岛公推一个用户成为组播岛的代表节点,该节点使用IP组播接受和发送数据;
上述3个层次组成了一棵以节目源为树根的应用层转发树;
所述节目源与超节点、茶节点与簇代表节点之间都使用传统的客户机/服务器模型,所述簇网络中的一条链路代表了两个IP组播岛之间的一条采用UDP协议的单薄连接链路的全重为其两个节点之间包含延迟或可用带宽在内的单播的链路度量。
每一个簇还包含一个由一个程序实体构成的簇控制器,该实体运行在簇所在属的超节点上,该控制器维护着加入簇成员间包括所有促成员标识在内的全局Mesh网信息,并负责以簇代表节点为根,再给Mesh网的成员之间构造一棵最短路径树,从而使会话数据沿着组播转发树分发,而控制信息则通过该控制器和簇内各成员之间经过簇代表节点实现的单播连接进行传输;
本发明所述的应用层组播方法在上述集中式控制与分布式转发相结合的网络层次结构依次按照以下步骤实现:
步骤1.向各超节点控制器输入节目源节点ip地址;
步骤2.如果节点A向控制器发送加入消息则执行3,如果是离开消息则执行步骤8;
步骤3.如果节点A所在组播岛已加入簇组播树,则直接加入该组播岛;否则继续往下执行;
步骤4.节点A先向源节点发请求,得到超节点列表,选择延迟最小的超节点及该超节点下连接下的簇;
步骤5.节点A加入簇的Mesh网络;
a)节点A向控制器发出加入Mesh网络消息,请求加入控制器维护的Mesh网;
b)控制器通过加入回应消息返回当前Mesh网中所有节点的IP地址列表,并向其他节点发送组成员更新消息;
c)节点A根据获得的IP地址列表,测量到其他节点的单播延迟,并将测量结果封装在刷新消息中发送给控制器;
d)控制器收到刷新消息后,更新本地所维护的Mesh网拓扑信息,更新后的Mesh信息以单播的形式发送给Mesh网中的其他节点;
步骤6.控制器计算出父节点后,所述节点A加入组播树;
a)节点A向控制器发送加入组播树的请求加入树消息:消息中包括S的IP地址;
b)控制器计算出的节点A在组播树中的父节点和子节点,封装在加入树回应消息中发送给节点A,同时树形拓扑的变化通过更新树消息通知所属簇内的相关节点;
c)节点A的父亲节点收到更新树消息后,将节点A加入到自己的儿子节点列表中。节点A的子节点收到更新树消息后,将节点A加入到自己的父亲节点列表中,同时向节点A发送加入父节点消息;
d)节点A节点收到加入父节点消息后,表示自己加入组播树成功。
步骤7.超时限制内如果没有选出父节点,则直接选择超节点作为父节点,则此时节点A成为簇代表节点,加入过程结束;
步骤8.节点A主动离开某棵组播树;
a)节点A向控制器发送离开树消息;
b)控制器通知节点A的父亲节点,从其儿子节点列表中删除节点A的标识,如果是簇代表节点离开,控制器在簇网络中重新选取簇代表节点;
c)根节点向节点A发送离开树回应消息。
步骤9.通知控制器离开Mesh网络。
a)节点A向控制器发送离开MESH网消息通知,并启动一个计时器;
b)控制器更新本地所维护的Mesh网拓扑信息,删除节点A对应的节点以及节点A连接的链路,并将A离开的消息广播给Mesh网的其他节点,向节点A发送确认该节点A离开MESH网的回应消息;
c)如果计时器超时后还没有收到离开MESH网回应消息,则节点A重复向控制器发送离开MESH网消息,直到收到离开MESH网回应消息为止。
2.根据权利要求1所述的集中式与分布式相结合的应用层组播放筏,其特征在于:该方法还包括Mesh网中每个成员周期性地测量到其他节点的延迟,并把测量结果通过刷新小型送给簇控制器,再由控制器来更新本地维护的Mesh网拓扑信息。
3.根据权利要求1所述的集中式与分布式相结合的应用层组播方法,其特征表示该方法还包括:若控制器在一段时间内为收到其成员发送的刷新消息,则认为该节点可能失效,所述控制器便向该节点发送一系列探测消息,若均没有回复,则控制器断定该节点失效便更新本地所维护的Mesh网拓扑信息,删除与该节点及于其连接的链路,并通知Mesh网络中与该节点有组播树连接的节点,经过一段设定的时间,该节点便被控制器删除。
4.根据权利要求1所述的集中式与分布式相结合的应用层组播方法,其特征在于控制器所维护的全局Mesh网信息包括:节点的IP地址、最近一次从节点受到的刷新消息的序列号si、上一次收到的序列号为si-I的刷新消息的本地时间、该节点到其它节点的路径向量列表。
5.根据权利要求1所述的集中式与分布式相结合的应用层组播方法,其特征在于所述Mesh网中每个成员周期性地产生的刷新消息包括:各成员的IP地址、刷新消息的序列号、每个成员与其它节点的路径向量信息列表,所述刷新消息用递增的序号标识。
CNB2005100866804A 2005-10-21 2005-10-21 集中式与分布式相结合的应用层组播方法 Expired - Fee Related CN100440865C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100866804A CN100440865C (zh) 2005-10-21 2005-10-21 集中式与分布式相结合的应用层组播方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100866804A CN100440865C (zh) 2005-10-21 2005-10-21 集中式与分布式相结合的应用层组播方法

Publications (2)

Publication Number Publication Date
CN1747446A true CN1747446A (zh) 2006-03-15
CN100440865C CN100440865C (zh) 2008-12-03

Family

ID=36166776

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100866804A Expired - Fee Related CN100440865C (zh) 2005-10-21 2005-10-21 集中式与分布式相结合的应用层组播方法

Country Status (1)

Country Link
CN (1) CN100440865C (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100373886C (zh) * 2006-05-18 2008-03-05 上海交通大学 基于自适应退避策略的无线传感器网络分布式分簇方法
CN101299671A (zh) * 2007-04-30 2008-11-05 上海贝尔阿尔卡特股份有限公司 用于组播数据包发送与接收的方法和装置
WO2008148335A1 (fr) * 2007-06-05 2008-12-11 Huawei Technologies Co., Ltd. Procédé pour une construction de topologie de réseau de nœud client et système pour livraison de média en flux
CN101427491A (zh) * 2006-04-17 2009-05-06 英特尔公司 用于基于互联网协议的无线接入网资源管理结构的方法和装置
WO2009111990A1 (zh) * 2008-03-13 2009-09-17 华为技术有限公司 一种组播控制的方法、设备和系统
WO2009115020A1 (zh) * 2008-03-21 2009-09-24 华为技术有限公司 网络路径建立与数据发送的方法及网络节点
CN100581133C (zh) * 2006-11-08 2010-01-13 中国科学院沈阳自动化研究所 面向工业监测应用的无线网状网络组播通信方法
CN101296188B (zh) * 2008-06-16 2010-10-27 杭州华三通信技术有限公司 在两级分布式设备上实现快速生成树协议的方法
CN101447896B (zh) * 2007-11-27 2011-06-08 北京九合创胜网络科技有限公司 一种互联网旁路监测系统的tcp连接管理方法
CN101610386B (zh) * 2009-06-30 2011-06-22 中兴通讯股份有限公司 一种展示终端列表的方法及装置
CN102368724A (zh) * 2011-09-08 2012-03-07 华为技术有限公司 报文转发方法和装置
CN101621747B (zh) * 2009-08-12 2012-07-11 广州海格通信集团股份有限公司 一种无线mesh网络的可靠组播传输方法
CN101589587B (zh) * 2007-01-26 2013-01-02 日本电气株式会社 多播通信系统和方法
CN101796861B (zh) * 2007-09-06 2013-05-22 西门子公司 安全无线网状网络中的不良行为检测方法
CN105490940A (zh) * 2015-12-04 2016-04-13 天津维晟微科技有限公司 交换节点的选择方法及装置、基节点、终端节点
CN106533949A (zh) * 2015-09-09 2017-03-22 华中师范大学 基于域感知的多域分簇应用层组播构建及维护方法
WO2022142461A1 (zh) * 2020-12-28 2022-07-07 科大国盾量子技术股份有限公司 一种分布式广域量子密码网络组密钥分发方法及系统
CN115834594A (zh) * 2022-11-16 2023-03-21 贵州电网有限责任公司 一种用于改善高性能计算应用的数据收集方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6917985B2 (en) * 2000-03-10 2005-07-12 The Regents Of The University Of California Core assisted mesh protocol for multicast routing in ad-hoc Networks
US6999465B2 (en) * 2001-02-22 2006-02-14 Motorola, Inc. Methods for reliably sending IP multicast packets to multiple endpoints of a local area network
KR100462406B1 (ko) * 2002-11-06 2004-12-17 한국전자통신연구원 인터넷 기반 오버레이 멀티캐스트 트리 구성 및 관리 방법

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101427491A (zh) * 2006-04-17 2009-05-06 英特尔公司 用于基于互联网协议的无线接入网资源管理结构的方法和装置
CN100373886C (zh) * 2006-05-18 2008-03-05 上海交通大学 基于自适应退避策略的无线传感器网络分布式分簇方法
CN100581133C (zh) * 2006-11-08 2010-01-13 中国科学院沈阳自动化研究所 面向工业监测应用的无线网状网络组播通信方法
CN101589587B (zh) * 2007-01-26 2013-01-02 日本电气株式会社 多播通信系统和方法
CN101299671A (zh) * 2007-04-30 2008-11-05 上海贝尔阿尔卡特股份有限公司 用于组播数据包发送与接收的方法和装置
WO2008131634A1 (fr) * 2007-04-30 2008-11-06 Alcatel Lucent Procédé et appareil permettant d'envoyer et de recevoir des paquets multidiffusion
US8369246B2 (en) 2007-04-30 2013-02-05 Alcatel Lucent Method and apparatus for sending and receiving multicast packets on a multicast tree
CN101299671B (zh) * 2007-04-30 2013-03-13 上海贝尔阿尔卡特股份有限公司 用于组播数据包发送与接收的方法和装置
US8612621B2 (en) 2007-06-05 2013-12-17 Huawei Technologies Co., Ltd. Method for constructing network topology, and streaming delivery system
WO2008148335A1 (fr) * 2007-06-05 2008-12-11 Huawei Technologies Co., Ltd. Procédé pour une construction de topologie de réseau de nœud client et système pour livraison de média en flux
CN101796861B (zh) * 2007-09-06 2013-05-22 西门子公司 安全无线网状网络中的不良行为检测方法
CN101447896B (zh) * 2007-11-27 2011-06-08 北京九合创胜网络科技有限公司 一种互联网旁路监测系统的tcp连接管理方法
WO2009111990A1 (zh) * 2008-03-13 2009-09-17 华为技术有限公司 一种组播控制的方法、设备和系统
CN101534203B (zh) * 2008-03-13 2012-11-07 华为技术有限公司 一种组播控制的方法、设备和系统
US8498292B2 (en) 2008-03-21 2013-07-30 Huawei Technologies Co., Ltd. Network node and method for establishing network path and sending data
WO2009115020A1 (zh) * 2008-03-21 2009-09-24 华为技术有限公司 网络路径建立与数据发送的方法及网络节点
CN101296188B (zh) * 2008-06-16 2010-10-27 杭州华三通信技术有限公司 在两级分布式设备上实现快速生成树协议的方法
CN101610386B (zh) * 2009-06-30 2011-06-22 中兴通讯股份有限公司 一种展示终端列表的方法及装置
CN101621747B (zh) * 2009-08-12 2012-07-11 广州海格通信集团股份有限公司 一种无线mesh网络的可靠组播传输方法
CN102368724A (zh) * 2011-09-08 2012-03-07 华为技术有限公司 报文转发方法和装置
CN106533949A (zh) * 2015-09-09 2017-03-22 华中师范大学 基于域感知的多域分簇应用层组播构建及维护方法
CN105490940A (zh) * 2015-12-04 2016-04-13 天津维晟微科技有限公司 交换节点的选择方法及装置、基节点、终端节点
CN105490940B (zh) * 2015-12-04 2018-10-26 天津维晟微科技有限公司 交换节点的选择方法及装置、基节点、终端节点
WO2022142461A1 (zh) * 2020-12-28 2022-07-07 科大国盾量子技术股份有限公司 一种分布式广域量子密码网络组密钥分发方法及系统
CN115834594A (zh) * 2022-11-16 2023-03-21 贵州电网有限责任公司 一种用于改善高性能计算应用的数据收集方法
CN115834594B (zh) * 2022-11-16 2024-04-19 贵州电网有限责任公司 一种用于改善高性能计算应用的数据收集方法

Also Published As

Publication number Publication date
CN100440865C (zh) 2008-12-03

Similar Documents

Publication Publication Date Title
CN1747446A (zh) 集中式与分布式相结合的应用层组播方法
Liao et al. Anysee: Peer-to-peer live streaming
Chen et al. Dynamic replica placement for scalable content delivery
Zhang et al. A survey of peer-to-peer live video streaming schemes–an algorithmic perspective
Khedr et al. Successors of PEGASIS protocol: A comprehensive survey
CN1848791A (zh) 树型组网拓扑结构的获取及地址分配方法
CN102143199A (zh) 获取内容的方法、节点及内容网络
CN101043444A (zh) 基于蚁群优化的分布式服务质量多播路由方法
CN100452734C (zh) 基于全局Internet拓扑知识的P2P应用构建方法
CN101094245B (zh) 一种基于对等覆盖网络的游戏平台系统
Cao et al. uCast: Unified connectionless multicast for energy efficient content distribution in sensor networks
CN100512286C (zh) 一种覆盖网络组播协议技术
WO2018175781A1 (en) System and method for mesh network streaming
CN1722705A (zh) 在堆叠设备域中通信传输路径的控制方法
Laoutaris et al. Implications of selfish neighbor selection in overlay networks
CN1819556A (zh) 基于最小生成树和贪婪算法的动态时延约束的多播路由的方法
Zhang et al. Treeclimber: A network-driven push-pull hybrid scheme for peer-to-peer video live streaming
CN103368770A (zh) 基于网关级拓扑的自适应alm覆盖网络构建及维护方法
Chu et al. Auction-based on-demand P2P min-cost media streaming with network coding
Hu et al. P2P consistency support for large-scale interactive applications
Birrer et al. Magellan: Performance-based, cooperative multicast
CN102035894B (zh) 一种基于距离的状态同步方法
CN107018181A (zh) 基于流媒体直播系统的p2p网络构建方法
CN107800567B (zh) 一种混合模式的p2p流媒体网络拓扑模型的建立方法
Fathy et al. Impact of mobility on performance of P2P content discovery protocols over MANET

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081203

Termination date: 20111021