动态路由选择协议相比静态路由选择协议就要复杂的多了。我们大体可以按三种方式来对其进行分类。第一种是按动态路由选择协议的工作位置可以分为IGP和EGP两种;第二种是按动态路由选择协议的算法可以分为距离矢量型、链路状态型和路径矢量型三种;最后是一种是有类和无类的区分。我们常见的动态路由选择协议有RIP、OSPF、EIGRP、BGP这四种,现在用的比较多的就是OSPF了,首先OSPF是一种IGP动态路由协议,其次因为它是公有的动态路由协议。RIP是比较的早的动态路由选择协议,适用小型网络,后面会说到。EIGRP是思科私有的动态路由选择协议,是目前IGP路由中收敛最快的。下面是是一张路由分类的表我们这里只讨论常用的路由协议。

动态路由-成长便签

  动态路由的选路都要依靠自己的度量值,常见的度量值有:跳数、带宽、负载、时延、可靠性、代价。这些度量值被应用到不同动态协议的选路算法中。

 

距离矢量型路由选择协议

距离矢量型路由选择协议是一种听信传闻的路由选择协议,邻居告诉它的路由信息它都会掌握,而且只掌握邻居的路由信息,网络中的其他路由信息它根本不关注。常见的距离矢量型算法是Bellman-Ford或者叫着Ford-Fulkerson。在距离矢量中,路由信息都是直接从别的路由收集来的,这样的话如果我从邻居收到了某条路由,接着我又从该接口发送出去,那么当一个去往该网络的数据到达这两个路由之间的时候就出现了路由环路,直到TTL耗尽。距离矢量型路由选择协议解决这个问题的办法就是水平分割。

常见的水平分割有标准的水平分割和毒性逆转水平分割。标准的水平分割的规则是,从一个接口收到一条路由更新就不会从这个接口再转发出发去,这样就解决了路由环路的问题。毒性逆转水平分割的规则是,如果从某个接口收到一条路由更新,路由器把该路由条目改成不可达后从该接口发送出去,RIPv2用的就是毒性逆转水平分割。

 

链路状态型路由选择协议

链路状态型路由选择协议和距离矢量型路由选择最大的区别就是,链路状态型路由选择协议可以掌握全网的拓扑信息,然后自己根据这些拓扑信息计算出一棵路径树,然后根据路径树选择去往某个地方的最短路径。在链路状态型路由选择协议中,多了一个比较重要的邻居角色,那就是邻接关系,只有建立邻接关系的两个路由器才会互相学习链路信息。在OSPF中这中链路信息被保存到LSA(链路状态通告)中,后面将对OSPF进行总结。