动态路由选择协议(三)链路状态路由选择协议
鏈路狀態不同于距離矢量路由協議依照傳聞進行路由選擇的工作方式,原因是鏈路狀態路由器從對等路由器那里獲取第一手信息。每臺路由器會產生一些關于自己、本地直連鏈路、這些鏈路的狀態(以此而得名)和所有直連相連鄰居的信息。這些信息從一臺路由器傳送到另外一臺路由器,每臺路由器都做一份信息拷貝,但是決不改動信息。最終目的是每臺路由器都有一個相同的有關網絡的信息,并且每臺路由器可以獨立地計算各自的最優路徑。
鏈路狀態協議,有時叫最短路徑優先協議或分布式數據庫協議,是圍繞著圖論中的一個著名算法——E.W.Dijkstra的最短路徑算法設計的。
鏈路的狀態有以下幾種:
- IP開放式最短路徑優先(OSPF);
- CLNS或IP ISO的中間系統到中間系統(IS-IS);
- DEC的DNA階段5;
- Novell的NetWare鏈路服務協議(NLSP)。
雖然鏈路狀態協議確實考慮得比距離矢量協議復雜,但是基本功能卻一點也不復雜。
步驟1:每臺路由器聯系與它的另據建立聯系,這種聯系叫做鄰接關系。
步驟2:每臺路由器向每個鄰居發送被稱為鏈路狀態通告(LSA)的數據單元。對每臺路由器鏈路都會生成一個LSA,LSA用于標識這條鏈路、鏈路狀態、路由器接口到鏈路的代價度量值以及鏈路所連接的所有鄰居。每個鄰居在收到通告之后將依次向它的鄰居轉發(泛洪)這些通告。
步驟3:每臺路由器都要在數據庫中保存一份它所收到的LSA的備份。如果所有工作正常,所有路由器的數據庫應該相同。
步驟4:完整的拓撲數據庫,也叫鏈接狀態庫,Dijkstra算法使用它對網絡圖進行計算得出到每臺路由器的最短路徑。接著鏈接狀態協議對鏈路狀態數據庫進行查詢找到每臺路由器所連接的子網,并把這些信息輸入到路由表中。
一、鄰居
鄰居發現是建立鏈路狀態環境并運轉的第一步。
第一步將使用Hello協議(Hello Protocol)。Hello協議定義了一個Hello數據包的格式和交換數據包并處理數據包信息的過程。
二、鏈路狀態泛洪擴散
建立鄰接關系之后,路由器開始發送LSA。從術語泛洪(Flooding),我們可以知道,通告被發送給每個鄰居。
路由器保存接收到的LSA,并依次向每個另據轉發,除了發送該LSA的鄰居之外。
這個過程是鏈路狀態優于距離矢量的一個原因。LSA幾乎是立刻被轉發,而距離矢量在發送路由更新信息之前必須運行算法并更新自身的路由表,甚至對觸發路由更新也是如此。因此,當網絡狀態路由變化時,鏈路狀態協議收斂速度遠遠快于距離矢量協議。
1. 序列號
泛洪的難點在于,當所有的路由器接收到所有的LSA時,泛洪擴散必須停止。
這里可以采用TTL值終止過期的數據包,但是之前幾乎不可能控制LSA在網絡中的漫游。
當路由器發送LSA時,在每個拷貝中的序列號都是一樣的。這個序列號和其他部分一起被保存在路由器的拓撲數據庫中,當路由器收到數據庫中已經在的LSA且序列號相同時,路由器將丟棄這些信息。如果信息相同但是序列號更大,那么接收信息和新序列號被保存到數據庫中,并且泛洪擴散該LSA。
按照如上的方式,當所有路由器都收到LSA的最新拷貝時,泛洪擴散將停止。
2. 老化
三、鏈路狀態數據庫
四、SPF算法
五、區域
轉載于:https://www.cnblogs.com/tuhooo/p/7475923.html
總結
以上是生活随笔為你收集整理的动态路由选择协议(三)链路状态路由选择协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 知网查重多少钱啊?
- 下一篇: 夏天过去了, 姥爷推荐几套来自smash