因特網的路由選擇協議


因特網的路由選擇協議

一、有關路由選擇協議的幾個基本概念

1.1.關於“最佳路由”

  • 不存在一種絕對的最佳路由算法。
  • 所謂“最佳”只能是相對於某一種特定要求下得出的較為合理的選擇而已。
  • 實際的路由選擇算法,應盡可能接近於理想的算法。
  • 路由選擇是個非常復雜的問題
    • 它是網絡中的所有結點共同協調工作的結果。
    • 路由選擇的環境往往是不斷變化的,而這種變化有時無法事先知道。

1.2.從路由算法的自適應性考慮

  • 靜態路由選擇策略——即非自適應路由選擇,需要手動添加路由表,其特點是簡單和開銷較小,但不能及時適應網絡狀態的變化。
  • 動態路由選擇策略——即自適應路由選擇,不需要手動添加路由表,其特點是能較好地適應網絡狀態的變化,但實現起來較為復雜,開銷也比較大。

一般比較大型的網絡,靠人力無法維護使用動態路由協議,比較小的局域網使用靜態路由協議

1.3.分層次的路由選擇協議

  • 因特網采用分層次的路由選擇協議。
  • 因特網的規模非常大。如果讓所有的路由器知道所有的網絡應怎樣到達,則這種路由表將非常大,處理起來也太花時間。而所有這些路由器之間交換路由信息所需的帶寬就會使因特網的通信鏈路飽和。

1.4.自治系統 AS(Autonomous System)

  • 自治系統 AS 的定義:在單一的技術管理下的一組路由器,而這些路由器使用一種 AS 內部的路由選擇協議和共同的度量以確定分組在該 AS 內的路由,同時還使用一種 AS 之間的路由選擇協議用以確定分組在 AS之間的路由。
  • 現在對自治系統 AS 的定義是強調下面的事實:盡管一個 AS 使用了多種內部路由選擇協議和度量,但重要的是一個 AS 對其他 AS 表現出的是一個單一的和一致的路由選擇策略

1.5.因特網有兩大類路由選擇協議

  • 內部網關協議 IGP (Interior Gateway Protocol) 即在一個自治系統內部使用的路由選擇協議。目前這類路由選擇協議使用得最多,如 RIP 和 OSPF 協議。
  • 外部網關協議EGP (External Gateway Protocol) 若源站和目的站處在不同的自治系統中,當數據報傳到一個自治系統的邊界時,就需要使用一種協議將路由選擇信息傳遞到另一個自治系統中。這樣的協議就是外部網關協議 EGP。在外部網關協議中目前使用最多的是 BGP-4。

image-20200123113207717

自治系統之間的路由選擇也叫做:域間路由選擇(interdomain routing);
在自治系統內部的路由選擇叫做:域內路由選擇(intradomain routing) 。


二、內部網關協議 RIP(Routing Information Protocol)

2.1.特點

  • 路由信息協議 RIP 是內部網關協議屬於動態路由協議, 內部網關協議(IGP)中最早得到廣泛使用的協議(開放非標准協議)。
  • RIP 是一種分布式的基於距離向量的路由選擇協議。
  • 僅和相鄰路由器交換信息。
  • 交換的信息是當前本路由器所知道的全部信息,即自己的路由表。
  • 按固定的時間間隔交換路由信息(周期性廣播),例如,每隔 30 秒。
  • RIP 協議要求網絡中的每一個路由器都要維護從它自己到其他每一個目的網絡的距離記錄

2.2.“距離”的定義

  • 從一路由器到直接連接的網絡的距離定義為 1。
  • 從一個路由器到非直接連接的網絡的距離定義為所經過的路由器數加 1。
  • RIP 協議中的“距離”也稱為“跳數”(hop count),因為每經過一個路由器,跳數就加 1。
  • 這里的“距離”實際上指的是“最短距離”。
  • RIP 認為一個好的路由就是它通過的路由器的數目少,即“距離短”。
  • RIP 允許一條路徑最多只能包含 15 個路由器。
  • “距離”的最大值為16 時即相當於不可達。可見 RIP 只適用於小型互聯網。
  • RIP 不能在兩個網絡之間同時使用多條路由。RIP 選擇一個具有最少路由器的路由(即最短路由),哪怕還存在另一條高速(低時延)但路由器較多的路由。

