1 引 言
在文件[1]中描述了多協(xié)議標(biāo)簽交換MPLS(Multiprotocol Label Switching )協(xié)議的結(jié)構(gòu)。作為標(biāo)簽交換路由器能用于幀中繼交換。幀中繼交換運(yùn)行網(wǎng)絡(luò)層的路由算法(如OSPF,IS-IS)和在這些路由算法基礎(chǔ)上向前傳送數(shù)據(jù)。不需要特定的幀中繼選路。
幀中繼交換適用于標(biāo)簽交換時,在幀的幀中繼數(shù)據(jù)鏈路層的首部DLCI(Data Link Connection Identifier)字段中承載頂層(當(dāng)前)標(biāo)簽。幀中繼交換不處理與頂層標(biāo)簽一起承載的附加信息,如果有多個標(biāo)簽的包,附加信息與其他標(biāo)簽一起在文件[3]定義的MPLS普通封裝中承載。
能夠配置幀中繼永久的虛電路(PVCs)承載標(biāo)簽交換基本業(yè)務(wù)。當(dāng)MPLS標(biāo)簽和幀中繼交換都適合幀中繼交換路由器時應(yīng)該用DLCIs,根據(jù)本規(guī)范應(yīng)該封裝MPLS業(yè)務(wù)和在網(wǎng)絡(luò)層路由信息基礎(chǔ)上向前傳送。
2 幀中繼交換的特性
標(biāo)簽交換的結(jié)構(gòu)允許在LSR(Label Switching Router)執(zhí)行中有相當(dāng)大的靈活性,而(可能預(yù)先存在的)硬件有能力約束FR-LSR,多協(xié)議互聯(lián)利用的幀格式和幀中繼標(biāo)準(zhǔn)一樣。由于這樣的約束,F(xiàn)R-LSRs需要一些特殊過程。
影響它的性能(如LSRs )的幀中繼交換的一些主要特點(diǎn)是:
*在幀的幀中繼數(shù)據(jù)鏈路首部中DLCI字段上實(shí)現(xiàn)標(biāo)簽交換功能;這規(guī)定了在包中標(biāo)簽的長度和位置。DLCI字段的長度可能是10(缺。┗23比特和在首部中它能夠擴(kuò)展到2或4個字節(jié)。
*當(dāng)在路由器中IP首部上執(zhí)行時,一般不能實(shí)現(xiàn)“TTL(Time To Live)-減少”功能。
*在建立的電路上傳遞參數(shù)的每個節(jié)點(diǎn)執(zhí)行阻塞控制?梢栽趲氖撞恐性O(shè)定標(biāo)記作為阻塞結(jié)果或超過約定的電路參數(shù)。
*雖然在標(biāo)準(zhǔn)交換中,可以配置多個輸入DLCIs對一個輸出DLCI,在多點(diǎn)對一點(diǎn)電路中得到,一般不完全支持多點(diǎn)對多點(diǎn)VCs。
3 標(biāo)簽封裝和堆棧
3.1 標(biāo)簽封裝
在缺省狀態(tài),應(yīng)該用普通的標(biāo)簽封裝發(fā)送全部帶標(biāo)簽的包,使用幀中繼空封裝機(jī)理:
“n”是Q.922的地址長度,可以是2或4個字節(jié)。
DLCI的Q.922[ITU]表示法(按規(guī)范的順序,權(quán)值最小的比特存儲在第一位,即在存儲器中一個字節(jié)的最右邊的比特)如下:
幀中繼空封裝的使用意味著標(biāo)簽隱含著編碼網(wǎng)絡(luò)協(xié)議的類型。
在文件[3]中描述了關(guān)于標(biāo)簽堆棧結(jié)構(gòu)和返回到幀源的差錯消息。
對于深層“n”的標(biāo)簽堆棧,普通封裝包含“n”標(biāo)簽,在頂層堆棧條目中承載著對EXP,S和TTL字段的有意義的值,而非標(biāo)簽,標(biāo)簽更適合在按Q.922地址形式編碼的幀中繼數(shù)據(jù)鏈路首部的DLCI字段中承載。
3.2 標(biāo)簽堆棧
每個標(biāo)簽堆棧條目用4個字節(jié)表示
標(biāo)簽:20比特標(biāo)簽值;EXP:試驗(yàn)用3比特;S:堆棧的底部1比特;TTL:8比特。
4 幀中繼標(biāo)簽交換處理
4.1 DLCIs的使用
用標(biāo)簽與路由的結(jié)合完成標(biāo)簽交換和用標(biāo)簽值向前傳送包,包括確定任意更換標(biāo)簽的值。在FR-LSR中,頂層(當(dāng)前)MPLS標(biāo)簽在幀的幀中繼數(shù)據(jù)鏈路層的首部DLCI字段中承載。頂層標(biāo)簽載著關(guān)于網(wǎng)絡(luò)類型的隱含信息。
對于兩種連接的FR-LSRs,全雙工連接時LDP(Label Distribution Protocol)一定是可用的。用配置方法分配LDP VC的DLCI值,類似于配置DLCI用在兩個交換機(jī)之間運(yùn)行IP路由協(xié)議。
除這個配置值以外,用DLCI值可以處理鏈路兩個方向的MPLS,屬于兩個獨(dú)立的空間,即,VCs可以是“半雙工”,每個方向用它自己的DLCI。
DLCIs允許的范圍,DLCIs長度和支持通過LDP消息傳達(dá)VC合并。注意用標(biāo)簽的DLCIs范圍取決于DLCI字段的長度。
4.2 同類LSPs
如果是一個LSP(Label Switching Path),當(dāng)從LSR1發(fā)送包P到LSR2和LSR3時,LSR1,LSR2和LSR3用相同的標(biāo)簽堆棧編碼。像一個LSP使用同類的。
4.3 不是同類LSPs
如果是一個LSP,當(dāng)發(fā)送包P到LSR2時,LSR1用一個標(biāo)簽堆棧編碼,當(dāng)發(fā)送包P到LSR3時,而LSR2用不同的編碼。在一般情況下,MPLS結(jié)構(gòu)支持在不同的跳上有不同的標(biāo)簽堆棧編碼的LSPs。當(dāng)收到貼標(biāo)簽的包時,LSR必須譯碼確定當(dāng)前標(biāo)簽堆棧的值,必須在標(biāo)簽堆棧上運(yùn)行確定堆棧的新標(biāo)簽值和在發(fā)送貼標(biāo)簽的包到它的下一跳之前適當(dāng)?shù)木幋a新值。
運(yùn)行幀中繼交換的LSRs和其它LSRs結(jié)合的MPLS網(wǎng)絡(luò),其它LSRs用其他MPLS封裝,如普通(MPLS填充首部)或ATM封裝。在這樣的網(wǎng)中,可能有些LSRs,帶有幀中繼接口及MPLS普通接口。這是同一LSP的不同跳上有不同標(biāo)簽堆棧編碼LSR的一個例子。在輸入接口上LSR可能不交換幀中繼標(biāo)簽編碼和在輸出接口上用標(biāo)簽編碼進(jìn)入普通MPLS首部代替它。
4.4 幀中繼標(biāo)簽交換回路的預(yù)防和控制
FR-LSRs應(yīng)該在空閑FR-LSPs回路或LSP幀中繼段上運(yùn)行,因此FR-LSPs應(yīng)該用回路檢測和可用的回路預(yù)防機(jī)理。
4.4.1 FR-LSRs回路控制——MPLS TTL處理
在MPLS標(biāo)簽堆棧中編碼的MPLS TTL用下面的機(jī)理:
。╝)抑制回路;
(b)限制包的范圍。
當(dāng)數(shù)據(jù)包沿著LSP傳播時,如果經(jīng)過路由器的順序相同,不管有沒有標(biāo)簽交換應(yīng)該顯現(xiàn)相同的TTL值。如果數(shù)據(jù)包沿著LSPs層次傳播時,在TTL值中應(yīng)反映經(jīng)過LSR跳的總數(shù)。
MPLS TTL的初始值從前面的TTL值加載到新推進(jìn)的標(biāo)簽條目中,當(dāng)前面的標(biāo)簽堆棧不存在時,來自網(wǎng)絡(luò)層的首部或預(yù)先存在的低層標(biāo)簽堆棧條目。
FR-LSR同層交換貼標(biāo)簽的包不消耗MPLS TTL。FR-LSR的順序是“非-TTL段”。
當(dāng)數(shù)據(jù)包從“非-TTL LSP段”顯現(xiàn)時,它跨過的LSR-跳數(shù)值,應(yīng)該反映在TTL中。在“獨(dú)播”情況下,傳播LSP的長度或LSP幀中繼段的長度到FR-LSR入口節(jié)點(diǎn),在傳送包進(jìn)入非-TTL LSP段之前,能使入口消耗TTL值。
當(dāng)入口FR-LSR消耗MPLS TTL時,在數(shù)據(jù)包到達(dá)“非-TTL LSP段”的出口前,特殊數(shù)據(jù)包的TTL將過期,F(xiàn)R-LSR一定不交換帶標(biāo)簽的包,而遵守文件[2]中的規(guī)范,企圖返回差錯消息到包的源。
*它作為一個過期的包處理和返回一個ICMP消息到它的源。
*它作為無標(biāo)簽的包傳送,用TTL反映IP(網(wǎng)絡(luò)層)傳送。
如果進(jìn)來的TTL是1,只用第一個選項(xiàng)。在多播情況下,LSP長度或LSP段長度傳播到FR-LSR出口節(jié)點(diǎn),在包傳出非-TTL LSP段之前,出口消耗TTL值。
4.4.2 執(zhí)行MPLS TTL計算
用“輸入TTL”計算得到“輸出TTL”取決于(i)“輸入封裝”,(ii)“傳送封裝”和(iii)“輸出封裝”。(i),(ii)和(iii)之間的關(guān)系定義為“輸入封裝”(ie),“傳送封裝”(fe)和“輸出封裝”(oe)的函數(shù)“D”。用“輸入TTL”計算得到“輸出TTL”說明如下:
輸出TTL=輸入TTL-D(ie,fe,oe)
或簡要符號:
輸出TTL=輸入TTL-d
“d”有三個可能值:“0”,“1”或“LSP段的跳數(shù)”:
“獨(dú)播”傳輸:
當(dāng)傳送包時,“LSP段的跳數(shù)”值是有標(biāo)簽的跳數(shù)值,當(dāng)為LSP分配標(biāo)簽時,如果LDP提供跳數(shù)值,那是有“跳數(shù)目標(biāo)”的LDP消息。如果LDP不提供跳數(shù)值或提供一個“未知”值和缺省“段的跳數(shù)”值是1。
當(dāng)發(fā)送標(biāo)簽連結(jié)上游時,跳數(shù)值與來自下游的相應(yīng)連結(jié)有關(guān),如果不同于“未知”值,必須加1和向上游發(fā)送結(jié)果作為與新的連結(jié)有關(guān)的跳數(shù)值(不改變發(fā)送的未知值)。如果新的跳數(shù)值超過“最大”值,F(xiàn)R-LSR不必向上游傳遞連結(jié),但必須向上游發(fā)送一個錯誤。
多播傳輸:
“傳送封裝”用縮寫:“I”對應(yīng)IP(網(wǎng)絡(luò)層),“G”對應(yīng)于普通MPLS和“F”對應(yīng)幀中繼MPLS,如果LSR接口用縮寫:“i”對應(yīng)輸入或輸出封裝是IP和非MPLS封裝,“g”對應(yīng)于輸入或輸出MPLS封裝是普通MPLS,“f”對應(yīng)幀中繼,“a”是ATM和認(rèn)為符號“iIf”,“gGf”,“fFf”,等作為LSRs輸入,傳送和輸出封裝。下面舉例說明對于各種LSPs的TTL計算:
“iIf”在幀中繼LSP“入口LSR”計算:
mpls_ttl=IP_TTL-跳數(shù)值=n-5
“fIi”是來自幀中繼LSP的“出口LSR”計算:
IP_ttl=mpls_ttl-1=n-6
“iIg”在LSP的“入口LSR”,計算:mpls_
ttl=n-1
“gGf”是來自普通MPLS段的“出口LSR”,在幀中繼段的“入口LSR”計算:mpls_ttl=n-6
“fGa”是來自幀中繼段的“出口LSR”,在ATM段的“入口LSR”計算:mpls_ttl=n-9
“gGf”是來自普通MPLS段的“出口LSR”,在幀中繼段的“入口LSR”計算:mpls_ttl=n-13
“fGg”是來自幀中繼段的“出口LSR”,在普通MPLS段的“入口LSR”計算:mpls_ttl=n-14
“gIi”是來自LSP的“出口LSR”計算:IP_ttl=n-15
幀中繼“獨(dú)播”——在入口計算的TTL
幀中繼多播——在出口計算的TTL