標籤分發協議
MPLS體系中的主要協議之一
標籤分發協議LDP(Label Distribution Protocol)是 MPLS 體系中的一種主要協議。在MPLS 網路中,兩個標籤交換路由器(LSR)必須在它們之間或通過它們轉發流量的標籤上達成一致。
LDP 定義了一組程序和消息,通過它們一個 LSR 可以通知另一個 LSR 其已經形成的標籤捆綁。通過網路層路由信息與數據鏈路層交換路徑之間的直接映射,LSR 可以使用 LDP 協議通過網路來建立標籤交換路徑。
利用 LDP 交換標籤映射信息的兩個標籤交換路由器(LSR)作為 LDP 對等結點,並且它們之間有一個LDP標籤分發協議會話。在一個單個會話中,每一個對等結點都能獲得其它的標籤映射,換句話說,這個協議是雙向的。
2 bytes | 2 bytes |
Version | PDU Length |
LDP Identifier (6 bytes) | |
LDP Messages |
Version ― 協議版本號,當前為1。
PDU Length ― PDU 總長,不包括版本和 PDU 長欄位。
LDP Identifier ― 該欄位唯一識別由 PDU 請求的發送 LSR 的標籤空間。起始的4 Octet 對分配給 LSR 的 IP 地址進行編碼,最後的2 Octet 表示 LSR 中的標籤空間。
LDP Messages ― 所有
U | Message Type | Message Length |
Message ID | ||
Parameters |
U ― U 是一個未知信息位。
Message type ― 信息類型。信息類型包括:Notification、Hello、Initialization、Keep Alive、Address、Address Withdraw、Label Request、Label Withdraw、Label Release和 Unknown Message 名稱。
Message Length ― 信息 ID、命令參數和可選參數長(八位)。
Message ID ― 32位值,提供信息識別。
Parameters ― 參數包括 TLV。既有命令參數也有可選參數。有些信息沒有命令參數,有些信息沒有可選參數。
LDP消息LDP消息
在LDP協議中主要有4種消息:
(1)發現消息:用於通告和維護網路中LSP的存在;
(2)會話消息:用於建立、維護和終止LDP對等實體之間的會話連接;
(3)通告消息:用於創建、改編和刪除FEC-標記綁定;
(4)通知消息:用於提供建議性的消息和差錯通知。
LDP發現過程中,LSR通過周期性地發送HELLO消息來通告自身的存在。HELLO消息以UDP分組的形式發往“所有路由器”的組播地址。通過相互發送會話消息,l兩個LSP將那能夠完成初始化國曾,成為LDP對等體。兩個LDP對等體之間便可以通過交換通告消息執行標記的分發、收回等操作。而對LDP協議執行過程中出現的差錯以及意外事件的報告則由通知消息傳遞。為了保證這些操作的正確可靠,LDP使用TCP協議傳送會話、通告和通知消息。
除發現消息以外的所有LDP消息都被封裝在LDP協議數據單元(PDU)中,通過LDP對等體之間的TCP會話連接進行傳遞。LDP消息封裝的方式非常靈活,既不限制一個LDP PDU中承載消息的數量,也不要求這些消息之間存在任何關聯。
TLV
對於消息中所包含的信息,LDP使用“類型-長度-值”(TLV,TYPE-LENGTH-VALUE:TLV)的編碼結構進行封裝。顧名思義,經過TLV封裝后的信息將包含3個部分:首先是用於指示消息類型的部分;之後的長度欄位指示“值”欄位所包含的位元組數;而“值”欄位則沒有限制。而且“值”欄位本身就可以由多個TLV組成。常見的TLV包括FEC TLV 、標記TLV、跳數TLV、狀態TLV等等。
TLV格式
U
F
Type
Length
Value
TLV Format
U ― U 是未知 TLV 位。
F ― 轉發未知 TLV 位。
Type ― 對 Value 欄位轉換進行編碼。
Length ― 規定 Value 欄位長(八位)。
Value ― 八位長度串,Type 欄位指定的信息編碼長度
有些LDP消息在被LSR接收后需要繼續向其他LSR傳遞,對於那些包含未知TLV並且其中U比特置為1的消息,LSR將依據F比特進行轉發決策。LDP中規定,只有當F比特置為1事,才能執行對此類消息的轉發。
LDP會話機制
LDP 會話用於在LSP之間進行標記信息交換
(1)LDP會話的建立
在MPLS中,使用標記分發協議交換標記與FEC之間綁定信息的兩個LSR稱為標記分發對等體。假設由Ru發往Rd的數據流被映射為FEC_F,Ru和Rd經過協商,決定將標記L綁定給FEC_F。於是,就L與FEC_F之間的綁定關係而言,Ru和Rd稱為標記分發對等體,作為數據發送方的Ru被稱為上游LSR,Rd則相應地被稱為下游LSR。注意,所謂標記分發對等關係以及上下游關係都是針對於特定FEC與特定標記之間的綁定而言,是一種基於標記分發協議的邏輯關係,與兩個LSR在物理上是否相鄰並無直接聯繫。
(2)LDP 會話的維護
LDP會話的簡歷取決於兩個LSR之間是否存在相應的HELLO鄰居關係以及各自的會話參數能否為對方所接受。要將新建的會話保持下去,也需要以這兩個條件繼續成立為前提。