IP路由選擇
發表于:2007-05-26來源:作者:點擊數:
標簽:
從概念上說,IP路由選擇是簡單的,特別對于主機來說。如果目的主機與源主機直接相連(如點對點鏈路)或都在一個共享 網絡 上(以太網或令牌環網),那么IP數據報就直接送到目的主機上。否則,主機把數據報發往一默認的路由器上,由路由器來轉發該數據報。大
從概念上說,IP路由選擇是簡單的,特別對于主機來說。如果目的主機與源主機直接相連(如點對點鏈路)或都在一個共享
網絡上(以太網或令牌環網),那么IP數據報就直接送到目的主機上。否則,主機把數據報發往一默認的路由器上,由路由器來轉發該數據報。大多數的主機都是采用這種簡單機制。
更一般的情況,即IP層既可以配置成路由器的功能,也可以配置成主機的功能。當今的大多數多用戶系統,包括幾乎所有的
Unix系統,都可以配置成一個路由器。我們可以為它指定主機和路由器都可以使用的簡單路由算法。本質上的區別在于主機從不把數據報從一個接口轉發到另一個接口,而路由器則要轉發數據報。內含路由器功能的主機應該從不轉發數據報,除非它被設置成那樣。
在一般的體制中,IP可以從TCP、UDP、ICMP和IGMP接收數據報(即在本地生成的數據報)并進行發送,或者從一個網絡接口接收數據報(待轉發的數據報)并進行發送。IP層在內存中有一個路由表。當收到一份數據報并進行發送時,它都要對該表搜索一次。當數據報來自某個網絡接口時,IP首先檢查目的IP地址是否為本機的IP地址之一或者IP廣播地址。如果確實是這樣,數據報就被送到由IP首部
協議字段所指定的
協議模塊進行處理。如果數據報的
目的不是這些地址,那么(1)如果IP層被設置為路由器的功能,那么就對數據報進行轉發(也就是說,像下面對待發出的數據報一樣處理);否則(2)數據報被丟棄。路由表中的每一項都包含下面這些信息:
•目的IP地址。它既可以是一個完整的主機地址,也可以是一個網絡地址,由該表目中的標志字段來指定(如下所述)。主機地址有一個非0的主機號,以指定某一特定的主機,而網絡地址中的主機號為0,以指定網絡中的所有主機(如以太網,令牌環網)。
•下一站(或下一跳)路由器(next-hoprouter)的IP地址,或者有直接連接的網絡IP地址。下一站路由器是指一個在直接相連網絡上的路由器,通過它可以轉發數據報。下一站路由器不是最終的目的,但是它可以把傳送給它的數據報轉發到最終目的。
•標志。其中一個標志指明目的IP地址是網絡地址還是主機地址,另一個標志指明下一站路由器是否為真正的下一站路由器,還是一個直接相連的接口
•為數據報的傳輸指定一個網絡接口。
IP路由選擇是逐跳地(hop-by-hop)進行的。從這個路由表信息可以看出,IP并不知道到達任何目的的完整路徑(當然,除了那些與主機直接相連的目的)。所有的IP路由選擇只為數據報傳輸提供下一站路由器的IP地址。它假定下一站路由器比發送數據報的主機更接近目的,而且下一站路由器與該主機是直接相連的。
IP路由選擇主要完成以下這些功能:
1)搜索路由表,尋找能與目的IP地址完全匹配的表目(網絡號和主機號都要匹配)。如果找到,則把報文發送給該表目指定的下一站路由器或直接連接的網絡接口(取決于標志字段的值)。
2)搜索路由表,尋找能與目的網絡號相匹配的表目。如果找到,則把報文發送給該表目指定的下一站路由器或直接連接的網絡接口(取決于標志字段的值)。目的網絡上的所有主機都可以通過這個表目來處置。例如,一個以太網上的所有主機都是通過這種表目進行尋徑的。這種搜索網絡的匹配方法必須考慮可能的子網掩碼。關于這一點我們在下一節中進行討論。
3)搜索路由表,尋找標為“默認(default)”的表目。如果找到,則把報文發送給該表目指定的下一站路由器。如果上面這些步驟都沒有成功,那么該數據報就不能被傳送。如果不能傳送的數據報來自本機,那么一般會向生成數據報的應用程序返回一個“主機不可達”或“網絡不可達”的錯誤。
完整主機地址匹配在網絡號匹配之前執行。只有當它們都失敗后才選擇默認路由。默認路由,以及下一站路由器發送的ICMP間接報文(如果我們為數據報選擇了錯誤的默認路由),是IP路由選擇機制中功能強大的特性。我們在第9章對它們進行討論。
為一個網絡指定一個路由器,而不必為每個主機指定一個路由器,這是IP路由選擇機制的另一個基本特性。這樣做可以極大地縮小路由表的規模,比如Internet上的路由器有只有幾千個表目,而不會是超過100萬個表目。
舉例
首先考慮一個簡單的例子:我們的主機bsdi有一個IP數據報要發送給主機sun。雙方都在同一個以太網上(參見扉頁前圖)。數據報的傳輸過程如圖3-3所示。
當IP從某個上層收到這份數據報后,它搜索路由表,發現目的IP地址(140.252.13.33)在一個直接相連的網絡上(以太網140.252.13.0)。于是,在表中找到匹配網絡地址(我們將看到,由于以太網的子網掩碼的存在,實際的網絡地址是140.252.13.32,但是這并不影響這里所討論的路由選擇)。
數據報被送到以太網驅動程序,然后作為一個以太網數據幀被送到sun主機上
IP數據報中的目的地址是sun的IP地址(140.252.13.33),而在鏈路層首部中的目的地址是48bit的sun主機的以太網接口地址。這個48bit的以太網地址是用ARP
協議獲得的

