路由信息协议RIP:是内部网关协议中得到最先广泛使用的协议,是一种分布式的基于距离向量的路由选择协议。
路由信息协议RIP要求网络中的每一个路由器都要维护一个从它自己到目的网络的距离记录,这里的距离指的是路由器到目的网络所需经过的路由器的个数。
RIP中的距离也称为跳数,每经过一个路由器,跳数都会加1,RIP协议要求一条路径上所能包含的最大路由数是15个,如果超过,即相当于不可达,所以RIP协议只适合于小型网络。
RIP协议不能在两个网络之间使用多条路由,它会选择一条具有最少路由数的路由,哪怕还有一条更快的但是却含有更多路由器的路由。
我们知道每一个路由器都要不断的跟其他路由器交换信息,但是,和哪些路由器交换信息?交换什么信息?什么时间交换信息?
RIP协议特点:
(1) 仅和相邻的路由器交换路由信息,相邻指的是之间的通信不需要经过其他路由器;
(2) 交换的信息是当前本路由器所知道的的所有路由信息;
(3) 按照固定的时间间隔交换路由信息;
路由表中最主要的信息是:到达某个网络的距离和下一跳的路由器。更新的原则是找出到达目的网络的最短距离。
RIP协议使用的是距离向量算法。
距离向量算法的基础是Bellman-Ford算法。距离向量算法的步骤如下所示:
(1) 对地址为X的相邻路由器发送来的RIP报文,首先修改报文中个所有项目:把下一跳地址修改为X,将距离字段(跳数)加1,每个项目包含三个有效字段:目的网络N,距离(跳数)d,下一跳路由X。
(2) 对修改后的RIP报文中的每个项目进行比较,步骤如下:
l 若原来的路由表中没有目的网络N,则将其添加到本路由器的路由表中。
l 否则(若原来的路由表中有目的网络N,这是需要查看下一跳地址),若下一跳路由器地址是X,则用收到的项目替换路由表中的项目。若下一跳路由地址不是X,则比较收到项目的距离(跳数)项d和本路由器上的距离(跳数),如果小于,则对本路由器上的跳数进行更新,否则什么都不做。
(3) 如果3分钟后还没有收到相邻路由器的更新路由表,则将相邻路由器记为不可达的路由器,并将距离设置为16。
RIP协议让一个自制系统内的相邻路由器之间定期交换路由信息,使得每个路由器到目的网络的距离都是最短的。
RIP协议传输层使用的是UDP这种面向无连接的传输层协议。
RIP报文由首部和路由部分组成。
首部由4个字节组成,其中第一个字节是命令字段,表示当前报文的意义,1表示请求路由信息,2表示对请求路由信息的回应或者是未请求而自动发出的路由更新报文。第二个字节表示版本号,最后的两个字节为全0域,是为了4字节对齐。
路由部分由若干个路由信息组成(最多包含25个),每个路由信息由20个字节组成。格式如下:
需要说明是,地址族标识符用来标识所使用的地址协议,路由标记填入的是自制系统号ASN。而距离字段填写的是1-16,1表示直接交付,16表示不可达。
RIP2可支持边长子网掩码和CIDR,同时还提供简单的鉴别过程支持多播。
RIP2当使用鉴别功能时,将会占用一个路由信息,在这个路由信息的地址族标识符中存放0XFFFF,在路由标记字段中放入鉴别类型。此时最多只能传送24个路由信息。
RIP的优缺点:
(1) 优点:实现简单,开销较小。
(2) 限制的网络的规模;路由器之间交换的路由信息是路由器的完整路由表,随着网络增大,开销也会增大。
(3) “坏消息”传播的慢,使得更新的收敛过程过长。