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

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

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命令來顯示路由表。

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

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並列出其中的網絡名。這樣會與另一種形式的名字—網絡名加主機名相混淆)。

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

第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的)


分享到:


相關文章: