計算機網絡:網絡層與IP協議(3)

路由選擇協議

路由選擇協議的核心是路由算法,即獲得路由表中各項目的算法。

1.理想路由算法

一個理想的路由選擇算法具有如下特點:

  1. 算法必須是正確的完整的。分組沿着路由表指引的路由,一定能達到目的網絡和目的主機。
  2. 算法應當在計算上是簡單的。路由選擇算法不應使網絡通信量增加太多的額外開銷
  3. 算法能夠適應通信量和網絡拓撲的變化,要有自適應性。當通信量變化或鏈路發生故障時,算法能均衡負載、改變路由。
  4. 算法應當具有穩定性。在通信量和拓撲相對穩定的情況下,路由算法應收斂於一個可以接受的解,而不是路由不停變化。
  5. 算法應當是公平的。路由選擇算法對所有用戶(除少數高優先級用戶)都是平等的
  6. 算法應當是最佳的。算法應當使分組平均時延最小、而網絡吞吐量最大
    但最佳並不總是最重要的,有時也要兼顧可靠性等其它性能。最佳是相對於某一種特定要求下得出較爲合理的選擇。

一個實際的路由算法,應儘可能接近理想路由算法。在不同條件下,對這六個方面有不同的側重。

2.路由表的由來

根據路由算法的自適應性可以將算法分爲靜態路由選擇策略動態路由選擇策略
靜態路由選擇策略的特點是簡單、開銷較小,但不能及時適應網絡狀態的變化
動態路由選擇策略的特點是可以較好地適應網絡狀態的變化實現起來較爲複雜、開銷較大
一個路由表的由來有如下步驟:

  1. 靜態配置:將電腦與路由器的console端口連接,利用軟件對路由器進行配置
  2. 動態學習:每個路由器定時將自己的路由表廣播給鄰居,交換路由表,以根據通信量和拓撲狀態更新路由表;

通常,使用靜態配置設置直接連接路由器的網段的表項;再通過動態學習獲取間接連接的表項。

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

互聯網採用的路由選擇協議主要是自適應的分佈式路由選擇協議,因爲:
● 互聯網的規模非常大,如果不進行分層,每個路由器的路由表將變得非常大。
● 很多單位不希望外界瞭解本單位網絡的佈局細節和使用協議。

因此,可以將互聯網劃分爲多個較小的自治系統AS。自治系統是在單一技術管理下的一組路由器,這些路由器使用一種自治系統內部的路由協議和共同度量。一個自治系統對外表現出一個單一的、一致的路由選擇策略
目前的互聯網中,一個大的ISP就是一個自治系統。互聯網將路由選擇協議劃分爲:

  1. 內部網關協議IGP:在一個自治系統內部使用的路由選擇協議,常用的有RIP協議OSPF協議
  2. 外部網關協議EGP:一個數據報傳遞到自治系統邊界,在自治系統之間使用的路由選擇協議。常用的是BGP-4協議

自治系統內部的路由選擇叫做域內路由選擇;自治系統之間的路由選擇叫做域間路由選擇

4.內部網關協議RIP

RIP協議是IGP中最先得到廣泛使用的協議,中文名爲路由信息協議
RIP協議是一種分佈式的,基於距離向量的路由選擇協議,最大的優點是簡單

● 工作原理

RIP協議要求路由器維護一個從自身到其它每一個目的網絡的距離記錄,這一組距離稱爲距離向量距離定義如下:
● 與路由器直接相連的網絡,距離定爲1;
● 與路由器不直接相連的網絡,距離爲經過的路由器數再加1。
因此,距離也叫做跳數。RIP協議允許的最大距離爲15,即路徑中最多有15個路由器(包括源路由器)。距離等於16時,相當於不可達。因此RIP協議只適用於小型互聯網
此外,RIP協議不能在兩個網絡間同時使用多個路由。當前使用的路由必須是最佳路由,即距離最短的路由。

RIP協議的特點是:

  1. 僅和相鄰路由器交換信息
  2. 路由器交換的信息是當前本路由器所知道的全部信息,即自己當前的路由表
  3. 固定的時間間隔交換路由信息

路由器剛開始工作時,路由表是空的。隨後,路由表得到幾個直接相連的網絡信息,距離爲1。接着,每一個路由器和相鄰的路由器交換並更新路由信息。經過若干次的更新後,路由器最終會知道到達本自治系統任意一個網絡的最短路徑下一跳地址
RIP協議一般情況下可以收斂,且收斂較快。收斂是指自治系統中所有結點都得到正確的路由選擇。

● 距離向量算法

