首页> 中国专利> 区分服务网络域内支持不同服务质量的IP组播方法

区分服务网络域内支持不同服务质量的IP组播方法

摘要

本发明方法属于互联网技术领域,其特征在于:在区分服务网络域的每个边界路由器上部署一个组播树管理模块,该模块维护一个组播树集合,要求不同的组播组共享使用组播树,从而大大降低了路由器维护的状态信息数量;它将组成员按照服务质量需求分成服务质量相同的子组,分别使用不同的树接收组播信息,从而解决了组成员服务质量需求不同带来的影响。这个方法在网络域边界路由器上为新来的组成员请求寻找合适的组播树,网络域核心路由器只需要支持一般的组播传输,不必维护关于服务质量的状态。该方法的实现简单,只需要在区分服务网络的每个边界路由器上增加一个组播树管理模块,相关操作均由该模块负责完成。

著录项

  • 公开/公告号CN1747447A

    专利类型发明专利

  • 公开/公告日2006-03-15

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN200510086682.3

  • 发明设计人 刘莹;李锁钢;徐恪;

    申请日2005-10-21

  • 分类号H04L12/56(20060101);

  • 代理机构

  • 代理人

  • 地址 100084 北京市北京100084-82信箱

  • 入库时间 2023-12-17 17:08:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-12-28

    未缴年费专利权终止 IPC(主分类):H04L12/56 授权公告日:20080618 终止日期:20101021 申请日:20051021

    专利权的终止

  • 2008-06-18

    授权

    授权

  • 2006-05-10

    实质审查的生效

    实质审查的生效

  • 2006-03-15

    公开

    公开

说明书

技术领域

区分服务网络域内支持不同服务质量的IP组播方法属于互联网技术领域。

背景技术

随着多媒体应用的飞速发展,下一代互联网要求提供服务质量(Quantity of Service,简称QoS)支持和一点到多点或多点到多点的IP组播(Multicast)机制。但是这两种服务都需要路由器维护状态信息,给路由器带来可扩展性问题。

在互联网上提供服务质量的一般方法都要在路由器上记录每个传输流的服务质量状态信息。随着网上传输流数量增加,需要维护的状态数量也增加,路由器的存储和处理开销增大,这对于骨干网的核心路由器来说几乎是不可承受的重负。为此,人们提出来一种新的互联网服务质量体系结构——区分服务(DiffServ,参见RFC2474、RFC2475和RFC2638等),它将传输流状态信息的保存与监控放在网络域的边界路由器,域内核心路由器不必维护每流转发状态,只需对流聚集进行调度转发,具有良好的可扩展性。区分服务域中的带宽代理(Bandwidth Broker,简称BB)负责维护整个网络域的资源分配和控制新传输流进入域。新到达的流首先要与BB协商服务质量,被允许后才能进入域传输。区分服务网络的示例如图1所示。

IP组播的是一种允许一个或多个发送者(称为组播源)将数据分组同时发送到多个接收者(称为接收成员)的网络技术,一个数据分组只需发送一次。组播源把数据分组发送到特定组播组,而只有拥有属于该组播组地址的主机才能接收到数据分组。简单地说,主机通过使用Internet组管理协议(IGMP,请参见RFC1112)加入某个组播组中,并且可以动态离开组,路由器跟踪这种变化关系并试图形成一条到达组播成员的无回路路径,此路径在网络拓扑上形成树状结构(如图2所示)。为了方便,以下所提的组播均指IP组播。

组播源和接收者统称为组播成员,组播支持成员关系动态变化即组播成员的加入和离开。组播传输与单播(Unicast)传输相比(如图3所示):

(1)单播传输在发送者和每一接收者之间需要单独的数据信道。如果一台主机同时给很少量的接收者传输数据,一般没有什么问题。但如果有大量主机希望获得数据分组的同一份拷贝时却很难实现。这将导致发送者负担沉重、延迟长、网络拥塞。

(2)组播传输提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网络,也可以来自不同的物理网络。

简而言之,IP组播利用路由器形成的组播树传递组播数据,组播源只发送一次组播会话数据,数据分组在组播树的分支点被复制传递。组播的优势是减小了组播源和源链路的负载压力,提高了传输效率。

