【重识云原生】第四章云网络4.3.3节——RIP协议

【重识云原生】第四章云网络4.3.3节——RIP协议_第1张图片

 

1.距离向量法

        也称为贝尔曼福特算法,是一种最短路径算法。

  • 每个结点周期性地发送自己的距离向量估计给邻居;
  • 当一个节点X收到来自邻居V的新的距离向量估计时将更新它自己的距离向量:

        其中,v为x的邻居,Dx(y)为x到y的最短路径开销估计,c(x,v)为边的开销。

2. 路由信息协议(Routing Information Protocol)简述

        RIP协议是一种采用距离向量算法的路由协议。到目的网络的距离以跳为单位,最大距离为15,距离16表示无穷大,即目的网络不可达。(这一规定限制了RIP协议只能适用于中小网络,网络规模太大的话路由信息就无法到达远端路由器了)。

  1. 初始时每个RIP路由器只有到直连网的路由,距离为1;
  2. 每30秒RIP路由器把它的整个路由表发给邻居(具体实现时每个邻居会错开发送,30秒的时间也会随机变化一点);
  3. 路由器用邻居发来的路由表根据距离向量算法修改自己的路由表。

2.1 RIP协议报文格式

  • RIPv1:用UDP数据报封装(端口号为520),且采用广播方式发送给邻居;

【重识云原生】第四章云网络4.3.3节——RIP协议_第2张图片

  • 命令:为1时表示request报文,要求接收方路由器发送其全部或部分路由表;为2时表示response报文,主动提供周期性路由更新或对请求消息的响应;
  • 版本:即使用的RIP协议的版本,v1,v2;
  • 字节为0表示未用;
  • 地址簇标志:指明底层使用了哪些通信协议来传输数据,RIP协议可以携带多种不同协议的路由信息,每一项都有地址标志来表明使用的地址类型,IP地址的AFI为2;
  • RIPv2:支持无类网,可以采用广播或者多播的形式将路由表发给邻居;第一个路由项可以用于身份认证。

2.2 RIP协议的相关技术

  • 水平分割技术(split horizon):从一个接口学来的路由不会从该接口发回去;(无法防止所有计数到无穷的问题:当路由器形成环路的时候)
  • 毒性反转技术(poison reverse):当一条路由变为无效后,路由器并不立即将它从路由表中删除,而是将其距离改为16后广播给邻居,使邻居拥有的该路由立即失效。(距离为16的路由称为毒化路由)
  • 抑制技术(hold down):距离被改为无穷大的路由在一段短时间内(180秒)其距离不允许被修改;
  • 触发更新(triggered update):一旦出现路由变化将立即把变化的路由发送给邻居,原有的30秒发送一次完整的路由表依然不变(减小了计数到无穷的概率) 。有了触发更新机制后仍然需要保留原有的每隔30秒就把路由表发送给邻居的机制。这是为了防止触发更新时发送的路由表信息丢失,以及防止路由信息出错(只用触发更新的话若路由信息出错了会一直保留直到下一次触发);同时用TTL清除无效路由后也要将路由表发送给邻居。

        路由器的抑制算法主要是为了防止抖动造成整个网络不稳定(抖动:短时间有路由器多次接入、断开网络)。

2.3 RIP协议的工作方式

        利用邻居的路由表建立自己的路由表,当收到邻居发来的路由表时,路由器将更新它的路由表:

  1. 首先将收到的路由的距离全加1(即一跳的距离);
  2. 再利用收到的路由表修改自己的路由表;
  3. 将收到的路由表中不存在的路由表项加入到自己的路由表;
  4. 如果收到的路由表中某一项的距离比该路由器原路由表对应项的距离更小,则更新该路由表项,并将对应路径的下一跳设置为邻居;
  5. 如果路由项存在,就要重置失效定时器;
  6. 如果收到的路由表中存在某一项的目的网络也是该路由器的路由表中某一项的目的网络,且下一跳为发送路由表的路由,那无论如何该路由器都要更新对应的表项,将距离改为收到的表项中的距离+1;

【重识云原生】第四章云网络4.3.3节——RIP协议_第3张图片

【重识云原生】第四章云网络4.3.3节——RIP协议_第4张图片

2.4 RIP协议的定时器

  • 更新定时器:控制一个路由器如何定期把路由表发给邻居,默认为30秒;

        一条路由的失效定时器到期时被标记为无效路由,路由被更新时其失效定时器会被重置,默认为180秒;

        一条路由的清除定时器到期时该路由将从路由表中删除。路由被更新时会重置(240秒);

  • 抑制定时器:在路由的距离变为无穷大时启动,在其到期之前不允许修改该路由的距离,默认为180秒;

【重识云原生】第四章云网络4.3.3节——RIP协议_第5张图片

3.RIP协议的问题

3.1 慢收敛(slow convergence)

        这是RIP相对于OSPF而言的问题,因为RIP依靠定时器进行每30秒一次的周期更新路由器的路由表,当网络的拓扑结构发生变化时它收敛于新拓扑结构的速度会变慢,有可能导致错误的数据重复发送。

【重识云原生】第四章云网络4.3.3节——RIP协议_第6张图片

        假设相邻两个路由器之间的开销为1,则最长需要时间=(m-1)*30,最少需要时间=0,平均需要时间=(最长+最少)/2。

3.2 计数到无穷(count to infinity)

        出现计数到无穷时,最终还是会收敛,只是延缓了收敛的速度。

【重识云原生】第四章云网络4.3.3节——RIP协议_第7张图片

        当R1修改其到N1的距离为16后,如果R2把自己的路由表发给R1则R1会更新自己到N1的距离为3,然后发回给R2,R2更新其到N1的距离为4,如此下去直到两者到N1的距离均为16。

        因此RIP不适用于路径剧烈变化的网络环境,也不适用于大型网络环境,但在小型网络中仍在大量使用。

4 参考链接

RIP协议_OoZzzy的博客-CSDN博客_rip协议

RIP协议详解

你可能感兴趣的:(后台开发专栏,网络,云原生,云计算,原力计划,RIP)