① 路由演算法
路由演算法是網路層軟體的一部分。子網提供數據報服務,每個包都要做路由選擇;子網提供虛電路服務,只需在建立連接時做一次路由選擇
正確性,簡單性,健壯性(魯棒性,網路出現意外情況時候的解決問題的能力。例如突然某個路由器停電了,使得周邊的路由器都沒法正常工作,如果出現這樣的問題說明路由器的健壯性不夠),穩定性(常規使用是否穩定,數據量增多的時候能否正常工作),公平性(網路資源的使用是否公平,避免有些節點出現特別繁忙的狀態,而有些節點總是處於很閑的狀態),最優性
• 按轉發方式和數據副本數量劃分
1.全路路由(廣播路由)演算法:如洪泛演算法,按照所有路徑廣播轉發(中間轉發節點以及目標節點都會送到很多重復數據。不需要路由表和路由控制功能)
2.多路路由演算法:向所有接近目的節點的路徑轉發(中間轉發節點以及目標節點都會送到很多重復數據。)
3.單路路由演算法:如距離矢量演算法,向目的節點沿著唯一的路徑轉發(中間的轉發節點只轉發一份數據即可)
• 按健壯性和簡單性劃分
1.非自適應演算法(靜態路由演算法):不能根據網路流量和拓撲結構的變化更新路由表,使用靜態路由表。需要人為的更改和設定。特點是簡單、開銷小、靈活性差。典型演算法為基於流量的路由演算法等
2.自適應演算法(動態路由演算法):可根據網路流量(網路承載的數據量)和拓撲結構的變化更新路由表。特點是開銷大、健壯性和靈活性好。典型演算法為距離向量路由演算法、鏈路狀態路由演算法等
☆可以靜態路由和動態路由結合起來使用,此時靜態路由的優先順序別較高
測量(獲取)有關路由選擇的網路度量參數(選擇最優,比如是要求傳播距離最短,還是要求傳輸時延短等)。如何測量?選取哪些網路參數?
將路由信息傳送到適當的網路節點。傳送給誰?如何傳送?傳送什麼信息?
計算和更新路由表。更新路由表的演算法
根據新路由表執行分組的轉發
如果路由器J在路由器I到K的最優路由上,那麼從J到K的最優路由一定落在同一路由上
從所有的源節點到一個給定的目的節點的最優路由的集合形成了一個以目的節點為根的樹,稱為匯集樹;路由演算法的目的是找出並使用匯集樹
基本思想:構建子網的拓撲圖,圖中的每個節點代表一個路由器,每條弧代表一條通信線路。為了選擇兩個路由器間的路由,演算法需要在圖中找出節點間的最短路徑
節點數量;地理距離;傳輸延遲;距離、信道帶寬等參數的加權函數
網路規模增大帶來的問題:路由器中的路由表增大;路由器為選擇路由而佔用的內存、CPU時間和網路帶寬增大
分層路由:分而治之的思想;根據需要,將路由器分成區域、聚類、區和組;Fig.6-6,路由表由17項減為7項
分層路由帶來的問題:路由表中的路由不一定是最優路由
☆分層路由功能大部分時候性能是比較好的,可以選擇最優路徑,但是有時也會選擇到非最優路徑。比如上圖中如果想從1A到5C,應該是1A→1B→2A→2B→2D→5C是比較優的選擇,但是按照1A的分層路由表顯示,從區域1到區域5出口線路為1C,因此選擇的路線為1A→1C→3B→4A→5A→5B→5C,這時就相對繞遠了
DVR - Distance Vector Routing
動態路由演算法,也稱Bellman - Ford路由演算法或Ford - Fulkerson演算法,最初用於ARPANET(Internet的前身),被RIP協議所採用
每個路由器維護一張路由表,表中給出了到每個目的地的已知最佳距離和線路,並通過與相鄰路由器交換距離信息來更新表;每隔一段時間,路由器向所有鄰居節點發送它到每個目的節點的距離表,同時它也接收每個鄰居節點發來的距離表;鄰居節點X發來的表中,X到路由器I的距離為Xi,本路由器到X的距離為m,則路由器經過X到i的距離為Xi + m。根據不同鄰居發來的信息,計算Xi + m,並取最小值,更新本路由器的路由表
圖1:
此時路由A把它的路由表發給路由B,B會綜合從A得來的路由表來更新自己的矢量表↓
根據初始A矢量表和B矢量表得知B到A為6,B到C為1,B到D沒有;兩個表都有到E的距離,直接從B到E為8;如果B經由A再到E就要計算A到B的距離加上A到E的距離即可,即6+1=7
圖2:
B把路由表發給C之後↓
從C的初始矢量表可得知C到B為1,C到D為2,C無法直接到A,但是通過B的路由表得知B到A為6,再加上C到B的距離1,得出C到A距離為7,同理可得到E距離為7+1=8
圖3:
C把路由表發給D之後↓
圖4:
D把路由表發給E之後↓
J的相鄰節點為4個,分別為A,I,H,K,因此可以選擇的路線也為4種
現在要求J的最新路由表。以J到E為例,J到A為8,A到E為14,和為22;J到I為10,I到E為7,和為17;J到H為12,H到E為30,和為42;J到K為6,K到E為22,和為28。從而得出,經由I的時候得到的和17最小,因此在新生成的J到E的位置記錄17
無限計算問題:對好消息反應迅速,對壞消息反應遲鈍
比如從E到A,E剛開始連通的時候是不知道如何才能到A的,只有通過B與A交互,C與B交互這樣最終E通過與D交互才知道如何能到A,這就是好消息。可能需要花些時間,但是結果都是無論目的節點是哪裡總會找到路徑
壞消息例子:A,B,C之間通信。B到A的距離為1(A,1),C到A的距離為2(B(經B),2)。各個節點都會有一個刷新周期,到了這個周期的時候每個節點會把自己的路由信息發給其相鄰節點。例如A路由斷開連接,這個時候B到A的線路斷開。也就是B到A的距離為無窮大了(A,∞)。如果在B把這個信息反饋給C之前,C先把路由信息告訴B了,那麼B收到的信息就為(C,3)。因為A已經不存在,而B從C處得知通過C有路徑可以到達A,這時B的路由表就變成(C,3),同樣的這時B再告訴C,C就會變成(B,4),就會這樣無窮計算下去。如果一開始是B先把信息發給C就不會發生這樣的問題
• 觸發式更新:節點不等到刷新周期的到來,只要有突發情況馬上就會把情況通知相鄰路由
• 水平分割:因為一開始C是從B得知經過B可以到達A的,所以用了這種方法之後,C就不會再向B發送如何到A,而只等著B給C發如何到A了。這樣就不會有無窮計算問題
• 定義一個最大值:壞消息例子當中,括弧里後面的數會一直循環增長下去,如果把這個數字設置一個最大值,那麼當循環到這個最大值的時候雙方就不會再就怎麼到A的信息進行交互了,就不會發生無窮計算的情況
• 掛起計數器:壞消息例子當中,B收到了C的路由最新信息(C,3)的時候這個不會馬上生效刷新,(A,∞)會保留兩個周期,在這兩個周期裡面,B肯定有機會給C發送(A,∞),
而因為C沒有通往A的路徑,所以當C到刷新周期的時候給B發的就為(B,∞)。B前後收到的信息不一致,但是第二次收到的信息和B發給C的信息是一致的,所以B就會認為第一次收到的(C,3)是無效的。但是如果C真的有了一條通往A的線路,這時兩次發的信息一定是一致的,那麼B就會相信C的信息,從而把(A,∞)刷新成C給B的信息
❉距離向量路由演算法只適用於小規模網路,每個節點不清楚整個網路的拓撲結構
發現鄰居節點,並學習它們的網路地址,測量到每個鄰居節點的延遲或開銷,將所有學習到的內容封裝成一個鏈路狀態包(包以發送方的標識符開頭,後面是序號、年齡和一個鄰居節點列表;鏈路狀態包定期創建或發生重大事件時創建)。將鏈路狀態包廣播發送給所有其他路由器【洪泛方式:狀態包包含一個序號,每次發送新包時加1。路由器記錄信息對(源路由器,序號),當一個鏈路狀態包到達時,若是新的則分發,若是重復的則丟棄,若序號比路由記錄中的最大序號小則認為過時而丟棄】。計算到每個其他路由器的最短路徑
☆鏈路狀態路由演算法適用於大規模網路。每個節點都會了解其他節點的局部拓撲,因此就會了解整個網路的拓撲結構,這時當前節點就能找到到目的節點的最優路由
• 使用32位序號。
因為序號是循環使用的,如果位數很少,比如只是1~7,那麼7不一定比1大,1有可能是下一輪的第一個數。而32位的時候因為數字特別龐大,不會出現這樣問題
• 增加年齡域,每秒鍾年齡減1,為零則丟棄
比如A發給B (C,4),由於差錯,本來是(C,5)的下一個包,變成了(C,1000)。這之後來的(C,6),(C,7)。。。都沒有(C,1000)大,因此包會被丟棄。但其實後面到的包都是新的。為了避免這樣的問題發生,(C,1000)里的1000就會在每一秒減1,直到年齡比新到的包小,接下來就可以正常接包了。不過這之前到的包都會被丟棄,這也是沒有辦法的事
• 鏈路狀態包到達後,延遲一段時間,並與其它已到達的來自同一路由器的鏈路狀態包比較序號,丟棄重復包,保留新包
• 鏈路狀態包需要應答
為了保證數據傳輸的可靠性
② 路由器演算法必須具備
路由演算法在路由協議中起著至關重要的作用,採用何種演算法往往決定了最終的尋徑結果,因此選擇路由演算法一定要仔細。必須具備以下幾個設計目標:
——(1)最優化:指路由演算法選擇最佳路徑的能力。
——(2)簡潔性:演算法設計簡潔,利用最少的軟體和開銷,提供最有效的功能。
——(3)堅固性:路由演算法處於非正常或不可預料的環境時,如硬體故障、負載過高或操作失誤時,都能正確運行。由於路由器分布在網路聯接點上,所以在它們出故障時會產生嚴重後果。最好的路由器演算法通常能經受時間的考驗,並在各種網路環境下被證實是可靠的。
——(4)快速收斂:收斂是在最佳路徑的判斷上所有路由器達到一致的過程。當某個網路事件引起路由可用或不可用時,路由器就發出更新信息。路由更新信息遍及整個網路,引發重新計算最佳路徑,最終達到所有路由器一致公認的最佳路徑。收斂慢的路由演算法會造成路徑循環或網路中斷。
——(5)靈活性:路由演算法可以快速、准確地適應各種網路環境。例如,某個網段發生故障,路由演算法要能很快發現故障,並為使用該網段的所有路由選擇另一條最佳路徑。
③ 我的路由器連接不上網路了應該怎麼設置
原因及解決辦法:
1、路由器插口連接錯誤
用戶第一步應該檢查插口是否連接錯誤,WAN介面是路由器網路接入插口,通常連接光貓與網線,LAN介面連接的電腦,可以任意選擇一個LAN介面與電腦相連接。
(3)路由器演算法不能適應新網路環境擴展閱讀
連通不同的網路
從過濾網路流量的角度來看,路由器的作用與交換機和網橋非常相似。但是與工作在網路物理層,從物理上劃分網段的交換機不同,路由器使用專門的軟體協議從邏輯上對整個網路進行劃分。例如,一台支持IP協議的路由器可以把網路劃分成多個子網段,只有指向特殊IP地址的網路流量才可以通過路由器。
對於每一個接收到的數據包,路由器都會重新計算其校驗值,並寫入新的物理地址。因此,使用路由器轉發和過濾數據的速度往往要比只查看數據包物理地址的交換機慢。但是,對於那些結構復雜的網路,使用路由器可以提高網路的整體效率。路由器的另外一個明顯優勢就是可以自動過濾網路廣播。總體上說,在網路中添加路由器的整個安裝過程要比即插即用的交換機復雜很多。
信息傳輸
有的路由器僅支持單一協議,但大部分路由器可以支持多種協議的傳輸,即多協議路由器。由於每一種協議都有自己的規則,要在一個路由器中完成多種協議的演算法,勢必會降低路由器的性能。路由器的主要工作就是為經過路由器的每個數據幀尋找一條最佳傳輸路徑,並將該數據有效地傳送到目的站點。
由此可見,選擇最佳路徑的策略即路由演算法是路由器的關鍵所在。為了完成這項工作,在路由器中保存著各種傳輸路徑的相關數據--路徑表(Routing Table),供路由選擇時使用。路徑表中保存著子網的標志信息、網上路由器的個數和下一個路由器的名字等內容。路徑表可以是由系統管理員固定設置好的。
靜態路由表:由系統管理員事先設置好固定的路徑表稱之為靜態(static)路徑表。
動態路由表:動態(Dynamic)路徑表是路由器根據網路系統的運行情況而自動調整的路徑表。
④ 路由演算法的設計目標
路由演算法通常具有下列設計目標的一個或多個:優化、簡單、低耗、健壯、穩定、快速聚合、靈活性。
(1)最優化:指路由演算法選擇最佳路徑的能力。根據metric的值和權值來計算。
(2)簡潔性:演算法設計必須簡潔。路由協議在網路中必須高效地提供其功能,盡量減少軟體和應用的開銷。這在當實現路由演算法的軟體必須運行在物理資源有限的計算機上時尤其重要。
(3)堅固性:路由演算法處於非正常或不可預料的環境時,如硬體故障、負載過高或操作失誤時,都能正確運行。由於路由器分布在網路聯接點上,所以在它們出故障時會產生嚴重後果。最好的路由器演算法通常能經受時間的考驗,並在各種網路環境下被證實是可靠的。
(4)快速收斂:收斂是在最佳路徑的判斷上所有路由器達到一致的過程。當某個網路事件引起路由可用或不可用時,路由器就發出更新信息。路由更新信息遍及整個網路,引發重新計算最佳路徑,最終達到所有路由器一致公認的最佳路徑。收斂慢的路由演算法會造成路徑循環或網路中斷。
(5)靈活性:路由演算法要求可以快速、准確地適應各種網路環境。例如,某個網段發生故障,路由演算法要能很快發現故障,並為使用該網段的所有路由選擇另一條最佳路徑。
⑤ 路由器設置顯示網路異常怎麼辦呀
1、首先用網線連接光纖貓與路由器,網線的一頭插到光纖貓的「網口」孔,網線的另一頭插到路由器的Wlan介面。
⑥ 路由技術的演算法分類
路由選擇演算法就是路由選擇的方法或策略。
按照路由選擇演算法能否隨網路的拓撲結構或者通信量自適應地進行調整變化進行分類,路由選擇演算法可以分為靜態路由選擇演算法和動態路由選擇演算法。 靜態路由選擇演算法就是非自適應路由選擇演算法,這是一種不測量、不利用網路狀態信息,僅僅按照某種固定規律進行決策得簡單得路由選擇演算法。靜態路由選擇演算法得特點是簡單和開銷小,但是不能適應網路狀態的變化。靜態路由選擇演算法主要包括擴散法和固定路由表法。靜態路由是依靠手工輸入的信息來配置路由表的方法。
靜態路由具有以下幾個優點:減小了路由器的日常開銷。在小型互聯網上很容易配置。可以控制路由選擇的更新。但是,靜態路由在網路變化頻繁出現的環境中並不會很好的工作。在大型的和經常變動的互聯網,配置靜態路由是不現實。 動態路由選擇演算法就是自適應路由選擇演算法,是依靠當前網路的狀態信息進行決策,從而使路由選擇結果在一定程度上適應網路拓撲結構和通信量的變化。
動態路由選擇演算法的特點是能較好的適應網路狀態的變化,但是實現起來較為復雜,開銷也比較大。動態路由選擇演算法一般採用路由表法,主要包括分布式路由選擇演算法和集中式路由選擇演算法。分布式路由選擇演算法是每一個節點通過定期得與相鄰節點交換路由選擇得狀態信息來修改各自的路由表,這樣使整個網路的路由選擇經常處於一種動態變化的狀況。集中式路由選擇演算法是網路中設置一個節點,專門收集各個節點定期發送得狀態信息,然後由該節點根據網路狀態信息,動態的計算出每一個節點的路由表,再將新的路由表發送給各個節點。
⑦ 非自適應路由選擇演算法有哪些
根據路由演算法對網路變化的適應能力,主要分為兩種類型: 靜態路由選擇策略——即非自適應路由選擇,其特點是簡單和開銷較小,但不能及時適應網路狀態的變化。
⑧ internet中的路由演算法的應用和發展
路由演算法可以根據多個特性來加以區分。首先,演算法設計者的特定目標影響了該路由協議的操作;其次,存在著多種路由演算法,每種演算法對網路和路由器資源的影響都不同;最後,路由演算法使用多種metric,影響到最佳路徑的計算。
路由演算法通常具有下列設計目標的一個或多個:
優化
簡單、低耗
健壯、穩定
快速聚合
靈活性
優化指路由演算法選擇最佳路徑的能力,根據metric的值和權值來計算。例如有一種路由演算法可能使用跳數和延遲,但可能延遲的權值要大些。當然,路由協議必須嚴格定義計算metric的演算法。
路由演算法也可以設計得盡量簡單。換句話說,路由協議必須高效地提供其功能,盡量減少軟體和應用的開銷。當實現路由演算法的軟體必須運行在物理資源有限的計算機上時高效尤其重要。
路由演算法必須健壯,即在出現不正常或不可預見事件的情況下必須仍能正常處理,例如硬體故障、高負載和不正確的實現。因為路由器位於網路的連接點,當它們失效時會產生重大的問題。最好的路由演算法通常是那些經過了時間考驗,證實在各種網路條件下都很穩定的演算法。
此外,路由演算法必須能快速聚合,聚合是所有路由器對最佳路徑達成一致的過程。當某網路事件使路徑斷掉或不可用時,路由器通過網路分發路由更新信息,促使最佳路徑的重新計算,最終使所有路由器達成一致。聚合很慢的路由演算法可能會產生路由環或網路中斷。
各路由演算法的區別點包括:
靜態與動態
單路徑與多路徑
平坦與分層
主機智能與路由器智能
域內與域間
鏈接狀態與距離向量
(1)靜態與動態
靜態路由演算法很難算得上是演算法,只不過是開始路由前由網管建立的表映射。這些映射自身並不改變,除非網管去改動。使用靜態路由的演算法較容易設計,在網路通信可預測及簡單的網路中工作得很好。
由於靜態路由系統不能對網路改變做出反映,通常被認為不適用於現在的大型、易變的網路。九十年代主要的路由演算法都是動態路由演算法,通過分析收到的路由更新信息來適應網路環境的改變。如果信息表示網路發生了變化,路由軟體就重新計算路由並發出新的路由更新信息。這些信息滲入網路,促使路由器重新計算並對路由表做相應的改變。
動態路由演算法可以在適當的地方以靜態路由作為補充。例如,最後可選路由(router of last resort),作為所有不可路由分組的去路,保證了所有的數據至少有方法處理。
(2)單路徑與多路徑
一些復雜的路由協議支持到同一目的的多條路徑。與單路徑演算法不同,這些多路徑演算法允許數據在多條線路上復用。多路徑演算法的優點很明顯:它們可以提供更好的吞吐量和可靠性。
(3)平坦與分層
一些路由協議在平坦的空間里運作,其它的則有路由的層次。在平坦的路由系統中,每個路由器與其它所有路由器是對等的;在分層次的路由系統中,一些路由器構成了路由主幹,數據從非主幹路由器流向主幹路由器,然後在主幹上傳輸直到它們到達目標所在區域,在這里,它們從最後的主幹路由器通過一個或多個非主幹路由器到達終點。
路由系統通常設計有邏輯節點組,稱為域、自治系統或區間。在分層的系統中,一些路由器可以與其它域中的路由器通信,其它的則只能與域內的路由器通信。在很大的網路中,可能還存在其它級別,最高級的路由器構成了路由主幹。
分層路由的主要優點是它模擬了多數公司的結構,從而能很好地支持其通信。多數的網路通信發生在小組中(域)。因為域內路由器只需要知道本域內的其它路由器,它們的路由演算法可以簡化,根據所使用的路由演算法,路由更新的通信量可以相應地減少。
(4)主機智能與路由器智能
一些路由演算法假定源結點來決定整個路徑,這通常稱為源路由。在源路由系統中,路由器只作為存貯轉發設備,無意識地把分組發向下一跳。其它路由演算法假定主機對路徑一無所知,在這些演算法中,路由器基於自己的計算決定通過網路的路徑。前一種系統中,主機具有決定路由的智能,後者則為路由器具有此能力。
主機智能和路由器智能的折衷實際是最佳路由與額外開銷的平衡。主機智能系統通常能選擇更佳的路徑,因為它們在發送數據前探索了所有可能的路徑,然後基於特定系統對「優化」的定義來選擇最佳路徑。然而確定所有路徑的行為通常需要很多的探索通信量和很長的時間。
(5)域內與域間
一些路由演算法只在域內工作,其它的則既在域內也在域間工作。這兩種演算法的本質是不同的。其遵循的理由是優化的域內路由演算法沒有必要也成為優化的域間路由演算法。
(6)鏈接狀態與距離向量
鏈接狀態演算法(也叫做短路徑優先演算法)把路由信息散布到網路的每個節點,不過每個路由器只發送路由表中描述其自己鏈接狀態的部分。距離向量演算法(也叫做Bellman-Ford演算法)中每個路由器發送路由表的全部或部分,但只發給其鄰居。也就是說,鏈接狀態演算法到處發送較少的更新信息,而距離向量演算法只向相鄰的路由器發送較多的更新信息。
由於鏈接狀態演算法聚合得較快,它們相對於距離演算法產生路由環的傾向較小。在另一方面,鏈接狀態演算法需要更多的CPU和內存資源,因此鏈接狀態演算法的實現和支持較昂貴。雖然有差異,這兩種演算法類型在多數環境中都可以工作得很好。
3、路由的metric
路由表中含有由交換軟體用以選擇最佳路徑的信息。但是路由表是怎樣建立的呢?它們包含信息的本質是什麼?路由演算法怎樣根據這些信息決定哪條路徑更好呢?
路由演算法使用了許多不同的metric以確定最佳路徑。復雜的路由演算法可以基於多個metric選擇路由,並把它們結合成一個復合的metric。常用的metric如下:
路徑長度
可靠性
延遲
帶寬
負載
通信代價
路徑長度是最常用的路由metric。一些路由協議允許網管給每個網路鏈接人工賦以代價值,這種情況下,路由長度是所經過各個鏈接的代價總和。其它路由協議定義了跳數,即分組在從源到目的的路途中必須經過的網路產品,如路由器的個數。
可靠性,在路由演算法中指網路鏈接的可依賴性(通常以位誤率描述),有些網路鏈接可能比其它的失效更多,網路失效後,一些網路鏈接可能比其它的更易或更快修復。任何可靠性因素都可以在給可靠率賦值時計算在內,通常是由網管給網路鏈接賦以metric值。
路由延遲指分組從源通過網路到達目的所花時間。很多因素影響到延遲,包括中間的網路鏈接的帶寬、經過的每個路由器的埠隊列、所有中間網路鏈接的擁塞程度以及物理距離。因為延遲是多個重要變數的混合體,它是個比較常用且有效的metric。
http://tech.ddvip.com/2007-10/119152495935811.html
這裡面有解釋。。恩
⑨ 路由器的原理
路由器的概念及基本構成
路由器是一種用於網路互連的計算機設備,它工作在 OSI 參考模型的第三層
(網路層),為不同的網路之間報文尋徑並存儲轉發。
作為路由器,必須具備:
Ⅰ 兩個或兩個以上的介面:用於連接不同的網路。
Ⅱ 協議至少實現到網路層:只有理解網路層協議才能與網路層通訊。
Ⅲ 至少支持兩種以上的子網協議:異種子網互聯。
Ⅳ 具有存儲、轉發、尋徑功能 :實現速率匹配與路由尋徑。
Ⅴ 一組路由協議:包括域內路由協議、域間路由協議。
路由器的作用
Ⅰ 異種網路互連:主要是具有異種子網協議的網路互連。
Ⅱ 子網協議轉換:不同子網間包括區域網和廣域網間協議轉換。
Ⅲ 路由(尋徑):路由表建立、刷新、查找。
Ⅳ 速率適配:不同介面具有不同的速率,路由器可以利用自己 緩存及流控協議適配。
Ⅴ 隔離網路:防止廣播風暴,網路安全(防火牆)。
Ⅵ 報文分片與重組:介面的 MTU 不同,超過介面的 MTU 的報文會被分片,到達目的地的報文會被重組。
Ⅶ備份、流量流控:主備線路的切換及復雜的流量控制。
路由器工作原理
路由器中時刻維持著一張路由表,所有報文的發送和轉發都通過查找路由表。從相應埠發送。這張路由表可以是靜態配置的,也可以是動態路由協議產生的。物理層從路由器的一個埠收到一個報文,上送到數據鏈路層。數據鏈路層去掉鏈路層封裝,根據報文的協議域上送到網路層。網路層首先看報文是否是送給本機的,若是,去掉網路層封裝,送給上層。若不是,則根據報文的目的地址查找路由表,若找到路由,將報文送給相應埠的數據鏈路層,數據鏈路層封裝後,發送報文。若找不到路由,報文丟棄。
電子產品世界
路由器工作原理
手機與無線通信 作者:何富和 時間:2015-05-27來源:電子產品世界
導讀:說起路由器,大家對它一定非常熟悉吧,上網都靠他,但它是靠什麼原理工作的呢,它的工作流程是怎樣呢?今天小編帶大家了解一下路由器的工作原理。
路由器的概念及基本構成
路由器是一種用於網路互連的計算機設備,它工作在 OSI 參考模型的第三層
(網路層),為不同的網路之間報文尋徑並存儲轉發。
作為路由器,必須具備:
Ⅰ 兩個或兩個以上的介面:用於連接不同的網路。
Ⅱ 協議至少實現到網路層:只有理解網路層協議才能與網路層通訊。
Ⅲ 至少支持兩種以上的子網協議:異種子網互聯。
Ⅳ 具有存儲、轉發、尋徑功能 :實現速率匹配與路由尋徑。
Ⅴ 一組路由協議:包括域內路由協議、域間路由協議。
路由器的作用
Ⅰ 異種網路互連:主要是具有異種子網協議的網路互連。
Ⅱ 子網協議轉換:不同子網間包括區域網和廣域網間協議轉換。
Ⅲ 路由(尋徑):路由表建立、刷新、查找。
Ⅳ 速率適配:不同介面具有不同的速率,路由器可以利用自己 緩存及流控協議適配。
Ⅴ 隔離網路:防止廣播風暴,網路安全(防火牆)。
Ⅵ 報文分片與重組:介面的 MTU 不同,超過介面的 MTU 的報文會被分片,到達目的地的報文會被重組。
Ⅶ備份、流量流控:主備線路的切換及復雜的流量控制。
路由器工作原理
路由器中時刻維持著一張路由表,所有報文的發送和轉發都通過查找路由表。從相應埠發送。這張路由表可以是靜態配置的,也可以是動態路由協議產生的。物理層從路由器的一個埠收到一個報文,上送到數據鏈路層。數據鏈路層去掉鏈路層封裝,根據報文的協議域上送到網路層。網路層首先看報文是否是送給本機的,若是,去掉網路層封裝,送給上層。若不是,則根據報文的目的地址查找路由表,若找到路由,將報文送給相應埠的數據鏈路層,數據鏈路層封裝後,發送報文。若找不到路由,報文丟棄。
子網尋徑及路由
標準的尋徑表表目是一個二維組(信宿網路地址,下一驛站地址),其中不攜帶子網信息,不能滿足子網尋徑。引入子網編址以後,子網尋徑表的每一表目中加入子網模,於是子網尋徑表表目變為三維組:子網模、信宿網路地址、下一驛站地址。
路由演算法、路由協議、尋徑
路由器依據路由表來為報文尋徑,路由表由路由協議建立和維護。路由協議的設計則是依據某種路由演算法。
選徑是否是最佳:
以什麼參數來衡量路由,如時延、距離、中間網關數等。
簡潔性:路由演算法應設計的盡可能簡潔。
強壯性:路由演算法必須具有魯棒性,應經得起各種網路環境的考驗。
快速收斂性:即所有路由器就最優路徑達成一致的過程路由演算法如果收斂的慢,就會引起路徑循環或網路消耗。
靈活性、彈性:路由演算法能否適應網路環境的各種變化,例如網路帶寬、路由器的緩存、網路時延等發生變化,路由演算法能否根據這些變化做出調整。路由表包含的信息用來交換路由信息和選擇最佳路由路由表是路由器的核心,其中的路由信息來源有兩種:一種是手動添加的靜態路由,另外一種是路由器運行過程中由動態路由協議學習而得來。路由演算法使用了許多不同的權決定最佳路由。
通常採用的權如下:
Ⅰ 路徑距離:指所經過的每條鏈路的權值之和,有的路由協議指節點數目;
Ⅱ 可靠性:指網路鏈路是否容易出故障;
Ⅲ 時延:指網路鏈路造成的網路延時;
Ⅳ 帶寬:指鏈路傳輸信息流容量的能力;
Ⅴ 承載量:指網路資源如路由器的繁忙程度;
路由器與相關網路設備的比較
Hubs(中繼器):對應 7 層模型的物理層,它的作用是放大電信號。主要用於連接具有相同物理層的 LAN。Hubs 還將乙太網的匯流排結構變成星狀結構。Bridges(Switches):是一種在數據鏈路層實現互連的存儲轉發設備,廣泛用於區域網的擴展。Bridges 從一個網段接收完整的數據幀,進行必要的比較和驗證,然後決定是丟棄還是發送給另外一個網段。Bridges 具有隔離網段的作用。在網路上適當地使用 Bridges 可以調整網路負載,提高傳輸性能。
Router(路由器):與 Bridges 相比,路由器實現網路互連是發生在網路層,它實現了相對復雜的功能:路由選擇、多路重發、錯誤檢測等。路由器的異構網互連能力、阻塞控制能力和網段的隔離能力要強於 Bridges。路由器可以阻止網路風暴、支持多協議、提供多種介面。
⑩ 寬頻裝了路由後不能聯網
路由是把信息從源穿過網路傳遞到目的地的行為,在路上,至少遇到一個中間節點。路由通常與橋接來對比,在粗心的人看來,它們似乎完成的是同樣的事。它們的主要區別在於橋接發生在OSI參考協議的第二層(鏈接層),而路由發生在第三層(網路層)。這一區別使二者在傳遞信息的過程中使用不同的信息,從而以不同的方式來完成其任務。
路由的話題早已在計算機界出現,但直到八十年代中期才獲得商業成功,這一時間延遲的主要原因是七十年代的網路很簡單,後來大型的網路才較為普遍。
二、路由的組成
路由包含兩個基本的動作:確定最佳路徑和通過網路傳輸信息。在路由的過程中,後者也稱為(數據)交換。交換相對來說比較簡單,而選擇路徑很復雜。
1、路徑選擇
metric是路由演算法用以確定到達目的地的最佳路徑的計量標准,如路徑長度。為了幫助選路,路由演算法初始化並維護包含路徑信息的路由表,路徑信息根據使用的路由演算法不同而不同。
路由演算法根據許多信息來填充路由表。目的/下一跳地址對告知路由器到達該目的最佳方式是把分組發送給代表「下一跳」的路由器,當路由器收到一個分組,它就檢查其目標地址,嘗試將此地址與其「下一跳」相聯系。下表為一個目的/下一跳路由表的例子。
表5-1 目的/下一跳對應表決定數據的最佳路徑
http://www.linkwan.com/gb/routertech/netsys/images/route1.gif
路由表還可以包括其它信息。路由表比較metric以確定最佳路徑,這些metric根據所用的路由演算法而不同,下面將介紹常見的metric。路由器彼此通信,通過交換路由信息維護其路由表,路由更新信息通常包含全部或部分路由表,通過分析來自其它路由器的路由更新信息,該路由器可以建立網路拓撲細圖。路由器間發送的另一個信息例子是鏈接狀態廣播信息,它通知其它路由器發送者的鏈接狀態,鏈接信息用於建立完整的拓撲圖,使路由器可以確定最佳路徑。
2、交換
交換演算法相對而言較簡單,對大多數路由協議而言是相同的,多數情況下,某主機決定向另一個主機發送數據,通過某些方法獲得路由器的地址後,源主機發送指向該路由器的物理(MAC)地址的數據包,其協議地址是指向目的主機的。
路由器查看了數據包的目的協議地址後,確定是否知道如何轉發該包,如果路由器不知道如何轉發,通常就將之丟棄。如果路由器知道如何轉發,就把目的物理地址變成下一跳的物理地址並向之發送。下一跳可能就是最終的目的主機,如果不是,通常為另一個路由器,它將執行同樣的步驟。當分組在網路中流動時,它的物理地址在改變,但其協議地址始終不變,如下圖所示。
http://www.linkwan.com/gb/routertech/netsys/images/route2.gif
上面描述了源系統與目的系統間的交換,ISO定義了用於描述此過程的分層的術語。在該術語中,沒有轉發分組能力的網路設備稱為端系統(ES--end system),有此能力的稱為中介系統(IS--intermediate system)。IS又進一步分成可在路由域內通信的域內IS(intradomain IS)和既可在路由域內有可在域間通信的域間IS(interdomain IS)。路由域通常被認為是統一管理下的一部分網路,遵守特定的一組管理規則,也稱為自治系統(autonomous system)。在某些協議中,路由域可以分為路由區間,但是域內路由協議仍可用於在區間內和區間之間交換數據。
三、路由演算法
路由演算法可以根據多個特性來加以區分。首先,演算法設計者的特定目標影響了該路由協議的操作;其次,存在著多種路由演算法,每種演算法對網路和路由器資源的影響都不同;最後,路由演算法使用多種metric,影響到最佳路徑的計算。下面的章節分析了這些路由演算法的特性。
1、設計目標
路由演算法通常具有下列設計目標的一個或多個:
優化
簡單、低耗
健壯、穩定
快速聚合
靈活性
優化指路由演算法選擇最佳路徑的能力,根據metric的值和權值來計算。例如有一種路由演算法可能使用跳數和延遲,但可能延遲的權值要大些。當然,路由協議必須嚴格定義計算metric的演算法。
路由演算法也可以設計得盡量簡單。換句話說,路由協議必須高效地提供其功能,盡量減少軟體和應用的開銷。當實現路由演算法的軟體必須運行在物理資源有限的計算機上時高效尤其重要。
路由演算法必須健壯,即在出現不正常或不可預見事件的情況下必須仍能正常處理,例如硬體故障、高負載和不正確的實現。因為路由器位於網路的連接點,當它們失效時會產生重大的問題。最好的路由演算法通常是那些經過了時間考驗,證實在各種網路條件下都很穩定的演算法。
此外,路由演算法必須能快速聚合,聚合是所有路由器對最佳路徑達成一致的過程。當某網路事件使路徑斷掉或不可用時,路由器通過網路分發路由更新信息,促使最佳路徑的重新計算,最終使所有路由器達成一致。聚合很慢的路由演算法可能會產生路由環或網路中斷。
在下圖中的路由環中,某分組在時間t1到達路由器1,路由器1已經更新並知道到達目的的最佳路徑是以路由器2為下一跳,於是就把該分組轉發給路由器2。但是路由器2還沒有更新,它認為最佳的下一跳是路由器1,於是把該分組發回給路由器1,結果分組在兩個路由器間來回傳遞直到路由器2收到路由更新信息或分組超過了生存期。
http://www.linkwan.com/gb/routertech/netsys/images/route3.gif
路由演算法還應該是靈活的,即它們應該迅速、准確地適應各種網路環境。例如,假定某網段斷掉了,當知道問題後,很多路由演算法對通常使用該網段的路徑將迅速選擇次佳的路徑。路由演算法可以設計得可適應網路帶寬、路由器隊列大小和網路延遲。
2、演算法類型
各路由演算法的區別點包括:
靜態與動態
單路徑與多路徑
平坦與分層
主機智能與路由器智能
域內與域間
鏈接狀態與距離向量
(1)靜態與動態
靜態路由演算法很難算得上是演算法,只不過是開始路由前由網管建立的表映射。這些映射自身並不改變,除非網管去改動。使用靜態路由的演算法較容易設計,在網路通信可預測及簡單的網路中工作得很好。
由於靜態路由系統不能對網路改變做出反映,通常被認為不適用於現在的大型、易變的網路。九十年代主要的路由演算法都是動態路由演算法,通過分析收到的路由更新信息來適應網路環境的改變。如果信息表示網路發生了變化,路由軟體就重新計算路由並發出新的路由更新信息。這些信息滲入網路,促使路由器重新計算並對路由表做相應的改變。
動態路由演算法可以在適當的地方以靜態路由作為補充。例如,最後可選路由(router of last resort),作為所有不可路由分組的去路,保證了所有的數據至少有方法處理。
(2)單路徑與多路徑
一些復雜的路由協議支持到同一目的的多條路徑。與單路徑演算法不同,這些多路徑演算法允許數據在多條線路上復用。多路徑演算法的優點很明顯:它們可以提供更好的吞吐量和可靠性。
(3)平坦與分層
一些路由協議在平坦的空間里運作,其它的則有路由的層次。在平坦的路由系統中,每個路由器與其它所有路由器是對等的;在分層次的路由系統中,一些路由器構成了路由主幹,數據從非主幹路由器流向主幹路由器,然後在主幹上傳輸直到它們到達目標所在區域,在這里,它們從最後的主幹路由器通過一個或多個非主幹路由器到達終點。
路由系統通常設計有邏輯節點組,稱為域、自治系統或區間。在分層的系統中,一些路由器可以與其它域中的路由器通信,其它的則只能與域內的路由器通信。在很大的網路中,可能還存在其它級別,最高級的路由器構成了路由主幹。
分層路由的主要優點是它模擬了多數公司的結構,從而能很好地支持其通信。多數的網路通信發生在小組中(域)。因為域內路由器只需要知道本域內的其它路由器,它們的路由演算法可以簡化,根據所使用的路由演算法,路由更新的通信量可以相應地減少。
(4)主機智能與路由器智能
一些路由演算法假定源結點來決定整個路徑,這通常稱為源路由。在源路由系統中,路由器只作為存貯轉發設備,無意識地把分組發向下一跳。其它路由演算法假定主機對路徑一無所知,在這些演算法中,路由器基於自己的計算決定通過網路的路徑。前一種系統中,主機具有決定路由的智能,後者則為路由器具有此能力。
主機智能和路由器智能的折衷實際是最佳路由與額外開銷的平衡。主機智能系統通常能選擇更佳的路徑,因為它們在發送數據前探索了所有可能的路徑,然後基於特定系統對「優化」的定義來選擇最佳路徑。然而確定所有路徑的行為通常需要很多的探索通信量和很長的時間。
(5)域內與域間
一些路由演算法只在域內工作,其它的則既在域內也在域間工作。這兩種演算法的本質是不同的。其遵循的理由是優化的域內路由演算法沒有必要也成為優化的域間路由演算法。
(6)鏈接狀態與距離向量
鏈接狀態演算法(也叫做短路徑優先演算法)把路由信息散布到網路的每個節點,不過每個路由器只發送路由表中描述其自己鏈接狀態的部分。距離向量演算法(也叫做Bellman-Ford演算法)中每個路由器發送路由表的全部或部分,但只發給其鄰居。也就是說,鏈接狀態演算法到處發送較少的更新信息,而距離向量演算法只向相鄰的路由器發送較多的更新信息。
由於鏈接狀態演算法聚合得較快,它們相對於距離演算法產生路由環的傾向較小。在另一方面,鏈接狀態演算法需要更多的CPU和內存資源,因此鏈接狀態演算法的實現和支持較昂貴。雖然有差異,這兩種演算法類型在多數環境中都可以工作得很好。
3、路由的metric
路由表中含有由交換軟體用以選擇最佳路徑的信息。但是路由表是怎樣建立的呢?它們包含信息的本質是什麼?路由演算法怎樣根據這些信息決定哪條路徑更好呢?
路由演算法使用了許多不同的metric以確定最佳路徑。復雜的路由演算法可以基於多個metric選擇路由,並把它們結合成一個復合的metric。常用的metric如下:
路徑長度
可靠性
延遲
帶寬
負載
通信代價
路徑長度是最常用的路由metric。一些路由協議允許網管給每個網路鏈接人工賦以代價值,這種情況下,路由長度是所經過各個鏈接的代價總和。其它路由協議定義了跳數,即分組在從源到目的的路途中必須經過的網路產品,如路由器的個數。
可靠性,在路由演算法中指網路鏈接的可依賴性(通常以位誤率描述),有些網路鏈接可能比其它的失效更多,網路失效後,一些網路鏈接可能比其它的更易或更快修復。任何可靠性因素都可以在給可靠率賦值時計算在內,通常是由網管給網路鏈接賦以metric值。
路由延遲指分組從源通過網路到達目的所花時間。很多因素影響到延遲,包括中間的網路鏈接的帶寬、經過的每個路由器的埠隊列、所有中間網路鏈接的擁塞程度以及物理距離。因為延遲是多個重要變數的混合體,它是個比較常用且有效的metric。
帶寬指鏈接可用的流通容量。在其它所有條件都相等時,10Mbps的乙太網鏈接比64kbps的專線更可取。雖然帶寬是鏈接可獲得的最大吞吐量,但是通過具有較大帶寬的鏈接做路由不一定比經過較慢鏈接路由更好。例如,如果一條快速鏈路很忙,分組到達目的所花時間可能要更長。
負載指網路資源,如路由器的繁忙程度。負載可以用很多方面計算,包括CPU使用情況和每秒處理分組數。持續地監視這些參數本身也是很耗費資源的。
通信代價是另一種重要的metric,尤其是有一些公司可能關系運作費用甚於性能。即使線路延遲可能較長,他們也寧願通過自己的線路發送數據而不採用昂貴的公用線路。
路由器的工作原理是什麼?
路由器利用網路定址功能使路由器能夠在網路中確定一條最佳的路徑 IP 地址的網路部
分確定分組的目標網路,並通過 IP地址的主機部分和設備的 MAC 地址確定到目標節點的連接
路由器的某一個介面接收到一個數據包時,會查看包中的目標網路地址以判斷該包的目的地址在當前
的路由表中是否存在(即路由器是否知道到達目標網路的路徑),如果發現包的目標地址與本路由器的某
個介面所連接的網路地址相同,那麼馬上數據轉發到相應介面;如果發現包的目標地址不是自己的直連
網段,路由器會查看自己的路由表,查找包的目的網路所對應的介面,並從相應的介面轉發出去如果路
由表中記錄的網路地址與包的目標地址不匹配,則根據路由器配置轉發到默認介面,在沒有配置默認介面
的情況下會給用戶返回目標地址不可達的 ICMP 信息
路由器包含了什麼功能?
路由器包含了路由選擇和交換的功能
路由器介面通常一個數據分組從一條數據鏈路傳送到另一條數據鏈路
路由選擇功能:為傳送分組,路由器會使用地址的網路部分進行路由選擇以確定一條最佳路徑
路由交換功能:使路由器有能力接收分組並進行轉發
所以路由是跨越
路由器在工作中要經歷哪幾個過程?
路由發現:學習路由的過程,動態路由通常由路由器自己完成,靜態路由需要手工配置
路由轉發:路由學習之後會照學習更新的路由表進行數據轉發
路由維護:路由器通過定期與網路中其他路由器進行通信來了解網路拓撲變化以便更新路由表
路由器記錄了介面所直連的網路 ID,稱為直連路由,路由器可以自動學習到直連路由而不需要配置
路由器所識別的邏輯地址的協議必須被路由器所支持
路由有哪幾種類型?各種路由的特點是什麼?
路由分為靜態路由
靜態路由是由管理員在路由器進行手工配置的固定的路由
靜態路由允許對路由的行為進行精確的控制減少了網路流量單向以及配置簡單靜態路由通常情
況下優先順序最高,因為其管理距離最短
靜態路由的配置方法:
Router(config)#ip route network [mask] {address | interface} [distance] [permantet]
目標網路 掩碼 到達目標網路的下一個路由器地址或本地介面
默認路由是靜態路由的一種,是指當路由表中與包的目標地址之間沒有匹配的表項時路由器能夠作出
的選擇
Router(config)#ip route 0.0.0.0 0.0.0.0 下一個路由器的介面地址
Router(config)#ip classless
其中 0.0.0.0 0.0.0.0 代表將發往任何網路的包都轉發到下一個路由器介面地址
Ip classless 指路由器接收到不能轉發的包的時候會將其匹配給默認路由
並且返回目標地址不可達的 ICMP的消息
動態路由是網路中的路由器之間根據實時網路拓撲變化,相互通信傳遞路由信息,利用收到的路由信
息通過路由選擇協議計算,更新路由表的過程
動態路由減少了管理任務
常見的動態路由包括距離矢量路由選擇協議和鏈路狀態路由選擇協議