IP选路

来源:互联网 发布:淘宝店受限怎么解决 编辑:程序博客网 时间:2024/05/30 04:30

1.IP搜索路由表的步骤

1) 搜索匹配的主机地址;

2) 搜索匹配的网络地址;

3) 搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为0)。

       匹配主机地址步骤始终发生在匹配网络地址步骤之前。

2.Unix下的路由表

       对于一个给定的路由器,可以打印出五种不同的标志(flag):

U 该路由可以使用。

G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。

H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该

标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网

络号与子网号的组合。

D 该路由是由重定向报文创建的。

M 该路由已被重定向报文修改。

       标志G是非常重要的,因为由它区分了间接路由和直接路由(对于直接路由来说是不设置标志G的)。其区别在于,发往直接路由的分组中不但具有指明目的端的I P地址,还具有其链路层地址。当分组被发往一个间接路由时, I P地址指明的是最终的目的地,但是链路层地址指明的是网关(即下一站路由器)。在这个路由表例子中,有一个间接路由(设置了标志G),因此采用这一项路由的分组其I P地址是最终的目的地(1 4 0 . 2 5 2 . 1 3 . 6 5),但是其链路层地址必须对应于路由器1 4 0 . 2 5 2 . 1 3 . 3 5

———————————————————————————————————————

       这里举两个例子:

1、主机b s d i有一个I P数据报要发送给主机s u n。双方都在同一个以太网上。数据报的传输过程如图3 - 3所示。数据报被送到以太网驱动程序,然后作为一个以太网数据帧被送到s u n主机上。I P数据报中的目的地址是s u nI P地址( 1 4 0 . 2 5 2 . 1 3 . 3 3),而在链路层首部中的目的地址是48 bits u n主机的以太网接口地址。

1、  主机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主机的以太网接口地址。注意!!!这里不是链路层地址,因为还要继续进行转发。这里也可以得出一个结论链路层首部封装的未必都是物理地址。

———————————————————————————————————————

       理解GH标志之间的区别是很重要的。G标志区分了直接路由和间接路由,如上所述。但是H标志表明,目的地址( n e t s t a t命令输出第一行)是一个完整的主机地址。没有设置H标志说明目的地址是一个网络地址(主机号部分为0)。当为某个目的I P地址搜索路由表时,主机地址项必须与目的地址完全匹配,而网络地址项只需要匹配目的地址的网络号和子网号就可以了。另外,大多数版本的n e t s t a t命令首先打印出所有的主机路由表项,然后才是网络路由表项。

3.无法到达目的地(ICMP主机与网络不可达差错)

       如果路由表中没有默认项,而又没有找到匹配项,这时会发生什么情况呢?结果取决于该I P数据报是由主机产生的还是被转发的(例如,我们就充当一个路由器)。如果数据报是由本地主机产生的,那么就给发送该数据报的应用程序返回一个差错,或者是“主机不可达差错”或者是“网络不可达差错”。如果是被转发的数据报,那么就给原始发送端发送一份I C M P主机不可达的差错报文。

4.ICMP重定向差错

       I P数据报应该被发送到另一个路由器时,收到数据报的路由器就要发送I C M P重定向差错报文给I P数据报的发送端。

1) 我们假定主机发送一份I P数据报给R 1。这种选路决策经常发生,因为R 1是该主机的默认路由。

2) R1收到数据报并且检查它的路由表,发现R 2是发送该数据报的下一站。当它把数据报

发送给R 2时,R 1检测到它正在发送的接口与数据报到达接口是相同的(即主机和两个路由器所在的L A N)。这样就给路由器发送重定向报文给原始发送端提供了线索。

3) R1 发送一份I C M P重定向报文给主机,告诉它以后把数据报发送给R 2而不是R 1

        ICMP重定向报文的格式如图9-4所示。

        有四种不同类型的重定向报文,有不同的代码值,如图9-5所示。

I C M P重定向报文的接收者必须查看三个I P地址:

( 1 )导致重定向的I P地址(即I C M P重定向报文的数据位于I P数据报的首部);

( 2 )发送重定向报文的路由器的I P地址(包含重定向信息的I P数据报中的源地址;

( 3 )应该采用的路由器I P地址(在I C M P报文中的4 ~ 7字节)。

5.ICMP路由发现报文

       一种初始化路由表的方法是在配置文件中指定静态路由。这种方法经常用来设置默认路由。另一种新的方法是利用I C M P路由器通告和请求报文。

       一般认为,主机在引导以后要广播或多播传送一份路由器请求报文。一台或更多台路由

器响应一份路由器通告报文。另外,路由器定期地广播或多播传送它们的路由器通告报文,允许每个正在监听的主机相应地更新它们的路由表。

       路由器在一份报文中可以通告多个地址。地址数指的是报文中所含的地址数。地址项大小指的是每个路由器地址32 bit字的数目,始终为2。生存期指的是通告地址有效的时间(秒数)。接下来是一对或多对I P地址和优先级。I P地址必须是发送路由器的某个地址。优先级是一个有符号的32 bit整数,指出该I P地址作为默认路由器地址的优先等级,这是与子网上的其他路由器相比较而言的。值越大说明优先级越高。

 

 

 

 

 

 

原创粉丝点击