一、路由选择协议分类回顾
二、RIP协议
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。
所以说,RIP协议只适用于小互联网。
三、RIP协议和谁交换?多久交换一次?交换什么?
- 仅和相邻路由器交换信息。
- 路由器交换的信息是自己的路由表。
- 每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180秒没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。
路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。
四、路由表怎么更新的?距离向量算法
- 修改相邻路由器发来的RIP报文中所有表项
对地址为x的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为X,并把所有的“距离”字段+1。
- 对修改后的RIP报文中的每一个项目,进行以下步骤:
(1)R1路由表中若没有Net3,则把该项目填入R1路由表
(2)R1路由表中若有Net3,则查看下一跳路由器地址:
若下一跳是x,则用收到的项目替换源路由表中的项目;若下一跳不是x,原来距离比从x走的距离远则更新,否则不作处理。 - 若180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16。
- 返回
五、距离向量算法练习1
已知路由器R6的路由表,现收到相邻路由器R4发来的路由更新信息,试更新路由器R6的路由表:
第一步:修改相邻路由器发来的RIP报文中所有表项
对地址为R4的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为R4,并把所有的“距离”字段+1。得到下图R4发来的路由更新信息-修改版:
六、距离向量算法练习2
考虑如图所示的子网,该子网使用了距离-向量算法,下面的向量刚刚到达路由器C:来自B的向量为(5,0,8,12,6,2);来自D的向量为(16,12,6,0,9,10);来自E的向量为(7,6,3,9,0,4)。经过测量,C到B、D和E的延迟分别为6,3和5,那么C到达所有结点的最短路径是(B)。
A.(5,6,0,9,6,2)B.(11,6,0,3,5,8)
C.(5,11,0,12,8,9)D.(11,8,0,7,4,9)
所以答案为B选项,C到达所有结点的最短路径是**(11,6,0,3,5,8)**
七、RIP协议的报文格式
八、RIP协议好消息传得快,坏消息传得慢
RIP的特点:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器,“慢收敛”。
R1的坏消息(通过R1无法到达目的网络1)还没发出去,R2先把自己之前从R1那里获得的好消息(可以通过R1到达网络1)又发送给了R1,导致R1会根据R2发来的路由信息来更改自己的信息,也认为可以通过R2到达目的网络1,跳数+1。就这样,R1和R2不断地互相传递错误的信息,跳数不断+1,直到两者的跳数都达到16,R1和R2才知道目的网络1是不可达的。
所以说坏消息传得慢!