扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:牛大伟 王海 张燕 来源:电讯技术 2008年6月19日
关键字: MPLS
一、引言
随着下一代网络技术的兴起,越来越多的宽带实时业务需要全部或部分地通过无线网络来承载。而无线信道带宽窄、误码率高,不适合宽带实时业务的传输,所以要尽量压缩数据率而提高信道利用率。目前应用层的数据压缩技术如LPC等[1]已经取得了较好的效果。相比之下各层协议字段的开销(如TCP/IP报头)占了数据传输的很大一部分,所以人们提出了各种报头压缩技术[1]。然而,在网络中每一个结点都调用报头压缩算法无疑会增加网络的时延,这对无线信道尤其不利。
如果我们考虑在无线网络中利用虚电路来传输数据,那么当虚电路建立起来后我们就可以在网络的入节点用标签替换报头而在出结点恢复报头信息[1]。这样就避免了在中间节点反复调用报头压缩与解压缩算法从而既减少了时延又提高了信道利用率。另外,在基于TDMA、CDMA的信道上,利用虚电路可以实现面向流的动态的分配时隙和码片资源[2],而不是每个结点分配固定的时隙,这样能更有效地利用有限的信道资源。
MPLS(多协议标签交换)是一种面向连接的、基于标签的交换技术,它采用分组转发的机制。与传统的面向无连接的IP网络相比它具有支持QoS、快速交换和支持多种协议的特点。然而其标签分配协议复杂,建立双向链路开销大,不适合无线链路上的全双工通信。本文提出一种利用MPLS原理在无线链路上快速建立双向标签链路的方案,以适应无线链路上的全双工通信。
二、MPLS原理
1.MPLS概述
MPLS是一种面向连接的、利用定长标签(label)进行转发的一种交换技术。在MPLS网络中的转发节点称为标签交换路由器(LabelSwitchRouter,LSR)。所谓标签即是网络中的路由器根据IP分组中的目的地址,在原始IP分组的前部添加的一个字段。网络中的节点根据该标签转发分组。当一个传统的IP包进入MPLS网络中时,入口路由器(ingressLSR,即MPLS网络和IP网络交界处的边沿路由器)根据IP报头中的目的地址和选路协议确定的路由,为该报文建立一条标签通道(Label Switch Router,LSR),即该报文在传送过程中所经过的一系列LSR),如图1所示。
在图1所示的网络中两个IP网络之间的通信就可以沿着LSP:进行传递。
2.转发等价类与标签
所谓转发等价类(ForwardEquivalentClass,FEC)就是路由器按照同样方式对待的一组分组的集合[3]。简单地说就是下一跳相同的分组的集合。一般采取每个目的地址绑定一个FEC(细粒度)或每个子网绑定一个FEC(粗粒度)两种方式。
在对一个流进行标签转发之前网络要利用标签分配协议[4](LabelDistributeProtocol,LDP)为该LSP上的每一个LSR分配标签并建立各自的标签转发表(FTN),如表1。
从表1可以看出,当一个LSR收到一个带标签的分组之后便查看该分组的标签域,当其与FTN中的某一个表项的入标签相同时,则用该表项的出标签替换掉该分组的标签域,然后向表项中的下一跳接口转发该分组。下一个路由器也按照此法工作。表1中给出的表项含义为:入标签为L1的分组与转发等价类F1相对应,并且将要以出标签L2转发给接口1所连接的LSR。
3.标签分配以及标签链路的建立
在MPLS网络中利用标签分配协议分配标签,当标签分配完毕后,一条LSP和各LSR中的FTN也就建立起来了。标签分配一般是下游给上游分配标签[3],过程如图2所示。
在图2中LSRA向LSRB发送一个标签请求消息[4](request1),LSRB收到该消息后回复给LSRA一个应答消息[4](response1),这个应答消息中包含一个B给A的标签(label1),A收到此应答后则将其中的标签提取出,添加到自己的FTN中与该分组的目的地址相绑定的FEC的表项的出标签字段,将与B相连接的接口号添加入该表项的下一跳端口字段。B与C的通信和A与B的通信相同。
由以上的过程来看,MPLS的标签链路建立过程开销较大不适合无线信道的特点,而且一次交互只能建立一个单向链路,若要建立双向链路则还要再经过一次反向的交互建链过程,这就又增加了无线信道的负担。所以我们应该考虑如何能够在无线链路上实现低时延的快速全双工链路的建立。
三、全双工标签链路的建立
1.链路建立原理
以下是本文定义的一种全新的双向标签链路建立的方案,根据此方案可以较快地建立双向的标签链路。
首先,我们来看一下本文所讨论的无线分组网中的帧格式,如图3所示。
在该网络中比一般的分组网络多了3个字段,即类型字段、标签字段和绑定地址字段,网络中处理这两个字段的位置可称之MPLS层,处于网络层和数据链路层之间。
类型字段:占据2bit,用于标记后面的分组是正常的标签转发分组还是标签建链分组,可以赋予3种值:
00:代表正常转发的带标签的分组,如果一个LSR收到了这样的分组则按照它后面的标签字段的值来查找标签转发表,确定下一跳物理地址。这里之所以是物理地址而不是下一跳端口号,是因为无线网络中的各站点具有移动性,全网拓扑会处在变化之中,而不是固定的连线关系,所以只有靠各站周期性维护的拓扑信息,来确定下一跳地址。
10:表示一个绑定源地址的反向链路建链分组,该分组的源地址为会话发起端。收到这个帧的路由器将利用该分组的标签字段作为出标签建立反向链路的FEC表项,并且随机选择一个空闲的标签替换该标签字段转发给下一个LSR或交给第三层转发(当它为出节点时)。
11:表示一个绑定目的地址的正向链路建链分组,表明下一跳为分组的目的地址分配了一个标签,该标签跟随在类型字段后面。收到这个帧的路由器将利用该分组的标签字段转发分组,并且利用数据字段的值作为出标签来建立正向链路的FEC表项,并且随机选择一个空闲的标签替换该数据字段。
01:空闲不用。因为对于外网发送过来的需要穿越本网络的分组,并不存在我们的类型字段和标签字段,而处在该位置上的一般是IPv4或者IPv6的类型字段的前两个比特,而不管是IPv4还是IPv6,这两个比特的值都应该是01,所以若路由器收到在该位置上为01的分组,则可以判断为常规不带标签的IP分组。而该路由器一般是入口或出口路由器。
标签字段:与类型字段配合使用,当类型为00和11时,此字段是这个分组标签转发的依据,即是入标签;当类型为10时,此字段为反向链路下游分配给上游的绑定反向链路的FEC的出标签。
第二标签字段:该字段只在类型为11时存在,这时它表示正向链路的下游分配给上游的绑定终结点地址的FEC的出标签。
分组头:该字段也只有在类型为11时有效,表示需要绑定的一个流的分组头信息。
2.链路建立过程
无线网络中的链路建立过程如图4所示。
(1)当LSRA收到一个分组则检查其数据链路层后的类型字段。若为00,则代表是带标签的分组,需要查找标签转发表转发至下一跳路由器;若为01,则代表是一个需要穿越本网的外网IP数据。LSRA就在数据报前端插入2个bit(10),并且随机选择一个空闲的标签值L1(8bit)插入到类型字段后面,转发至下一跳路由器LSRB(同时保留分组头部信息,以备后续的第三层转发之需),以通知LSRB“我要发数据给本分组中的目的地址,你以后若有发往我的源地址的数据,请用我给你的标签字段的值作为出标签发给我”,同时建立本地的标签转发表,如表2。
表中F1为绑定源地址的转发等价类;L1为LSRA分配给LSRB的出标签,被反向通信应用;由于下一跳即是非MPLS域,所以转发时将不再打上出标签了。
(2)LSRB收到LSRA发来的分组之后,动作同LSRA,只是当它监测到类型字段的值为10时,则以该分组的标签字段作为出标签绑定源地址构造FTN表,同时任选一个空闲标签值L2替换L1,转发至下一跳路由器LSRC。LSRC的FTN如表3。
(3)LSRC的动作如LSRB。
(4)LSRD收到LSRC发的数据分组后,发现自己就是这个分组在本网络的出节点(这可通过MPLS的HELLO机制来发现,后文将详述),则与LSRC一样修改FTN表项(如表4),然后剥离类型和标签字段交给第三层转发,并且创建一个正向建链帧(如图3)发送给LSRC。其中类型字段为11;标签字段为刚刚建立起来的反向链路的出标签L3;第二标签字段部分为LSRD在空闲的标签值中任选的一个标签L4,该标签将分配给LSRC,作为F2对应的标签。LSRD发此帧说明“我准备建立一条绑定到目的地址的FECF2,以后你有发往这个地址的分组就用我的第二标签字段的值来作为出标签来转发给我”。
(5)LSRC收到LSRD发来的类型为11的帧后,则按照已建立起的标签转发表转发该分组,并且利用第二标签字段和分组头字段的值建立自己的FTN表项,如表5。
(6)LSRB动作同LSRC。
(7)LSRA收到类型为11的帧后,发现自己是这个流的入节点,则按照LSRB的办法建立标签转发表。此时双向标签链路已经建立成功,各路由器可以按照建立好的标签转发表转发其后的分组。同时,其后的分组可以用标签直接替换IP分组头,在出口端再用存储的分组头恢复分组(有些头部信息如校验可能需要重新计算),从而减少了分组在无线网中的开销。如果分组头中某些变化字段对高层应用比较重要(如TTL字段),则这些变化字段可以保留传输,在我们所研究的网络中由于变化字段如TTL均意义不大,因此这些变化字段在设计时均未考虑。
四、邻站维护以及链路故障恢复
无线网络中的各站点具有移动性,全网的拓扑是处在变化之中的,所以我们有必要对邻站的可达性进行维护和对由于拓扑变化引起的链路故障进行修复和解决。
1.邻站可达性维护
在MPLS网络中,每一个节点周期性的向邻站发送HELLO消息,以确定自己周围的路由器是否可达。同时,HELLO消息里携带一个标志位,标明自己是否支持虚电路建链,每个结点根据HELLO消息建立一个MPLS邻接结点表。若收到邻站的标志位设置的HELLO信息,则代表邻站可达,并且具有MPLS功能(即代表是本网络中的路由器)。邻接点信息表和MPLS邻接点信息表将作为下一步虚电路建链的依据。
2.链路故障及恢复
由于随着网络拓扑的变化有些站可能会不可达,因此有可能会出现已经建好的链路因为拓扑的变化产生断链。这时就需要一些链路的恢复策略。
我们这里采用“重定向”的路径恢复策略[5]。即当需要转发的数据来到这个路由器时,发现FTN中的下一跳MAC不可达时,就将该分组封装成类型为10的建链分组,然后利用第三层转发,以此来建立新的链路。在建链过程中,若LSR中已经存在建链帧欲绑定的FEC的表项,就利用旧的表项的入标签和上游分配的出标签进行重建链并转发,但下一跳可能会变化。这对实现MPLS层的组播十分有利,可以快速地建立组播链路树。并且值得注意的是,LSR为每一个FTN的表项维护一个计时器,表项每被应用一次就重置计时器,若在超时时间内某个表项仍未被应用,则路由器认为这是一个闲置的流,则删除该表项,这将更加有利于节省标签空间。超时计时器的大小可根据具体网络规模及环境设定,建议比路由更新周期稍大一些,这样可以与拓扑变化频度相一致。
五、结束语
本文提出了一种在无线链路上建立基于MPLS的双向标签链路的方案,采用这种方案能以相对较小的时延和开销来创建全双工虚电路。本方案采用下游自主为上游分配标签的方法,先建立反向链路,然后再利用建立好的标签链路采用标签转发策略建立正向链路(所以延时和开销小)。这种方案采用包触发方式,综合了面向连接和无连接各自的优势,具有故障恢复快、丢包率低的特点,非常适用于具有一定移动性的无线网络,特别适用于条件恶劣、以群移动模式为主的军事无线通信网络。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。