内部网关协议可以划分为两类:距离矢量路由协议和链路状态路由协议。
距离矢量路由协议:距离矢量是指以距离和方向构成的矢量来通告路由信息。距离按跳数等度量来定义,方向则是下一跳的路由器或送出接口。距离矢量协议通常使用贝尔曼-福特 (Bellman-Ford) 算法来确定最佳路径。尽管贝尔曼-福特算法最终可以累积足够的信息来维护可到达网络的数据库,但路由器无法通过该算法了解网际网络的确切拓扑结构。路由器仅了解从邻近路由器接收到的路由信息。
距离矢量协议适用于以下情形:
~ 网络结构简单、扁平,不需要特殊的分层设计。
~管理员没有足够的知识来配置链路状态协议和排查故障。
~特定类型的网络拓扑结构,如集中星形(Hub-and-Spoke)网络。
~无需关注网络最差情况下的收敛时间。
链路状态路由协议:配置了链路状态路由协议的路由器可以获取所有其它路由器的信息来创建网络的“完整视图”(即拓扑结构)。并在拓扑结构中选择到达所有目的网络的最佳路径(链路状态路由协议是触发更新,就是说有变化时就更新)。
链路状态协议适用于以下情形:
~网络进行了分层设计,大型网络通常如此。
~管理员对于网络中采用的链路状态路由协议非常熟悉。
~ 网络对收敛速度的要求极高。