上一篇:《通俗易懂:什么是路由?》说到了路由根据算法可分为距离矢量路由协议和链路状态路由协议,这一篇就通俗易懂的把两者区别细说一下。
距离矢量路由协议:
距离矢量路由协议我们采用一个成语来形容它:“道听途说”。
如上图,3台路由器运行距离矢量路由协议,R3背后有个3.3.3.3/32的网络,R3会把3.3.3.3/32的路由信息传给R2,R2会把3.3.3.3/32路由信息传给R1。这个时候有个要去往3.3.3.3/32的数据包来了:
数据包问R1:“3.3.3.3是谁?怎么走?”
R1说:“3.3.3.3是谁我不知道,但是你要去找他,你就走R2,因为是他告诉我3.3.3.3路由的。”
R1对于3.3.3.3/32路由是在哪个路由器上,它连接在谁上面,他后面有什么样的网络这些问题是不清楚的,它只知道去往3.3.3.3下一跳是要走R2,这条路由也是R2通告给它的。你听路人说前面路口左拐是汤臣一品,这时刚好有个人问你:“汤臣一品怎么走?”你直接跟他说:前面路口左拐。因为你也是道听途说的。
链路状态路由协议:
链路状态路由协议我们可以称它为“地图协议”。
如上图,3台路由器运行链路状态路由协议,它不会像距离矢量路由协议一样,单纯的把路由直接发给对端,他们之间会发送链路状态信息。对于R1来说,它会把f0/0接口的地址、掩码、cost值等等链路状态详细信息打包一份发给R2,R2也会做同样的操作把链路状态详细信息打包发一份给R1。
同样,R2也会将详细链路状态信息发给R3,R3也会将链路状态信息发给R2。从而使得整个网络链路状态数据库(LSDB)同步。链路状态数据库中会有整个网络的链路状态详细信息。
从而,每个路由器有了一模一样的链路状态信息,对于R1来说,有了整个链路状态信息之后,对整个网络拓扑就有了一个整体的概念,能根据链路状态信息知道它连接着R2,R2后面连接着一个R3,对整个网络很熟悉。
这就好比,我要从家去北京自驾游,百度地图导航很清楚的知道,从家去往北京有多条线路,哪条路的红绿灯少,路程多少,哪条线路更快,非常清楚。因为它对整个中国地图和路况详细信息都非常的清楚,从而实现选出最优路程方案去往北京。
链路状态信息也是同样的原理,对于R1来讲,去往R3,可能会有很多链路可以走,但是链路状态路由协议会通过算法,比如SPF算法来实现选出最优路径,使得数据包从R1更高效快速的抵达R3。
优缺点:
距离矢量路由协议
优点:
- 实施和维护相对较简单,容易配置和使用
- 在小型网络中,收敛速度比链路状态路由协议快一些,适用于小型网络。
- 占用较少的内存、CPU等设备资源,对设备性能要求不高。
缺点:
- 由于每个路由器只知道到达目标的下一跳路由器,而不知道整个路径,所以它可能会产生路由环路
- 在大型企业网络和广域网中,需要花费更多的时间来更新所有路由器的距离矢量,收敛速度较慢。
链路状态路由协议
优点:
- 因为每个路由器都有完整的链路状态信息,网络拓扑发生变更时,能够快速收敛到最佳路径。
- 能选择出多种路径,如果路径的开销和延时都一样,则会形成负载平衡的路由。
- 有更好的扩展性和灵活性,在大型企业网络和广域网等复杂网络广泛使用。
缺点:
- 配置较复杂,实施和维护相对较难
- 对网络设备性能要求较高,路由器存储链路状态信息库,会占用较多的内存、CPU等设备资源;
- 对网络拓扑变更很敏感,网络拓扑发生变更时,会重新更新路由信息和计算收敛最佳路径。