2.3.簡化過程舉例

image-20200123131427117

  • 網段2的PC1與網段1的PC0通信。

    數據包傳輸到路由器A處,下一跳可以是D,A就告訴D我連着1網段,然后D就記住了到1網段下一跳給A就行,並且經過1個路由器;

    再下一跳是E,D就告訴E我連着1網段,然后E記住了到1網段下一跳給D就行,並且經過2個路由器。

    再下一跳是F,E就告訴F我連着1網段,然后F記住了到1網段下一跳給E就行,並且經過3個路由器。

    再下一跳是C,F就告訴C我連着1網段,然后C記住了到1網段下一跳給F就行,並且經過4個路由器。最后數據包到達PC1。

    在A處下一跳也可以是B,以此類推只經過了2個路由器。目前為止C學到了從2網段到1網段有兩條路徑,分別需要經過2個或4個路由器,最后A保留C->B->A這條最佳路徑。

  • 假如3處斷了,B就不能周期性地告訴C到網段1怎么走了,於是經過4個路由器的路線C->F->E->D->A成為可用的主路徑;當3處重新連接,C就會重新使用C->B->A這一路徑。這就是動態路由協議的好處,不用手動添加路由表,路由器會自動根據網絡變化動態選擇最佳路徑(由)。

2.4.為什么需要周期性廣播?

image-20200123134057977

如圖:如果僅廣播一次,A告訴B到網段1給我就行,之后A宕機了,B卻不知道仍然把從C來的到網段1的數據包傳給A,造成錯誤;如果周期性廣播B每30s呼叫一次A,多次呼叫A都無回復,B就認為A去世了並告訴C以后到網段1別走這條路了。

周期性廣播交換路由信息確保了能夠根據設備故障造成的網絡變化來動態更新最佳路由。


三、內部網關協議OSPF (Open Shortest Path First)

3.1.OSPF 協議的基本特點

  • “開放”表明 OSPF 協議不是受某一家廠商控制,而是公開發表的。
  • “最短路徑優先”是因為使用了 Dijkstra 提出的最短路徑算法SPF
  • OSPF 只是一個協議的名字,它並不表示其他的路由選擇協議不是“最短路徑優先”。是分布式的鏈路狀態協議

3.2.三個要點

  • 向本自治系統中所有路由器發送信息,這里使用的方法是洪泛法。
  • 發送的信息就是與本路由器相鄰的所有路由器的鏈路狀態,但這只是路由器所知道的部分信息
  • “鏈路狀態”就是說明本路由器都和哪些路由器相鄰,以及該鏈路的“度量”(metric)。
  • 只有當鏈路狀態發生變化時,路由器才用洪泛法向所有路由器發送此信息。
  • 由於各路由器之間頻繁地交換鏈路狀態信息,因此所有的路由器最終都能建立一個鏈路狀態數據庫。
  • 這個數據庫實際上就是全網的拓撲結構圖,它在全網范圍內是一致的(這稱為鏈路狀態數據庫的同步)。
  • OSPF 的鏈路狀態數據庫能較快地進行更新,使各個路由器能及時更新其路由表。OSPF 的更新過程收斂得快是其重要優點。

3.4.OSPF 的區域(area)

  • 為了使 OSPF 能夠用於規模很大的網絡,OSPF 將一個自治系統再划分為若干個更小的范圍,叫作區域
  • 每一個區域都有一個 32 位的區域標識符(用點分十進制表示)。
  • 區域也不能太大,在一個區域內的路由器最好不超過 200 個。

