網路中IP是怎樣選路的?選路原理及簡單的路由表

weixin_34290000發表於2018-05-18

IP選路

選路是I P最重要的功能之一。圖中是I P層處理過程的簡單流程。需要進行選路的資料包可以由本地主機產生,也可以由其他主機產生。在後一種情況下,主機必須配置成一個路由器,否則通過網路介面接收到的資料包,如果目的地址不是本機就要被丟棄(例如,悄無聲息地被丟棄)。

在圖中,我們還描述了一個路由守護程式( d a e m o n),通常這是一個使用者程式。在U n i x系統中,大多數普通的守護程式都是路由程式和閘道器程式(術語d a e m o n指的是執行在後臺的程式,它代表整個系統執行某些操作。d a e m o n一般在系統引導時啟動,在系統執行期間一直存在)。在某個給定主機上執行何種路由協議,如何在相鄰路由器上交換選路資訊,以及選路協議是如何工作的,所有這些問題都是非常複雜的,其本身就可以用整本書來加以討論(有興趣的讀者可以參考文獻[Perlman 1992]以獲得更詳細的資訊)。

圖中所示的路由表經常被I P訪問(在一個繁忙的主機上,一秒鐘內可能要訪問幾百次),但是它被路由守護程式更新的頻度卻要低得多(可能大約30秒種一次)。當接收到ICMP重定向,報文時,路由表也要被更新,我們用netstat命令來顯示路由表。

11727607-5a30f823d4cb968c

IP層工作流程

選路的原理

開始討論I P選路之前,首先要理解核心是如何維護路由表的。路由表中包含的資訊決定了I P層所做的所有決策。

我們列出了I P搜尋路由表的幾個步驟:

1) 搜尋匹配的主機地址;

2) 搜尋匹配的網路地址;

3) 搜尋預設表項(預設表項一般在路由表中被指定為一個網路表項,其網路號為0)。匹配主機地址步驟始終發生在匹配網路地址步驟之前。

I P層進行的選路實際上是一種選路機制,它搜尋路由表並決定向哪個網路介面傳送分組。這區別於選路策略,它只是一組決定把哪些路由放入路由表的規則。I P執行選路機制,而路由守護程式則一般提供選路策略。

簡單路由表

首先來看一看一些典型的主機路由表。在主機s v r 4上,我們先執行帶-r選項的netstat命令列出路由表,然後以-n選項再次執行該命令,以數字格式列印出I P地址(我們這樣做是因為路由表中的一些表項是網路地址,而不是主機地址。如果沒有- n選項,netstat命令將搜尋檔案/etc/networks並列出其中的網路名。這樣會與另一種形式的名字—網路名加主機名相混淆)。

11727607-11c729e4102adf7c

第1行說明,如果目的地是140.252.13.65(s l i p主機),那麼閘道器(路由器)將把分組轉發給140.252.13.35(b s d i)。這正是我們所期望的,因為主機s l i p通過S L I P鏈路與b s d i相連線,而b s d i與該主機在同一個乙太網上。

對於一個給定的路由器,可以列印出五種不同的標誌( f l a g):

U該路由可以使用。

G該路由是到一個閘道器(路由器)。如果沒有設定該標誌,說明目的地是直接相連的。

H該路由是到一個主機,也就是說,目的地址是一個完整的主機地址。如果沒有設定該標誌,說明該路由是到一個網路,而目的地址是一個網路地址:一個網路號,或者網路號與子網號的組合。

D該路由是由重定向報文建立的。

M該路由已被重定向報文修改。

標誌G是非常重要的,因為由它區分了間接路由和直接路由(對於直接路由來說是不設定標誌G的)

相關文章