路由表中最重要的信息就是到某個網絡的最短距離經過的下一跳地址。路由表更新的原則是找出最短路徑,這種更新算法又稱爲距離向量算法。下面是RIP協議使用的距離向量算法:

if 收到地址爲X的路由器發來的RIP報文:
#1
	for 記錄 in RIP報文:
		記錄.下一跳地址 = X					#X可以到目的網絡,本路由器經過X也可到目的網絡
		記錄.距離 += 1						#本路由器到X的距離爲1,從X到目的網絡距離加1,就等於本路由器到目的網絡距離
#2
	for 記錄 in RIP報文:
		if 記錄.目標網絡 not in self.路由表:	
			self.路由表.append(記錄)			#新的目的網絡,應該加入路由表中
		elif 原記錄.下一跳地址 == X:
			self.路由表.replace(原記錄,記錄)	#最新的路由信息,因爲網絡狀況可能發生改變,應以新信息爲準,無論距離增大還是減小
		elif 記錄.距離 < 原記錄.距離:
			self.路由表.replace(原記錄,記錄)	#更短的距離,應當更新
		else:
			pass							#目標網絡已經在路由表中,且既不是新信息,又不是更短距離,沒有必要更新
#3
elif 沒有收到路由器X發來的報文 and 時間超過3分鐘:
	X.距離 = 16								#三分鐘未收到相鄰路由器的信息,可能該鏈路故障,將距離設置爲16,即不可達
#4
return										#結束該路由器發來RIP報文的處理
● 報文格式

現在較新的RIP協議版本是RIP2。RIP2的報文格式如下:
RIP2報文由首部路由兩部分組成。
首部佔4字節,命令字段指出報文的意義,如1表示請求路由信息報文,2表示請求路由信息響應報文與路由更新報文。
版本字段指出當前的版本,目前使用的協議爲RIP2,所以該字段爲2。剩餘的字段全爲0,補齊4字節的首部。
路由部分佔20字節,由若干路由信息組成。地址組標識符指明使用的地址協議,如IP地址就爲2。路由標記填入自治系統號ASN,區別不同自治系統的報文。後面的字段指明網絡地址子網掩碼下一跳路由器地址以及到此網絡的距離
一個RIP報文最多可包括25個路由部分,RIP報文的最大長度爲504。
在這裏插入圖片描述

● 優缺點

RIP協議的最大優點:實現簡單、開銷較小,收斂較快。
RIP協議的缺點:

  1. 限制了網絡的規模;
  2. 路由器交換的信息是完整的路由表,隨着網絡規模增大,開銷也會增加;
  3. 壞消息傳播的慢:當一個網絡出現故障時,路由器之間互相交換舊消息,經過較長時間才能將信息傳遞給所所有路由器。
    在這裏插入圖片描述

5.內部網關協議OSPF

OSPF協議全稱開放最短路徑優先協議,OSPF協議的原理簡單,但實現較爲複雜。它使用了Dijkstra提出的最短路徑算法SPF

● 基本特點

OSPF協議的主要特徵就是使用分佈式的鏈路狀態協議。OSPF有三個要點:

  1. 向本自治網絡的所有路由器發送信息,使用洪泛法
  2. 發送的信息是本路由器與相鄰路由器的鏈路狀態。鏈路狀態說明本路由器與哪些路由器相鄰,以及該鏈路的度量度量可以表示費用、距離、時延、帶寬等信息,由網絡管理人員決定。有時也稱度量爲代價
  3. 只有當鏈路狀態發生變化時,才發送信息。

由於路由器之間交換鏈路狀態信息,所有路由器都能建立一個鏈路狀態數據庫,其實際上就是全網拓撲結構圖。拓撲結構圖在本自治系統內是一致的,稱爲鏈路狀態數據庫的同步
每一個路由器都根據鏈路狀態數據庫,通過Dijkstra算法,構造自己的路由表
由於使用洪泛法所有路由器發送信息,OSPF的鏈路狀態數據庫的更新較快,各個路由器也能及時更新其路由表。OSPF的一個重要優點就是更新過程收斂的快
在這裏插入圖片描述
爲了使OSPF能夠應用於較大的自治系統,OSPF將一個自治系統劃分爲若干個更小的區域。每個區域都有一個32位的區域標識符,用點分十進制法表示。劃分區域的好處就是將洪泛法的範圍侷限在一個區域內,減少了整個網絡上的通信量。
OSPF使用層次結構的區域劃分。一個區域內部的路由器只知道區域內部的完整網絡拓撲。
在上層的區域叫主幹區域,標識符爲0.0.0.0;主幹區域用於連通其它下層區域。從其它區域來的信息都來自區域邊界路由器。每個區域都至少有一個區域邊界路由器
在主幹區域內的路由器叫主幹路由器,一個主幹路由器可以同時是區域邊界路由器
主幹區域內還有一個路由器專門和其它自治區域交換信息,叫做自治系統邊界路由器

