選路是IP最重要的功能之一。圖1是IP層處理過程的簡(jiǎn)單流程。需要進(jìn)行選路的數(shù)據(jù)報(bào)
可以由本地主機(jī)產(chǎn)生,也可以由其他主機(jī)產(chǎn)生。在后一種情況下,主機(jī)必須配置成一個(gè)路由
器,否則通過網(wǎng)絡(luò)接口接收到的數(shù)據(jù)報(bào),如果目的地址不是本機(jī)就要被丟棄。

圖1:IP層工作流程
圖1中的路由表經(jīng)常被IP訪問(在一個(gè)繁忙的主機(jī)上,一秒鐘內(nèi)可能要訪問幾百次),
但是它被路由守護(hù)程序等更新的頻度卻要低得多(可能大約30秒一次)。
選路的原理
IP搜索路由表的幾個(gè)步驟:
1) 搜索匹配的主機(jī)地址;
2) 搜索匹配的網(wǎng)絡(luò)地址;
3) 搜索默認(rèn)表項(xiàng)(默認(rèn)表項(xiàng)一般在路由表中被指定為一個(gè)網(wǎng)絡(luò)表項(xiàng),其網(wǎng)絡(luò)號(hào)為0)。
匹配主機(jī)地址步驟始終發(fā)生在匹配網(wǎng)絡(luò)地址步驟之前。
IP層進(jìn)行的選路實(shí)際上是一種選路機(jī)制,它搜索路由表并決定向哪個(gè)網(wǎng)絡(luò)接口發(fā)送分組。這區(qū)別于選路策略,它只是一組決定把哪些路由放入路由表的規(guī)則。IP執(zhí)行選路機(jī)制,而路由守護(hù)程序則一般提供選路策略。
ICMP主機(jī)與網(wǎng)絡(luò)不可達(dá)差錯(cuò)
當(dāng)路由器收到一份IP數(shù)據(jù)報(bào)但又不能轉(zhuǎn)發(fā)時(shí),就要發(fā)送一份ICMP“主機(jī)不可達(dá)”差錯(cuò)報(bào)
文(見第六章)。
ICMP重定向差錯(cuò)
當(dāng)IP數(shù)據(jù)報(bào)應(yīng)該被發(fā)送到另一個(gè)路由器時(shí),收到數(shù)據(jù)報(bào)的路由器就要發(fā)送ICMP重定向差
錯(cuò)報(bào)文給IP數(shù)據(jù)報(bào)的發(fā)送端。這在概念上是很簡(jiǎn)單的,正如圖2所示的那樣。只有當(dāng)主機(jī)可以選擇路由器發(fā)送分組的情況下,我們才可能看到ICMP重定向報(bào)文。

圖2:ICMP重定向例子
1) 我們假定主機(jī)發(fā)送一份IP數(shù)據(jù)報(bào)給R1。這種選路決策經(jīng)常發(fā)生,因?yàn)?span lang=EN-US>R 1是該主機(jī)的默認(rèn)路由。
2) R1收到數(shù)據(jù)報(bào)并且檢查它的路由表,發(fā)現(xiàn)R2是發(fā)送該數(shù)據(jù)報(bào)的下一站。當(dāng)它把數(shù)據(jù)報(bào)
發(fā)送給R2時(shí),R1檢測(cè)到它正在發(fā)送的接口與數(shù)據(jù)報(bào)到達(dá)接口是相同的(即主機(jī)和兩個(gè)路由器
所在的LAN)。這樣就給路由器發(fā)送重定向報(bào)文給原始發(fā)送端提供了線索。
3) R1發(fā)送一份ICMP重定向報(bào)文給主機(jī),告訴它以后把數(shù)據(jù)報(bào)發(fā)送給R2而不是R1。
重定向一般用來讓具有很少選路信息的主機(jī)逐漸建立更完善的路由表。主機(jī)啟動(dòng)時(shí)路由
表中可以只有一個(gè)默認(rèn)表項(xiàng)(在圖2所示的例子中,為R1或R2)。一旦默認(rèn)路由發(fā)生差錯(cuò),
默認(rèn)路由器將通知它進(jìn)行重定向,并允許主機(jī)對(duì)路由表作相應(yīng)的改動(dòng)。ICMP重定向允許
TCP/IP主機(jī)在進(jìn)行選路時(shí)不需要具備智能特性,而把所有的智能特性放在路由器端。顯然,
在我們的例子中,R1和R2必須知道有關(guān)相連網(wǎng)絡(luò)的更多拓?fù)浣Y(jié)構(gòu)的信息,但是連在LAN上的
所有主機(jī)在啟動(dòng)時(shí)只需一個(gè)默認(rèn)路由,通過接收重定向報(bào)文來逐步學(xué)習(xí)。
ICMP重定向報(bào)文格式
ICMP重定向報(bào)文的格式如圖3所示。

圖3:ICMP重定向報(bào)文格式
有四種不同類型的重定向報(bào)文,有不同的代碼值,如圖4所示。

圖4:ICMP重定向報(bào)文的不同代碼值
ICMP重定向報(bào)文的接收者必須查看三個(gè)IP地址:
( 1 )導(dǎo)致重定向的IP地址(即ICMP重定向報(bào)文的數(shù)據(jù),位于IP數(shù)據(jù)報(bào)的首部);
( 2 )發(fā)送重定向報(bào)文的路由器的IP地址(包含重定向信息的IP數(shù)據(jù)報(bào)中的源地址;
( 3 )應(yīng)該采用的路由器IP地址(在ICMP報(bào)文中的4 ~ 7字節(jié))。
關(guān)于ICMP重定向報(bào)文有很多規(guī)則。首先,重定向報(bào)文只能由路由器生成,而不能由主機(jī)
生成。另外,重定向報(bào)文是為主機(jī)而不是為路由器使用的。
ICMP路由器發(fā)現(xiàn)報(bào)文
初始化路由表的方法,可以在配置文件中指定靜態(tài)路由。這種方法經(jīng)常用來設(shè)置默認(rèn)路由。另一種新的方法是利用ICMP路由器通告和請(qǐng)求報(bào)文。
一般認(rèn)為,主機(jī)在引導(dǎo)以后要廣播或多播傳送一份路由器請(qǐng)求報(bào)文。一臺(tái)或更多臺(tái)路由
器響應(yīng)一份路由器通告報(bào)文。另外,路由器定期地廣播或多播傳送它們的路由器通告報(bào)文,允許每個(gè)正在監(jiān)聽的主機(jī)相應(yīng)地更新它們的路由表。
posted on 2008-06-18 23:08
水 閱讀(3665)
評(píng)論(3) 編輯 收藏 引用 所屬分類:
tcp/ip