image-20200127145403163

  • 划分區域的好處就是將利用洪泛法交換鏈路狀態信息的范圍局限於每一個區域而不是整個的自治系統,一個區域內的鏈路狀態發生變化不影響其他區域,這就減少了整個網絡上的通信量。
  • 在一個區域內部的路由器只知道本區域的完整網絡拓撲,而不知道其他區域的網絡拓撲的情況。
  • OSPF 使用層次結構的區域划分。在上層的區域叫作主干區域(backbone area)。主干區域的標識符規定為0.0.0.0。主干區域的作用是用來連通其他在下層的區域。

3.5.OSPF 的特點

  • OSPF 不用 UDP 而是直接用 IP 數據報傳送。
  • OSPF 對不同的鏈路可根據 IP 分組的不同服務類型 TOS 而設置成不同的代價。因此,OSPF 對於不同類型的業務可計算出不同的路由。
  • 如果到同一個目的網絡有多條相同代價的路徑,那么可以將通信量分配給這幾條路徑。這叫作多路徑間的負載平衡。
  • 所有在 OSPF 路由器之間交換的分組都具有鑒別的功能。
  • 支持可變長度的子網划分和無分類編址 CIDR。
  • 每一個鏈路狀態都帶上一個 32 位的序號,序號越大狀態就越新。

3.6.OSPF的基本操作流程

image-20200127150010492

3.7.OSPF 分組

image-20200127175225259

  • 類型1,問候(Hello)分組。
  • 類型2,數據庫描述(Database Description)分組。
  • 類型3,鏈路狀態請求(Link State Request)分組。
  • 類型4,鏈路狀態更新(Link State Update)分組,用洪泛法對全網更新鏈路狀態。
  • 類型5,鏈路狀態確認(Link State Acknowledgment)分組。

3.8.OSPF 的其他特點

  • OSPF 還規定每隔一段時間,如 30 分鍾,要刷新一次數據庫中的鏈路狀態。
  • 由於一個路由器的鏈路狀態只涉及到與相鄰路由器的連通狀態,因而與整個互聯網的規模並無直接關系。因此當互聯網規模很大時,OSPF 協議要比距離向量協議 RIP 好得多。
  • OSPF 沒有“壞消息傳播得慢”的問題,據統計,其響應網絡變化的時間小於 100 ms。

3.9.指定的路由器(designated router)

  • 多點接入的局域網采用了指定的路由器的方法,使廣播的信息量大大減少。
  • 指定的路由器代表該局域網上所有的鏈路向連接到該網絡上的各路由器發送狀態信息。

3.10.與RIP協議的區別

  • 相同點:都是開放式動態路由協議
  • 度量值為帶寬,支持多區域,觸發式更新(不以固定時間廣播式更新)
  • 三個表:鄰居表(Hello),鏈路狀態表,計算路由表。

3.11.仿真配置OSPF


四、外部網關協議 BGP

  • BGP 較新BGP 是不同自治系統的路由器之間交換路由信息的協議。
  • 邊界網關協議 BGP 只能是力求尋找一條能夠到達目的網絡且比較好的路由(不能兜圈子),而並非要尋找一條最佳路由。
  • 每一個自治系統的管理員要選擇至少一個路由器作為該自治系統的“ BGP 發言人” 。

4.1.BGP 發言人和自治系統 AS 的關系

  • BGP 發言人往往就是 BGP 邊界路由器,但也可以不是 BGP 邊界路由器

  • 一個 BGP 發言人與其他自治系統中的 BGP 發言人要交換路由信息,就要先建立 TCP 連接,然后在此連接上交換 BGP 報文以建立 BGP 會話(session),利用 BGP 會話交換路由信息。

  • 使用 TCP 連接能提供可靠的服務,也簡化了路由選擇協議。

  • 使用 TCP 連接交換路由信息的兩個 BGP 發言人,彼此成為對方的鄰站或對等站。

  • 不同的自治系統使用的可以是不同的動態/靜態協議,可以是RIP也可以是OSPF 。

4.2.AS 的連通圖舉例

