什么是rip rip工作原理
RIP是一种基于距离矢量的路由协议,以路由跳数作为计数单位的路由协议,以下是由小编整理关于什么是rip的内容,希望大家喜欢!
rip的简介
RIP(RoutinginformationProtocol)是应用较早、使用较普遍的内部网关协议(InteriorGatewayProtocol,简称IGP),适用于小型同类网络,是典型的距离向量(distance-vector)协议。文档见RFC1058、RFC1723。
RIP通过广播UDP报文来交换路由信息,每30秒发送一次路由信息更新。RIP提供跳跃计数(hopcount)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的路由器的数目。如果到相同目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。RIP最多支持的跳数为15,即在源和目的网间所要经过的最多路由器的数目为15,跳数16表示不可达。
RIP的原理
RIP协议是V-D算法在局域网上的直接实现,RIP将协议的参加者分为主动机和被动机两种。主动机主动地向外广播路径刷新报文,被动机被动地接受路径刷新报文。一般情况下,网关作主动机,主机作被动机。
RIP规定,网关每30秒向外广播一个V-D报文,报文信息来自本地路由表。RIP协议的V-D报文中,其距离以驿站计:与信宿网络直接相连的网关规定为一个驿站,相隔一个网关则为两个驿站……依次类推。一条路径的距离为该路径(从信源机到信宿机)上的网关数。为防止寻径回路的长期存在,RIP规定,长度为16的路径为无限长路径,即不存在路径。所以一条有限的路径长度不得超过15。正是这一规定限制了RIP的使用范围,使RIP局限于小型的局域网点中。
对于相同开销路径的处理是采用先入为主的原则。在具体的应用中,可能会出现这种情况,去往相同网络有若干条相同距离的路径。在这种情况下,无论哪个网关的路径广播报文先到,就采用谁的路径。直到该路径失败或被新的更短的路径来代替。
RIP协议对过时路径的处理是采用了两个定时器;超时计时器和垃圾收集计时器。所有机器对路由表中的每个项目对设置两个计时器。每增加一个新表,就相应的增加两个计时器。当新的路由被安装到路由表中时,超时计时器被初始化为0,并开始计数。每当收到包含路由的RIP消息,超时计时器就被重新设置为0。如果在180秒内没有接收到包含该路由的RIP消息,该路由的度量就被设置为16,而启动该路由的垃圾收集计时器。如果120秒过去了,也没有收到该路由的RIP消息,该路由就从路由表中删除。如果在垃圾收集计时器到120秒之前,收到了包含路由的消息,计时器被清0。而路由被安装到路由表中。
慢收敛的问题及其解决的方法。包括RIP在内的V-D算法路径刷新协议,都有一个严重的缺陷,即“慢收敛”(slow convergence)问题。又叫“计数到无穷”(count to infinity)。如果出现环路,直到路径长度达到16,也就是说要经过7番来回(至少30X7秒),路径回路才能被解除,这就是所谓的慢收敛问题。采用的方法有很多种,主要采用有分割范围(split horizon)法和带触发更新的毒性逆转(Posion Reverse with Triggered updates))法。分割范围法的原理是:当网关从某个网络接口发送RIP路径刷新报文时,其中不能包含从该接口获得的路径信息。毒性逆转法的原理是:某路径崩溃后,最早广播此路径的网关将原路径继续保存在若干刷新报文中,但是指明路径为无限长。为了加强毒性逆转的效果,最好同时使用触发更新技术:一旦检测到路径崩溃,立即广播路径刷新报文,而不必等待下一个广播周期。
RIP协议的运行
网关刚启动时,运行V-D算法,对V-D路由表进行初始化,为每一个和它直接相连的实体建一个表目,并设置目的IP地址,距离为1(这里RIP和V-D略有不同),下一站的IP为0,还要为这个表目设置两个定时器(超时计时器和垃圾收集计时器)。每隔30秒就向它相邻的实体广播路由表的内容。相邻的实体收到广播时,在对广播的内容进行细节上的处理之前,对广播的数据报进行检查。因为广播的内容可能引起路由表的更新,所以这种检查是细致的。首先检查报文是否来自端口520的UDP数据报,如果不是,则丢弃。否则看RIP报文的版本号:如果为0,这个报文就被忽略;如果为1,检查必须为0的字段,如果不为0,忽略该报文;如果大于1,RIP-1对必须为0的字段就不检查。然后对源IP地址进行检查,看它是否来自直接相连的邻居,如果不是来自直接邻居,则报文被忽略。如果上面的检查都是有效的,则对广播的内容进行逐项的处理。看它的度量值是否大于15,如果是则忽略该报文(实际上,如果来自相邻网关的广播,这是不可能的)。然后检查地址族的内容,如果不为2,则忽略该报文。然后更新自己的路由表,并为每个表目设置两个计时器,初始化其为0。就这样所有的网关都每隔30秒向外广播自己的路由表,相邻的网关和主机收到广播后来更新自己的路由表。直到每个实体的路由表都包含到所有实体的寻径信息。如果某条路由突然断了,或者是其度量大于15,与其直接相邻的网关采用分割范围或触发更新的方法向外广播该信息,其他的实体在两个计时器溢出的情况下将该路由从路由表中删除。如果某个网关发现了一条更好的路径,它也向外广播,与该路由相关的每个实体都要更新自己的路由表的内容。
为了更好地理解RIP协议的运行,下面以图2所示的简单的互连网为例来讨论图中各个路由器中的路由表是怎样建立起来的。
在一开始,所有路由器中的路由表只有路由器所接入的网络(共有两个网络)的情况。现在的路由表增加了一列,这就是从该路由表到目的网络上的路由器的“距离”。在图中“下一站路由器”项目中有符号“-”,表示直接交付。这是因为路由器和同一网络上的主机可直接通信而不需要再经过别的路由器进行转发。同理,到目的网络的距离也都是零,因为需要经过的路由器数为零。图中粗的空心箭头表示路由表的更新,细的箭头表示更新路由表要用到相邻路由表传送过来的信息。
接着,各路由器都向其相邻路由器广播RIP报文,这实际上就是广播路由表中的信息。
假定路由器R2先收到了路由器R1和R3的路由信息,然后就更新自己的路由表。更新后的路由表再发送给路由器R1和R3。路由器R1和R3分别再进行更新。
RIP协议存在的一个问题是:当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。以图2为例,设三个路由器都已经建立了各自的路由表,现在路由器R1和网1的连接线路与染短开。路由器R1发现后,将到网1的距离改为16,并将此信息发给路由器R2。由于路由器R3发给R2的信息是:“到网1经过R2距离为2”,于是R2将此项目更新为“到网1经过R3距离为3”,发给R3。R3再发给R2信息:“到网1经过肉距离为4”。这样一直到距离增大到16时,R2和R3才知道网1是不可达的。RIP协议的这一特点叫做:好消息传播得快,而坏消息传播得慢。像这种网络出故障的传播时间往往需要较长的时间,这是RIP的一个主要缺点。