RIP协议和距离向量算法

RIP(Routing Information Protocol,路由信息协议) 是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。

简介

RIP进程使用UDP的520端口来发送和接收RIP分组。RIP仅和相邻的路由器交换信息,交换信息指的是自己知道的全部信息即路由表。RIP分组每隔30s以广播的形式发送一次(当网络拓扑结构发生变化时,路由器会及时向相邻路由器通告拓扑结构变化后的情况),为了防止出现“广播风暴”,其后续的分组将做随机延时后发送。在RIP中,如果一个路由在180s内未被刷新,则相应的距离就被设定成无穷大(不可达),并从路由表中删除该表项。RIP分组分为两种:请求分组和响应分组。

报文格式
RIP协议和距离向量算法_第1张图片
一个RIP最多可以包括25个路由,因此RIP报文最大长度是4+20*25=504字节,当使用鉴别功能的时候,将原来写入第一个路由信息的位置用作鉴别



距离向量算法

1.距离(跳数)问题

(1)从一个路由器到直接连接的路由器距离定义为1
(2)从一个路由器到另一个非直接相连的路由器距离定义为所经过路由器的个数加一
(3)距离也就是跳数,每经过一个路由器跳数就加一
(4)RIP协议认为好的路由就是经过的路由器最少,距离最短(跳数最少)。而且不能在两个网络之间同时使用多条路由,也就是说哪怕还有一条高速(低时延)但路由器较多的路由,RIP也会选择路由器最少的路由。
(5)因为RIP规定经过的路由器不能超过15个,距离超过16时认为不可达,所以RIP只适用于小型互联网

2.路由表的建立

路由器一开始工作的时候只知道相邻路由器的距离(定义为1),路由表为空,之后和相邻的路由器交换并更新路由信息,经过若干次更新后本自制网络中的所有路由器便都会知道任何一个网络的最短距离和下一跳路由器的地址。虽然路由器都拥有了整个自治系统的全局路由信息,但由于路由器位置不同所以他们的路由表自然也不同

3.路由表更新
RIP协议和距离向量算法_第2张图片

假设路由器R6有路由表如图2,现收到R4发来的路由更新信息如图1
(1)R6先修改收到的路由表的信息:把下一跳路由器都改成R4,并把所有距离字段都加一

如下图RIP协议和距离向量算法_第3张图片

(2)对修改后路由表的每一项数据重复以下步骤:
若目的网络不在自己路由表中则把该项目加到自己(R6)路由表中,
     否则(目的网络在自己(R6)的路由表中)
若下一跳字段给出的路由器地址是同样的,则用该项目替换自己(R6)路由表中的信息
    否则(目的网络在自己(R6)的路由表中但是路由地址不一样)
若收到项目中距离小于自己路由表中距离,则用该项目替换自己(R6)路由表中的信息
    否则(目的网络在自己(R6)的路由表中但是路由地址不一样且距离大)
什么也不做。

如下图在这里插入图片描述
所以最终R6更新后的路由表为
RIP协议和距离向量算法_第4张图片
好事传的慢,坏事传的快

正常情况下:
RIP协议和距离向量算法_第5张图片
当网1出现故障时:

RIP协议和距离向量算法_第6张图片
RIP协议和距离向量算法_第7张图片
RIP协议和距离向量算法_第8张图片

RIP协议和距离向量算法_第9张图片
所以当网络发生故障时,要经过较长时间(几分钟)才能将此信息传送到所有路由器,也就是慢收敛

你可能感兴趣的:(计算机网络基础)