image-20200127185704098

  • BGP 所交換的網絡可達性的信息就是要到達某個網絡所要經過的一系列 AS。
  • 當 BGP 發言人互相交換了網絡可達性的信息后,各 BGP 發言人就根據所采用的策略從收到的路由信息中找出到達各 AS 的較好路由。

4.3.BGP 發言人交換路徑向量

圖中主干網AS1連接兩個自治系統AS2和AS3,它們分別連接兩個區域。

image-20200127185858970

  • 自治系統 AS2 的 BGP 發言人通知主干網的 BGP 發言人:“要到達網絡 N1, N2, N3 和 N4 可經過 AS2。”

image-20200127190119138

  • 主干網在收到AS2的通知以后就發出通知:“要到達網絡N1,N2,N3,N4可沿路徑AS1,AS2”。
  • 同理,主干網還可以發出通知:“要到達網絡 N5, N6 和 N7 可沿路徑(AS1, AS3)。”

4.4.BGP 協議的特點

  • BGP協議支持CIDR
  • BGP建立時,交換整個路由表但之后只交換變化部分。
  • BGP 協議交換路由信息的結點數量級是自治系統的數量級,這要比這些自治系統中的網絡數少很多。
  • 每一個自治系統中 BGP 發言人(或邊界路由器)的數目是很少的。這樣就使得自治系統之間的路由選擇不致過分復雜。

4.5.BGP-4 共使用四種報文

  • 打開(OPEN)報文,用來與相鄰的另一個BGP發言人建立關系。
  • 更新(UPDATE)報文,用來發送某一路由的信息,以及列出要撤消的多條路由。
  • 保活(KEEPALIVE)報文,用來確認打開報文和周期性地證實鄰站關系。
  • 通知(NOTIFICATION)報文,用來發送檢測到的差錯。

4.6.BGP 報文具有通用的首部

image-20200210202320529


五、路由器在網際互連中的作用

5.1.路由器的結構

  • 路由器是一種具有多個輸入端口和多個輸出端口的專用計算機,其任務是轉發分組。也就是說,將路由器某個輸入端口收到的分組,按照分組要去的目的地(即目的網絡),把該分組從路由器的某個合適的輸出端口轉發給下一跳路由器。
  • 下一跳路由器也按照這種方法處理分組,直到該分組到達終點為止。

5.2.典型的路由器的結構

image-20200210225930894

上圖中的序號1,2,3分別表示物理層,數據鏈路層和網絡層。可以看到路由器是在數據傳輸的網絡層對數據報進行分組轉發的。

5.3.路由器中的交換結構分類

  • 通過存儲器:

image-20200210231339505

  • 通過總線:

image-20200210231356542

  • 通過互連網絡:

image-20200210231450847

5.4.“轉發”和“路由選擇”的區別

  • 轉發”(forwarding)就是路由器根據轉發表將用戶的 IP 數據報從合適的端口轉發出去。
  • 路由選擇”(routing)則是按照分布式算法,根據從各相鄰路由器得到的關於網絡拓撲的變化情況,動態地改變所選擇的路由。

路由表是根據路由選擇算法得出的。而轉發表是從路由表得出的。在討論路由選擇的原理時,往往不去區分轉發表和路由表的區別。

5.5.路由器輸入和輸出端口對收到分組的處理

  • 輸入端口:

數據鏈路層剝去幀首部和尾部后,將分組送到網絡層的隊列中排隊等待處理。這會產生一定的時延,稱為處理時延。

image-20200210230439302

  • 輸出端口:將交換結構傳送來的分組發送到線路。

交換結構傳送過來的分組先進行緩存(排隊)。數據鏈路層處理模塊給分組加上數據鏈路層的首部和尾部,隨后交給物理層,物理層處理完后發送到外部線路 。

image-20200210230842865

5.6.分組丟棄

  • 若路由器處理分組的速率趕不上分組進入隊列的速率,則隊列的存儲空間最終必定減少到零,這就使后面再進入隊列的分組由於沒有存儲空間而只能被丟棄
  • 由於路由器需要處理過多數據,導致輸入或輸出隊列產生溢出是造成分組丟失的重要原因。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM