一次看懂RIP协议。

了解更多请关注微信公众号獭獭笔记。
獭獭笔记
“ 一次看懂RIP协议。”web

路由信息协议(英语:Routing Information Protocol,缩写:RIP),是一种使用最普遍的内部网关协议(IGP),属于网络层,一种在网关与主机之间交换路由选择信息的标准。在国家性网络中如当前的因特网,拥有不少用于整个网络的路由选择协议。做为造成网络的每个自治系统(AS),都有属于本身的路由选择技术,不一样的 AS 系统,路由选择技术也不一样。虽然RIP仍然常常的被使用,但大多数人认为它将会并且正在被诸如OSPF和IS-IS这样的路由协议所取代。算法

01微信

网络

静态路由和动态路由介绍
①静态路由是一种须要管理员手工配置的特殊路由。less

静态路由在不一样网络环境中有不一样的目的:

当网络结构比较简单时,只需配置静态路由就可使网络正常工做。

在复杂网络环境中,配置静态路由能够改进网络的性能,并可为重要的应用保证带宽。

静态路由可在VPN实例中使用,主要用于VPN路由的管理。

②动态路由动态路由协议经过路由信息的交换生成并维护转发引擎所需的路由表。当网络拓扑结构改变时动态路由协议能够自动更新路由表,并负责决定数据传输最佳路径。svg

在动态路由中,管理员再也不须要与静态路由同样,手工对路由器上的路由表进行维护,而是在每台路由器上运行一个路由协议。这个路由协议会根据路由器上的接口的配置(如IP地址的配置)及所链接的链路的状态,生成路由表中的路由表项。

全部的动态路由协议在TCP/IP协议栈中都属于应用层的协议。可是不一样的路由协议使用的底层协议不一样。

OSPF将协议报文直接封装在IP报文中,协议号89,因为IP协议自己是不可靠传输协议,因此OSPF传输的可靠性须要协议自己来保证。

BGP使用TCP做为传输协议,提升了协议的可靠性,TCP的端口号是179。

RIP使用UDP做为传输协议,端口号520。

IS-IS协议是开放系统互联(OSI)协议中的网络层协议,IS-IS协议基础是CLNP(Connectionless Network Protocol,无链接网络协议)。

02性能

学习

RIP协议的原理计算机网络

RIP是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心本身周围的世界,只与本身相邻的路由器交换信息,范围限制在15跳(15度)以内。RIP应用于OSI网络七层模型的网络层。3d

各厂家定义的管理距离(AD,即优先级)以下:华为定义的优先级是100,思科定义的优先级是120。

RIP协议采用距离向量算法,在实际使用中已经较少适用。在默认状况下,RIP使用一种很是简单的度量制度:

距离就是通往目的站点所需通过的链路数,取值为0~16,数值16表示路径无限长。RIP进程使用UDP的520端口来发送和接收RIP分组。

RIP分组每隔30s以广播的形式发送一次,为了防止出现“广播风暴”,其后续的的分组将作随机延时后发送。在RIP中,若是一个路由在180s内未被刷,则相应的距离就被设定成无穷大,并从路由表中删除该表项。

RIP分组分为两种:

请求分组

响应分组。

RIP不可能在大型网络中获得应用

03

RIP维护更新

1.更新( update)计时器:
定义了发送路由更新的时间间隔 30s

2.老化/超时/失效(timeout )计时器:
定义了路由老化时间、若是在老化时间内没有收到关于某条路由的更新报文,则该条路由的度量值会被设置为无穷大(16),并从ip路由表中撤销,定时器默认值为180s。

3.垃圾收集/刷新(Garbage-Collect)计时器:
定义了一条路由从度量值变为16开始,直到它从路由表里面被完全删除所通过的时间。若是Garbage-Collect超时,该路由仍没有获得更新,则该路由将被完全删除。默认值是120s。

04

RIP防环机制

1.水平分割(split horizon)

路由器中某接口发送出去的路由,不会再从该接口接收并从原接口发回邻居路由器。

2.毒性逆转

从一个接口学习到的路由会发送回该接口,可是已经被毒化,跳数设置为16跳,不可达。

3.触发更新计时器:
一旦检测到路由崩溃,当即广播路由刷新报文,而不等到下一刷新周期。

4.抑制计时器:

防止路由表频繁翻动,增长了网络的稳定性。

05

RIPv2加强特性

RIPv2跟RIPv1的相同点:
用跳数做为度量值,最大值为15

一样是距离矢量路由协议

容易产生路由环路,使用最大跳计数,水平分隔,触发更新,路由中毒和抑制定时器来防止路由环路

一样是周期更新,默认每30秒发送一次路由更新

RIPv2的加强特性:
在路由更新中携带有子网掩码的路由选择信息,因此支持VLSM和CIDR;

提供身份验证功能,支持明文和MD5验证;

下一跳路由器的IP地址包含在路由更新信息中;

使用外部标记;

运用组播地址224.0.0.9代替RIPv1的广播更新;

关闭自动汇总,而后支持手动汇总;

06

RIP路由聚合

路由聚合:
同一个天然网段内的不一样子网的路由在其它网段发送时,聚合成一个网段的路由发送。仅RIPV2支持路由聚合。包括基于RIPv2进程的有类聚合和基于接口的聚合。

RIPv2支持路由聚合,由于RIPv2报文携带掩码位,因此支持子网划分。在RIPv2中进行路由聚合可提升大型网络的可扩展性和效率,缩减路由表。

基于RIPv2进程的有类聚合即实现自动聚合。


基于接口的聚合即实现手动聚合。


若是被聚合路由携带了Tag,那么路由聚合发生以后,Tag信息将被清除。

07

RIP协议特色

(1)RIP是自治系统内部使用的协议即内部网关协议,使用的是距离矢量算法。

(2)RIP使用UDP的520端口进行RIP进程之间的通讯。

(3)RIP主要有两个版本:RIPv1和RIPv2。RIPv1协议的具体描述在RFC1058中,RIPv2是对RIPv1协议的改进,其协议的具体描述在RFC2453中。

(4)RIP协议以跳数做为网络度量值。

(5)RIP协议采用广播或组播进行通讯,其中RIPv1只支持广播,而RIPv2除支持广播外还支持组播。

(6)RIP协议支持主机被动模式,即RIP协议容许主机只接收和更新路由信息而不发送信息。

(7)RIP协议支持默认路由传播。

(8)RIP协议的网络直径不超过15跳,适合于中小型网络。16跳时认为网络不可达。

(9)RIPv1是有类路由协议,RIPv2是无类路由协议,即RIPv2的报文中含有掩码信息。

08

RIP的路由算法

RIP所使用的路由算法是Bellman-Ford算法.这种算法最先被用于一个计算机网络是在1969年,当时是做为ARPANET的初始路由算法。


同一自治系统(A.S.)中的路由器每 30秒会与相邻的路由器 交换子讯息,以动态的创建路由表。

RIP 容许最大的hop数(跳数)为15 多于15跳不可达。

目前RIP共有三个版本,RIPv1,RIPv2,RIPng

其中RIPV1和RIPV2是用在IPV4的网络环境里,RIPng是用在IPV6的网络环境里。

r i p为每一个目的地只记录一条路由的事实要求r i p积极地维护路由表的完整性。经过要求全部活跃的r i p路由器在固定时间间隔广播其路由表内容至相邻的r i p路由器来作到这一点,全部收到的更新自动代替已经存储在路由表中的信息。


1. 初始化表更新

r i p路由器每隔3 0秒触发一次表更新。更新计时器用于记录时间量。一旦时间到, r i p节点就会产生一系列包含自身所有路由表的报文。

这些报文广播到每个相邻节点。所以,每个r i p路由器大约每隔3 0秒钟应收到从每一个相邻r i p节点发来的更新。