除此以外,OSPF還有以下特點:
● 允許管理員指派不同的代價,對不同類型的業務可計算出不同的路由
● 如果有多條代價相同的路徑,可以將通信量分配給這幾個路徑,叫做多路徑間的負載平衡
● 所有路由器間交換的OSPF分組都具有鑑別功能,保證僅在可信賴的路由器間交換鏈路狀態信息;
● 支持可變長度的子網劃分無分類編址CIDR
● 每一個鏈路狀態都攜帶32位長的序號,序號越大狀態越新。

● 數據報格式

OSPF協議不用UDP而直接使用IP數據報傳送。OSPF構成的數據報很短,可減少通信量,且不必切片發送。
在這裏插入圖片描述
首部由24個字節組成,數據部分是五種類型分組的一種。首部各字段爲:
版本字段:當前的版本爲2;類型字段:指明數據部分的分組類型;分組長度字段:包括首部在內的分組長度,字節爲單位。
路由器標識符:發送該分組的路由器IP地址;區域標識符:分組屬於的區域標識符;校驗和:檢驗整個OSPF數據報差錯。
鑑別類型:目前只有兩種,0爲不用,1爲口令;鑑別:鑑別類型爲0時全爲0;爲1時填入8字符的口令。

● 分組類型

OSPF共有以下五種分組類型:

  1. 問候分組:發現和維持鄰站的可達性;
  2. 數據庫描述分組:向鄰站給出自己的鏈路狀態數據庫中所有鏈路狀態的摘要信息;
  3. 鏈路狀態請求分組:請求對方發送某些鏈路狀態項目的詳細信息;
  4. 鏈路狀態更新分組:用洪泛法對全網更新鏈路狀態;
  5. 鏈路狀態確認分組:對鏈路更新分組的確認。

OSPF規定相鄰兩個路由器每隔10秒交換一次問候分組,以知道哪些鄰站是可達的。若40秒沒有收到某個鄰站的問候分組,認爲該鄰站不可達,立即修改並更新鏈路狀態,重新構建路由表。
2-5這四個分組都是用於進行鏈路狀態數據庫的同步,即不同路由器間的鏈路狀態數據庫相同。兩個同步的路由器是完全鄰接的

6.外部網關協議BGP-4

● 外部網關協議的提出

在不同自治系統之間的路由選擇不能使用前面的RIP或OSPF,原因主要是:

  1. 互聯網的規模太大,自治系統間的路由選擇非常困難。
  2. 自治系統間的路由選擇必須考慮有關策略。

由於以上原因,我們需要單獨的外部網關協議,目前使用較多的是BGP-4協議,也稱邊界網關協議

● BGP協議

BGP協議力求尋找一條能夠到達目的網絡且比較好的路由,而非尋找最佳路由;它使用路徑向量路由選擇協議
配置BGP時,每個自治系統都需要一個BGP發言人,一般兩個BGP發言人連接在一起,往往是BGP邊界路由器
在這裏插入圖片描述
BGP發言人想要交換信息,需要先建立TCP連接,然後在連接上交換BGP報文建立BGP會話,通過會話交換路由信息。
使用TCP連接能提供可靠服務,簡化路由選擇協議,兩個BGP發言人彼此稱爲對方的鄰站對等站
BGP發言人必須同時使用自治系統內部的內部網關協議。
BGP支持CIDR,因此BGP路由表也包括目的網絡前綴,下一跳路由器,以及經過的自治系統序列。

● 交換可達性信息

BGP交換的網絡可達性信息是要到達目的網絡需要經過的一系列自治系統。BGP發言人在交換之後,需要從路由信息中選擇到達各自治系統的較好的路由。
在這裏插入圖片描述
上圖中,AS2發出通知:到達網絡N1-4可經過AS2;主幹網AS1再發出通知:到達N1-4可沿路徑AS1,AS2。AS1也可發出另一通知:到達網絡N5-7可沿路徑AS1,AS3
BGP協議交換路由信息的結點數量級是自治系統個數的數量級,比自治系統中的網絡數少很多。在自治系統之間找一條好的路徑,就是要找一個正確的BGP發言人。每一個自治系統中BGP數量很少,使得自治系統間路徑不至於過分複雜。
由於採用了路徑向量信息,可以避免產生兜圈子的路由。