但是,传统的IP组播机制存在缺点,即每个组播会话需要一棵组播树传递信息,每棵组播树在路由器上对应一个组播转发表项,当网络上并发的组播会话很多时,转发状态随之增多,这会极大增加路由器的处理开销,降低路由器的性能。如果在支持区分服务中实现传统的IP组播方案,状态可扩展性问题变得更加严重,因为除了基本的组播转发状态之外,路由器还要为每个组播组维护服务质量状态信息。当网络中同时存在很多组播组时,域内核心路由器因此面临巨大压力。除此之外,同一组播组的成员可能有不同的服务质量需求,这种复杂性使得邻近的组成员之间相互影响,增加了组播计费难度;甚至对于有些服务质量,其评价指标不同,同组的成员并不能在同一棵组播树上接收满足各自服务质量需求的数据。

目前国内外的研究机构和人员针对区分服务网络域中实现组播传输的问题提出了一些解决方案和国际标准(如RFC3754),但是这些方法都存在局限性,不能综合、高效地解决该问题。

本发明提出的区分服务网络域内支持不同服务质量的组播方法,很好地解决了组播支持服务质量时遇到的上述问题。它在不同的组播组之间共享使用组播树,随着并发组播组数量增加,域上维护的树的数量比传统组播需要的树的数量大大降低;它将组成员按照服务质量需求分成服务质量相同的子组,分别使用不同的树接收组播信息,从而解决了组成员服务质量需求不同带来的影响,有效地实现了不同服务质量的IP组播;该方法适合于区分服务体系结构特点,在网络域边界路由器上为新来的组播请求寻找适当的组播树,网络域核心路由器只需要支持一般的组播传输,不必维护关于服务质量的状态。

本发明很容易部署实现,只需要在区分服务网络的每个边界路由器上增加一个功能模块TA(Tree Agent),操作步骤均由TA模块完成。

发明内容

本发明的目的在于提供一种区分服务网络域内支持不同服务质量的组播方法,它具有良好的转发状态可扩展性,并能有效解决组成员服务质量需求不同的问题。

本发明所提出方法的特征在于,所述方法是在区分服务网络域内实现的,所述区分服务网络域包含:多个边界路由器,用E表示,保存与监控传输流的状态信息;多个域内核心路由器,用C表示,对流聚集进行调度转发,具有可扩展性;一个所述域的带宽代理节点,用BB表示,根据整个域的资源分配情况决定是否允许新到来的网络流进入域传递;每个组播组的有一个源,用S表示,通过一个边界路由器发送组播数据,有多个组播成员,各用M表示,通过相对应的边界路由器接收数据;这些组播组在该区分服务域上通过对应的组播树传递信息,并获得各自的服务质量保证,组播树用T表示;

在该区分服务网络域内依次按照以下步骤实现本发明的所述方法:

步骤1.在区分服务网络域的每个边界路由器上部署一个组播树管理模块,用TA表示,该模块中至少要维护如下数据信息:

组播树集合TS,其中的每棵树都用一个域内唯一的树地址来标识,这些树都是以TA所在路由器为根,支持不同的服务质量级别,但每棵树只支持一种服务质量级别;

组-树地址对应函数R(GT),可以是表格形式,传输流经过边界路由器进入区分服务域时其组地址被替换为树地址,在离开该域时树地址要替换回组地址,一个组可能对应多个树地址,这些树共同承担了传递这个组信息的任务;

组播树的链路损失评价W(T),用以评估由于冗余的叶子节点浪费带宽导致的链路损失;因而在模块TA内至少定义如下参数:

ce:构成树T的边e的链路成本,默认值为1

C(T):树T的链路成本,构成T的所有边的链路成本之和

nG:被树T支持传递的组数量

Gi:被树T支持传递的第i个组

πT(Gi):表示树T被组播组Gi使用的那部分链路,是T的子集,即πl(Gi)T

W0:预定的链路损失阈值,是一个小于1的非负实数

W(T):树T的链路损失评价

R(GT):组-树地址对应函数

TS:全局变量,由模块TA维护的组播树集合

TStemp:临时变量,记录当前操作中的候选组播树集

TA至少设有如下计算公式:

树T的链路成本:C(T)=∑e∈Tce

Gi在T上的链路成本: >>C>>(>>π>T>>>(>>G>i>>)>>)>>=>>Σ>>e>∈>>π>T>>>(>>G>i>>)>>>>>c>e>>;> >

树T链路损失评价: >>W>>(>T>)>>=>[sup>>Σ>>i>=>1>>>n>G>sup>>C>>(>T>)>>]>/>[sup>>Σ>>i>=>1>>>n>G>sup>>C>>(>>π>l>>>(>>G>i>>)>>)>>]>->1>;> >

步骤2.当边界路由器的接口I收到主机发来的组播加入请求消息时,此时称该路由器为该组播组在该域的下游出口路由器,记为Reg,因为它将是组播数据流离开域的出口,该组播加入请求消息至少包含所述的组播组地址g、组播的源地址s和请求的服务质量级别q,记为Join(s,g,q):

若该出口路由器Reg的接口I不在(s,g,q)的出接口列表中,则模块TA将Join消息封装成单播消息,记为TA_Join_Req(s,g,q),模块TA把它向源s方向单播,然后等待应答消息,此消息若为加入成功,则建立转发状态,将接口I加入其出口列表中;

步骤3.当边界路由器截收到以源s为目的单播消息TA_Join_Req(s,g,q)时,此时称该路由器是组g在该域上的上游入口路由器,记为Ring,因为它将是组播数据流进入域的入口,它的TA模块进行选树过程,首先置一个临时候选组播树集TStemp为空,然后依次执行以下步骤:

步骤3.1.依次在组播树集合TS中任选一棵树t,若都已选过则转到步骤3.4;

步骤3.2.若该树t不支持服务质量级别q,或者树的叶节点中不包含出口边界节点Reg,转到步骤3.1;

步骤3.3.计算树t的链路损失评价W(t),若W(t)<W0,则将树t加入到临时候选树集TStemp中;否则,转到步骤3.1;

步骤3.4.若此时的临时候选树集合TStemp为空,转到步骤4执行建树过程,否则在TStemp中选择一棵树,记为t1,选择标准按照下面的优先级顺序:

a.链路损失评价W最小;

b.承担传递组播会话数量最少;

c.随机选择一个;

步骤3.5.由模块TA与所述带宽代理节点BB协商,树t1是否可以支持这个来自下游出口路由器Reg的新的组播加入需求:

若得到许可,则向下游出口路由器Reg发送加入成功应答消息,通知其传递树为t1及其树地址,转到步骤5等待转发;

否则,将t1从临时候选树集合TStemp中删除,转到步骤3.4;

步骤4.由上游入口路由器Ring发起执行建树过程,执行步骤如下:

步骤4.1.该路由器的模块TA与BB协商是否允许建立从Ring到Reg的路径,

若不被允许,说明当前网络资源不足以支持Reg的组播请求,则向下游出口路由器Reg发送加入失败应答消息,通知其加入请求被拒绝,步骤4结束;

若得到允许,记这条路径为tnew,将tnew加到Ring的TA维护的候选树集合TS中;

步骤4.2.若tnew是唯一支持传递组的树,为其分配新的树地址;否则,树集合TS中存在另一棵树told也支持传递组(s,g,q),考虑能否合并told和tnew,计算W(told+tnew):

步骤4.2.1.若小于W0则合并,使用told的树地址标识tnew;否则,为tnew分配新的树地址;

步骤4.3.模块TA通知tnew上的域上路由器建立相应的组播转发表项,该转发表项至少包括该树的地址、组播数据的入接口和出接口列表;

步骤4.4.模块TA向下游出口路由器Reg发送加入成功应答消息,通知其传递树为tnew及其相应地址;

步骤5.当上游入口路由器Ring收到源s的组g的组播信息时,执行转发过程:

步骤5.1.Ring将该组播数据分组的组地址转换为对应的树地址;

步骤5.2.树上的域内核心路由器根据该树地址转发该组播信息;

步骤5.3.下游出口路由器Reg收到组播信息后,将树地址替换回原来的组地址,从出口传递出去;

步骤6.当边界路由器的接口I收到主机发来的组播离开消息时,此路由器是下游出口路由器,该消息至少包含组地址g、源地址s和请求的服务质量级别q,记为Leave(s,g,q),执行如下步骤:

步骤6.1.该边界路由器的模块TA将接口I从转发表项中删除;