注意在更大的基于r i p的自治系统中,这些周期性的更新会产生不能接受的流量。所以,一个节点一个节点地交错进行更新更理想一些。r i p自动完成更新,每一次更新计时器会被复位,一个小的、任意的时间值加到时钟上。

若是更新并无如所但愿的同样出现,说明互联网络中的某个地方发生了故障或错误。故障多是简单的如把包含更新内容的报文丢掉了。故障也多是严重的如路由器故障,或者是介于这两个极端之间的状况。显然,采起合适的措施会因不一样的故障而有很大区别。因为更新报文丢失而做废一系列路由是不明智的(记住, r i p更新报文使用不可靠的传输协议以最小化开销)。所以,当一个更新丢失时,不采起更正行为是合理的。为了帮助区别故障和错误的重要程度,r i p使用多个计时器来标识无效路由。

2. 标识无效路由

有两种方式使路由变为无效:

    路由终止。

    路由器从其余路由器处学习到路由不可用。

在任何一种情形下, r i p路由器须要改变路由表以反映给定路由已不可达。

一个路由若是在一个给定时间以内没有收到更新就停止。好比,路由超时计时器一般设为1 8 0秒。当路由变为活跃或被更新时,这个时钟被初始化。

1 8 0秒是大体估计的时间,这个时间足以令一台路由器从它的相邻路由器处收到6个路由表更新报文(假设它们每隔3 0秒发送一次路由更新),若是1 8 0秒消逝以后, r i p路由器没收到关于那条路由的更新, r i p路由器就认为那个目的i p地址再也不是可达的。所以,路由器就会把那条路由表项标记为无效。经过设置它的路由度量值为1 6来实现,而且要设置路由变化标志。这个信息能够经过周期性的路由表更新来与其相邻路由器交流。

注意对于r i p节点而言,1 6等于无穷。所以,简单的设置耗费度量值为1 6能做废一条路由。

接到路由新的无效状态通知的相邻节点使用此信息来更新它们本身的路由表。这是路由变为无效的第二种方式。

 无效项在路由表中存在很短期,路由器决定是否应该删除它。即便表项保持在路由表中,报文也不能发送到那个表项的目的地址:r i p不能把报文转发至无效的目的地。

3. 删除无效路由

一旦路由器认识到路由已无效,它会初始化一个秒计时器:路由刷新计时器。所以,在最后一次超时计时器初始化后1 8 0秒,路由刷新计时器被初始化。这个计时器一般设为9 0秒。

若是路由更新在2 7 0秒以后仍未收到( 1 8 0秒超时加上9 0秒路由刷新时间),就从路由表中移去此路由(也就是刷新)。而为了路由刷新递减计数的计时器称为路由刷新计时器。这个计时器对于r i p从网络故障中恢复的能力绝对必要。

4.主动和被动站点

注意到为了使r i p互联网络正常工做,网络中的每个网关必须参与进去这一点很重要。参与能够是主动参与也能够是被动参与,但全部的网关必须参与。主动节点是那些主动地进行共享路由信息的节点。它们从相邻者处接收更新,而且转发它们的路由表项拷贝至那些相邻节点。

被动站点从相邻者处接收更新,而且使用那些更新来维护它们的路由表。然而被动节点不主动地发布它们本身路由表项的拷贝。 

被动维护路由表的能力在硬件路由器出现以前的日子里是特别有用的特性,那时路由是一个运行在u n i x处理器下的后台程序,这样会使u n i x主机上的路由开销达到最小。

第一种,接收到邻居的路由表,某个网络条目本身表中没有,那么就将该网络条目添加本身的路由表中,而且跳数+1

第二种,接收到邻居路由表表,某个网段本身也也有,且跳数比邻居发过来的该网络条目带的跳数还小,因此本身这个网络条目保持不变。

另外,若是在180秒内没接收到某条网络条目的更新,则自动从路由表中删除!