目录
RIP
RIP (Routing Information Protocol)是距离向量型的一种路由协议,广泛用于 LAN。被BSD UNIX作为标准而提供的routed采用了RIP, 因此RIP得到了迅速 的普及。
广播路由控制信息
RIP将路由控制信息定期(30秒一次)向全网广播。如果没有收到路由控制 信息,连接就会被断开。不过,这有可能是由于丢包导致的,因此RIP规定等待 5次。如果等了6次(180秒)仍未收到路由信息,才会真正关闭连接。
根据距离向量确定路由
RIP基于距离向量算法决定路径。距离(Metrics)的单位为“跳数"。跳数 是指所经过的路由器的个数。
RIP希望尽可能少通过路由器将数据包转发到目标 IP地址,根据距离向量生成距离向量表,再抽出较小的路由生成 最终的路由控制表。
使用子网掩码时的RIP处理
RIP虽然不交换子网掩码信息,但可以用于使用子网掩码的网络环境。不过 在这种情况下需要注意以下几点:
- 从接口的IP地址对应分类得出网络地址后,与根据路由控制信息流过此 路由器的包中的IP地址对应的分类得出的网络地址进行比较。如果两者 的网络地址相同,那么就以接口的网络地址长度为准。
- 如果两者的网络地址不同,那么以IP地址的分类所确定的网络地址长度 为准。
例如,路由器的接口地址为192. 168. 1. 33/27。很显然,这是一个C类地址, 因此按照IP地址分类它的网络地址为192. 168. 1. 33/24。与192. 168. 1. 33/24相 符合的IP地址,其网络地址长度都被视为27位。除此之外的地址,则采用每个 地址的分类所确定的网络地址长度。
因此,采用RIP进行路由控制的范围内必须注意两点:一是,因IP地址的分 类而产生不同的网络地址时;二是,构造网络地址长度不同的网络环境时。
RIP中路由变更时的处理
RIP的基本行为可归纳为如下两点:
- 将自己所知道的路由信息定期进行广播。
- 一旦认为网络被断开,数据将无法流过此路由器,其他路由器也就可以得 知网络巳经断开。
不过,这两点不论哪种方式都存在一些问题。
如图,路由器A将网络A的连接信息发送给路由器B, 路由器B又将自 已掌握的路由信息在原来的基础上加1跳后发送给路由器A和路由器C。假定这 时与网络A发生了故障。
路由器A虽然觉察到自己与网络A的连接已经断开,无法将网络A的信息发 送给路由器B, 但是它会收到路由器B曾经获知的消息。这就使得路由器A误认 为自己的信息还可以通过路由器B到达网络A。
像这样收到自已发出去的消息,这个问题被称为无限计数(Counting to lnfinity)。为了解决这个问题可以采取以下两种方法:
- 一是最长距离不超过16。由此即使发生无限计数的问题,也可以从时间 上进行控制。
- 二是规定路由器不再把所收到的路由消息原路返还给发送端。这也被称作 水平分割(Split Horizon)。
然而,这种方法对有些网络来说是无法解决问题的。如图所示,在网络 本身就有环路的情况下。
在有环路情况下,反向的回路会成为迂回的通道,路由信息会不断地被循环 往复地转发。当环路内部某一处发生通信故障时,通常可以设置一个正确的迂回通道。但是对于图中的情况,当网络A的通信发生故障时,将无法传送正确 的路由信息。尤其是在环路有多余的情况下,需要很长时间才能产生正确的路由 信息。
为了尽可能解决这个问题,人们提出了“毒性逆转" (Poisoned Reverse)和 "触发更新" (Triggered Update)两种方法。