多协议标记交换2

发布时间:2005-03-08 作者:陈锡生 阅读量:

 1999年,多协议标记交换(MPLS)技术被评为十大热门通信技术之一。它在一个无连接的网络中引入连接的模式,代表了骨干网核心将选路与交换相结合的趋势。本讲座共分3讲,上讲已介绍的内容有:IP选路与交换、MPLS概述、标记分配与管理。

 

 

4 标记分配协议(LDP)

 

4.1 转发等效类(FEC)

(1)FEC元素及其类型

    LDP将FEC与由LDP产生的标记交换通路(LSP)结合在一起。每个FEC可由一个或多个FEC元素组成,每个FEC元素可识别映射到对应的LSP上的一组分组。当某个LSP由多个FEC元素共用时,此LSP将终止在多个FEC元素不再共用同一通路的节点上。

目前定义了以下两种FEC元素的类型:

  地址前缀:FEC元素是0至全地址的任何长度的地址前缀。

  主机地址:FEC元素是主机的全地址。

 

(2)映射规则

     将一特定的分组映射到一特定的LSP的过程要依次使用以下规则,直到实现上述映射为止:

    如果有这样一个LSP,其具有的一个主要地址FEC元素与分组的目的地址相同,则此分组映射到该LSP;

   如果存在多个LSP,每个LSP都具有一个等同于分组目的地址的主机地址FEC元素,则此分组可映射到其中某一个LSP;

   如果有这样一个LSP,其具有一个地址前缀FEC元素与分组的目的地址匹配,即该目的地址的开始部分与前缀相同,则将此分组映射到该LSP;

   如果存在多个LSP,则将此分组映射到对应于最长前缀匹配的LSP;

   如果已知分组要通过某个特定的出口路由器,而存在一个LSP,该LSP所具有的一个地址前缀FEC元素就是该路由器的地址,则此分组就映射到该LSP。

 

4.2 标记的空间与标识

  (1)标记空间(Label Space)

标记空间有以下两种类型:

    按接口的标记空间:由接口确定输入标记。此时LDP对等体必须通过该接口直连。

    按平台的标记空间:多个接口共享的平台范围内的输入标记。

  (2)LDP标识(LDP Identifier)

    LDP标识有6个8位位组,用来标识LSR的标记空间,前4个8位位组是分配给LSR的IP地址,后2个8位位组标识该LSR内的标记空间,可以表示如下:

<IP地址>:<标记空间id>

对于按平台的标记空间,后2个8位位组恒为0。

 

4.3 LDP会晤(LDP Session)

    在两个LSR之间可建立LDP会晤,以支持其间的标记信息互换。一个LSR可管理多个标记空间,则每个标记空间各有其LDP标识,向另一LSR传送标记信息时要分别建立LDP会晤。LDP会晤使用TCP的可靠传送方式,如果有多重会晤,则每个LDP会晤有一个TCP会晤。

 

  (1)LDP发现(LDP Discovery)

LDP发现是用于LSR发现LDP对等体的机制。发现机制有两种:

    基本发现机制:用来发现在链路级直连的邻接LSR。

LSR通过接口周期地发送LDP链路Hellos,以在该接口上实现基本发现,消息中含有LDP标识。LDP链路Hellos作为UDP分组发送,UDP是用户数据报协议。在某一接口上收到一个LDP链路Hello,就识别出该接口链路级上的一个可达LDP对等体的“Hello邻接”,并得知该接口所用的标记空间。

    扩展发现机制:用于在链路非直接的LSR的定位。

为进行LDP扩展发现,LSR向某个IP地址周期发送LDP目标Hellos,消息中含有LDP标识,也作为UDP分组发送。LDP扩展发现与LDP基本发现的不同是,扩展发现是发往某个特定的IP地址,并且是不对称的,即当LSR启动与另一个目标LSR的扩展发现时,目标LSR可决定是否响应,如决定响应才向启动的LSR周期发送目标Hellos。收到一个LDP目标Hello,就识别出在网络级上的一个可达LDP对等体的“Hello邻接”,及其所用的标记空间。

 

(2)LDP会晤的建立与保持

    LDP会晤的建立两个LSR之间LDP发现Hellos的交换触发了LDP会晤的建立,建立步骤为:

    ①传送连接建立

    设在LSR1与LSR2之间建立LDP会晤,LSR1的标记空间为LSR1,a,LSR2的标记空间LSR,b。传送连接建立的简要过程如下:

