路由器的要害作用是用于网络的互连,每个路由器与两个以上的实际网络相连,负责在这些网络之间转发数据报。在讨论 ip 进行选路和对报文进行转发时,我们总是假设路由器包含了正确的路由,而且路由器可以利用 ICMP 重定向机制来要求与之相连的主机更改路由(具体请看 IP 部分的相应章节)。但在实际情况下 , IP 进行选路之前必须先通过某种方法获取正确的路由表。在小型的、变化缓慢的互连网络中,治理者可以用手工方式来建立和更改路由表。而在大型的、迅速变化的环境下,人工更新的办法慢得不能接受。这就需要自动更新路由表的方法,即所谓的动态路由协议, RIP 是其中最简单的一种。
RIP(route information PRotocol)协议是基于V-D算法(又称为Bellman-Ford算法)的内部动态路由协议。V-D是Vector-Distance的缩写,因此V-D算法又称为距离向量算法。这种算法在ARPARNET早期就用于计算机网络的路由的计算。RIP协议在目前已成为路由器、主机路由信息传递的标准之一,就因为这个原因,RIP协议被大多数IP路由器商业卖主广泛使用。
先大致解释一下什么是内部路由协议。由于历史的原因,当前的INTERNET网被组成一系列的自治系统,各自治系统通过一个核心路由器连到主干网上。而一个自治系统往往对应一个组织实体(比如一个公司或大学)内部的网络与路由器集合。每个自治系统都有自己的路由技术,对不同的自治系统路由技术是不相同的。用于自治系统间接口上的单独的协议称为外部路由器协议,简称EGP(Exterior Gateway Protocol)。用于自治系统内部的路由协议称为内部路由器协议,简称IGP(Interior Gateway Protocol)。 内部路由器与外部路由器协议EGP不同,外部路由协议只有一个,而内部路由器协议则是一族。各内部路由器协议的区别在于距离制式(distance metric, 即距离度量标准)不同,和路由刷新算法不同。RIP协议是最广泛使用的IGP之一,闻名的路径刷新程序Routed便是根据RIP 实现的。RIP协议被设计用于使用同种技术的中型网络,因此适应于大多数的校园网和使用速率变化不是很大的连续线的地区性网络。对于更复杂的环境,一般不使用RIP协议。
在实现时,RIP作为一个系统长驻进程(daemon)而存在于路由器中,它负责从网络系统的其它路由器接收路由信息,从而对本地IP层路由表作动态的维护,保证IP层发送报文时选择正确的路由,同时广播本路由器的路由信息,通知相邻路由器作相应的修改。RIP协议处于UDP协议的上层(如图1.1),RIP所接收的路由信息都封装在UDP的数据报中,RIP 在520号端口上接收来自远程路由器的路由修改信息,并对本地的路由表做相应的修改,同时通知其它路由器。通过这种方式,达到全局路由的有效。
RIP协议分为传统RIP协议、需求RIP协议(Demand RIP)和触发RIP,而传统RIP协议又分为RIP-1,和RIP-2两个版本。需求RIP 协议和触发RIP协议与传统RIP协议的区别在于需求RIP协议和触发RIP协议支持对拨号网的路由的维护,增添了几种相应的报文命令,增加了报文发送确认方式。quidway2501上目前的RIP-2不是采取需求RIP协议和触发RIP的方式,但为了支持拨号网的路由的维护2,也汲取了这两种协议的一些处理方式。其中主要改进在于对拨号网的路由进行处理时,并不象对局域网的路由一样设置一定的生存周期,当然为此而付出的代价也是很大的。