路由选择协议RIP
-
RIP距离:RIP要求自治系统AS内的每一个路由器都要维护一个它自己到自制系统内其他每个路由器的距离记录。这一组距离叫做距离向量。
RIP使用跳数为单位来度量到达其他网络的距离。
RIP将路由器到直连网络的距离定义为1,将路由器到非直连网络的距离了定义为经过的路由器的个数加1。
-
RIP允许一条路径上包含的路由器的个数最大为15,当距离等于16时候表示目的网络不可达。
-
RIP认为跳数少的路径就是最短路由。当到达同一目的网络存在多条距离相等的路由时候,可以进行等价负载均衡,将通信量均衡地分布到多条等价的路径上。
-
RIP协议存在局限性,仅仅使用跳数来进行衡量最有路径,到达目的网络的路径是RIP距离最小的,但是也有可能是带宽最小的。如下图,RIP会认为从R1到达R5的最优路径是R1R4R5,但是从结合带宽来看,该路径显然不是最优路径,经过该路径从R1到达R5有可能耗时更多。
RIP仅和相邻的路由器交换各自的路由表信息,周期性进行交换例如每隔30s,为了加快网络拓扑发生变化时RIP的收敛速度,可将周期性交换路由表信息改为触发式更新,当网络拓扑发生变化时,立即向相邻路由器报告变化后的路由信息。
-
RIP的基本工作过程
路由器开始工作时候,只知道自己到直连网络的RIP距离为1
每个路由器仅和相邻的路由器周期性交换更新路由信息
-
若干次交换和更新后,每个路由器就知道到达本本自治系统内各网络的最短距离和下一跳路由器,RIP收敛。
如上图所示,初始时刻RIP只知道自己直连网络的RIP距离为1,经过周期性地和相邻路由器交换路由表信息后最终达到RIP收敛,自治系统内的每个路由器都知道到达自治系统内的其他网络的最短距离和路径。
-
RIP距离向量算法的具体过程
给相邻路由器RIP请求报文,相邻路由器收到RIP请求报文后发送封装有自己所知路由信息的RIP更新报文,RIP有v1和v2两个版本,v1使用广播更新,v2使用广播或者组播更新
修改来自邻居路由器的路由信息
-
基于修改好的来自邻居路由器的路由信息更新自己的路由表
如上图所示,D发出RIP请求报文,C在收到RIP请求报文后发送RIP更新报文,D收到更新报文后修改路由器C的路由表,将到目的网络的RIP距离加1,下一跳改为路由器C,然后和当前路由器中的路由表进行比对,决定路由表中条目的增加、删除、更新。在上图中对于N2网络在D的路由表中的条目需要更新,原因是到达目的网络,相同的下一跳,最新消息,需要更新。对于N3网络,需要在D的路由表中新增一个条目
N3 9 C
,原因是发现了新网络,添加。对于N6网络,需要更新,原因是到达目的网络,不同的下一跳,新路由更近,需要更新。对于N8网络,需要在D的路由表内新增一个条目N8 4 C
,原因是到达目的网络,相同的RIP距离,不同的下一跳,属于等价路由,可以进行等价负载均衡,添加。对于N9网络,不更新,原因是到达目的网络,不同的下一跳,新路由劣势,不更新。 -
时间参数
路由器设置每隔30s(默认)向其相邻路由器发送路由更新报文。
若180秒没有收到某条路由条目的更新报文,则把该路由条目标记为无效,即把RIP距离设置为16,表示不可达,如果再过一段时间如120s,还没有收到该路由条目的更新报文,则将该路由条目从路由表中删除。
-
RIP的局限性
从源网络到目的网络最多可以只能经过15个路由器,当RIP距离为16时候表示网络不可达。因此RIP能够维护的网络范围很小,只适用于小范围网络路由配置。
-
坏消息传的得慢, 如下图
当网络中R1路由器连接的网络不可达时候,R1将到达该网络的RIP距离设置为16,但是此时路由器R2并不知道网络N1不可达,恰好此时路由器R2向R1发送自己的路由表更新报文,R1接收到后,误认为可以通过R2到达网络N1,于是更新自己的路由表,再经过30s后,路由器R1向R2发送自己的路由表更新报文,R2又会误认为到达目的网络,相同下一跳,最新消息,于是更新自己的路由表,于是如此循环最后两个路由表中关于N1网络的RIP距离收敛为16。
为了解决坏消息传的慢的问题,可以限制最大RIP距离,可以将周期性发送路由更新报文改为触发式更新,可以让路由器记录收到某个特定路由信息的接口,而不让同一路由信息信息再通过此接口反方向传送,即“水平分割”。
在距离向量算法中,每个路由器缺少到达目的网络的整个路径的完整信息,无法判断所选的路由是否出现环路。
RIP使用传输层UDP520端口,从RIP报文封装看,该协议属于应用层,从功能看,该协议主要作用是路由选择,属于网络层
参考资料
RIP(路由信息协议)解析及Wireshark报文分析 rip协议报文
文档信息
- 本文作者:wendaocsmaster
- 本文链接:https://wendaocsmaster.github.io/2023/02/16/Computer-Networks-network-layer-RIP/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)