● 報文分類

RFC-4271標準規定了BGP的四種報文:

  1. OPEN報文:與相鄰發言人建立關係,通信初始化;
  2. UPDATE報文:報告某一路由的信息,列出要撤銷的多條路由;
  3. KEEPALIVE報文:週期性證實鄰站連通性;
  4. NOTIFICATION報文:發送檢測到的差錯。
● 報文格式

四種BGP報文具有同樣的通用首部,長度爲19字節,分爲三個字段:標記字段爲16字節長,鑑別收到的BGP報文,不使用鑑別時全爲1;長度字段指出包括首部在內的BGP報文長度,單位爲字節,範圍爲19~4096;類型報文值的範圍爲1~4。
在這裏插入圖片描述
OPEN報文共6字段,爲版本本自治系統號保持時間BGP標識符可選參數長度可選參數
UPDATE報文共5字段,爲不可行路由長度撤銷的路由路徑屬性總長度路徑屬性網絡層可達性信息
KEEPALIVE報文只有19字節長的通用首部。
NOTIFICATION報文共3字段,爲差錯代碼差錯子代碼差錯數據

7.路由器的構成

● 路由器的結構

路由器是一個具有多個輸入端口多個輸出端口專用計算機,是互聯網中的關鍵設備
路由器的任務是轉發分組,將收到的分組按照目的地址,從輸出端口轉發到下一跳路由器。
下圖是典型的路由器構成框圖:
在這裏插入圖片描述
路由器的結構可以劃分爲兩大部分:路由選擇分組轉發
路由選擇部分又稱控制部分,核心構件是路由選擇處理機,其任務是根據路由選擇協議構造出路由表,並定時與其它路由器交換路由信息,從而不斷更新和維護路由表。
分組轉發部分由三部分組成:交換結構輸入端口輸出端口
上圖的輸入和輸出端口都有三個方框,其中1、2、3分別表示物理層、數據鏈路層和網絡層的處理模塊。物理層接收比特流,數據鏈路層接收傳送分組的幀,去掉幀的首部和尾部後送入網絡層。若分組是交換路由信息的分組,就交給路由選擇處理機,否則根據目的地址查找轉發表,根據得出的結果,分組經交換結構送到合適的輸出端口。

下面的圖片展示了分組在網絡層處理中排隊的過程:當網絡層的處理速度低於分組的到達速度時,後到的分組必須在隊列中排隊等待,產生一定的時延。網絡層的處理模塊中必須要有一個緩衝區,供實質上是一個隊列,供分組排隊等待。
在這裏插入圖片描述
在輸出端口中,當交換結構到達分組的速度大於分組發送的速度時,也會產生排隊現象。
在這裏插入圖片描述
若分組處理的速率趕不上分組進入隊列的速率,必然導致緩衝區的存儲空間逐漸減少到0。後面再進入隊列的分組由於沒有空間存儲,只能被丟棄,導致分組丟失

● 交換結構

交換結構是路由器的關鍵構件,他將分組從一個輸入端口轉移到某個合適的輸出端口。有三種常用的交換方法:

  1. 通過存儲器
    在這裏插入圖片描述
    當收到一個分組時,中斷並通知路由選擇處理機,並將分組從輸入端口複製到存儲器中;
    路由選擇處理機提取目的地址並查找路由表;
    再將分組複製到合適的輸出端口中。
    現代的存儲器交換路由器採用了共享存儲器的方法,目的地址的查找和分組在輸入端口的緩存中進行。
  2. 通過總線
    在這裏插入圖片描述
    數據報從輸入端口通過共享的總線直接傳送到合適的輸出端口,而不需要路由選擇處理機的干涉。
    由於總線是共享的,同一時間只能有一個分組在總線上傳送,若新到的分組發現總線忙,就會被阻塞,必須排隊等待。
    該類路由器的轉發帶寬受總線帶寬的限制。
    現代的總線帶寬已經提高每秒吉比特的速率,因此現代的總線交換路由器很多也採用這種交換方式。
  3. 通過互聯網絡
    在這裏插入圖片描述
    又稱爲縱橫交換結構,它有2N條總線,可以使N個輸入端口和N個輸出端口相連,取決於交叉節點是使水平總線垂直總線接通還是斷開。
    當收到一個分組時,將它發送到該輸入端口的水平總線上。
    若要轉發的輸出端口的垂直總線是空閒的,將水平總線和垂直總線接通,然後將分組轉發到該輸出端口;
    若垂直總線已被佔用,後到的分組必須在輸入端口排隊。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章