扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共2页)
慢收敛问题的解决可以使用分割范围更新(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)字段按照下表的规定对应了各种操作:
图1.5 RIP报文的格式。在32比特的首部之后,报文包含了一系列的序偶,每个序偶由一个网络IP地址和一个到达该网络的整数距离值构成
路由器或主机通过发送请求命令向另一个路由器请求(request)选路信息。路由器使用响应(response)命令回答。但是在大多数情况下,路由器不经请求就周期性发送响应报文。版本(VERSION)字段包含了协议的版本号(目前的值是1),接收方检测该字段以便对报文作出正确的解释。
RIP编址约定RIP的普遍适用性也体现在它传送网络地址的方式上。它的地址格式不局限于供TCP/IP用户使用,还能适应其他网络协议族的规定。图1.5中显示出RIP通告中的每个网络地址可以长达14个八位组。当然,IP地址仅需4个八位组,RIP定义余下的八位组必须为零。网络i族(FAMILY OF NET i)字段指出了解释它后面出现的网络地址时应遵循的协议族。RIP对各类地址族的赋值遵循了4BSD UNIX操作系统的规定(IP地址类型的赋值是2)。
除了正常的IP地址之外,RIP规定地址0.0.0.0作为默认路由。RIP对通告的每个路由,包括默认路由,都附加了距离度量标准。因此可以让两个路由器以不同的度量标准来通告默认路由(如到互连网络的其余部分的路由),选择其中的一条作为基本路径,另一条作为备用。
在RIP报文每个项目的最后一个字段是到网络i的距离(DISTANCE TO NET i)字段,其内容是到达指定网络的整数型距离值。距离值是以跳数作为度量单位的,但是它的取值范围限制在1到16,16代表无限远(也就是说该路由不存在)。
RIP报文的发送RIP报文中并没包含显式的长度字段。相反,RIP假设底层投递系统能够告诉接收方收到的报文长度。特别是,在TCP/IP系统中,RIP报文依赖于UDP来告诉接收方报文的长度。RIP工作在UDP上的端口是520,虽然RIP可以以不同的UDP端口来发送请求报文,但是在接收端的UDP端口通常都是520,同时这也是RIP产生广播报文的源端口。
使用RIP作为内部路由器协议限制选路的度量必须基于跳数。但跳数通常仅仅提供对网络响应能力和容量的粗略估量,而并不能产生最佳路由。此外,基于最小跳数来计算路由会有严重的缺点,即它会使选路相对固定不变,因为路由不能对网络负荷的变化作出反应。 |
婵″倹鐏夐幃銊╂姜鐢瓕鎻╅崚鍥╂畱閹厖绨$憴顤廡妫板棗鐓欓張鈧弬棰侀獓閸濅椒绗岄幎鈧張顖欎繆閹垽绱濋柇锝勭疄鐠併垽妲勯懛鎶姐€婄純鎴炲Η閺堫垶鍋栨禒璺虹殺閺勵垱鍋嶉惃鍕付娴f娊鈧柨绶炴稊瀣╃閵嗭拷