RIP协议的前身是一个运行在Unix BSDI版本上称为"routed" 的程序,在1988年被IETF标准化,定义为RFC 1058。紧接着的RIP2标准在RFC 1388中定义,它加入了对变长子网掩码(VLSM)的支持,但并没有从根本上解决RIP路由协议的一些主要缺点,例如在一个网络中如果有多条路径可以到达目的地,那么RIP协议在转移到另外一条可选路径时需要较长的一段时间才能完成。
RIP协议经受了长期的实际运行考验,在网络界已被广为运用。RIP在那些并没有冗余路由器的网络中的确是一种非常适合的路由协议。
一般路由协议的基本功能有两个,一个是交换路由;另一个是维护一份路由表以提供给其他通信协议调用,RIP也不例外。RIP路由表中的每一项都包含了最终目的地址、到目的节点的路径中的下一跳节点(next hop) 等信息。next hop指的是网上的报文欲通过本网络节点到达目的节点,如不能直接送达,则本节点应把此报文送到某个中转站点,此中转站点称为next hop,这一中转过程叫hop。一个报文从本节点到目的节点中途经历的中转次数称为hop count。RIP采用距离向量算法,它通过比较到达目的站点的各个路由的hop count,即距离的大小,从中选择具有最小数值的路由作为最佳路由,而把数值稍大的路由作为备份。一旦最佳路由失效,则采用备份路由。RIP只保留到目的地的最佳路由,当一条交换过来的新的路由信息提供了一条更佳的路由时,RIP就用它来替换旧的信息。当网络拓扑改变时,RIP实体会向外发布路由更新报文,以便与其他网络设备共享。每一个路由器收到一条更新报文后除了更新自己的路由表之外,还接着传播这条报文,这可以简单地理解为互通有无、彼此信任。
RIP使用一些时钟以保证它所维持的路由的有效性与及时性。但是对于RIP协议来说,一个不理想之处在于它需要相对较长的时间才能确认一个路由是否失效。RIP 至少需要经过3分钟的延迟才能启动备份路由。这个时间对于大多数应用程序来说 都会出现超时错误,用户能明显地感觉出来系统出现了短暂的故障。
RIP的另外一个问题是它在选择路由时不考虑链路的连接速度,而仅仅用hop count来衡量路径的长短。这就造成了在一个实际的网络中,采用快速以太网(100Mbps)连接的链路可能仅仅因为比10Mbps以太网链路多出1 个hop,致使RIP认为10Mbps链路为一条更优化的路由,而实际上并非如此。
老版本的RIP不支持VLSM,使得用户不能通过划分更小网络地址的方法来更高效地使用有限的IP地址空间。在RIP2版本中对此做了改进,在每一条路由信息中加入了子网掩码。由于老版本的RIP 路由信息中不采用子网掩码,所以RIP1没有办法来传达不同网络中变长子网掩码的详细信息。
路由协议应该能够阻止数据包在网络中循环传递,或进行循环路由。RIP认为如果一条路由具有15个以上的hop count值,那么这条路径上一定有环路存在。这就是说,一条路由的hop count值到达16后,就被RIP认为无效。显然,这样的定义有 效地预防了环路的存在,而且对于小网络高效易行。但是对于超过15个hop的大网络来说,RIP就有局限性。
RIP协议是一个国际标准,所有的路由器厂商都支持它,而且RIP在各种操作系统中都能很容易地进行配置和故障排除。在那些没有冗余链路的网络中RIP能很好地进行工作,但RIP的最大毛病在于它无法在具有冗余链路的网络中有效地运用。所以对于大网络或需要具备冗余链路的网络,就必须考虑采用其他路由协议了。