『壹』 6,路由選擇有哪些演算法
關於路由器如何收集網路的結構信息以及對之進行分析來確定最佳路由,有兩種主要的路由演算法:
總體式路由演算法和分散式路由演算法。採用分散式路由演算法時,每個路由器只有與它直接相連的路由器的信息——而沒有網路中的每個路由器的信息。這些演算法也被稱為dv(距離向量)演算法。採用總體式路由演算法時,每個路由器都擁有網路中所有其他路由器的全部信息以及網路的流量狀態。這些演算法也被稱為ls(鏈路狀態)演算法。
『貳』 計算機網路-4-6-互聯網的路由選擇協議
路由選擇協議的核心是 路由演算法 。即 需要一種演算法來獲取路表中的各項 ,一個比較好的路由選擇演算法應該有以下特點[BELL86]:
一個實際的路由選擇演算法,應該盡可能的接近於理想的演算法,在不同的應用條件下,可以對上面提出的六個方面有不同的側重。
倘若從路由演算法能否隨網路的通信量或拓撲自適應的進行調整變化來劃分,則只有兩大類: 靜態路由選擇策略 和 動態路由選擇策略 。靜態路由選擇策略也叫做 非自適應路由選擇 ,其特點是簡單和開銷較小,但不能即使適應網路狀態的變化。對於很簡單的小網路,完全可以採用靜態路由選擇,用人工配置每一條路由。動態路由選擇也叫做 自適應路由選擇 ,其特點是能夠較好的適應網路狀態的變化,但實現起來較為復雜,開銷也比較大,因此動態路由選擇適用於較復雜的大網路。
互聯網採用的路由選擇協議主要是自適應的(動態的),分布式路由選擇協議。由於以下兩種原因,互聯網採用分層次的路由選擇協議:
為此,可以把整個互聯網劃分為許多較小的 自治系統AS(autonomous system) ,自治系統AS是在單一技術管理下的一組路由器,而這些路由器使用一種自治系統內部的路由選擇協議和共同的度量,一個AS對其他AS表現的出是 一個單一的和一致的路由選擇策略 。
在目前的互聯網中,一個大的ISP就是一個自治系統。這樣,互聯網就把路由選擇協議劃分為兩大類:
自治系統之間的路由選擇協議也叫做 域間路由選擇(interdomain routing) ,而在自治系統內部的路由選擇叫做 域內路由選擇(intradomain routing) 。如圖4-31
RIP(routing information protocol)是內部網關協議IGP中最先得到廣泛使用的協議[RFC1058],也叫 路由信息協議 ,RIP是一種分布式的 基於距離向量的路由選擇協議 。最大的優點就是簡單。
RIP協議要求網路中的每一個路由器都要維護從它自己到其他每一個目的網路的距離記錄(因此這是一組距離,叫做距離向量),RIP將距離定義如下:
從一路由器到直接連接的網路的距離為1,從路由器到非之間的網路的距離定義為所經過的路由器數+1。
RIP協議的距離也稱之為 跳數 ,但是一條跳數最多隻能包含15個路由器,因此,當距離=16時,就相當於不可達。因此RIP只能適用於小型互聯網。
注意的是,到直接連接的網路也定義為0(採用這種定義的理由是:路由器在和直接連接在該網路上的主機進行通信並不需要經過另外的路由器,既然經過每一個路由器都要將距離增加1,那麼不經過路由器就不需要+1,就是0)。
RIP不能在兩個網路之間同時使用多條路由。RIP選擇一條具有最少路由器的路由(最短路由),哪怕還存在另一條高速低延時的但是路由器較多的路由。
路由器在剛開始工作的時候,其內部路由表是空的。然後路由器就可以和直接相連的幾個網路的距離(這些距離為1),接著,每個路由器和與自己相連的路由器不斷交換路由表信息,經過若干次更新後,所有的路由器最終就可以知道本自治系統中任何一個網路地址和最短下一跳路由器的地址。
路由器最主要的信息是:到某個網路的距離(最短距離),以及下一跳的地址,路由表更新的原則是找出到每個網路的 最短距離 ,這種演算法又稱之為 距離向量演算法 。
對 每一個相鄰的路由器 發送過來的RIP報文,進行以下步驟:
演算法描述:其實就是求一個路由器到另一個路由器的最短距離。
例題:
已知路由器R6有表4-9(a)所表示的路由表,現在收到相鄰路由器路由表R4發過來的路由更新信息,如圖4-9(b)所示。試更新路由器R6的路由表。
解:首先把R4發過來的路由表中的距離都+1:
把這個表和R6的路由表進行比較:
RIP協議讓每一個自治系統中的所有路由都和自己的相鄰路由器定期交換路由表信息,並不斷更新路由表,使得每從 每一個路由器到每一個目的網路的路由都是最短距離(也就是跳數最小)。
現在比較新的RIP協議報文格式是1998年提出的RIP2。
RIP協議使用運輸層的用戶數據報(UDP埠為520)進行傳輸。
RIP報文由首部和路由部分組成。
RIP首部佔4個位元組,其中的命令欄位指出報文的意義。
RIP2報文中的路由部分有若幹路由信息組成,每個路由信息需要用20位元組。 地址標識符(又稱地址列別) 欄位用來標識所用的地址協議。如果採用IP地址就為2。 路由標記填入自治系統號ASN(Autonomous System Number) ,這是考慮使用RIP有可能收到本自治系統以外的路由選擇信息,再後面指出某個 網路地址 , 下一跳路由器地址 以及 到此網路的距離 ,一個RIP報文最多可以包含25個路由,因而RIP報文的最大長度是4+20x25=504位元組。如果超過,則必然再使用以惡搞RIP報文來傳送。
RIP還具有簡單的鑒別功能,若使用鑒別功能,則將原來寫入第一個路由信息(20位元組)的位置用作鑒別,這時應該將地址標識符置為全1(0xFFFF),而路由標記寫入鑒別類別,剩下的16位元組作為鑒別數據,在鑒別數據之後才能寫入路由信息,但這時只能寫入24個路由信息。
RIP存在的一個問題是 當網路出現故障的時候,要經過比較長的時間才能將信息傳送到所有的路由器 ,RIP協議的這一特點是: 好消息傳播的很快,而壞消息傳播的很慢 ,網路出現故障的傳播時間往往需要經過較長時間,這是RIP協議的一個主要缺點。
為了使壞消息傳播的更快些,可以採用多種措施,例如,讓路由器記錄收到某特定路由信息的介面,而不是讓同一個路由信息再通過此介面反方向傳送。
總之,RIP協議最大的優點是 實現簡單,開銷較小 ,但RIP協議缺點也很明顯,首先 限制了網路規模,因為路由器最大的跳數是15跳,一般中大型網路規模RIP協議就不適用了 。其次就是 路由器之間交換的路由信息是路由器中完整的路由表,因而隨著網路規模變大,開銷也就增加 。最後就是 好消息傳播的很快,壞消息傳播的很慢 。
『叄』 通常路由選擇演算法分為哪兩大類一個理想的路由選擇演算法所應具有哪些特點啊
路由選擇演算法分為:自適應路由選擇演算法和非自適應路由選擇演算法。
要求:(1)正確性;(2)簡單性;(3)可靠性,穩定性;(4)公平性,最優性;(5)實現簡單.
『肆』 路由演算法的類型有
路由演算法有很多種,如果從路由表對網路拓撲和通信量變化的自適應能力的角度劃分,可以分為靜態路由演算法和動態路由演算法兩大類,這兩大類又可細分為幾種小類型,比較典型常見的有以下幾種:
一、靜態路由演算法
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)計算到每個其它路由器的最短路徑。
『伍』 2、路由選擇演算法主要分哪幾類分布式自適應演算法的基本思想是什麼
路由選擇演算法主要分兩類:靜態路由選擇演算法和動態路由選擇演算法
分布自適應路由選擇演算法的網路,所有節點定其地與其每個相鄰節點交換路由選擇信息。每個節點均存儲一張以網路中其它每個節點為索引的路由選擇表,網路中每個節點佔用表中一項,每一項又分為兩個部分,即所希望使用的到目的節點的輸出線路和估計到目的節點所需要的延遲或距離。度量標准可以是毫秒或鏈路段數、等待的分組數、剩餘的線路和容量等。對於延遲,節點可以直接發送一個特殊的稱作「回聲」(echo)的分組,接收該分組的節點將其加上時間標記後盡快送回,這樣便可測出延遲。有了以上信息,節點可由此確定路由選擇。
『陸』 常見的路由選擇演算法有哪些
鏈路狀態演算法(也稱最短路徑演算法)發送路由信息到互聯網上所有的結點,然而對於每個路由器,僅發送它的路由表中描述了其自身鏈路狀態的那一部分。距離向量演算法(也稱為Bellman-Ford演算法)則要求每個路由器發送其路由表全部或部分信息,但僅發送到鄰近結點上。從本質上來說,鏈路狀態演算法將少量更新信息發送至網路各處,而距離向量演算法發送大量更新信息至鄰接路由器。 ——由於鏈路狀態演算法收斂更快,因此它在一定程度上比距離向量演算法更不易產生路由循環。但另一方面,鏈路狀態演算法要求比距離向量演算法有更強的CPU能力和更多的內存空間,因此鏈路狀態演算法將會在實現時顯得更昂貴一些。除了這些區別,兩種演算法在大多數環境下都能很好地運行。
『柒』 有關計算機網路的填空題
我去 真夠難的`` 一個都不會 我還學過一年網路工程呢 汗``
『捌』 《計算機網路-自頂向下方法》第四章-網路層 要點
網路層的作用:實現主機到主機的通信服務,將分組從一台發送主機移動到一台接收主機。
1、轉發涉及分組在單一的路由器中從一條入鏈路到一條出鏈路的傳送。
2、路由選擇涉及一個網路的所有路由器,它們經路由選擇協議共同交互,以決定分組從源到目的地結點所採用的路徑。計算這些路徑的演算法稱為路由選擇演算法。
每台路由器都有一張轉發表,路由器通過檢查到達分組首部欄位的值來轉發分組,然後使用該值在該路由器的轉發表中索引查找。路由選擇演算法決定了插入路由器轉發表中的值。
路由選擇演算法可能是集中式的,或者是分布式的。但在這兩種情況下,都是路由器接收路由選擇協議報文,該信息被用於配置其轉發表。
網路層也能在兩台主機之間提供無連接服務或連接服務。同在運輸層的面向連接服務和無連接服務類似,連接服務需要握手步驟,無連接服務不需要握手。但它們之間也有差異:
1、 在網路層中,這些服務是由網路層向運輸層提供的主機到主機的服務。在運輸層中,這些服務則是運輸層向應用層提供的進程到進程的服務。
2、 在網路層提供無連接服務的計算機網路稱為數據報網路;在網路層提供連接服務的計算機網路稱為虛電路網路。
3、 在運輸層實現面向連接的服務與在網路層實現連接服務是根本不同的。運輸層面向連接服務是在位於網路邊緣的端系統中實現的;網路層連接服務除了在端系統中,也在位於網路核心的路由器中實現。(原因很簡單:端系統和路由器都有網路層)
虛電路網路和數據報網路是計算機網路的兩種基本類型。在作出轉發決定時,它們使用了非常不同的信息。
IP地址有32比特,如果路由器轉發表採用「蠻力實現」將對每個可能的目的地址有一個表項。因為有超過40億個可能的地址,這種選擇完全不可能(即使用二分查找也十分慢)。
我們轉發表的表項可以設計為幾個表項,每個表項匹配一定范圍的目的地址,比如有四個表項
(你可能也會考慮到,IP地址有32比特,如果每個路由器設計為只有2個表項,那麼也只需要有32個路由器就可以唯一確定這40億個地址中的一個。)
最長前綴匹配規則,是在轉發表中尋找最長的匹配項,並向與最長前綴匹配相關聯的鏈路介面轉發分組。這種規則是為了與網際網路的編址規則相適應。
1、輸入埠
「使用轉發表查找輸出埠」是輸入埠最重要的操作(當然還有其他一些操作)。輸入埠執行完這些所需的操作後,就把該分組發送進入交換結構。如果來自其他輸入埠的分組當前正在使用交換結構,一個分組可能會在進入交換結構時被暫時阻塞,在輸入埠處排隊,並等待稍後被及時調度以通過交換結構。
2、交換結構
交換結構的三種實現方式
3、輸出埠
分組調度程序 處理在輸出埠中排隊的分組
4、路由選擇處理器
</br>
</br>
IP協議版本4,簡稱為IPv4;IP協議版本6,簡稱為IPv6。
如上圖所示,網路層有三個主要的組件
1、IP協議
2、路由選擇協議
3、ICMP協議 (Internet Control Message Protocol, 網際網路控制報文協議)
</br>
不是所有鏈路層協議都能承載相同長度的網路層分組。有的協議能承載大數據報,而有的協議只能承載小分組。例如,乙太網幀能夠承載不超過1500位元組的數據,而某些廣域網鏈路的幀可承載不超過576位元組的數據。
一個鏈路層幀能承載的最大數據量叫做最大傳送單元(Maximun Transmission Unit, MTU)
所以鏈路層協議的MTU嚴格限制著IP數據報的長度。這也還不是主要的問題,問題在於發送方與目的地路徑上的每段鏈路可能使用不同的鏈路層協議,且每種協議可能具有不同的MTU。
舉個例子:假定從某條鏈路收到一個IP數據報,通過檢查轉發表確定出鏈路,並且該出鏈路的MTU比該IP數據報的長度要小。那麼如何將這個過大的IP分組壓縮進鏈路層幀的有效載荷欄位呢?
解決辦法是,將IP數據報中的數據分片成兩個或更多個較小的IP數據報,用單獨的鏈路層幀封裝這些較小的IP數據報;然後向輸出鏈路上發送這些幀。每個這些較小的數據報都被稱為片(fragment)。
路由器完成分片任務。同時,為了使得網路內核保持簡單,IPv4設計者把數據報的重組工作放到端系統中,而非放到網路路由器中。
前提:一個4000位元組的數據報(20位元組IP首部加上3980位元組IP有效載荷)到達一台路由器,且必須被轉發到一條MTU為1500位元組的鏈路上。假定初始數據報貼上的標識號為777。
這意味著初始數據報中3980位元組數據必須被分配到3個獨立的片(其中的每個片也是一個IP數據報)
IP分片:
IP地址有32比特,分為網路號和主機號。
IP地址的網路部分(即網路號)被限制為長度為8、16或24比特,這是一種稱為分類編址的編址方案。具有8、16和24比特子網地址的子網分別被稱為A、B和C類網路。
但是它在支持數量迅速增加的具有小規模或中等規模子網的組織方面出現了問題。一個C類(/24)子網僅能容納多大2^8 - 2 = 254台主機(2^8 = 256, 其中的兩個地址預留用於特殊用途),這對許多組織來說太小了。然而一個B類(/16)子網可支持多達65534台主機,又太大了。這導致B類地址空間的迅速損耗以及所分配的地址空間的利用率低。
廣播地址255.255.255.255。當一台主機發出一個目的地址為255.255.255.255的數據報時,該報文會交付給同一個網路中的所有主機。
某組織一旦獲得了一塊地址,它就可以為本組織內的主機與路由器介面逐個分配IP地址。既可手工配置IP地址,也可以使用動態主機配置協議(Dynamic Host Configuration Protocol, DHCP)自動配置。DHCP還允許一台主機得知其他信息,如它的子網掩碼、它的第一跳路由器地址(常稱為默認網關)與它的本地DNS伺服器的地址。
由於DHCP具有能將主機連接進一個網路相關方面的自動能力,它又被稱為即插即用協議。
DHCP是客戶-伺服器協議。客戶通常是新達到的主機,它要活的包括自身使用的IP地址在內的網路配置信息。在最簡單的場合下,每個子網將具有一台DHCP伺服器。如果在某子網中沒有伺服器,則需要一個DHCP中繼代理(通常是一台路由器),這個代理知道用於該網路的DHCP伺服器的地址。
DHCP協議工作的4個步驟:
網路地址轉換(Network Address Translation, NAT)
ICMP通常被認為是IP的一部分,但從體系結構上將它是位於IP之上的,因為ICMP報文是承載在IP分組中的。即ICMP報文是作為IP有效載荷承載的,就像TCP與UDP報文段作為IP有效載荷被承載那樣。
眾所周知的ping程序發送一個ICMP類型8編碼0的報文到指定主機。看到該回顯請求,目的主機發回一個類型0編碼0的ICMP回顯回答。大多數TCP/IP實現直接在操作系統中支持ping伺服器,即該伺服器不是一個進程。
新型IPv6系統可做成向後兼容,即能發送、路由和接收IPv4數據報,要使得已部署的IPv4系統能夠處理IPv6數據報,最直接的方式是採用一種雙棧方法。
1、鏈路狀態(Link State, LS)演算法:屬於全局式路由選擇演算法,這種演算法必須知道網路中每條鏈路的費用。費用可理解為鏈路的物理長度、鏈路速度,或與該鏈路相關的金融上的費用。鏈路狀態演算法採用的是Dijkstra演算法。
2、距離向量(Distance-Vector, DV)演算法:屬於迭代的、非同步的和分布式的路由選擇演算法。
「迭代的」,是因為此過程一直要持續到鄰居之間無更多信息要交換為止。
「非同步的」,是因為它不要求所有結點相互之間步伐一致地操作。
「分布式的」,是因為每個結點都要從一個或多個直接相連鄰居接收某些信息,執行計算,然後將其計算結果分發給鄰居。
DV演算法的方程:
其中,dx(y)表示從結點x到結點y的最低費用路徑的費用,c(x, v)是結點x到結點v的費用,結點v指的是所有x的相連結點,所以x的所有相連結點都會用minv方程計算。
(N是結點(路由器)的集合,E是邊(鏈路)的集合)
為了減少公共網際網路的路由選擇計算的復雜性以及方便企業管理網路,我們將路由器組織進自治系統。
在相同AS中的路由器全都運行同樣的路由選擇演算法,且擁有彼此的信息。在一個自治系統內運行的路由選擇演算法叫做自治系統內部路由選擇協議。
當然,將AS彼此互聯是必需的,因此在一個AS內的一台或多台路由器將有另外的任務,即負責向在本AS之外的目的地轉發分組。這些路由器被稱為網關路由器。
分為自治系統內部的路由選擇和自治系統間的路由選擇
1、網際網路中自治系統內部的路由選擇:路由選擇信息協議(Routing Information Protocol, RIP)
2、網際網路中自治系統內部的路由選擇:開放最短路優先(Open Shortest Path First, OSPF)
3、自治系統間的路由選擇:邊界網關協議(Broder Gateway Protocol, BGP)
為什麼要使用不同的AS間和AS內部路由選擇協議?
實現廣播的方法
1、無控制洪泛。該方法要求源結點向它的所有鄰居發送分組的副本。當某結點接收了一個廣播分組時,它復制該分組並向它的所有鄰居(除了從其接收該分組的那個鄰居)轉發之。
致命缺點: 廣播風暴 ,如果圖具有圈,那麼每個廣播分組的一個或多個分組副本將無休止地循環。
2、受控洪泛。用於避免廣播風暴,關鍵在於正確選擇何時洪泛分組,何時不洪泛分組。受控洪泛有兩種方法:序號控制洪泛、反向路徑轉發(Reverse Path Forwarding, RPF)
3、生成樹廣播。雖然序號控制洪泛和RPF能避免廣播風暴,但是它們不能完全避免冗餘廣播分組的傳輸。
多播:將分組從一個或多個發送方交付到一組接收方
每台主機有一個唯一的IP單播地址,該單播地址完全獨立於它所參與的多播組的地址。
網際網路網路層多播由兩個互補組件組成:網際網路組管理協議(Internet Group Management Protocol, IGMP)和多播路由選擇協議
IGMP只有三種報文類型:membership_query報文,membership_report報文,leave_group報文。
與ICMP類似,IGMP報文也是承載在一個IP數據報中。
網際網路中使用的多播路由選擇
1、距離向量多播路由選擇協議
2、協議無關的多播路由選擇協議
『玖』 路由器原理和常用的路由協議及演算法的介紹
近十年來,隨著計算機網路規模的不斷擴大,大型互聯網路(如Internet)的迅猛發展,路由技術在網路技術中已逐漸成為關鍵部分,路由器也隨之成為最重要的網路設備。用戶的需求推動著路由技術的發展和路由器的普及,人們已經不滿足於僅在本地網路上共享信息,而希望最大限度地利用全球各個地區、各種類型的網路資源。而在目前的情況下,任何一個有一定規模的計算機網路(如企業網、校園網、智能大廈等),無論採用的是快速以大網技術、FDDI技術,還是ATM技術,都離不開路由器,否則就無法正常運作和管理。
1、網路互連
把自己的網路同其它的網路互連起來,從網路中獲取更多的信息和向網路發布自己的消息,是網路互連的最主要的動力。網路的互連有多種方式,其中使用最多的是網橋互連和路由器互連。
1.1 網橋互連的網路
網橋工作在OSI模型中的第二層,即鏈路層。完成數據幀(frame)的轉發,主要目的是在連接的網路間提供透明的通信。網橋的轉發是依據數據幀中的源地址和目的地址來判斷一個幀是否應轉發和轉發到哪個埠。幀中的地址稱為「MAC」地址或「硬體」地址,一般就是網卡所帶的地址。
網橋的作用是把兩個或多個網路互連起來,提供透明的通信。網路上的設備看不到網橋的存在,設備之間的通信就如同在一個網上一樣方便。由於網橋是在數據幀上進行轉發的,因此只能連接相同或相似的網路(相同或相似結構的數據幀),如乙太網之間、乙太網與令牌環(tokenring)之間的互連,對於不同類型的網路(數據幀結構不同),如乙太網與X.25之間,網橋就無能為力了。
網橋擴大了網路的規模,提高了網路的性能,給網路應用帶來了方便,在以前的網路中,網橋的應用較為廣泛。但網橋互連也帶來了不少問題:一個是廣播風暴,網橋不阻擋網路中廣播消息,當網路的規模較大時(幾個網橋,多個乙太網段),有可能引起廣播風暴(broadcastingstorm),導致整個網路全被廣播信息充滿,直至完全癱瘓。第二個問題是,當與外部網路互連時,網橋會把內部和外部網路合二為一,成為一個網,雙方都自動向對方完全開放自己的網路資源。這種互連方式在與外部網路互連時顯然是難以接受的。問題的主要根源是網橋只是最大限度地把網路溝通,而不管傳送的信息是什麼。
1.2 路由器互連網路
路由器互連與網路的協議有關,我們討論限於TCP/IP網路的情況。
路由器工作在OSI模型中的第三層,即網路層。路由器利用網路層定義的「邏輯」上的網路地址(即IP地址)來區別不同的網路,實現網路的互連和隔離,保持各個網路的獨立性。路由器不轉發廣播消息,而把廣播消息限制在各自的網路內部。發送到其他網路的數據茵先被送到路由器,再由路由器轉發出去。
IP路由器只轉發IP分組,把其餘的部分擋在網內(包括廣播),從而保持各個網路具有相對的獨立性,這樣可以組成具有許多網路(子網)互連的大型的網路。由於是在網路層的互連,路由器可方便地連接不同類型的網路,只要網路層運行的是IP協議,通過路由器就可互連起來。
網路中的設備用它們的網路地址(TCP/IP網路中為IP地址)互相通信。IP地址是與硬體地址無關的「邏輯」地址。路由器只根據IP地址來轉發數據。IP地址的結構有兩部分,一部分定義網路號,另一部分定義網路內的主機號。目前,在Internet網路中採用子網掩碼來確定IP地址中網路地址和主機地址。子網掩碼與IP地址一樣也是32bit,並且兩者是一一對應的,並規定,子網掩碼中數字為「1」所對應的IP地址中的部分為網路號,為「0」所對應的則為主機號。網路號和主機號合起來,才構成一個完整的IP地址。同一個網路中的主機IP地址,其網路號必須是相同的,這個網路稱為IP子網。
通信只能在具有相同網路號的IP地址之間進行,要與其它IP子網的主機進行通信,則必須經過同一網路上的某個路由器或網關(gateway)出去。不同網路號的IP地址不能直接通信,即使它們接在一起,也不能通信。
路由器有多個埠,用於連接多個IP子網。每個埠的IP地址的網路號要求與所連接的IP子網的網路號相同。不同的埠為不同的網路號,對應不同的IP子網,這樣才能使各子網中的主機通過自己子網的IP地址把要求出去的IP分組送到路由器上。
2、路由原理
當IP子網中的一台主機發送IP分組給同一IP子網的另一台主機時,它將直接把IP分組送到網路上,對方就能收到。而要送給不同IP於網上的主機時,它要選擇一個能到達目的子網上的路由器,把IP分組送給該路由器,由路由器負責把IP分組送到目的地。如果沒有找到這樣的路由器,主機就把IP分組送給一個稱為「預設網關(defaultgateway)」的路由器上。「預設網關」是每台主機上的一個配置參數,它是接在同一個網路上的某個路由器埠的IP地址。
路由器轉發IP分組時,只根據IP分組目的IP地址的網路號部分,選擇合適的埠,把IP分組送出去。同主機一樣,路由器也要判定埠所接的是否是目的子網,如果是,就直接把分組通過埠送到網路上,否則,也要選擇下一個路由器來傳送分組。路由器也有它的預設網關,用來傳送不知道往哪兒送的IP分組。這樣,通過路由器把知道如何傳送的IP分組正確轉發出去,不知道的IP分組送給「預設網關」路由器,這樣一級級地傳送,IP分組最終將送到目的地,送不到目的地的IP分組則被網路丟棄了。
目前TCP/IP網路,全部是通過路由器互連起來的,Internet就是成千上萬個IP子網通過路由器互連起來的國際性網路。這種網路稱為以路由器為基礎的網路(routerbasednetwork),形成了以路由器為節點的「網間網」。在「網間網」中,路由器不僅負責對IP分組的轉發,還要負責與別的路由器進行聯絡,共同確定「網間網」的路由選擇和維護路由表。
路由動作包括兩項基本內容:尋徑和轉發。尋徑即判定到達目的地的最佳路徑,由路由選擇演算法來實現。由於涉及到不同的路由選擇協議和路由選擇演算法,要相對復雜一些。為了判定最佳路徑,路由選擇演算法必須啟動並維護包含路由信息的路由表,其中路由信息依賴於所用的路由選擇演算法而不盡相同。路由選擇演算法將收集到的不同信息填入路由表中,根據路由表可將目的網路與下一站(nexthop)的關系告訴路由器。路由器間互通信息進行路由更新,更新維護路由表使之正確反映網路的拓撲變化,並由路由器根據量度來決定最佳路徑。這就是路由選擇協議(routingprotocol),例如路由信息協議(RIP)、開放式最短路徑優先協議(OSPF)和邊界網關協議(BGP)等。
轉發即沿尋徑好的最佳路徑傳送信息分組。路由器首先在路由表中查找,判明是否知道如何將分組發送到下一個站點(路由器或主機),如果路由器不知道如何發送分組,通常將該分組丟棄;否則就根據路由表的相應表項將分組發送到下一個站點,如果目的網路直接與路由器相連,路由器就把分組直接送到相應的埠上。這就是路由轉發協議(routedprotocol)。
路由轉發協議和路由選擇協議是相互配合又相互獨立的概念,前者使用後者維護的路由表,同時後者要利用前者提供的功能來發布路由協議數據分組。下文中提到的路由協議,除非特別說明,都是指路由選擇協議,這也是普遍的習慣。
3、路由協議
典型的路由選擇方式有兩種:靜態路由和動態路由。
靜態路由是在路由器中設置的固定的路由表。除非網路管理員干預,否則靜態路由不會發生變化。由於靜態路由不能對網路的改變作出反映,一般用於網路規模不大、拓撲結構固定的網路中。靜態路由的優點是簡單、高效、可靠。在所有的路由中,靜態路由優先順序最高。當動態路由與靜態路由發生沖突時,以靜態路由為准。
動態路由是網路中的路由器之間相互通信,傳遞路由信息,利用收到的路由信息更新路由器表的過程。它能實時地適應網路結構的變化。如果路由更新信息表明發生了網路變化,路由選擇軟體就會重新計算路由,並發出新的路由更新信息。這些信息通過各個網路,引起各路由器重新啟動其路由演算法,並更新各自的路由表以動態地反映網路拓撲變化。動態路由適用於網路規模大、網路拓撲復雜的網路。當然,各種動態路由協議會不同程度地佔用網路帶寬和CPU資源。
靜態路由和動態路由有各自的特點和適用范圍,因此在網路中動態路由通常作為靜態路由的補充。當一個分組在路由器中進行尋徑時,路由器首先查找靜態路由,如果查到則根據相應的靜態路由轉發分組;否則再查找動態路由。
根據是否在一個自治域內部使用,動態路由協議分為內部網關協議(IGP)和外部網關協議(EGP)。這里的自治域指一個具有統一管理機構、統一路由策略的網路。自治域內部採用的路由選擇協議稱為內部網關協議,常用的'有RIP、OSPF;外部網關協議主要用於多個自治域之間的路由選擇,常用的是BGP和BGP-4。下面分別進行簡要介紹。
3.1 RIP路由協議
RIP協議最初是為Xerox網路系統的Xeroxparc通用協議而設計的,是Internet中常用的路由協議。RIP採用距離向量演算法,即路由器根據距離選擇路由,所以也稱為距離向量協議。路由器收集所有可到達目的地的不同路徑,並且保存有關到達每個目的地的最少站點數的路徑信息,除到達目的地的最佳路徑外,任何其它信息均予以丟棄。同時路由器也把所收集的路由信息用RIP協議通知相鄰的其它路由器。這樣,正確的路由信息逐漸擴散到了全網。
RIP使用非常廣泛,它簡單、可靠,便於配置。但是RIP只適用於小型的同構網路,因為它允許的最大站點數為15,任何超過15個站點的目的地均被標記為不可達。而且RIP每隔30s一次的路由信息廣播也是造成網路的廣播風暴的重要原因之一。
3.2 OSPF路由協議
80年代中期,RIP已不能適應大規模異構網路的互連,0SPF隨之產生。它是網間工程任務組織(1ETF)的內部網關協議工作組為IP網路而開發的一種路由協議。
0SPF是一種基於鏈路狀態的路由協議,需要每個路由器向其同一管理域的所有其它路由器發送鏈路狀態廣播信息。在OSPF的鏈路狀態廣播中包括所有介面信息、所有的量度和其它一些變數。利用0SPF的路由器首先必須收集有關的鏈路狀態信息,並根據一定的演算法計算出到每個節點的最短路徑。而基於距離向量的路由協議僅向其鄰接路由器發送有關路由更新信息。
與RIP不同,OSPF將一個自治域再劃分為區,相應地即有兩種類型的路由選擇方式:當源和目的地在同一區時,採用區內路由選擇;當源和目的地在不同區時,則採用區間路由選擇。這就大大減少了網路開銷,並增加了網路的穩定性。當一個區內的路由器出了故障時並不影響自治域內其它區路由器的正常工作,這也給網路的管理、維護帶來方便。
3.3 BGP和BGP-4路由協議
BGP是為TCP/IP互聯網設計的外部網關協議,用於多個自治域之間。它既不是基於純粹的鏈路狀態演算法,也不是基於純粹的距離向量演算法。它的主要功能是與其它自治域的BGP交換網路可達信息。各個自治域可以運行不同的內部網關協議。BGP更新信息包括網路號/自治域路徑的成對信息。自治域路徑包括到達某個特定網路須經過的自治域串,這些更新信息通過TCP傳送出去,以保證傳輸的可靠性。
為了滿足Internet日益擴大的需要,BGP還在不斷地發展。在最新的BGp4中,還可以將相似路由合並為一條路由。
3.4 路由表項的優先問題
在一個路由器中,可同時配置靜態路由和一種或多種動態路由。它們各自維護的路由表都提供給轉發程序,但這些路由表的表項間可能會發生沖突。這種沖突可通過配置各路由表的優先順序來解決。通常靜態路由具有默認的最高優先順序,當其它路由表表項與它矛盾時,均按靜態路由轉發。
4、路由演算法
路由演算法在路由協議中起著至關重要的作用,採用何種演算法往往決定了最終的尋徑結果,因此選擇路由演算法一定要仔細。通常需要綜合考慮以下幾個設計目標:
——(1)最優化:指路由演算法選擇最佳路徑的能力。
——(2)簡潔性:演算法設計簡潔,利用最少的軟體和開銷,提供最有效的功能。
——(3)堅固性:路由演算法處於非正常或不可預料的環境時,如硬體故障、負載過高或操作失誤時,都能正確運行。由於路由器分布在網路聯接點上,所以在它們出故障時會產生嚴重後果。最好的路由器演算法通常能經受時間的考驗,並在各種網路環境下被證實是可靠的。
——(4)快速收斂:收斂是在最佳路徑的判斷上所有路由器達到一致的過程。當某個網路事件引起路由可用或不可用時,路由器就發出更新信息。路由更新信息遍及整個網路,引發重新計算最佳路徑,最終達到所有路由器一致公認的最佳路徑。收斂慢的路由演算法會造成路徑循環或網路中斷。
——(5)靈活性:路由演算法可以快速、准確地適應各種網路環境。例如,某個網段發生故障,路由演算法要能很快發現故障,並為使用該網段的所有路由選擇另一條最佳路徑。
路由演算法按照種類可分為以下幾種:靜態和動態、單路和多路、平等和分級、源路由和透明路由、域內和域間、鏈路狀態和距離向量。前面幾種的特點與字面意思基本一致,下面著重介紹鏈路狀態和距離向量演算法。
鏈路狀態演算法(也稱最短路徑演算法)發送路由信息到互聯網上所有的結點,然而對於每個路由器,僅發送它的路由表中描述了其自身鏈路狀態的那一部分。距離向量演算法(也稱為Bellman-Ford演算法)則要求每個路由器發送其路由表全部或部分信息,但僅發送到鄰近結點上。從本質上來說,鏈路狀態演算法將少量更新信息發送至網路各處,而距離向量演算法發送大量更新信息至鄰接路由器。
由於鏈路狀態演算法收斂更快,因此它在一定程度上比距離向量演算法更不易產生路由循環。但另一方面,鏈路狀態演算法要求比距離向量演算法有更強的CPU能力和更多的內存空間,因此鏈路狀態演算法將會在實現時顯得更昂貴一些。除了這些區別,兩種演算法在大多數環境下都能很好地運行。
最後需要指出的是,路由演算法使用了許多種不同的度量標准去決定最佳路徑。復雜的路由演算法可能採用多種度量來選擇路由,通過一定的加權運算,將它們合並為單個的復合度量、再填入路由表中,作為尋徑的標准。通常所使用的度量有:路徑長度、可靠性、時延、帶寬、負載、通信成本等。
5、新一代路由器
由於多媒體等應用在網路中的發展,以及ATM、快速乙太網等新技術的不斷採用,網路的帶寬與速率飛速提高,傳統的路由器已不能滿足人們對路由器的性能要求。因為傳統路由器的分組轉發的設計與實現均基於軟體,在轉發過程中對分組的處理要經過許多環節,轉發過程復雜,使得分組轉發的速率較慢。另外,由於路由器是網路互連的關鍵設備,是網路與其它網路進行通信的一個「關口」,對其安全性有很高的要求,因此路由器中各種附加的安全措施增加了CPU的負擔,這樣就使得路由器成為整個互聯網上的「瓶頸」。
傳統的路由器在轉發每一個分組時,都要進行一系列的復雜操作,包括路由查找、訪問控製表匹配、地址解析、優先順序管理以及其它的附加操作。這一系列的操作大大影響了路由器的性能與效率,降低了分組轉發速率和轉發的吞吐量,增加了CPU的負擔。而經過路由器的前後分組間的相關性很大,具有相同目的地址和源地址的分組往往連續到達,這為分組的快速轉發提供了實現的可能與依據。新一代路由器,如IPSwitch、TagSwitch等,就是採用這一設計思想用硬體來實現快速轉發,大大提高了路由器的性能與效率。
新一代路由器使用轉發緩存來簡化分組的轉發操作。在快速轉發過程中,只需對一組具有相同目的地址和源地址的分組的前幾個分組進行傳統的路由轉發處理,並把成功轉發的分組的目的地址、源地址和下一網關地址(下一路由器地址)放人轉發緩存中。當其後的分組要進行轉發時,茵先查看轉發緩存,如果該分組的目的地址和源地址與轉發緩存中的匹配,則直接根據轉發緩存中的下一網關地址進行轉發,而無須經過傳統的復雜操作,大大減輕了路由器的負擔,達到了提高路由器吞吐量的目標。