——LSR1试图开启一个用于与LSR2会晤的TCP连接。LSR1确定用于LSR1端和LSR2端的传送地址A1和A2。

如果LSR1向LSR2发送的Hello中含有“传送地址任选对象”TLV,则A1即此TLV中的地址;如果LSR1未使用这一任选的TLV,则A1即为向LSR2发送的Hello中的源IP地址。TLV含义见后述。A2地址的确定同上,但由LSR1从由LSR2收到的Hello中的相关内容来确定。——LSR1确定在会晤建立中作为主动方还是被动方,为此要将地址A1和A2作为无符号整数进行比较。如A1>A2,LSR1为主动方,否则为被动方。——如果LSR1是主动方,就连接到地址A2上的LDP端口,以建立LDP的TCP连接;反之亦然。

    ②会晤初始化

    LSR1与LSR2之间建立传送连接后,就通过传送LDP初始化消息来协商会晤参数,包括LDP协议版本、标记分配方法、定时器值、VPI/VCI范围(对于标记控制的ATM)等参数。

    LDP会晤的保持LSR具有KeepAlive定时器,每当从会晤对方收到LDP PDU时,就将定时器复位,重新开始监视。如果未收到对方发来的LDP PDU而定时器超时,就可判定传送连接或对等体出现故障,就关闭传送连接以终止LDP会晤。

    因此每当LDP会晤建立后,LSR要使对方在至少每隔KeepAlive的周期内能收到一个LDP PDU,能重新启动定时器。所发送LDP PDU可为任何的协议消息,如无任何信息要传送,可发送KeepAlive消息。LSR也可在任何时刻终止会晤,为此可发送Shutdown消息。

 

4.4 LDP PDU与LDP消息

 

 (1)LDP PDU

    LDP消息的交换是通过在LDP会晤的TCP连接上发送LDP PDU来实现的。每个LDP PDU携带一个或多个消息,如果有多个消息,这些消息之间并不需要相关。

    每个LDP PDU由LDP头与后随的一个或多个LDP消息组成。LDP头的格式如图4所示,包含版本PDU长度和LDP标识。版本为由两个8位位组构成的无符号整数,表示协议版本,目前为版本1。PDU长度为除去版本和PDU长度字段以外的整个PDU长度(以8位位组为单位),由两个8位位组的整数表示。LDP标识前已说明。

 

(2)类型—长度—值(TLV)

    LDP消息中所携带的信息大多用TLV表示。每个TLV的格式如图5所示,包含类型、长度和值字段。

    类型

    类型有2个8位位组,其中的14个比特用于表示类型,另2个比特用于LSR不能识别该类型时所采取的动作。这2个比特称为U比特和F比特。

    U比特为未知TLV比特:当收到一个不能理解的TLV时,如U=0,要向消息发送者返回通知信息并丢弃整个消息;如U=1,则仅丢弃该TLV,而消息的其余部分仍照常处理。

    F比特为转发未知TLV比特,仅当U比特等于1,而包含了未知TLV的LDP消息需要转发时,才用到F比特。当F=0,未知TLV不随同原包含此TLV的消息一起转发;当F=1,未知TLV也随消息一起转发。

14比特的类型编码表明值字段的含义。

    长度

    长度字段表示值字段的长度,以8位位组为单位。

    值

    原则上,在LDP PDU中要传送的任何信息均可编码为TLV中的值,值由一串8位位组构成,长度可变。值的长度由长度字段表明,值的含义由类型规定。值字段本身可包含TLV,即TLV可以嵌套。

 

(3)LDP消息

    消息格式

    所有LDP消息具有如图6所示的格式。——U比特:U比特为未知消息比特。当收到未知消息时,如U=0,要向消息发送者返回通知消息;如U=1,则未知消息不予处理。——消息类型:表明消息的不同类型。LDP版本1定义了下列消息类型:通知(Notification)、招呼(Hello)、初始化(Initialization)、保持存在(Keep Alive)、地址(Address)、地址撤消(Address Withdraw)、标记映射(Label Map-ping)、标记请求(Label Requst)、标记中止请求(Label Abort R)、标记撤消(Label Withdraw)、标记释放(Label Release)。

——消息长度:表明消息长度字段以后的消息长度,以8位位组为单位。

——消息标识:用来标识消息的32个比特。当收到此消息的对方返回通知消息时,应在通知消息中包含此消息的标识。

——必备参数:必备参数为可变长度,有些消息可不含有必备参数。

