图一 IP分组转发过程
如图 一 所示,由于 凡同时连接在网络 N2和 网 络 N3 上 ,因 此只要目的 站在这两个网络上,都 可通过接口 0 或 1 由路由器民直接交付。若目的主机在网络 N1中 ,则下一 跳路 由 器应 为 凡,其 IP 地址为 172. 20. 0. 1。由于路由器 R2 和 凡同时连接在网络 2 上,因 此 路 由 器 R2 可以直接将分组发送到路由器 凡的接口 1。同理,若目 的 主机在网络 4 中,则路由 器 R2 应 把分组转发给 IP 地址为 172. 30. 0. 2 的路由器 R3 。由以上过程可知,路由器总是根据路由表中的目的网络地址来确定下一跳路由器,这样做的结果是:
(1) IP 分组最终一定可以到达目的主机所在的网络上的路由器 ,在这个过程期间可能要经过多个中间路由器。
( 2 ) 只有到达最后一个路由器时,才试图向目的主机进行直接交付。
讲到这里有些读者可能会问: Internet 是由数以百万计的网络构成的,路 由表如果为每一个目的网络都设一项,路由表岂不是惊人的庞大?其实实际应用中,路由器一般都采用默认路由( Default Route) , 以减少路由表所占用的空间和搜索路由表所用的时间。例如,如图 二 所示,路由器 凡 的路由表只需要 3 个项目即可。由于 凡同时连接凡和N 2上两个网络,因此到这两个网络的目的分组,可以由接口
0 或接口 1 直接交付。第 3 项就是默认路由,其含义是:只 要目的网络不是 N1 和 N 2' 就一律选择默认路由,把分组交付到路由器 R 2 , 让 R 2直接交付或者转发给下一个路由器。
图二 默认路由
从图 二 所示例子中可以看到,通过设置默认路由,有效地缩减了路由器的路由表项。
综上所述,一个完整的IP分组转发算法可描述如下:
(1 ) 路由器从的分组首部提取目的主机的IP地址 A, 得出目的网络地址为D。
( 2 ) 若D 是与此路由器直接相连的某个网络地址,则路由器直接将分组交付给目的主机,不需要再经过其他的路由器;否 则执行步骤( 3 ) 。
( 3) 若路由表中有目的地址为A 的特定主机路由 ,则把数据报传送给路由表中所指明的下一跳路由器;否则 ,执行步骤( 4 ) 。
( 4) 若路由表中有到达网络 D 的路由,则 把分组转发给路由表中所指明的下一跳路由器:否则 ,执行步骤( 5 ) 。
( 5 ) 若路由表中有默认路由,则把分组转发给路由表中所指明的默认路由器 : 否 则,执行步骤( 6 ) 。
( 6 ) 报告转发分组出错。
以上所讨论的是IP 分组是如何被路由器转发的,那么路由器中的路由表项是如何建立的,又是如何更新的呢?这就涉及到路由算法,将在 以后为读者详解。