在控制平面我們關注的是,路由器轉發報文的路徑是怎麼樣的。也就是如何在路由器中配置轉發表。配置轉發表有一下兩種方式:
- 每臺路由器控制:也是是傳統的路由選擇方式,每臺路由器自己計算轉發表。
- 邏輯集中式控制:就是通過的方式進行路由選擇,由計算並配置轉發表。
這裏我們只涉及傳統的路由控制方法,不涉及。下面我們先講兩種傳統的路由選擇算法,然後再講在因特網路由選擇協議**和**。
1. 路由選擇算法
根據執行算法需不需要路由器所在網絡中的所有的鏈路信息,可以將算法分爲集中式和分散式兩類:
- 集中式路由選擇算法:其中一個常用算法是鏈路狀態算法。也是就在數據結構中的算法。
- 分散式路由選擇算法:常用的算法是距離向量算法。從數據結構中算法變形而來。
這兩個算法在數據結構哪裏學過,比較容易理解。
2. 因特網路由選擇協議和
因爲在全球有很多路由器,不可能把全部的路由器一起的運行路由選擇算法,這樣很浪費時間。同時每一個通常希望按照自己的想法配置路由器,如選擇內部的路由選擇算法,或對外部隱藏內部的路由器組成。
所以通過我們可以把全球的網絡劃分爲多個自治系統(AS),每一個AS內部統一運行自己的路由選擇協議。通常一個內部的路由器和鏈路構成一個AS。不過有些比較大的將它的內部分成多個互聯AS。每一個AS有一個唯一的AS號(ASN),ASN由區域註冊機構所分配。
在一個AS的內部,路由器彼此擁有對方的信息,運行自治系統內部路由選擇協議。而在AS之間,運行自治系統間路由選擇協議。下面分別介紹這兩種協議。
2.1 開放最短路優先()
是一種鏈路狀態協議,使用鏈路狀態和最低開銷路徑算法。在使用的時候,路由器使用報文向AS內部的廣播路由選擇信息。每當鏈路發生變化,路由器就會廣播鏈路狀態信息。即使鏈路狀態不發生變化,路由器也要週期性的廣播鏈路狀態信息,這樣可以使鏈路狀態算法具有更好的健壯性。報文直接由承載,對其上層協議的值爲89。
的優點有一下幾個方面:
- 安全:在一般情況下,路由器間的報文是未被鑑別的並能被僞造。不過我們可以配置兩種鑑別方式:簡單鑑別和MD5。使用MD5的比較安全。
- 多條相同的開銷路徑:當到達目的地的多條路徑有相同開銷時,允許使用多條路徑。
- 對單播和多播路由選擇的綜合支持。
- 支持在單個AS中的層次結構:可以在一個AS中,配置多個子AS,每個子AS通過邊界路(子AS系統與主AS系統相連的路由器)互相聯繫。
2.2 之間的路由選擇:
在AS內,我們使用的是路由選擇協議。在AS之間,我們使用路由選擇。
要運行,要經過兩個階段:
- 通告路由選擇信息。
- 執行路由選擇算法。
其實每個路由選擇算法都需要經過個兩個階段。下面依次介紹這兩個階段
2.2.1 通告路由選擇信息
在中,路由器通告的不是目的地址,而是一個前綴,前綴是一個子網或子網集合。所以在路由器中具有的表項,其中是一個前綴(例如156.235.123/24
),是該路由器的接口之一。
在通過前綴時,會在裏面包含一些**屬性**,比較重要的有兩個和。
- :要到達前綴,經過的AS路徑,也可以用來防止環路。
- :在中路由器分爲兩種,能與外部的AS的路由器相連的叫做網關路由器,只與內部路由器相連的叫做內部路由器。就是要到達前綴要經過的第一個外部AS網關路由器的地址。
舉個例子:
如圖,要將AS3的前綴通告給AS1和AS2,總的來看,就是AS3通告AS2,然後AS2通告AS1。
上圖AS2中知到的路由情況爲:
:AS3 x
,:路由器3a
最上面接口地址。
AS1知到的路由情況爲:
:AS2 AS3 x
,:路由器2a
最左面接口地址。
在中每對路由器通過使用179
端口的半永久連接交換路由選擇信息,每條直接相連以及所有通過該連接發送的報文,稱爲連接。跨越兩個AS的連接稱爲外部,在AS之內的叫做內部。注意:內部並不總是與物理鏈路相對應。下圖是上面那張圖的對應的連接。
那麼你現在可能有疑問,是在什麼地方被添加的呢?
答:在網關路由器添加,也就是在外部添加。例如AS2想AS1通告時,在路由器2a
處添加上AS2
。
2.2.2 的路由選擇
有兩種比較常用的路由選擇算法:一是燙手山芋路由選擇算法(書上的是熱土豆路由選擇,是直接從英文翻譯過來的,不過符合中文俗語翻譯爲燙手山芋應該更好),二是比較綜合的路由選擇算法,下面分別描述。
1. 燙手山芋路由選擇
當一個節點要發送報文時,他選擇的路徑是從他自己到網關路由的最短的路線。步驟如下:
- 從AS間協議學到經多個網關可達子網。
- 使用來自AS內部協議的路由選擇信息,以決定到達每個網關的最低開銷路徑的開銷。
- 選擇具有最小最低開銷的網關。
- 從轉發表確定最低開銷網關的接口,在轉發表中加入表項。
2. 路由選擇算法
在實際情況中,我們使用的路由選擇算法選用了好幾個特徵,通過特徵的先後順序來選擇路徑。
- 路由被指派一個本地偏好值作爲其屬性之一(除了和)。具有最好本地偏好值的路由將被選擇。
- 當本地偏好相同時,選擇具有最短的路由。
- 如果上述的都相同,則使用燙手山芋路由選擇,即選擇具有靠近的路由器的路由。
- 如有仍然有多條路由,該路由器使用標識符來選擇路由。
2.2.3 IP任播
使用可以自然地支持任播。當某臺路由器收到該地址的多個路由通告,他將這些通告處理爲對相同物理地址提供的不同路徑(實際上,可以處於不同的物理地址)。舉個例子,假設城市A和B有兩臺服務器有相同的地址,於是我的電腦收到了這兩個服務器的通告,但是我的電腦並不知到這兩個通告來字不同的物理地址。任播被系統廣泛用於將請求指向最近的根服務器。根服務器有13個地址,但是對應於這些地址,一個地址有多個服務器。
3. :因特網控制報文協議
報文有一個類型字段和一個編碼字段,並且包含引起該報文首次生成的數據報的首部和前8個字節(使發送方可以確定引發該報文差錯的數據報)。
一般來說:有兩種格式:詢問報文和差錯報告報文。
- 詢問報文:如下圖使用Ping發送請求。包含類型,編碼,檢驗和,標識符,序號和數據部分。
- 差錯報告報文:如下圖,這是使用程序發送的,當超時時,返回的差錯報告報文。裏面包含了類型,編碼,檢驗和,首部和原來報文的前8個字節。
通過類型和編碼的不同組合,有許多不同種類的報文,如下圖
更加具體的內容可見維基百科。