路由信息协议(英语:Routing Information Protocol,缩写:RIP)是一种内部网关协议(IGP),为最早出现的距离向量路由协议。属于网络层,其主要应用于规模较小的、可靠性要求较低的网络,可以通过不断的交换信息让路由器动态的适应网络连接的变化,这些信息包括每个路由器可以到达哪些网络,这些网络有多远等。
虽然RIP仍然经常的被使用,但是由于收敛慢和支持的广播网络规模有限等缺点,许多人认为它将会而且正在被诸如OSPF和IS-IS这样的路由协议所取代。当然,我们也看到EIGRP,一种和RIP属于同一基本协议类但更具适应性的路由协议,也有被使用。
RIP所使用的路由算法是Bellman-Ford算法.这种算法最早被用于一个计算机网络是在1969年,当时是作为ARPANET的初始路由算法。
RIP是由“网关信息协议”(Xerox Parc的用于互联网工作的PARC通用数据包协议簇的一部分)发展过来的,可以说网关信息协议是RIP的最早的版本。后来的一个版本才被命名为“路由信息协议”,是Xerox网络服务协议簇的一部分。
每隔30秒会与相邻的路由器交换子消息,以动态的创建路由表。
0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| command (1) | version (1) | must be zero (2) |+---------------+---------------+-------------------------------+| address family identifier (2) | must be zero (2) |+-------------------------------+-------------------------------+| IP address (4) |+---------------------------------------------------------------+| must be zero (4) |+---------------------------------------------------------------+| must be zero (4) |+---------------------------------------------------------------+| metric (4) |+---------------------------------------------------------------+
RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大。
目前RIP共有三个版本,RIPv1、RIPv2、RIPng。
RIPv1使用分类路由,定义在《RFC 1058》中。在它的路由更新(Routing Updates)中并不带有子网的信息,因此它无法支持可变长度子网掩码。这个限制造成在RIPv1的网络中,在同级网络下无法使用不同的子网掩码。换句话说,在同一个网络下所有的子网数目都是相同的。另外,RIPv1的协议报文中没有验证字段,所以RIPv1不支持验证。
RIPv1是一个基于UDP的路由协议,并且RIPv1的数据包不能超过512字节(RIP报文头部占用4个字节,而每个路由条目占用20个八位组字节。因此,RIP消息最大为4+(25*20)=504个字节,再加上8个字节的UDP头部,所以RIP数据报的大小(不含IP包的头部)最大可达512个字节。)。
RIPv2在RIPv1的基础上改进如下几点:
RIPng(Routing Information Protocol next generation)在RFC 2080中被定义,主要是针对IPv6做一些延伸的规范。与RIPv2相比下其最主要的差异是:
RIP在更新和维护路由信息时主要使用以下4个定时器:
由于路由器可能收到它自己发送的路由信息而造成网络环路,为了提高RIP协议性能而使用以下措施:
一个比RIP更强大,且同样基于距离矢量路由协议的协议,是思科专有的IGRP。思科在其现时发行的软件中已再没有对IGRP提供支持,而且由EIGRP──一只彻底地重新设计的路由通信协议所取代。不过它与IGRP的关系就只有命名上的相似,亦纯粹是因为EIGRP依然是基于距离矢量路由协议的缘故。