RIP
动态路由协议的分类
一、
- 距离矢量协议(路径矢量)[RIP,BGP]
- 直接将自己的路由表更新给其他路由器
- 路由器之间会交换各自的路由表
- 链路状态协议[OSPF,IS-IS]
- 传递的不是直接的路由条目,而是描述拓扑的信息(链路状态信息)
- 通过这些链路状态信息的泛洪和收集每台路由器可进行相应的拓扑数据库的构建
- 通过这些数据库,产生一个以自己为根的无环的最短路径的树
二、
- IGP(RIP,OSPF,IS-IS)
- 运行在同一个AS内
- EGP(BGP)
- 运行在不同的AS之间
距离矢量协议
使用距离矢量路由协议的路由器并不了解网络的拓扑。该路由器只知道:
- 自身与目的的网络之间的距离
- 应该往哪个方向或使用哪个接口转发数据包
内部网关协议RIP:基于距离向量,最大跳数15(16表示不可达),适用于小型网络,使用UDP(520端口)进行传送,一个RIP报文最多可包括25个路由,因此RIP报文的最大长度是4+20*25=504字节,如超过必须再使用一个RIP报文来传送。
特点
- 仅和相邻路由器交换信息
- 交换的信息是当前路由器所知道的全部信息,即自己现在的路由表
- 按固定时间间隔交换路由信息(30s),当链路发生变化时也发送路由信息
- 好消息传播快,坏消息传播慢
距离向量算法
- 对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把下一跳字段中的地址都改为X,并把所有的距离“距离”字段的值加1.每一个项目都有三个关键数据,即:到目的网路N,距离是d,下一跳路由器是X
- 对修改后的RIP报文中内一个项目,进行以下步骤:
- 若原来的路由表中没有目的地网络N,则把该项目添加到路由表中,否则(即在路由表中有目的网络N,这时就再查看下一跳路由器地址),若下一跳路由器的地址是X,则把收到的项目替换原路由表中的项目,否则(即这个项目是:到目的网络N,但下一跳路由器不是X),若收到的项目中的距离d小于路由表中的距离,则进行更新,否则什么也不做。
- 若3分钟还没有收到相邻路由器的跟新路由表,则把此相邻路由器记为不可达的路由器,即把距离置为16
- 返回
注:
- RIP不能在两个网络之间同时使用多条路由。RIP选择一条具有最少路由器的路由,哪怕还存在另一条高速但路由器较多的路由。
- 路由器在刚刚开始工作的时候,它的路由表是空的,然后路由表就得出了直接相连的几个网络的距离。
- RIP2支持VLSM与CIDR,RIP1不支持,此外RIP2还提供简单的鉴别过程支持多播。
- RIP1与RIP2首部相同,但后面的路由部分不一样。
- RIP的最大优点:实现简单,开销较小
RIP
RIP以跳数(Hops)作为度量值,虽然简单,但是事实上不够科学的。例如去目标网络时有两条链路一条为中间只有两个路由器(Hops=2)且带宽为10M的链路,另一条链路中间有三个路由器(Hops=3)但其带宽为1G,虽然第一条链路带宽低,但是还是会被RIP优选。
华为路由表中的cost字段标示Hops数
距离矢量路由选择协议的防环机制
- 定义最大度量以防止计数至无穷大
- 定义最大跳数(16跳为不可达)
- 水平分割
- 路由器从一个接口收到的路由更新,不会再从同一个接口发出去
- 路由中毒
- 当路由器发现一条路由不可达时(跳数为16),会立刻向其他路由器发送路由更新,告诉网络不可达
- 毒性逆转
- 路由器从一个接口收到的路由更新,会以16跳从该接口更新出去
- 抑制计时器
- 触发更新
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2924854739@qq.com
文章标题:RIP
本文作者:DROBP
发布时间:2019-09-10, 18:23:00
最后更新:2019-11-15, 15:58:09
原始链接:https://DROBP.github.io/2019/09/10/RIP/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。