rip协议理解

一、概述
RIP协议的全称是路由信息协议(Routing Information Protocol),它是一种内部网关协议(IGP),用于一个自治系统(AS)内的路由信息的传递 。RIP协议是基于距离矢量算法(Distance Vector Algorithms)的,它使用“跳数”,即metric来衡量到达目标地址的路由距离 。
二、该协议的局限性
1、协议中规定,一条有效的路由信息的度量(metric)不能超过15,这就使得该协议不能应用于很大型的网络,应该说正是由于设计者考虑到该协议只适合于小型网络所以才进行了这一限制 。对于metric为16的目标网络来说,即认为其不可到达 。
2、该路由协议应用到实际中时,很轻易出现“计数到无穷大”的现象,这使得路由收敛很慢,在网络拓扑结构变化以后需要很长时间路由信息才能稳定下来 。
3、该协议以跳数,即报文经过的路由器个数为衡量标准,并以此来选择路由,这一措施欠合理性,因为没有考虑网络延时、可靠性、线路负荷等因素对传输质量和速度的影响 。
三、RIP(版本1)报文的格式和特性
3.1、RIP(版本1)报文的格式
0 7 15 31
命令字(1字节) 版本(1字节) 必须为0(2字节)
地址类型标识符(2字节) 必须为0(2字节)
IP地址
必须为0
必须为0
Metric值(1—16)
(最多可以有24个另外的路由,与前20字节具有相同的格式)
“命令字”字段为1时表示RIP请求,为2时表示RIP应答 。地址类型标志符在实际应用中总是为2,即地址类型为IP地址 。“IP地址”字段表明目的网络地址,“Metric”字段表明了到达目的网络所需要的“跳数” 。
3.2. RIP的特性
(1)路由信息更新特性:
路由器最初启动时只包含了其直连网络的路由信息,并且其直连网络的metric值为1,然后它向四周的其他路由器发出完整路由表的RIP请求(该请求报文的“IP地址”字段为0.0.0.0) 。路由器根据接收到的RIP应答来更新其路由表,具体方法是添加新的路由表项,并将其metric值加1 。假如接收到与已有表项的目的地址相同的路由信息,则分下面三种情况分别对待:第一种情况,已有表项的来源端口与新表项的来源端口相同,那么无条件根据最新的路由信息更新其路由表;第二种情况,已有表项与新表项来源于不同的端口,那么比较它们的metric值,将metric值较小的一个最为自己的路由表项;第三种情况,新旧表项的metric值相等,普遍的处理方法是保留旧的表项 。
路由器每30秒发送一次自己的路由表(以RIP应答的方式广播出去) 。针对某一条路由信息,假如180秒以后都没有接收到新的关于它的路由信息,那么将其标记为失效,即metric值标记为16 。在另外的120秒以后,假如仍然没有更新信息,该条失效信息被删除 。
2)RIP版本1对RIP报文中“版本”字段的处理:
0:忽略该报文 。
1:版本1报文,检查报文中“必须为0”的字段,若不符合规定,忽略该报文 。
>1:不检查报文中“必须为0”的字段,仅处理RFC 1058中规定的有意义的字段 。因此,运行RIP版本1的机器能够接收处理RIP版本2的报文,但会丢失其中的RIP版本2新规定的那些信息 。
(3)RIP版本1对地址的处理
RIP版本1不能识别子网网络地址,因为在其传送的路由更新报文中不包含子网掩码,因此RIP路由信息要么是主机地址,用于点对点链路的路由;要么是A、B、C类网络地址,用于以太网等的路由;另外,还可以是0.0.0.0,即缺省路由信息 。
(4)计数到无穷大(Counting to Infinity)
前面在RIP的局限性一部分提到了可能出现的计数到无穷大的现象,下面就来分析一下该现象的产生原因与过程 。考察下面的简单网络:

推荐阅读