13.2.3 ldp 會話建立過程
1、ldp裝置發現
ldp對等體之間的會話有兩種,本地ldp會話和遠端ldp會話。
本地ldp會話必須要求對等體之間是直連的,在配置ldp時不需要指定ip,裝置採用組播的hello報文發現直連鏈路上的其他ldp對等體;遠端ldp會話不要求必須直連,但是在配置時要指定對等體的ip位址。
在設別的介面啟用ldp後,介面便開始周期性地傳送hello報文,ldp的hello報文採用udp封裝,源udp埠號和目的udp埠號都是646,hello報文以組播方式傳送,目的ip位址為224.0.0.2。
( tcp 和 udp 的 646埠 均被 iana 指定為 ldp 協議專用的埠號)
在lsr啟用ldp後,對應啟用ldp的介面將開始週期性的傳送ldp hello報文,攜帶的資訊如上圖所示,其中傳輸位址用於後續ldp會話建立。ldp裝置預設將lsr id作為傳輸位址,但是可以通過命令修改,如「mpls ldp transport-address loopback 2」將loopback 2介面的ip位址作為傳輸位址。
這時通過r2可以看到,r2已經發現了r1。
2、ldp會話建立
通過收發ldp報文,ldp裝置可以發現彼此,並知曉了對方的傳輸位址,接下來會利用傳輸位址建立tcp會話,預設由傳輸位址較大的一方發起tcp連線建立請求。
需要注意的是,建立ldp會話的前提是,r1要有去往2.2.2.2的路由,r2要有去往1.1.1.1的路由。通常條件下,會在每台lsr上建立乙個loopback介面,這個介面的ip位址會作為lsr id和ldp傳輸位址。而作為lsr id和ldp傳輸位址可以正常生效的前提,是在mpls域中提前部署了igp協議。
完成了tcp三次握手後,擁有最大傳輸位址的r2將主動傳送乙個initialization(初始化)報文給r1,初始化報文裡的資訊包括ldp協議版本號、保活時間、標籤通告方式、lsr id及標籤空間等。r1收到後會對這些引數進行檢查,如果認可這些引數,則會給r2傳送自己的初始化報文,同時傳送乙個keeplive報文給r2用以確認。r2收到這兩個報文後,會檢查r1初始化報文中的相關引數,如果r2認可這些引數,會給r1傳送乙個keeplive報文用以確認,這時r1和r2的ldp對等體關係已經建立起來了。此時在r2上面檢視ldp鄰居狀態如下圖所示:
(在display mpls ldp session 命令中增加 verbose 關鍵字,可以檢視 ldp會話 建立情況和詳細內容)
3、通告標籤對映
第十三章 併發
13.1 動機 13.2 基本執行緒 如果必須要控制現成的執行順序,最好是根本不用執行緒,而是自己編寫特定順序彼此控制的協作子程式。繼承thread類或者實現runnable介面。內部類實現。13.3 共享受限資源 1 如果要對類中的某個方法進行同步控制,最好同步所有方法。如果忽略了其中乙個,通常很...
第十三章 類
1.類簡單地說是乙個性的資料型別。類當中有資料成員,和成員函式。類的基本思想就是體現出資料的抽象和封裝。2.這裡只需要說明乙個問題即可 就是類成員函式的const型別 class screen public const int get const int i const int j const 這裡...
第十三章 事件
1 事件的作用 事件是對委託的封裝,如同屬性對字段的封裝。封裝後可以在委託上實現更複雜的邏輯。1.1 封裝訂閱 委託允許使用 對其進行賦值,但向乙個委託例項賦值多個委託時,使用 會造成覆蓋之前的委託。事件只支援 或 對事件進行賦值 1.2 封裝發布 委託可以在其他類進行訪問,而事件可以確保只有包容類...