Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1754968
  • 博文数量: 413
  • 博客积分: 8399
  • 博客等级: 中将
  • 技术积分: 4325
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-09 10:44
文章分类

全部博文(413)

文章存档

2015年(1)

2014年(18)

2013年(39)

2012年(163)

2011年(192)

分类: LINUX

2012-01-07 22:23:59

使用TCP/IP进行网际互连---第十五章(1)——RIP(第二篇将OSPF)

1. 内部网关协议
我们把内部路由器交换路由信息所用的任何协议统称为内部网关协议(Interior Gateway Protocol,简称IGP)

2. 选路信息协议(RIP)
使用最广泛的一种IGP是路由信息协议(Routing  Information  Protocol,简称 RIP),它最初是用一个实现该协议的程序 routed 来命名的。

底层RIP协议是距离向量路由选择算法在本地网络上的一种直接而简单的实现,它把路由选择的参与者分为主动(active)机器和被动(passive)机器。被动机器即为静默(silent)机器。主动路由器向其他路由器通告其路由,而被动路由器接收通告并在此基础上更新其路由,但它们自己并不通告路由。只有路由器能以主动模式运行 RIP,而主机必须使用被动模式。

以主动模式运行 RIP 的路由器每隔 30s 广播一个路由更新报文,该报文包含了取自路由器当前路由数据库的信息。每个更新报文由一组序偶(pair)构成,每个序偶由一个IP网络地址和到该网络的整数距离构成。RIP使用跳计数度量(hop count memc)来衡量距离。

运行RIP的主动机器和被动机器都要监听所有的广播报文,并根据前面所说的距离向量算法来更新其路由表。

RIP 是一种较为简单的内部网关协议(Interior Gateway ProtocolIGP),主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。对于更为复杂的环境和大型网络,一般不使用RIP

由于RIP的实现较为简单,在配置和维护管理方面也远比OSPFIS-IS容易,因此在实际组网中仍有广泛地应用。

3. RIP的路由数据库

每个运行RIP的路由器管理一个路由数据库,该路由数据库包含了到所有可达目的地的路由项,这些路由项包含下列信息:

目的地址:主机或网络的地址。

下一跳地址:为到达目的地,需要经过的相邻路由器的接口IP地址。

出接口:转发报文通过的出接口。

度量值:本路由器到达目的地的开销。

路由时间:从路由项最后一次被更新到现在所经过的时间,路由项每次被更新时,路由时间重置为0

路由标记Route Tag):用于标识外部路由,在路由策略中可根据路由标记对路由信息进行灵活的控制。


4.的启动和运行过程

RIP启动和运行的整个过程可描述如下:

1)路由器启动RIP后,便会向相邻的路由器发送请求报文Request message),相邻的RIP路由器收到请求报文后,响应该请求,回送包含本地路由表信息的响应报文Response message)。

2)路由器收到响应报文后,更新本地路由表,同时向相邻路由器发送触发更新报文,广播路由更新信息。相邻路由器收到触发更新报文后,又向其各自的相邻路由器发送触发更新报文。在一连串的触发更新广播后,各路由器都能得到并保持最新的路由信息

3)RIP采用老化机制对超时的路由进行老化处理,以保证路由的实时性和有效性。


5. RIP定时器

RIP受四个定时器的控制,分别是UpdateTimeoutSuppressGarbage-Collect

 Update定时器,定义了发送路由更新的时间间隔。

Timeout定时器,定义了路由老化时间。如果在老化时间内没有收到关于某条路由的更新报文,则该条路由在路由表中的度量值将会被设置为16

Suppress定时器,定义了RIP路由处于抑制状态的时长。当一条路由的度量值变为16时,该路由将进入抑制状态。在被抑制状态,只有来自同一邻居且度量值小于16的路由更新才会被路由器接收,取代不可达路由。

 Garbage-Collect定时器,定义了一条路由从度量值变为16开始,直到它从路由表里被删除所经过的时间。在Garbage-Collect时间内,RIP16作为度量值向外发送这条路由的更新,如果Garbage-Collect超时,该路由仍没有得到更新,则该路由将从路由表中被彻底删除。


6. 防止路由环路慢收敛

RIP是一种基于D-V算法的路由协议,由于它向邻居通告的是自己的路由表,存在发生路由环路的可能性。

RIP通过以下机制来避免路由环路的产生:

 计数到无穷Counting to infinity):将度量值等于16的路由定义为不可达(infinity)。在路由环路发生时,某条路由的度量值将被设置为16,该路由被认为不可达。

水平分割Split Horizon):RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。

 毒性逆转Poison Reverse):RIP从某个接口学到路由后,将该路由的度量值设置为16(不可达),并从原接口发回邻居路由器。利用这种方式,可以清除对方路由表中的无用信息

  触发更新Triggered Updates):RIP通过触发更新来避免在多个路由器之间形成路由环路的可能,而且可以加速网络的收敛速度。一旦某条路由的度量值发生了变化,就立刻向邻居路由器发布更新报文,而不是等到更新周期的到来


7.的版本

RIP有两个版本:RIP-1RIP-2

RIP-1是有类别路由协议(Classful Routing Protocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别ABC类这样的自然网段的路由,因此RIP-1不支持不连续子网(Discontiguous Subnet)。

RIP-2是一种无类别路由协议Classless Routing Protocol),与RIP-1相比,它有以下优势:

l              支持路由标记,在路由策略中可根据路由标记对路由进行灵活的控制。

l              报文中携带掩码信息,支持路由聚合和CIDRClassless Inter-Domain Routing,无类域间路由)。

l              支持指定下一跳,在广播网上可以选择到最优下一跳地址。

l              支持路由发送更新报文,减少资源消耗。

l              支持对协议报文进行验证,并提供明文验证和MD5验证两种方式,增强安全性。


8.RIP的报文格式

1)
RIP-1的报文格式

RIP报文由头部(Header)和多个路由表项(Route Entries)部分组成。在一个RIP报文中,最多可以有25个路由表项。

RIP-1的报文格式如1所示。

的报文格式

各字段的解释如下:

l              Command:标识报文的类型。值为1时表示Request报文,值为2表示Response报文。

l              VersionRIP的版本号。对于RIP-1来说其值为0x01

l              AFIAddress Family Identifier):地址族标识,其值为2时表示IP协议。

l              IP Address:该路由的目的IP地址,可以是自然网段地址、子网地址或主机地址。

l              Metric:路由的度量值。

2)RIP-2的报文格式

RIP-2的报文格式与RIP-1类似,如2所示。

的报文格式

其中,与RIP-1不同的字段有:

l              VersionRIP的版本号。对于RIP-2来说其值为0x02

l              Route Tag:路由标记。

l              IP Address:该路由的目的IP地址,可以是自然网段地址、子网地址或主机地址。

l              Subnet Mask:目的地址的掩码。

l              Next Hop:如果为0.0.0.0,则表示发布此条路由信息的路由器地址就是最优下一跳地址,否则表示提供了一个比发布此条路由信息的路由器更优的下一条地址。

RIP的详细介绍参见:

阅读(2251) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~