——任选参数:任选参数也是可变长度,很多消息均不含有任选参数。

 

  消息的作用简介

——通知消息:用来将某个重要事件通知对方,例如发生差错,LDP会晤的状态,处理某个LDP的结果等。

——招呼消息:前已述及,Hello消息是用于LDP发现的机制中。

——初始化消息:前已述及,初始化消息是用于LDP会晤建立过程。

——保持存在消息:用于保持传送连接。前已述及,当无其它消息传送时,应发送保持存在消息,以免对方保持存在定时器超时,从而保持传送连接的存在。

——地址消息:LSR用来向对方传送其接口地址。

——地址撤消消息:LSR用来向对方撤消前已传送的接口地址。

——标记映射消息:LSR用来向对方传送FEC与标记的捆合关系,消息中应包含FEC TLV和标记TLV。

——标记请求消息:上游LSR用来向下游LSR发出请求,以获得对映射到某个FEC的标记,为此消息中应含有FEC TLV。

——标记中止请求消息:在某些情况下,例如某个FEC的下一跳LSR已改变,上游LSR可发送标记中止请求消息,以中止标记请求。

——标记撤消消息:LSR用来通知对方不再继续使用先前传送的特定的FEC与标记间的映射关系。

——标记释放消息:LSR用来向对方表明,不再需要先前从对方收到或向对方请求的标记。

 

 

5 ATM-LSR

 

5.1 ATM-LSR的性能要求

    由标记交换控制组件所控制的ATM接口称为标记交换控制的ATM(ATM-LC-ATM)接口。ATM标记交换路由器(ATM-LSR)就是具有LC-ATM接口和ATM交换结构的LSR,在LC-ATM接口间转发信元。标记在VCI域或VPI/VCI域中携带。互相之间用LC-ATM接口互连的一组ATM-LSR可组成ATM-LSR域。对ATM-LSR的性能要求如下:

  (1)支持标记交换的控制

    为支持标记交换,用作LSR的ATM交换机必须具有标记交换的控制功能,包括参与选路协议(如OSPF)以及能实现标记的分配、捆合、传播与保持等功能,但不要求具有由ITU和ATM论坛制定的ATM控制面的功能(如U-NI、PNNI)。在需要时,也可支持ATM控制面并存的SIN模式。

 

(2)VC合并

    ATM通常不支持点到点和多点到多点的VC转发,这意味着不能支持VC合并。但ATM-LSR最好能支持VC合并。VC合并实现方式见后述。

 

(3)封装

    封装过程只涉及ATM-LSR域的边缘LSR。在通常情况下,加标记的分组可采用通过ATM AAL5的多协议封装(RFC1483)中的空封装。但是,当VPI/VCI是作为标记栈中的顶端标记时,分组必须包含VPI/VCI。当发送出去时,顶端标记值要置成0,接收方不予处理,但仍含有COS和TTL字段。

 

(4)环路检测

    TTL处理只涉及ATM-LSR域的边缘LSR。但是ATM-LSR可以将环路检测作为一项任选功能。环路检测使用分配通路向量,可检测环路,并不能防止转发环路的形成。如不采用此方法,则要依靠TTL来检测。但使用此方法可更快地检测环路,但开销较大。(待续)

 

 

参考文献

1 A Viswanathan:et al.Evolution of Multiprotocol Label Switching.IEEE Commun Magazine:1998:36(5),165-173

2 R Callon:et al.A Framework for Multiprotocol Label Switching.Internet Draft:July 1999

3 Eric C Rosen:et al.Multiprotocol Label Switching Ar-chitecture.Internet Draft:April 1999

4 L Andersson:et al.LDP Specification.Internet Draft :June 1999

5 B Davie:et al.MPLS Using LDP and ATM VC Switching. Internet Draft.April 1999

6 B Jamoussi:et al.MPLS Ships in the Night Operation with ATM.Internet Draft:August 1998

7 I Widjaja and Anwar I Elwalid.Performance Issues in VC-Merge Capable Switches for Multiprotocol Label Switching.IEEE JSAC:1999:17(6),1178-1189

8 D Ooms:et al.Framework for IP Multicast in MPLS. Internet Draft:August 1998

9 Y Ohba:et al.MPLS Loop Prevention Mechanism. In-ternet Draft:May 1999

10 Y Ohba.Issues on Loop Prevention in MPLS Net-works. IEEE Commun Magazine:1999:37(12),64-68

 

(收稿日期:2000-06-12)