RIP 详细解析选路信息协议( 二 )


假如第一个广播路由的路由器出故障(如崩溃)会有什么后果?RIP规定所有收听者必须对通过RIP获得的路由设置定时器 。当路由器在选路表中安置新路由时,它也为之设定了定时器 。当该路由器又收到关于该路由的另一个广播报文后,定时器也要重新设置 。假如经过180秒后还没有下一次通告该路由,它就变为无效路由 。
RIP必须处理下层算法的三类错误 。第一,由于算法不能明确地检测出选路的回路,RIP要么假定参与者是可信赖的,要么采取一定的预防措施 。第二,RIP必须对可能的距离使用一个较小的最大值来防止出现不稳定的现象(RIP使用的值是16) 。因而对于那些实际跳数值在16左右的互连网络,治理者要么把它划分为若干部分,要么采用其他的协议 。第三,选路更新报文在网络之间的传输速度很慢,RIP所使用的矢量距离算法会产生慢收敛(slow convergence)或无限计数(count to infinity)问题从而引发不一致性 。选择一个小的无限大值(16),可以限制慢收敛问题,但不能彻底解决客观存在 。
【RIP 详细解析选路信息协议】 选路表的不一致问题并非仅在RIP中出现 。它是出现在任何矢量距离协议中的一个根本性的问题,在此协议中,更新报文仅仅包含由目的网络及到达该网络的距离构成的序偶 。
R1直接与网络1相连,所以在它的选路表中有一条到该网络的距离为1的路由;在周期性的路由广播中包括了这个路由 。R2从R1处得知了这个路由,并在自己的选路表中建立了相应的路由产工将之以距离值2广播出去 。最后R3从R2处得知该路由并以距离值3广播 。

;现在假设R1到网络1的连接失效了 。那么R1立即更新它的选路表把该路由的距离置为16(无穷大) 。在下一次广播时,R1应该通告这一信息 。但是,除非协议包含了额外的机制预防此类情况,可能有其他的路由器在R1广播之前就广播了其路由 。可能假设一个非凡的情况,即R2正好在R1与网络1连接失效后通告其路由 。因此,R1就会收到R2的报文,并对此使用通常的矢量距离算法:它注重到R2有到达网络1的费用更低的路由,计算出现在到达网络1需要3跳(R2通告的到网络1费用是2跳,再加上到R2的1跳) 。然后在选路表中装入新的通过R2到达网络1的路由 。图1.4描述了这个结果 。这样的话,R1和R2中的任一个收到去网络1的数据报之后,就会把该报文在两者之间往返传输直到寿命计时器超时溢出 。
这两个路由器随后广播的RIP不能迅速解决这个问题 。在下一轮交换选路信息的过程中,R1通告它的选路表中的各个项目 。而R2得知R1到网络1的距离是3之后,计算出该路由新长度4.到第三轮的时候,R1收到从R2传来的路由距离增加的信息,把自己的选路表中该路由的距离增到5.如此循环往复,直至距离值到达RIP的极限 。
慢收敛问题的解决可以使用分割范围更新(split horizon update)技术来解决慢收敛问题 。在使用分割范围技术时,路由器记录下收到各路由的接口,而当这路由器通告路由时,就不会把该路由再通过那个接口送回去 。在该例中,路由器R2不会把它到网络1的距离为2的路由再通告给R1,因此一旦R1与网络1的连接失效,它就不会再通告该路由 。经过几轮选路更新之后,所有的机器都会知道网络1是不可达的 。但是分割范围更新技术不能解决所有的拓扑结构中的问题 。考虑慢收敛问题的另一个方法是使用信息流的概念 。假如路由器通告了到某网络的短路由,所有接收路由器迅速地作出安装该路由的反应 。当路由器停止通告某路由,协议在判定该路由不可达之前,要依据超时机制来工作 。当超时出现时,路由器寻找替代路由并开始传播此信息 。不幸的是,路由器并不知道这个替代路由是否要依靠于刚刚消失的路由 。因此,通常不应迅速地传播否定的信息 。有一条警句或谓一语破的:好消息传播得快,坏消息传播得慢 。解决慢收敛问题的另一个技术使用了抑制(hold down)法 。抑制法迫使参与协议工作的路由器,在收到关于某网络不可达的信息后的一段固定时间内,忽略任何关于该网络的路由信息 。这段抑制时间的典型长度是60秒 。该技术的思路是等待足够的时间以便确信所有的机器都收到坏消息,并且不会错误地接受内容过时的报文 。需要指出的是,所有参与RIP的机器都要遵循抑制策略,否则仍然会发生选路回路现象 。抑制技术的缺点是:假如出现了选路回路,那么在抑制期间内这些选路回路仍然会维持下去 。更严重的是,在抑制期间所有不正确的路由也保留下来了,即使是有替代路由的存在 。解决慢收敛问题的最后一种技术就是毒性逆转(poison reverse) 。当一条连接消失后,路由器在若干个更新周期内都有保留该路由,但是在广播路由时则规定该路由的费用为无限长 。为提高毒性逆转法的效率,它应该与触发更新(triggered updates)技术结合 。触发更新技术使得新信息,路由器减少了因为想信好消息而轻易出错的时间 。不幸的是,虽然触发更新技术、毒性逆转技术、抑制技术和分割范围技术能够解决一些问题,但它们又带来了一些新的问题 。例如,在许多路由器共享一个公共网络的结构中采用触发更新技术的情况下,一个广播就能改变这些路由器的选路表,引发一轮新的广播 。假如第二轮广播改变了路由表,它又会引起更多的广播 。这就产生了广播雪崩 。使用广播技术(这有可能产生选路回路)和使用抑制技术防止慢收敛问题,可使得RIP在广域网上的工作效率极低 。广播要耗费大量宝贵的带宽 。即便不出现广播雪崩现象,所有机器周期性地进行广播也意味着网络流量随着路由器数目的增加而增加 。而可能出现的选路回路在线路容量有限的情况下可能就是致命的问题 。当兜圈子的分组使得线路的容量饱和后,路由器要交换一些选路报文来打破这种回路,就变得很困难甚至是不可能的 。同样,在广域网中,抑制期间可能太长,使得高层协议使用的定时器超时从而中断连接 。尽管有这些熟知的问题,但还是有许多的组织在广域网上使用RIP作为IGP 。RIP报文格式RIP报文大致可分为两类:选路信息报文和对信息的请求报文 。它们都使用同样的格式,由固定的首部和后面可选的网络和距离序偶列表组成 。图1.5给出的报文的格式:在这个图中,命令(COMMAND)字段按照下表的规定对应了各种操作:08;;;;;1624;;;31命令(1-5)版本(1)必为零网1的协议族必为零网1的IP地址必为零必为零至网1的距离网2的协议族

推荐阅读