Ⅰ rip協議的距離向量演算法
具體地說,距離向量演算法如下所述:
首先,路由器剛啟動時,對距離向量路由表( V-D 路由表)進行初始化,該初始化路由表包含所有去往與本路由器直接相連的網路的路徑。由於去往直接相連的網路不經過中間路由器,所以初始化的 V-D 路由表中的各路由的距離均為 0 。圖 2.1 初始 V-D 路由表的一個示例。
圖 2.1 的「信宿網」域含信宿網 IP 地址。
然後,各路由器周期性地向外廣播其 V-D 路由表內容。與某路由器直接相連的(位於同一物理網路)的路由器收到該路由表報文後,根據此報文對本地路由表進行刷新。刷新時,路由器逐項檢查來自相鄰路由器的 V-D 報文,遇到下述表目之一,須修改本地路由表(假設路由器Gi收到路由器Gj的 V-D 報文):
• Gj列出的某表目Gi路由表中沒有。則Gi路由表中須增加相應表目,其「信宿」是Gj表目中的信宿,其「路徑」為「Gj」(即下一路由器為Gj)。
• Gj去往某信宿的距離值比Gi去往該信宿的距離減 1 還小。
這種情況說明,Gi去往某信宿若經過Gj,距離會更短。則Gi修改本表目,其中「信宿」域不變,「距離」為Gj表目中距離加 1 ,「路徑」為「Gj」。
• Gi去往某信宿的路由經過Gj,而Gj去往該信宿的路由發生變化。
這里分兩種情況:
• Gj的 V-D 表不再包含去往某信宿的路由,則 GI 中相應路由須刪除。
• Gj的 V-D 表中去往某信宿的路由距離發生變化,則Gi中相應表目「距離」須修改,以Gj中的「距離」加 1 取代原來的距離。
圖 2.2 中對以上描述給出直觀的說明,其中Gi、Gj為相鄰路由器。
圖 2.2
( a )路由器 G i 原路由表; (b) 路由器 G j 廣播的 V-D 報文;( c )路由器 G j 刷新後的路由表
圖 2.2 中,「 」所指示為須刷新的表目,「 」為引起刷新的表目,「 」為刷新後的表目。
這里要特別調的是, V-D 演算法的路由刷新發生在相鄰路由器之間,所以 V-D 報文不一定以廣播方式發送出去,一種比較優化的思想是路由器直接向相鄰路由器發送 V-D 報文,不必採用廣播方式。(
本文來自: 中科軟體園(www.4oa.com) 詳細出處參考:http://www.4oa.com/Article/html/15/95/345/2005/3641.html
Ⅱ 距離矢量路由演算法的演算法簡介
距離矢量路由(Distance Vector Routing)演算法
距離矢量路由演算法是這樣工作的:每個路由器維護一張路由表(即一個矢量),它以網路中的每個路由器為索引,表中列出了當前已知的路由器到每個目標路由器的最佳距離,以及所使用的線路。通過在鄰居之間相互交換信息,路由器不斷地更新他們的內部路由表。
舉例來說,假定使用延遲作為「距離」的度量標准,並且該路由器發送一個列表,其中包含了他到每一個目標路由器的延時估計值;同時,他也從每個鄰居路由器接收到一個類似的列表。假設一個路由器接收到來自鄰居x的一個列表,其中x(i)表示x估計的到達路由器i所需要的時間。如果該路由器知道他到x的延時為m毫秒,那麼他也知道在x(i)+m毫秒之間內經過x可以到達路由器i。一個路由器針對每個鄰居都執行這樣的計算,就可以發現最佳的估計值,然後在新的路由器表中使用這個最佳的估計值以及對應的輸出路線。
Ⅲ 距離向量路由演算法
距離向量路由演算法(Bellman-Ford Routing Algorithm),也叫做最大流量演演算法(Ford-Fulkerson Algorithm), 相應的圖片
其被距離向量協議作為一個演算法,如RIP, BGP, ISO IDRP, NOVELL IPX。使用這個演算法的路由器必須掌握這個距離表(它是一個一維排列-「一個向量」),它告訴在網路中每個節點的最遠和最近距離。在距離表中的這個信息是根據臨近接點信息的改變而時時更新的。表中數據的量和在網路中的所有的接點(除了它自己本身)是等同的。這個表中的列代表直接和它相連的鄰居,行代表在網路中的所有目的地。每個數據包括傳送數據包到每個在網上的目的地的路徑和距離/或時間在那個路徑上來傳輸(我們叫這個為「成本」)。這個在那個演算法中的度量公式是跳躍的次數, 等待時間,流出數據包的數量,等等。 在距離向量路由演算法中,相鄰路由器之間周期性地相互交換各自的路由表備份。當網路拓撲結構發生變化時,路由器之間也將及時地相互通知有關變更信息。
路由表的建立和更新
如上圖,有三個路由器,A,B和C。路由器A的兩個網路介面E0和S0 分別連接在 10.1.0.0和10.2.0.0網段上;路由器B的兩個網路介面S0和S1 分別連接在 10.2.0.0和10.3.0.0網段上;路由器C的兩個網路介面S0和E0 分別連接在 10.3.0.0和10.4.0.0網段上; 如上圖中各路由表的前兩行所示,通過路由表的網路介面到與之直接相連的網 絡的網路連接,其向量距離設置為0。這即是最初的路由表。 當路由器B和A以及B和C之間相互交換路由信息後,它們會更新各自的路由表。 例如,路由器B通過網路埠S1收到路由器C的路由信息(10.3.0.0,S0,0)和(10.4.0.0,E0,0) 靜態路由的具體配置
後,在自己的路由表中增加一條(10.4.0.0,S1,1)路由信息。該信息表示:通過路由器B的網路接 口S1可以訪問到10.4.0.0網段,其向量距離為1,該向量距離是在路由器C的基礎上加1獲得的。 同樣道理,路由器B還會產生一條(10.1.0.0,S0,1)路由,這條路由是通過網路埠S0從路由器A 獲得的。如此反復,直到最終收斂,形成圖中所示的路由表。 概括地說,距離向量演算法要求每一個路由器把它的整個路由表發送給與它直接連接的其它路由 器。路由表中的每一條記錄都包括目標邏輯地址、相應的網路介面和該條路由的向量距離。當一個路 由器從它的相鄰處收到更新信息時,它會將更新信息與本身的路由表相比較。如果該路由器比較出一條 新路由或是找到一條比當前路由更好的路由時,它會對路由表進行更新:將從該路由器到鄰居之間的 向量距離與更新信息中的向量距離相加作為新路由的向量距離。
參與運算信息
目的地址:在演算法的IP實現中,這指的是主機或的IP 地址。 下一跳地址:到信宿的路由中的第一個路由器。 介面:用於到下一跳物理。 metric值:一個數,指明本路由器到信宿的開銷。 定時器:路由項最後一次被修改的時間。 路由標記:區分路由為內部路由協議的路由還是外部路由協議的路由的標記。
運算
路由器間交換的最重要的信息是修改報文,參加路由維護計劃的路由器發送當前存在於實體的描述路由庫的路由修改報文。僅通過相鄰路由器間交換路由信息是可以維護整個系統的最佳路由的,這在接下來的討論中會逐步得到證明。 距離向量演算法總是基於一個這樣的事實:路由庫中的路由已是目前通過報文交換而得到的最佳路由。同時,報文交換僅限於相鄰的實體間,也就是說,實體共享同一個。當然,要定義路由是最佳的,就必須有衡量的辦法,這就用到前面所說的「metric」。RIP簡單的中,通常用可行路由所經的路由器數簡單地計算metric值。在復雜的中,metric一般代表該路由傳輸報的延遲或其它發送開銷。 令D代表從實體i到實體j的最佳路由的metric值,d(i,j)代表從i直接到j的開銷,因為開銷是可加的,演算法中最佳路由如此獲取表示: D(i,i)=0, 對所有的i D(i,j)=MIN[d(i,j)+D(k,j), 當i不等於k時 實體i從相鄰路由器k收到k到j的開銷的估計D,i將D(i,j)加上i到k的開銷估計d(i,j),i比較從所有相鄰路由器得到的數值,取得最小數,就得到了它到j的最佳路由。
Ⅳ 求距離向量演算法,實現路由表的自動更新,用vb編程實現的
vb不好弄,用c吧
Ⅳ 距離矢量的介紹
距離矢量(Distance Vector)是兩個路由演算法中的一個。另一類是鏈路狀態路由選擇。基本上,路由協議基於距離矢量演算法根據目的地的遠近來決定最好的路徑,當鏈路狀態協議是可以使用更高級的方法根據鏈路的變化,例如帶寬,延遲,可靠性和負載。距離矢量協議根據距離的遠近來決定最好的路徑。距離可能用跳數或一個metrics運算的組合來代表一個距離值。
Ⅵ 距離矢量路由演算法
距離適量的工作方式就是每個人都通告自己本地和學到的路由,然後其他人就選距離最小的度量,也就是基於傳聞的路由協議。
Ⅶ 距離矢量路由演算法
第一步 c可以到 B(5,0,8,12,6,2)D(16,12,6,0,9,10)E (7,6,3,9,0,4)各自延遲6,3,5則B(5+6,0+6,8+6,12+6,6+6,2+6)D(16+3,12+3,6+3,0+3,9+3,10+3)E (7+5,6+5,3+5,9+5,0+5,4+5) 即為B(11,6,14,18,12,8) D(19,15,9,3,12,13)E(12,11,8,14,5,9) 把BDE括弧的各自元素對應做一下比較 找出三個裡面最小的一個 即就是C的新路由表(11,6,8,3,5,8)
第二步 看看C依次到達ABCDEF的距離 ;C到A 可以有三條路c-b-a=【c到b是5+原路由需要2+4】=11
c-d-a=3+16=19 c-e-a=5+7=12
則C到A的期望=(11+19+12)/3=14
依次算C到B期望=(6+15+12)/3 C到C的期望=0 CD =(18+3+14)/3=12 CF=(8+13+9)/3=10
最後答案為C的路由期望(14,11,12,10)
Ⅷ 距離矢量路由演算法 (計算機網路題
通過B到個點的距離為:(11,6,14,18,12,8),因為B到A的距離為5,C到B的距離為6所以C到A的距離更新為5+6=11,C到B的距離沒變為6,C通過B到C的距離為6+8=14,C通過B到D的距離為6+12=18,C通過B到E距離6+6=12,C通過B到F距離為6+2=8。
通過D到個點的距離為:(19,15,9,3,12,13),通過D到A的距離為3+16=19,通過D到B的距離為3+12=15,通過D到C的距離為6+3=9,通過D到D的距離為3,通過D到E的距離為3+9=12,通過D到F的距離為3+10=13。
通過E到個點的距離為:(12,11,8,14,5,9),通過E到A的距離為5+7=12,通過E到B的距離為5+6=11,通過E到C的距離為5+3=8,通過E到D的距離為5+9=14,通過E到Eden距離為5,通過E到F的距離為9。
取到達每一目的地的最小值(C除外)得到: (11, 6,0,3, 5,8)就得出了新的路由表。輸出的路線輸出線路是: (B,,B, -,D,E, B)。
(8)測量距離矢量路由演算法的研究方法擴展閱讀:
路由演算法的度量標准:
路由演算法使用了許多種不同的度量標准去決定最佳路徑。復雜的路由演算法可能採用多種度量來選擇路由,通過一定的加權運算,將它們合並為單個的復合度量、再填入路由表中,作為尋徑的標准。
通常所使用的度量有:路徑長度、可靠性、時延、帶寬、負載、通信成本等。
路徑長度:
路徑長度是最常用的路由。一些路由協議允許網管給每個網路連接人工賦以代價值,這種情況下,路由長度是所經過各個鏈接的代價總和。
可靠性:
可靠性,在路由演算法中指網路連接的可依賴性(通常以位誤率描述),有些網路連接可能比其它的失效更多,網路失效後,一些網路連接可能比其它的更易或更快修復。
路由延遲:
路由延遲指分組從源通過網路到達目的所花時間。很多因素影響到延遲,包括中間的網路連接的帶寬、經過的每個路由器的埠隊列、所有中間網路連接的擁塞程度以及物理距離。
帶寬
帶寬指連接可用的流通容量。在其它所有條件都相等時,10Mbps的乙太網鏈接比64kbps的專線更可取。雖然帶寬是鏈接可獲得的最大吞吐量,但是通過具有較大帶寬的鏈接做路由不一定比經過較慢鏈接路由更好。
負載:
負載指網路資源,如路由器的繁忙程度。負載可以用很多方面計算,包括CPU使用情況和每秒處理分組數。持續地監視這些參數本身也是很耗費資源的。
通信代價:
通信代價是另一種重要的metric,尤其是有一些公司可能關心運作費用甚於關心性能。即使線路延遲可能較長,他們也寧願通過自己的線路發送數據而不採用昂貴的公用線路。
參考資料來源:網路-路由演算法
Ⅸ 距離矢量路由協議如何計算最佳路徑
尊敬的用戶您好:
距離矢量路由選擇協議通過判斷距離查找到達遠程網路的最佳路徑。數據包通過一個路由器,為一跳。使用跳數量最少的到達遠程網路的路徑被認為是最佳路徑。矢量表指明遠程網路的方向。RIP和IGRP都是距離矢量路由選擇協議,他們發送整個路由表到直接相鄰的路由器。
中國電信提供最優質的網路通訊服務,老友換新機,網齡抵現金,百兆寬頻免費體驗,超清電視iTV,電信活動可以直接通過營業廳查詢。
Ⅹ 路由演算法的類型有
靜態路由演算法
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,路由器便可以計算出延時。(路程往返時間是網路當前延遲的量度,通過一個分組數據包從遠程主機返回的時間來測量。)該時間包括了傳輸和處理兩部分的時間——也就是將分組數據包發送到目的地的時間以及接收方處理分組數據包和應答的時間。
步驟三:向網路中的其他路由器廣播自己的信息,同時也接收其他路由器的信息。
在這一步中,所有的路由器共享它們的知識並且將自身的信息廣播給其他每一個路由器。這樣,每一個路由器都能夠知道網路的結構以及狀態。
步驟四:使用一個合適的演算法,確定網路中兩個節點之間的最佳路由。