专利名称:一种节约标签提高标签利用效率的部分标签交换方法
技术领域:
本发明涉及一种流驱动和控制驱动相结合的标签交换方法,尤其是一种节约标签提高标签利用效率的方法,它克服了传统的流驱动(如IP switching)和控制驱动(MPLS)各自的弊端。可以节约有限的标签空间,具有较强的实用价值属于通信网络的技术领域。
背景技术:
首先介绍一下什么是标签交换。传统的分组交换网络如Internet等是基于IP(Internet Protocol网际协议)的,也就是说是面向无连接的。我们可以看到当一对源地址和目的地址进行通信的时候,会发送一系列的数据包。每一个数据包到达路由器之后路由器会根据目的地址查找转发表确定一条路由,然后在网络中逐跳转发到目的地址。每个路由器只关心与目的地址相匹配的下一个路由器地址,就像邮局的邮递员只负责把同一个单位的信件送到这个单位的收发室,而并不负责把信件交到每个人的手里。这就是现在的IP网络的转发策略。我们从图中看到,相同源地址和目的地址的数据包所走的路线并不一样,这要根据路由器动态选择(无连接网络的特性)。这种策略有可能会造成一种情况源端点先发的数据包会后到达目的点,这就导致了数据传输的失序,目的端要重组,从而增大了时延降低了通信的QOS(即服务质量)。而且,在IP网络中的路由器查找转发表时所依据的IP地址采用的是最长匹配,即寻找表中与数据包目的地址最匹配的表项,这就增大了路由器的处理时延。所以人们想出了各种能够面向连接的(即相同源和目的地址的数据包每次都采用相同的路径传输),利用硬件转发的交换方法。标签交换就是其中的一种。标签交换的原理是当路由器收到了一个分组之后,根据目的地址和源地址的信息,在分组中打上一个定长标记(或标签),发送到下一个路由器,下一个路由器根据收到的定长标记值(而不是复杂的IP地址)来转发数据包,并替换成另一个标记值,转发给再下一个路由器。这里每一个入标签和出标签与转发路径是一一对应的,这样所有后续数据包就可以一直按照这条链路传送数据包(只要该标签路径没有被撤销)。如此就实现了面向连接的数据传输,同时由于标签是定长的,就可以用硬件来转发数据包。提高了转发速度,降低了处理时延。
近些年人们提出了各种基于标签的交换方案。其中比较有名的有IPswitching(lP.Newman and G.Minshall,“IP Switching-ATM under IP”,IEEE/ACM trans.On Networking,vol 6,pp.117-129,April 1998.),多协议标签交换(MPLS)([2]Bruce Davie and Jeremy Lawrence,“draft-davie-mpls-atm-01”,Internet Draft,PP.1-19,Nov 1998.[3]Eric C.Rosen and Arun Viswanathan,“draft-ietf-mpls-arch-02”Internet Draft,pp.1-59,Nov.1997.[4]L Andersson and P.Doolan,“draft-mpls-ldp-02”,Internet Draft,ppl-124,Nov.1998).和Tagswitching([5]Y.Rekhter et.al,“Cisco Systems’Tag SwitchingArchitecture Overview”,IETF RFC 2105,pp.1-13,February 1997.)等等。其中IP switching只能应用在ATM(Asynchronous transfer mode异步传输模式)网络中,它的标签分配是属于流驱动的,也就是说每当来一个长流(这里的流是指所有具有相同源地址目的地址的数据包的集合),交换机就对其分配标签,而短流则仍采用第三层转发(就是IP转发,也就是依靠查找变长匹配IP地址来查找路由表,并采用找到的路由表来转发数据的策略);MPLS和Tag switching是属于控制驱动的,也就是说交换机或路由器在消息传递之前利用路由表项,配置信息等控制信息建立好标签通路。消息流的所有数据包都由建立好的标签通路转发。当标签交换被应用到ATM网络中时(如IPswitching),ATM信元中的VPI/VCI被用作为标签域,而ATM信元中的VPI/VCI(虚通道标记/虚电路标记)又是相当紧张的一种资源。目前很多ATM交换机同时只能支持64-128K的虚电路。这相对于今天Internet上的海量的数据来说是远远不够的。而对于MPLS这种支持多种网络的标签交换技术来说,其定长标签域也是有限的(标签字段只有20bit)。所以,如何有效的解决相对有限的标签空间和越来越大的网络负载之间的矛盾成为当务之急。
现存的标签交换技术,都存在一个弊端,那就是标签空间的不足与浪费问题。IP switching的可扩展性成为该方案的最大弱点,该方案的批评者认为既然IP switching是为每一个源节点和目的节点绑定一条标签通道(即是流驱动的),那么如果一个网络有N个节点,而每一个节点都要与另外的所有节点进行通信,那么就需要N2条标签通路。显然这时标签资源就会很紧张。同时其他的一些控制驱动的标签交换技术(如MPLS,Tag switching)也在可扩展性方面遭到了质疑[1],MPLS和Tag switch基于路由表项而不是消息流来分配标签,所以在IP域内的任何一条路由都对应一条标签交换路径(LSP)[3]。而对于实际的网络,比如说Internet,我们可以断定网络中很多的路由实际上从长时间的统计来看其平均流量是很小的。即大部分时间并没有需要应用这些表项寻路的数据包通过该路由器,我们称这样的路由为闲置的路由。而如果路由器还始终分配标签给这样的路由表项,那么就造成极大的浪费。Boustead提出了一种新的标签交换策略,但是它需要在路由器上既安装IP switching模块又安装MPLS模块([6]PaulBoustead et.al,“Label Switching and IP version 6”,Proceedings ofIC3N’98 Lafayette USA,October 1998.)。也就是说要对整个标签域内的路由器进行升级,显然这是不现实的。
由上面的背景技术的介绍可以知道,现在的标签交换技术面临着一个标签空间紧张的局面。一方面标签空间本身就不富裕,如MPLS网络中的标签字段只有20bit;另一方面,现存的技术如IP Switching和MPLS等又存在着标签浪费的问题(即很多标签分配下去之后,并没有得到利用);标签空间不足一方面限制了网络的可扩展性,另一方面也增大了由于标签不够用而产生的第三层转发的数据包的数量,这与标签转发方法的速度快、可靠性高等特性不相符。
发明内容
技术问题发明的目的是提供一种节约标签提高标签利用效率的部分标签交换方法,该方法既具有向后兼容性(不用大量改动路由器软件)又能提高标签利用率,提高网络的可扩展性,保证数据转发的有效性和可靠性。
技术方案为了解决上述矛盾,我们提供了一种新的标签交换技术称为部分标签交换(Partial Label Switching下文简称PLS)。它基于MPLS,MPLS以路由表项为依据来分配标签,并且由于路由聚合(即可以用同一个标签来标记不同的路径,但是这些路径在网络中的大部分地方是重合的,在要分开的时候靠第三层转发来寻路)的原因,第三层转发的机制还必须在网络路由器中存在,不能抛弃。当在某段链路发生标签泄漏(即不存在对应的标签表项以供使用)时还必须利用第三层转发来保证网络的稳健性。既然网络中的第三层转发机制不可或缺,那么我们就可以更加灵活的利用它即我们规定并不是所有的路由都采取标签转发的方式转发,而是仅仅对那些经常处于活跃状态的路由分配标签,而对那些并不活跃的路由采取第三层转发的机制。各路由的活跃与否可以通过各路由器统计得出我们可以对每一条路由表项计数,一条表项每被应用一次就将计数器加1,同时我们周期性的计时,如果在规定时间内的一条表项的平均被应用次数低于一个门限值(由具体的网络来设定),就将其设为不活跃的,如果高于某个门限值,就将其设为活跃的。采用了这种策略之后,虽然有一小部分路由会用第三层转发,但仍然能够取得比较高的效率!在Internet骨干网中,一个路由器的典型的路由表项的数目大概是40000条[8],但是如果我们用一个12000条的高速缓存来转发,我们发现95%的数据是可以正常发送的,只有5%的数据包的路由是高速缓存中没有的,需要查找路由表。所以我们可以得出结论,在一个实际的网络中路由器的大部分路由表项是处于闲置状态的。这样如果应用我们的PLS的方法就可以节省很大一部分标签开销,同时又提高了转发效率(因为越多的包用“标签转发”网络的整体效率就越高)。
该方法将流驱动与控制驱动相结合,依据路由表分配标签,使标签针对路由而不是源地址和目的地址而存在,同时,只为活跃路由表项分配标签,在保证转发效率降低很少的情况下,节省大量的标签。
其路由器的大体工作可为以下几个步骤(1)、在路由器加电以后,所有的配置都和MPLS相同,例如维护临接关系,通报标签信息等都采用MPLS的消息格式。当系统加电的最初,有数据包到来时采用第三层转发策略,即利用包的IP地址转发数据包。
(2)、然后PLS每隔时间间隔Δ秒统计一次路由表项的忙闲(以周期Δ统计)一类是忙的路由(busy entry),也就是说这一类路由是经常被用到的,一段时间内确定是活跃的路由;另一类是闲置的路由(idle entry),也就是说这一类路由是被偶尔用到的,在一段时间内经统计是不活跃的。对统计结果超过门限值的路由表项我们将其标记为“活跃的”,发送标签更新消息给邻节点,对统计结果低于门限值的路由表项我们将其标记为“不活跃的”。
(3)、随后对于那些原来是不活跃的,现在变为活跃的表项申请标签,并且发送标签更新消息给邻居节点。将那些原来是活跃的现在变为不活跃的表项复制到“等待替换标签队列”。
(4)、随后,当来到一个等待转发的数据包后,首先查看标签转发表,如果有对应的标签转发表项,则应用标签转发,如果没有此表项则交给第三层来转发。
(5)、当发现了一个忙的表项的时候才撤销一个相对闲的表项的标签PLS模型为每一个分配了标签的路由表项维持一个空闲计时器,当计时器超时后该表项的标签并不是被撤销而是被标记为“等待替换的标签”而放入“等待替换标签”队列;当一个新的“忙表项”被发现(即超过门限值)时,路由器会从该队列中取出一个标签分配给这个忙的表项,同时撤销原表项的标签,并生成一条消息报告上游这个变更;另外,当一个路由器收到了一个标签更新消息后则不管该消息对应的表项是否是忙的,都要将这个表项应用到标签转发表中,并用这个标签更新之。这主要是为了解决与MPLS的互操作问题。
(6)、与MPLS的互操作PLS的另外的一大特色就是可以与MPLS很好的进行互操作,PLS利用标准的LDP(标签分配协议,主要负责在网络中的各节点中通告标签分配情况,和建立标签转发路径之用)消息与邻居进行通信,当一个MPLS路由器向一个PLS路由器分配一系列标签时,PLS就会应用这些标签,而不管这些表项是否是忙的,而当一个PLS路由器向一个MPLS路由器分配标签时,PLS只向MPLS路由器分配忙的标签,这更有利于MPLS路由器节省标签。
有益效果本发明采用流驱动和控制驱动相结合的方式,克服了各自的弊端,较好的解决了有限的标签空间和网络规模不断增长之间的矛盾,可以节约有限的标签空间,具有较强的实用价值。同时本发明所涉及的标签转发方法又是向后兼容的,完全可以和MPLS进行互操作而无须大量修改路由器的软硬件设施。对于提高现有网络的可量测性,节约网络升级成本都是非常合适的选择。
本发明的标签交换技术称为部分标签交换(Partial′Label Switching)。它基于MPLS,但是并不是所有的路由都采取标签转发的方式转发,而是仅仅对那些经常处于活跃状态的路由分配标签,而对那些并不活跃的路由采取第三层转发的机制。而各路由的活跃与否可以通过各路由器统计得出。采用了这种策略之后,虽然有一小部分路由会用第三层转发,但仍然能够取得比较高的效率!同时达到了大量节省标签的效果(因为实际网络中的不活跃路由还是相对较多的)。
下面结合附图对本发明进一步说明。
图1是标签空间的大小与转发效率之间关系的示意图。其中有横坐标为仿真观测时间,纵坐标是能够利用标签转发路径转发的包的百分比,从上到下的三条曲线分别是拥有7000个标签的路由器能够利用标签转发路径转发的C类地址包的百分比;拥有10000个标签的路由器能够利用标签转发路径转发的C类地址包的百分比;拥有5000个标签的路由器能够利用标签转发路径转发的B类地址包的百分比;图2是PLS和IP switching转发相同粒度数据包时的转发效率的比较的示意图。其中横坐标是观测时间,纵坐标是利用标签转发路径转发的包的百分比。从上到下的两条曲线分别是PLS能够利用标签转发路径转发包的百分比和IPswitching能够利用标签转发路径转发的包的百分比。转发同粒度相同标签空间的PLS和IP switching转发的包的比较。PLS能够比IP switching利用LSP多转发大概35%的包;图3是相同标签空间不同粒度的PLS和IP switching之间转发包的转发效率比较示意图。其中横坐标是观测时间,纵坐标是利用标签转发路径转发的包的百分比。。PLS利用第三层转发的包比IP switching少大概75%左右。说明粗粒度又多节省了大概40%的标签。
图4是传统的分组交换网络的交换方式。其中带有数字的小方块为数据包,2为先发送的数据块,1为后发送的数据块。中间的用连线连接起来的是标签路转发由器。可以看到先发送的数据后到达终点。
图5本发明的工作流程示意图。
具体实施例方式
本发明的节约标签提高标签利用效率的部分标签交换方法在于将流驱动与控制驱动相结合,依据路由表分配标签,使标签针对路由而不是源地址和目的地址而存在,同时,只为活跃路由表项分配标签,在保证转发效率降低很少的情况下,节省大量的标签。
具体的交换方法为1)、在路由器加电以后,所有的初始化工作都和MPLS相同,即维护临接关系、通报标签信息都采用MPLS的消息格式,当系统加电的最初,有数据包到来时采用第三层转发策略,即利用包的IP地址转发数据包;2)、然后PLS每隔时间间隔Δ秒统计一次路由表项的忙闲;一类是忙的路由,即这一类路由是经常被用到的,一段时间内确定是活跃的路由;另一类是闲置的路由,即这一类路由是被偶尔用到的,在一段时间内经统计是不活跃的;对统计的结果用一个称之为“活跃因子”的标量来表示,对于“活跃因子”超过门限值的路由表项将其标记为“活跃的”,发送标签更新消息给邻节点,对“活跃因子”低于门限值的路由表项我们将其标记为“不活跃的”的;3)、随后对于那些原来是活跃的现在变为不活跃的表项复制到“等待替换标签队列”,4)、对于那些原来是不活跃的,现在变为活跃的表项申请标签,并且发送标签更新消息给邻居节点,PLS模型会在“等待替换标签队列”选择一个标签分配给这个活跃的表项,同时撤销原表项的标签,并生成一条消息报告上游这个变更;另外,当一个路由器收到了一个标签更新消息后则不管该消息对应的表项是否是活跃的,都要将这个表项应用到标签转发表中,并用这个标签更新之,解决与MPLS的互操作问题;5)、当向邻居节点通报标签消息时,PLS利用标准的“标签分配协议消息”与邻居进行通信,实现PLS路由器和其他的MPLS路由器进行互操作,当PLS路由器收到了一个MPLS路由器发过来的标签通告消息后,PLS就会应用这些标签,而不管这些表项是否是忙的,而当一个PLS路由器向相邻的MPLS路由器通告标签消息时,MPLS也应用之;
6)、随后,当来到一个等待转发的数据包后,首先查看标签转发表,如果有对应的标签转发表项,则应用标签转发,如果没有此表项则交给第三层来转发。
本发明的实施因不同的网络背景略有差异,下面介绍一种
具体实施例方式(1)路由表项统计需要的一些参数设定我们的实现方法基本按照上面所述的技术方案的实现步骤设计。从上面的技术方案中我们看到路由器每隔时间Δ要对路由表项的忙闲进行统计。而这种统计要以一定的参数作为标准。
一、统计间隔Δ的设定在PLS方案中这个时间间隔Δ的设置非常重要。有的时候往往需要考虑很多问题。
一方面,如果Δ很小则可以更加迅速的对网络的流量情况做出判断,从而更多的数据包可以及时地采用标签来转发。但是如果Δ太小的话则会引入过大的网络延时和处理器开销另一方面,如果Δ过大又会对网络的负载情况反应迟钝,使得本来应该分配标签利用标签转发的数据包得不到标签(因为表项还没有更新),从而减少了利用标签转发的数据包,导致了网络性能的下降。
在我们的实验环境中,通过对2秒,60秒,900秒,1800秒进行仿真的结果看,60秒是比较理想的选择,建议根据不同的网络背景选择30~60秒的Δ比较合适。
二、活跃程度的量化表示PLS中每次统计得到的路由表项的活跃情况必须能够用数量来表示,这样才能确定哪个表项相对于其他表项是活跃的。这个量化表示可以根据不同的网络背景要求,有不同的标准。在我们的实验中我们将其设定义为活跃因子α。α越大证明该表项越活越。在实验中我们定义本次统计的活跃因子=(上次统计时得到的活跃因子)*(加权因子Q)+最近Δ时间内收到的包的数量这个公式的物理意义是当前统计的该路由表项的活跃程度取决于统计时刻之前Δ时间内这条表项的负载和历史上该表项的活跃程度。我们用ηNK表示第N次统计时刻之前Δ时间内收到的包的数量,用αNK来表示我们第N次统计得到的路由表中第K个表项的活跃因子,则αNK的计算方式如下αNK=αN-1K*Q+ηNK(0<Q<1)]]>其中Q是加权因子,用来体现以往统计的活跃性对当前活跃性的影响程度,可根据具体网络背景进行设定。我们在实验中设为0.5。
三、门限值的选择PLS方案中另外一个重要的设置是门限值的设定。门限值受网络的限制较多,一般来说,如果标签空间L(可供支配的标签数量)比较大,门限值可以低一点。反之可以高一点。同时需要网络管理员离线分析历史上的流量情况,来设定门限值。
在我们的实现中,考虑到网络流量的突发性,我们设置两个门限hu与hd,其中hu为上门限,当一个“第三层转发”的路由表项的活跃因子大于hu时,路由器将其设置为“标签转发”并分配标签,通报标签更新信息。当一个“标签转发”的路由表项的活跃因子小于hd时,路由器将其设置为“第三层转发”并分配标签,通报标签更新消息。而对于活跃因子在hd和hu之间的路有表项,路由器保持其原来的状态。采用这种方式主要是为了防止由于网络流量的震荡造成路由表项频繁的在活跃与不活跃之间切换,导致频繁的发送标签更新消息,从而影响网络性能。在实验中我们采用hu=15,hd=5。基本上不存在震荡了。一般来说取下门限是上门限的1/3。会有效防止震荡。
(2)实施步骤1、按照技术方案中的基本步骤,结合上面的分析,设定N=0,Q=0.5,Δ=60秒,hu=15,hd=5
2、系统加电后将以上参数设定,并且使所有表项均为“第三层转发”。
3、在第(n+1)*Δ时刻,路由器利用(1)中公式统计各表项,得出αNK。
4、对于“第三层转发”的表项,若αnk>hu]]>则将其标记为“标签转发”,并发送标签更新消息给邻居节点。否则保持不变。
5、对于“标签转发的”的表项,若αnk<hd]]>则将其标记为“第三层转发”,并发送标签更新消息给邻居节点。否则保持不变。
6、n=n+1。然后跳转至步骤3。
权利要求
1.一种节约标签提高标签利用效率的部分标签交换方法,其特征在于将流驱动与控制驱动相结合,依据路由表分配标签,使标签针对路由而不是源地址和目的地址而存在,同时,只为活跃路由表项分配标签,在保证转发效率降低很少的情况下,节省大量的标签。
2.如权利要求1所述的一种节约标签提高标签利用效率的部分标签交换方法,其特征在于具体的交换方法为1)、在路由器加电以后,所有的初始化工作都和MPLS相同,即维护临接关系、通报标签信息都采用MPLS的消息格式,当系统加电的最初,有数据包到来时采用第三层转发策略,即利用包的IP地址转发数据包;2)、然后PLS每隔时间间隔Δ秒统计一次路由表项的忙闲;一类是忙的路由,即这一类路由是经常被用到的,一段时间内确定是活跃的路由;另一类是闲置的路由,即这一类路由是被偶尔用到的,在一段时间内经统计是不活跃的;对统计的结果用一个称之为“活跃因子”的标量来表示,对于“活跃因子”超过门限值的路由表项将其标记为“活跃的”,发送标签更新消息给邻节点,对“活跃因子”低于门限值的路由表项我们将其标记为“不活跃的”的;3)、随后对于那些原来是活跃的现在变为不活跃的表项复制到“等待替换标签队列”,4)、对于那些原来是不活跃的,现在变为活跃的表项申请标签,并且发送标签更新消息给邻居节点,PLS模型会在“等待替换标签队列”选择一个标签分配给这个活跃的表项,同时撤销原表项的标签,并生成一条消息报告上游这个变更;另外,当一个路由器收到了一个标签更新消息后则不管该消息对应的表项是否是活跃的,都要将这个表项应用到标签转发表中,并用这个标签更新之,解决与MPLS的互操作问题;5)、当向邻居节点通报标签消息时,PLS利用标准的“标签分配协议消息”与邻居进行通信,实现PLS路由器和其他的MPLS路由器进行互操作,当PLS路由器收到了一个MPLS路由器发过来的标签通告消息后,PLS就会应用这些标签,而不管这些表项是否是忙的,而当一个PLS路由器向相邻的MPLS路由器通告标签消息时,MPLS也应用之;6)、随后,当来到一个等待转发的数据包后,首先查看标签转发表,如果有对应的标签转发表项,则应用标签转发,如果没有此表项则交给第三层来转发。
全文摘要
本发明涉及一种流驱动和控制驱动相结合的部分标签交换方法(PLS)。它克服了传统的流驱动(如IP switching)和控制驱动(MPLS)各自的弊端。可以节约有限的标签空间,具有较强的实用价值。它基于MPLS,将流驱动与控制驱动相结合,依据路由表分配标签,使标签针对路由而不是源地址和目的地址而存在,同时,只为活跃路由表项分配标签,在保证转发效率降低很少的情况下,节省大量的标签。采用了这种策略之后,虽然有一小部分路由会用第三层转发,但仍然能够取得比较高的效率,同时达到了大量节省标签的效果。
文档编号H04L25/06GK1684444SQ20051003796
公开日2005年10月19日 申请日期2005年3月4日 优先权日2005年3月4日
发明者王海, 陈剑 申请人:中国人民解放军理工大学