这俩协议都涉及网络拓扑,看起来相似,但实质上不一样,所以使用的算法不一样。
首先,目的不同,STP协议是为了消除环路,而OSPF是为了找最佳路径。
注意,OSPF能检测出环路,但这不代表它会消除环路,环路存在就存在,它不会管这一点,因为环路存在不影响路由器之间的网络关系。相对的,STP不消除环路会影响网络。
本质上的原因是交换机和路由器二者功能不同导致的。
STP必须消除环路,因为不消除会有广播风暴。但OSPF用于路由器,路由器不会把广播再往其他路由器转发,所以不会出现广播风暴,也就不用消除环路。
RIP中为什么要对环路作处理,也不是因为广播风暴,是因为环路存在会带来错误的路由消息,使路由信息更新比较滞后。即使这样,RIP也没有消除环路,只是针对环路带来的问题从消息传播机制上予以改进。