圖3-3 數據報從主機bsdi到sun的傳送過程現在來看另一個例子:主機b s d i有一份I P數據報要傳到f t p . u u . n e t主機上,它的I P地址是1 9 2 . 4 8 . 9 6 . 9。經過的前三個路由器如圖3 - 4所示。首先,主機b s d i搜索路由表,但是沒有找到與主機地址或網絡地址相匹配的表目,因此只能用默認的表目,把數據報傳給下一站路由器,即主機s u n。當數據報從b s d i被傳到s u n主機上以后,目的I P地址是最終的信宿機地址(1 9 2 . 4 8 . 9 6 . 9),但是鏈路層地址卻是s u n主機的以太網接口地址。這與圖3 - 3不同,在那里數據報中的目的I P地址和目的鏈路層地址都指的是相同的主機(s u n)。

圖3-4 從b s d i 到f t p . u u . n e t (192.48.96.9)的初始路徑當s u n收到數據報后,它發現數據報的目的I P地址并不是本機的任一地址,而s u n已被設置成具有路由器的功能,因此它把數據報進行轉發。經過搜索路由表,選用了默認表目。根據s u n的默認表目,它把數據報轉發到下一站路由器n e t b,該路由器的地址是1 4 0 . 2 5 2 . 1 . 1 8 3。數據報是經過點對點S L I P鏈路被傳送的,采用了圖2 - 2所示的最小封裝格式。這里,我們沒有給出像以太網鏈路層數據幀那樣的首部,因為在S L I P鏈路中沒有那樣的首部。
當n e t b收到數據報后,它執行與s u n主機相同的步驟:數據報的目的地址不是本機地址,而n e t b也被設置成具有路由器的功能,于是它也對該數據報進行轉發。采用的也是默認路由表目,把數據報送到下一站路由器g a t e w a y(1 4 0 . 2 5 2 . 1 . 4)。位于以太網1 4 0 . 2 5 2 . 1上的主機n e t b用A R P獲得對應于1 4 0 . 2 5 2 . 1 . 4的48 bit以太網地址。這個以太網地址就是鏈路層數據幀頭上的目的地址。
路由器g a t e w a y也執行與前面兩個路由器相同的步驟。它的默認路由表目所指定的下一站路由器I P地址是1 4 0 . 2 5 2 . 1 0 4 . 2(我們將在圖8 - 4中證實,使用Tr a c e r o u t e 程序時,它就是g a t e w a y使用的下一站路由器)。
對于這個例子需要指出一些關鍵點: 1) 該例子中的所有主機和路由器都使用了默認路由。事實上,大多數主機和一些路由器可以用默認路由來處理任何目的,除非它在本地局域網上。
2) 數據報中的目的I P地址始終不發生任何變化(在8 . 5節中,我們將看到,只有使用源路由選項時,目的I P地址才有可能被修改,但這種情況很少出現)。所有的路由選擇決策都是基于這個目的I P地址。
3) 每個鏈路層可能具有不同的數據幀首部,而且鏈路層的目的地址(如果有的話)始終指的是下一站的鏈路層地址。在例子中,兩個以太網封裝了含有下一站以太網地址的鏈路層首部,但是S L I P鏈路沒有這樣做。以太網地址一般通過A R P獲得。
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|