步骤6.2.该模块TA将Leave消息封装成TA_Leave(s,g,q),把它向源s方向单播;

步骤7.当边界路由器截收到单播消息TA_Leave(s,g,q)时,此路由器与源s相连为上游入口路由器,它的模块TA在候选树集合TS中找到对应的树t′,计算树t′的链路损失评价W(t′),若W(t′)≥W0,按照如下步骤执行树调整操作:

步骤7.1.若树t′只支持传递组播组(s,g,q),则直接删除包含下游出口路由器Reg的分支,并通知该分支上的核心路由器修改组播转发表项;

否则,树t′还支持传递其他的组播组,把树t′上的除了到达下游出口路由器Reg分支以外的所有路由器构成一棵新树t″,分配新的树地址,并通知到Reg的分支上的路由器增加t″的转发状态信息同时保留t′的状态信息;

步骤7.2.该路由器Ring的模块TA通知BB,组播组(s,g,q)的下游出口路由器Reg分支已经离开,释放资源。

对于上述步骤,步骤2的处理流程如图11所示、步骤3和步骤4的处理流程如图13所示、步骤7的处理流程如图12所示。

通过模拟实验可以证明该发明使用的组播树共享机制,可以很好地解决了传统组播的状态可扩展性问题,随着并发组播组数量增加,域上维护的树的数量比传统组播需要的树的数量大大降低。

附图说明

图1.区分服务网络示例图:

ER是边界路由器(Edge Router),

CR是域内核心路由器(Core Router),

BB是带宽代理(Bandwidth Broker);

图2.IP组播示例图:

圆圈表示路由器节点,

表示主机节点,其中灰色的表示参与组播的主机节点,

直线表示节点之间的互联关系,其中粗线表示组播树,箭头表示组播数据流向;

图3.组播传输和单播传输对比图,

圆圈表示路由器节点,

表示主机节点,

直线表示节点之间的互联关系,

箭头表示数据流向;

图4.区分服务网络域内支持不同服务质量的组播方法示例图,

圆圈表示区分服务域的边界核心路由器,

方块表示域内的核心路由器,

细线箭头表示服务质量级别为Q1的组播树和数据流向,

粗线箭头表示服务质量级别为Q2的组播树和数据流向;

图5.图4所示网络中组成员加入的消息流程图,

组播数据流向

控制消息流向

#1:Join(S,G1,Q2),

#2:TA_Join_Req(S,G1,Q2),

#3:Ring与BB协商,

#4:BB返回应答消息,

#5:Ring通知C2和Reg,

其他同;

图6.图4所示网络中组成员离开的消息流程图,

组播数据流向

控制消息流向

#1:Leave(S,G1,Q2),

#2:TA_Leave(S,G1,Q2),

#3:通知C2删除分支,

#4:Ring向BB报告;

图7.根据中国教育和科研计算机网(CERNET)抽取的实验网络拓扑图,共36个节点,其中8个主要节点:0、2、15、18、19、20、21、33;

图8.链路损失阈值W0=0%时组播状态节省程度与并发组数量的关系图;

图9.链路损失阈值W0=7%时组播状态节省程度与并发组数量的关系图;

图10.链路损失阈值W0=14%时组播状态节省程度与并发组数量的关系图;

图11.边界路由器Reg收到主机发来的Join(s,g,q)消息时的处理流程图,对应于发明内容中的步骤2;

图12.边界路由器Ring截收到TA_Leave(s,g,q)消息时的处理流程图,对应于发明内容中的步骤7;

图13.边界路由器Ring截收到TA_Join_Req(s,g,q)消息时的处理流程图,对应于发明内容中的步骤3和步骤4。

具体实施方式

使用本发明所提出方法的应用前提是:网络域中的路由器需要支持区分服务,支持基本的IP组播协议如PIM-SM(参见RFC2362)和IGMP协议(参见RFC1112),其中IGMP协议需要很小的修改,使得组成员的加入离开消息能够携带需要的服务质量级别。该方法只考虑网络域内的IP组播传递,只针对单源的IP组播机制(即一个组播组只有一个发送者,参见RFC3569)。该方法可以支持区分服务体系结构中已有的各种服务级别,也可以支持自己定义的服务级别。

