❶ 路由演算法的類型有
路由演算法有很多種,如果從路由表對網路拓撲和通信量變化的自適應能力的角度劃分,可以分為靜態路由演算法和動態路由演算法兩大類,這兩大類又可細分為幾種小類型,比較典型常見的有以下幾種:
一、靜態路由演算法
1.Dijkstra演算法(最短路徑演算法)
Dijkstra(迪傑斯特拉)演算法是典型的單源最短路徑演算法,用於計算一個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴展,直到擴展到終點為止。Dijkstra演算法是很有代表性的最短路徑演算法,在很多專業課程中都作為基本內容有詳細的介紹,如數據結構,圖論,運籌學等等。Dijkstra一般的表述通常有兩種方式,一種用永久和臨時標號方式,一種是用OPEN,CLOSE表的方式,這里均採用永久和臨時標號的方式。注意該演算法要求圖中不存在負權迴路。
Dijkstra演算法執行步驟如下:
步驟一:路由器建立一張網路圖,並且確定源節點和目的節點,在這個例子里我們設為V1和V2。然後路由器建立一個矩陣,稱為「鄰接矩陣」。在這個矩陣中,各矩陣元素表示權值。例如,[i,j]是節點Vi與Vj之間的鏈路權值。如果節點Vi與Vj之間沒有鏈路直接相連,它們的權值設為「無窮大」。
步驟二:路由器為網路中的每一個節點建立一組狀態記錄。此記錄包括三個欄位:
前序欄位———表示當前節點之前的節點。
長度欄位———表示從源節點到當前節點的權值之和。
標號欄位———表示節點的狀態。每個節點都處於一個狀態模式:「永久」或「暫時」。
步驟三:路由器初始化(所有節點的)狀態記錄集參數,將它們的長度設為「無窮大」,標號設為「暫時」。
步驟四:路由器設置一個T節點。例如,如果設V1是源T節點,路由器將V1的標號更改為「永久」。當一個標號更改為「永久」後,它將不再改變。一個T節點僅僅是一個代理而已。
步驟五:路由器更新與源T節點直接相連的所有暫時性節點的狀態記錄集。
步驟六:路由器在所有的暫時性節點中選擇距離V1的權值最低的節點。這個節點將是新的T節點。
步驟七:如果這個節點不是V2(目的節點),路由器則返回到步驟5。
步驟八:如果節點是V2,路由器則向前回溯,將它的前序節點從狀態記錄集中提取出來,如此循環,直到提取到V1為止。這個節點列表便是從V1到V2的最佳路由。
2.擴散法
事先不需要任何網路信息;路由器把收到的每一個分組,向除了該分組到來的線路外的所有輸出線路發送。將來會有多個分組的副本到達目的地端,最先到達的,可能是走了「最優」的路徑常見的擴散法是選擇性擴散演算法。
3.LS演算法
採用LS演算法時,每個路由器必須遵循以下步驟:
步驟一:確認在物理上與之相連的路由器並獲得它們的IP地址。當一個路由器開始工作後,它首先向整個網路發送一個「HELLO」分組數據包。每個接收到數據包的路由器都將返回一條消息,其中包含它自身的IP地址。
步驟二:測量相鄰路由器的延時(或者其他重要的網路參數,比如平均流量)。為做到這一點,路由器向整個網路發送響應分組數據包。每個接收到數據包的路由器返回一個應答分組數據包。將路程往返時間除以2,路由器便可以計算出延時。(路程往返時間是網路當前延遲的量度,通過一個分組數據包從遠程主機返回的時間來測量。)該時間包括了傳輸和處理兩部分的時間——也就是將分組數據包發送到目的地的時間以及接收方處理分組數據包和應答的時間。
步驟三:向網路中的其他路由器廣播自己的信息,同時也接收其他路由器的信息。
在這一步中,所有的路由器共享它們的知識並且將自身的信息廣播給其他每一個路由器。這樣,每一個路由器都能夠知道網路的結構以及狀態。
步驟四:使用一個合適的演算法,確定網路中兩個節點之間的最佳路由。
路由演算法有哪些類型?路由演算法與路由協議的區別
在這一步中,路由器選擇通往每一個節點的最佳路由。它們使用一個演算法來實現這一點,如Dijkstra最短路徑演算法。在這個演算法中,一個路由器通過收集到的其他路由器的信息,建立一個網路圖。這個圖描述網路中的路由器的位置以及它們之間的鏈接關系。每個鏈接都有一個數字標注,稱為權值或成本。這個數字是延時和平均流量的函數,有時它僅僅表示節點間的躍點數。例如,如果一個節點與目的地之間有兩條鏈路,路由器將選擇權值最低的鏈路。
二、動態路由演算法
1.距離向量路由演算法
距離向量路由演算法,也叫做最大流量演演算法,其被距離向量協議作為一個演算法,如RIP、BGP、ISO IDRP、NOVELL IPX。使用這個演算法的路由器必須掌握這個距離表(它是一個一維排列-「一個向量」),它告訴在網路中每個節點的最遠和最近距離。在距離表中的這個信息是根據臨近接點信息的改變而時時更新的。表中數據的量和在網路中的所有的接點(除了它自己本身)是等同的。這個表中的列代表直接和它相連的鄰居,行代表在網路中的所有目的地。每個數據包括傳送數據包到每個在網上的目的地的路徑和距離/或時間在那個路徑上來傳輸(我們叫這個為「成本」)。這個在那個演算法中的度量公式是跳躍的次數,等待時間,流出數據包的數量,等等。在距離向量路由演算法中,相鄰路由器之間周期性地相互交換各自的路由表備份。當網路拓撲結構發生變化時,路由器之間也將及時地相互通知有關變更信息。其優點是演算法簡單容易實現。缺點是慢收斂問題,路由器的路徑變化需要像波浪一樣從相鄰路由器傳播出去,過程緩慢。
每一個相鄰路由器發送過來的路由表都要經過以下步驟:
步驟一:對地址為X的路由器發過來的路由表,先修改此路由表中的所有項目:把」下一跳」欄位中的地址改為X,並把所有」距離」欄位都加1。
步驟二:對修改後的路由表中的每一個項目,進行以下步驟:
(1)將X的路由表(修改過的),與S的路由表的目的網路進行對比。若在X中出現,在S中沒出現,則將X路由表中的這一條項目添加到S的路由表中。
(2)對於目的網路在S和X路由表中都有的項目進行下面步驟:
1)在S的路由表中,若下一跳地址是x,則直接用X路由表中這條項目替換S路由表中的項目。
2)在S的路由表中,若下一跳地址不是x,若X路由表項目中的距離d小於S路由表中的距離,則進行更新。
步驟三:若3分鍾還沒有收到相鄰路由器的更新表,則把此相鄰路由器記為不可到達路由器,即把距離設置為16。
2.鏈路狀態最短路由優先演算法SPF
1)發現鄰居結點,並學習它們的網路地址;
2)測量到各鄰居節點的延遲或者開銷;
3)創建鏈路狀態分組;
4)使用擴散法發布鏈路狀態分組;
5)計算到每個其它路由器的最短路徑。
❷ 路由技術的演算法分類
路由選擇演算法就是路由選擇的方法或策略。
按照路由選擇演算法能否隨網路的拓撲結構或者通信量自適應地進行調整變化進行分類,路由選擇演算法可以分為靜態路由選擇演算法和動態路由選擇演算法。 靜態路由選擇演算法就是非自適應路由選擇演算法,這是一種不測量、不利用網路狀態信息,僅僅按照某種固定規律進行決策得簡單得路由選擇演算法。靜態路由選擇演算法得特點是簡單和開銷小,但是不能適應網路狀態的變化。靜態路由選擇演算法主要包括擴散法和固定路由表法。靜態路由是依靠手工輸入的信息來配置路由表的方法。
靜態路由具有以下幾個優點:減小了路由器的日常開銷。在小型互聯網上很容易配置。可以控制路由選擇的更新。但是,靜態路由在網路變化頻繁出現的環境中並不會很好的工作。在大型的和經常變動的互聯網,配置靜態路由是不現實。 動態路由選擇演算法就是自適應路由選擇演算法,是依靠當前網路的狀態信息進行決策,從而使路由選擇結果在一定程度上適應網路拓撲結構和通信量的變化。
動態路由選擇演算法的特點是能較好的適應網路狀態的變化,但是實現起來較為復雜,開銷也比較大。動態路由選擇演算法一般採用路由表法,主要包括分布式路由選擇演算法和集中式路由選擇演算法。分布式路由選擇演算法是每一個節點通過定期得與相鄰節點交換路由選擇得狀態信息來修改各自的路由表,這樣使整個網路的路由選擇經常處於一種動態變化的狀況。集中式路由選擇演算法是網路中設置一個節點,專門收集各個節點定期發送得狀態信息,然後由該節點根據網路狀態信息,動態的計算出每一個節點的路由表,再將新的路由表發送給各個節點。
❸ 路由器的選擇路由演算法
拜託下次不要發錯地方了...
路由演算法
——路由演算法在路由協議中起著至關重要的作用,採用何種演算法往往決定了最終的尋徑結果,因此選擇路由演算法一定要仔細。通常需要綜合考慮以下幾個設計目標:
——(1)最優化:指路由演算法選擇最佳路徑的能力。
——(2)簡潔性:演算法設計簡潔,利用最少的軟體和開銷,提供最有效的功能。
——(3)堅固性:路由演算法處於非正常或不可預料的環境時,如硬體故障、負載過高或操作失誤時,都能正確運行。由於路由器分布在網路聯接點上,所以在它們出故障時會產生嚴重後果。最好的路由器演算法通常能經受時間的考驗,並在各種網路環境下被證實是可靠的。
——(4)快速收斂:收斂是在最佳路徑的判斷上所有路由器達到一致的過程。當某個網路事件引起路由可用或不可用時,路由器就發出更新信息。路由更新信息遍及整個網路,引發重新計算最佳路徑,最終達到所有路由器一致公認的最佳路徑。收斂慢的路由演算法會造成路徑循環或網路中斷。 ——(5)靈活性:路由演算法可以快速、准確地適應各種網路環境。例如,某個網段發生故障,路由演算法要能很快發現故障,並為使用該網段的所有路由選擇另一條最佳路徑。
——路由演算法按照種類可分為以下幾種:靜態和動態、單路和多路、平等和分級、源路由和透明路由、域內和域間、鏈路狀態和距離向量。前面幾種的特點與字面意思基本一致,下面著重介紹鏈路狀態和距離向量演算法。
——鏈路狀態演算法(也稱最短路徑演算法)發送路由信息到互聯網上所有的結點,然而對於每個路由器,僅發送它的路由表中描述了其自身鏈路狀態的那一部分。距離向量演算法(也稱為Bellman-Ford演算法)則要求每個路由器發送其路由表全部或部分信息,但僅發送到鄰近結點上。從本質上來說,鏈路狀態演算法將少量更新信息發送至網路各處,而距離向量演算法發送大量更新信息至鄰接路由器。 ——由於鏈路狀態演算法收斂更快,因此它在一定程度上比距離向量演算法更不易產生路由循環。但另一方面,鏈路狀態演算法要求比距離向量演算法有更強的CPU能力和更多的內存空間,因此鏈路狀態演算法將會在實現時顯得更昂貴一些。除了這些區別,兩種演算法在大多數環境下都能很好地運行。
——最後需要指出的是,路由演算法使用了許多種不同的度量標准去決定最佳路徑。復雜的路由演算法可能採用多種度量來選擇路由,通過一定的加權運算,將它們合並為單個的復合度量、再填入路由表中,作為尋徑的標准。通常所使用的度量有:路徑長度、可靠性、時延、帶寬、負載、通信成本等。
❹ 有誰能講下路由有幾種演算法各有什麼優缺點
所有路由演算法幾乎都可以分類到下面兩種演算法中。
距離向量演算法:
距離向量演算法使用Bellman-Ford演算法。對於每一條網路上節點間的路徑,演算法指定一個「成本」給它們。節點會選擇一條總成本(經過路徑的所有成本總和)最低的路徑,用來把資料從節點甲送到節點乙。
此演算法非常的簡單。當某節點初次啟動時,將只知道它的鄰居節點(直接連接到該節點的節點)與到該節點的成本。(這些資訊、目的地列表、每個目的地的總成本,以及到某個目的地所必須經過的「下一個節點」,構成路由表,或稱距離表。)每個節點定時地將目前所知,到各個目的地的成本的資訊,送給每個鄰居節點。鄰居節點則檢查這些資訊,並跟目前所知的資訊做比較;如果到某個目的地的成本比目前所知的低,則將收到的資訊加入自己的路由表。經過一段時間後,網路上得所有節點將會了解到所有目的地的最佳「下一個節點」與最低的總成本。
當某個節點斷線時,每個將它當作某條路徑的「下一個節點」的節點會將該路由資訊舍棄,再建立新的路由表資訊。接著,他們將這些資訊告訴所有相鄰的節點,再找出到所有可抵達的目的地之新路徑。
連線狀態演算法:
在連線狀態演算法中,每個節點擁有網路的圖譜(一個圖)。每個節點將自己可以連接到的其他節點資訊傳送到網路上所有的節點,而其他節點接著各自將這個資訊加入到圖譜中。每個路由器即可根據這個圖譜來決定從自己到其它節點的最佳路徑。
完成這個動作的演算法——Dijkstra演算法——建立另一種資料結構——樹。節點產生的樹將自己視為根節點,且最後這棵樹將會包含了網路中所有其他的節點。一開始,此樹只有根節點(節點自己)。接著在樹中已有的節點的鄰居節點且不存在樹中的節點集合中,選取一個成本最低的節點加入此樹,直到所有節點都存入樹中為止。
這棵樹即用來建立路由表、提供最佳的「下一個節點」等,讓節點能跟網路中其它節點通訊。
路由演算法的比較:
在小型網路中,距離向量路由協定十分簡單且有效率,且只需要些微的管理。然而,它們的規模性不好,且 收斂性質也十分差,因此促進了較復雜但規模性較好的連線狀態路由協定的開發,以使用在較大型的網路。距離向量路由協定也有無限計數問題(count-to-infinity problem)。
連線狀態路由協定的主要優點是在限制的時間內,對於連線改變(例如斷線)的反應較快。而且連線狀態路由協定在網路上所傳送的封包也比距離向量路由協定的封包小。距離向量路由協定必須傳送一個節點的整個路由表,但連線狀態路由協定的封包只需要傳輸該節點的鄰居節點資訊即可。因此,這些封包小到不會佔用可觀的網路資源。連線狀態路由協定的主要缺點則是比距離向量路由協定需要較多的儲存空間與較強的計算能力。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。上面是摘自維基網路的。。網路知道的有個靜態路由演算法的介紹:鏈接:http://..com/question/14107327.html?si=2。。。希望對你有用