2.2.1 RIP的原理
路由器的重要作用是在于网络的互连,每一个路由器负责与两个以上的实际网络相连接,在这几个网络之间转发报文数据。在讨论IP进行选择路径和对报文进行转发时,我们一般假设路由器包含了正确的路由,而且路由器可以使用 ICMP来要求与之相连的主机更改路由。不过在实际情况中,IP进行选路之前必须先通过某种方法获取正确的路由表[2]。在小型的、改变缓慢的互连网络中,用户可以手动更改和建立路由表。但是在大型的、迅速变化的环境下,人工更新的办法则显得杯水车薪。这就需要一种方法可以自动更新路由表,就是我们常说的动态路由协议,RIP协议则是其中最简单的一种。
在路由工作时,RIP协议在路由器中当作一个系统进程,职责是在网络系统中的其它路由器搜索接收路由信息,进而对于本地IP层路由施行动态的文护,确保了在IP层传送报文时选择正确的路由地址。UDP协议的上层是RIP协议所处的位置,RIP所接收的路由信息都被封装在UDP协议的数据报中。RIP对于远端路由修改信息的接收建立在520号UDP端口上,并对自身的路由表进行修改,与此同时发送更新到相邻的路由器。这样的工作方式就可以使所有的路由信息都是最新的,以便对报文的传输路径做出正确的选择。
RIP路由协议传输信息采用两种分组方式,分别为“请求”和“更新”。具有RIP协议的路由器相隔30秒就会向与之直接相连的路由广播最新的路由信息。路由选择信息数据库的每个条目由“与该网络的距离”和“局域网上能达到的IP地址”两部分组成。
2.2.2 RIP协议的消息格式及消息的处理
RIP协议就是关于路由表的建立、更新、文护等一系列操作及与之相关的各种规定。其中包括路由信息格式的定义,路由信息的发送接收和对路由信息进行适当的处理。
图1 RIP的消息格式
如图1所示,RIP报文组成分为首部和路由部分。RIP的首部占四个字节,其中的命令字段指出报文的意义[3]。例如,1表示请求路由信息,2表示对请求路由信息的响应或未被请求而发出的路由请求报文。每个路由信息需要用20个字节。地址族标识符字段用来标识所使用的地址协议。如采用IP地址令这个字段的值为2。路由标记填入自治系统的号码,这是考虑使RIP有可能受到本自治系统以外的路由选择信息。再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。一个RIP报文最多可包括25个路由,因此RIP报文的最大长度是504字节。
每个路由器对于它所接收到的路由消息按下面算法进行处理。对于路由消息中的每一项路由信息,这里可以看成是一个二元组[4]。
(1)如果目标网络没有出现在现有的路由表中,则把这一项路由信息添加到路由表中,下一跳即为发送该条路由信息的路由器的IP地址,度量为metric+1;
(2)如果现有的度量值大于该条路由信息中的metric+1,则更新路由为新的路由项,下一跳改为发送该条路由信息的路由器IP地址,度量为metric+1;否则,如果该条路由消息的发送者就是现有路由条目中的next hop项,更新路由为新的路由项。
2.2.3 RIP路由运行流程
RIP协议是一种基于距离矢量算法的内部网关动态路由协议。
距离矢量路由选择算法就是让路由器保持对一张向量表的更新,向量表中包含了到每一个目的地已知的最短路径,路由器之间通过信息交换来更新表的信息。路由中还包括一张路由选择表,其中包含的信息为用到的数据发送路线和预计达到目的地址所消耗的时间。 OPNET的RIP路由器协议研究与仿真+文献综述(3):http://www.youerw.com/tongxin/lunwen_4654.html