发明名称 区分服务网络域内支持不同服务质量的IP组播方法
摘要 本发明方法属于互联网技术领域,其特征在于:在区分服务网络域的每个边界路由器上部署一个组播树管理模块,该模块维护一个组播树集合,要求不同的组播组共享使用组播树,从而大大降低了路由器维护的状态信息数量;它将组成员按照服务质量需求分成服务质量相同的子组,分别使用不同的树接收组播信息,从而解决了组成员服务质量需求不同带来的影响。这个方法在网络域边界路由器上为新来的组成员请求寻找合适的组播树,网络域核心路由器只需要支持一般的组播传输,不必维护关于服务质量的状态。该方法的实现简单,只需要在区分服务网络的每个边界路由器上增加一个组播树管理模块,相关操作均由该模块负责完成。
申请公布号 CN1747447A 申请公布日期 2006.03.15
申请号 CN200510086682.3 申请日期 2005.10.21
申请人 清华大学 发明人 刘莹;李锁钢;徐恪
分类号 H04L12/56(2006.01) 主分类号 H04L12/56(2006.01)
代理机构 代理人
主权项 1.区分服务网络域内支持不同服务质量的IP组播方法,其特征在于,所述方法是在区分服务网络域内实现的,所述区分服务网络域包含:多个边界路由器,用(E)表示,保存与监控传输流的状态信息;多个域内核心路由器,用(C)表示,对流聚集进行调度转发,具有可扩展性;一个所述域的带宽代理节点,用(BB)表示,根据整个域的资源分配情况决定是否允许新到来的网络流进入域传递;每个组播组有一个源,用(S)表示,通过一个边界路由器发送组播数据,有多个组播成员,各用(M)表示,通过相对应的边界路由器接收数据;这些组播组在该区分服务域上通过对应的组播树传递信息,并获得各自的服务质量保证,组播树用(T)表示:在该区分服务网络域内依次按照以下步骤实现本发明的所述方法:步骤1.在区分服务网络域的每个边界路由器上部署一个组播树管理模块,用TA表示,该模块中至少要维护如下数据信息:组播树集合TS,其中的每棵树都用一个域内唯一的树地址来标识,这些树都是以TA所在路由器为根,支持不同的服务质量级别,但每棵树只支持一种服务质量级别;组-树地址对应函数R(GY),可以是表格形式,传输流经过边界路由器进入区分服务域时其组地址被替换为树地址,在离开该域时树地址要替换回组地址,一个组可能对应多个树地址,这些树共同承担了传递这个组信息的任务;组播树的链路损失评价W(T),用以评估由于冗余的叶子节点浪费带宽导致的链路损失;因而在模块TA内至少定义如下参数:ce:构成树T的边e的链路成本,默认值为1C(T):树T的链路成本,构成T的所有边的链路成本之和nG:被树T支持传递的组数量Gi:被树T支持传递的第i个组πT(Gi):表示树T被组播组Gi使用的那部分链路,是T的子集,即πT(Gi)TW0:预定的链路损失阈值,是一个小于1的非负实数W(T):树T的链路损失评价R(GT):组-树地址对应函数TS:全局变量,由模块TA维护的组播树集合TStemp:临时变量,记录当前操作中的候选组播树集TA至少设有如下计算公式:树T的链路成本:C(T)=∑e∈Tce;Gi在T上的链路成本:<math> <mrow> <mi>C</mi> <mrow> <mo>(</mo> <msub> <mi>&pi;</mi> <mi>T</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>G</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>&Sigma;</mi> <mrow> <mi>e</mi> <mo>&Element;</mo> <msub> <mi>&pi;</mi> <mi>T</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>G</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> </msub> <msub> <mi>c</mi> <mi>e</mi> </msub> <mo>;</mo> </mrow> </math> 树T链路损失评价:<math> <mrow> <mi>W</mi> <mrow> <mo>(</mo> <mi>T</mi> <mo>)</mo> </mrow> <mo>=</mo> <mo>[</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>n</mi> <mi>G</mi> </msub> </msubsup> <mi>C</mi> <mrow> <mo>(</mo> <mi>T</mi> <mo>)</mo> </mrow> <mo>]</mo> <mo>/</mo> <mo>[</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>n</mi> <mi>G</mi> </msub> </msubsup> <mi>C</mi> <mrow> <mo>(</mo> <msub> <mi>&pi;</mi> <mi>T</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>G</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>]</mo> <mo>-</mo> <mn>1</mn> <mo>;</mo> </mrow> </math> 步骤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分支已经离开,释放资源。
地址 100084北京市北京100084-82信箱