下面我们举例描述区分服务网络域内支持不同服务质量的组播方法,如图4所示。这是一个区分服务网络域,其中C1、C2和C3是三个域内的核心路由器,用方块表示;该网络域有六个边界路由器E1~E6,用圆圈表示;BB是域的带宽代理,它根据整个域的资源分配情况决定是否允许新到来的网络流进入域传递。假设这个域有一个源为S的组播组(S,G1),通过E1发送组播数据,组接收成员M1和M2分别通过E2和E3接收数据,M4通过E6接收数据。E1的TA维护两棵组播树T1(在图4中用细线箭头连接)和T2(在图4中用粗线箭头连接),T1(E1,E6,C3)支持服务质量级别为Q1的数据传递,T2(E1,E2,E3,E4,C1,C2)支持服务质量为Q2的数据传递,E3连接的主机不是该组成员,因而存在着带宽浪费。

我们观察组成员M3加入组和离开组的过程。

图5显示了M3请求加入组,它向E5发出了Join(S,G1,Q2)的请求消息(即图5中的#1消息)。E2收到消息后,查看组播转发表发现自己没有这个组的状态,它向S单播TA_Join(S,G1,Q2)消息(即图5中的#2消息)。E1收到这个消息后,其TA进入选树过程,发现不存在支持E5请求的树,于是发起建树过程,并向BB协商(即图5中的#3消息);BB判定目前的资源可以满足这个要求,于是向E1返回一个应答消息(即图5中的#4消息);E1建立了E1-C1-C2-E5的新树,它发现TA维护的树集中存在树T2可以与这个新树合并,于是它通知C2树T2增加了新的分支C2-E5,并通知E5使用T2传递组播信息(即图5中的#5消息)。这时,E1是组播源s的入口路由器,可记为Ring,E5将是M3的出口路由器,可记为Reg。

图6显示了M3离开组的流程。它先向E5发出Leave(S,G1,Q2)消息(即图6中的#1消息)。然后E5修改了自己的组播转发表,删除了到M3的接口的分支。随后E5向E1单播TA_Leave(S,G1,Q2)消息(即图6中的#2消息)。E1收到这个消息后,重新计算T2的链路损失评价,发现由于E5离开后W(T2)>W0,所以需要调整树。由于此时T2只支持一个组的数据传递,所以通知C2删除C2-E5的分支(即图6中的#3消息),最后还要向BB报告,C2-E5路径支持Q2级别的数据流传递已经取消(即图6中的#4消息)。

由上例可见,核心路由器C1~C3并不需要维护服务质量状态,只需进行转发操作。

我们通过模拟实验证明,本发明提出的方法可以有效节省组播状态。我们根据中国教育和科研计算机网(CERNET)的骨干网抽取出我们需要的实验拓扑结构,如图7所示。该拓扑中总共有36个网络节点,其中北京、上海等8个节点是主要节点,它们的流量相对较大。我们假设越是流量大的节点,它加入某个组的可能性越大。我们定义组播状态节省程度为:

SR=并发组播组的数量×QoS级别数/树的数量;

因为在传统IP组播中,路由器维护的组播状态数量与并发组播组成正比,如果要支持不同的服务质量,状态数量就要加倍。而在我们的共享树模型中,路由器需要维护的组播转发状态与共享树数量成正比,所以SR反映了我们的方案节省组播状态的程度。

按照我们的方法,如果组播会话支持不同的服务质量请求,那么TA要将不同的服务质量级别请求的成员分成服务质量相同的子组,然后为每个子组寻找共享树传递。从总体上讲,需要共享树传输的组播组数量增加了,而每个组的规模减小了。图8~10反映了这种情况下状态节省程度的变化规律。在图8~10中,组播组规模平均为12~16个成员,支持的3个级别的服务质量。每个图的横坐标表示并发的组播组数量,纵坐标表示状态节省程度SR。由图8~10可见,随着服务质量级别数增多,组播状态节省程度在增加。对比这三个图,如果增加链路损失阈值,转发状态节省程度改善越多。例如在图10中,当支持3级服务质量时,组状态节省可以超过8,这就是说为了维护当前并发组播会话数量,我们的方案需要网络域维护的传递树数量是传统方案需要维护的传递树数量的1/8。

由此可见,本发明达到了预期的目的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号