RIP协议的数据包
Request--请求包
Response---应答包
流程
1.设备首次启动RIP协议后,会向所有的直连接口发送request包,用来请求邻居发送路由信
息
2.其他设备收到请求包后,会利用response包传递路由信息
3.设备收到response包后,设备根据贝尔曼福特算法判断是否加表
RIP 在工作完成后,会进行周期更新,每 30S 发送一个response包
1.为了确保数据包传递可靠性(弥补自身没有确认机制)
2.为了弥补自身没有保活机制(确保设备是否正常工作,因为没30秒发送一个Response包,当设备一个周期未收到时,判断设备故障,删掉从此设备学来的所有路由信息)
RIP存在计时器(异步更新)
1.周期更新计时器 30s
2.失效计时器 180
当设备180S都没有收到邻居设备发送的reSponse包,则认为对端设备故障,直接从自身路由表中删除所有通过该设备学习的路由
3.垃圾回收计时器:120S
当一条路由项失效后,RIP不会立刻将其从路由表中清除。首先会把该路由的度量值(Metric)设为16(在RIP中,16表示不可达),并启动垃圾回收计时器。通常这个计时器的时长要比路由更新计时器(一般路由更新计时器是30秒)长。
在垃圾回收计时器计时期间,RIP路由器会向邻居通告此路由不可达,直到计时器超时。一旦垃圾回收计时器超时,该路由项才会最终从路由表中被删除,这样可以确保网络中的其他路由器能及时收到此路由不可达的信息,使整个网络的路由信息能准确地收敛,避免出现路由环路等问题。
带毒传输
RIP的带毒传输是一种避免路由环路的机制。
正常情况下,RIP路由器会将从邻居学到的路由信息传递给其他邻居。但在带毒传输机制中,当路由器发现某条路由不可达(例如该路由的跳数达到最大值16)后,它不会简单地停止通告这条路由。
相反,它会以“毒化”的方式通告这条路由。也就是将这条不可达路由的cost值设置为16,并通告给邻居路由器。邻居路由器收到这种“毒化”的路由信息后,就会知道这条路由已经不可用,从而避免将流量转发到这条无效的路径上,减少了产生路由环路的风险。
例如,在一个简单的网络拓扑中有路由器A、B、C。如果路由器A到某个网段的路由不可达,A会向B通告该网段的cost为16,B收到这个“毒化”消息后,就不会把去往该网段的流量再转发给A,从而防止了在A - B - A这样的路径上产生路由环路。