路由控制有各种各样的算法,其中最具代表性的有两种,是距离向量算法(Distance-Vector)和链路状态算法(Link-State)
一、距离向量算法
距离向量算法是根据距离(代价)和方向决定目标网络或者目标主机位置的一种方法。
路由器之间可以互换目标网络的方向以及其距离的相关信息,并以这些信息为基础制作路由控制表,这种方法在处理上比较简单,不过由于只有距离和方向的信息,随意当网络构造变得很复杂的时候,在获得稳定的路由信息之前需要消耗一定的时间(也叫路由收敛),也很容易产生环路等问题。
二、链路状态算法
1.定义
链路状态算法是在路由器了解网络整体连接状态的基础上生成路由控制表的一种方法,每个路由器必须保持同样的信息才能进行正确的路由选择。
2.优点
链路状态算法中所有的路由器持有相同的信息,对于任何一台路由器,网络拓扑完全一样,因此,只要某一台路由器与其他路由器保持同样的路由控制信息,就意味着该路由信息是正确的,只要每个路由器尽快的与其他路由器同步路由信息,就可以使路由信息达到一个稳定的状态。因此,即使网络结构变得复杂,每个路由器也能保持正确的路由信息,进行稳定的路由选择。
3.缺点
链路状态算法付出的代价就是如何从网络代理获取路由信息表,这一过程非常复杂,特别是一个规模巨大而又复杂的网络结构中,管理和处理代理信息需要CPU和内存的高性能。
三、主要的路由协议
名称 | 下层协议 | 方式 | 适用范围 | 循环检测 |
RIP | UDP | 距离向量 | 域内 | 不可以 |
RIP2 | UDP | 距离向量 | 域内 | 不可以 |
OSPF | IP | 链路状态 | 域内 | 可以 |
EGP | IP | 距离向量 | 对外连接 | 不可以 |
BGP | TCP | 路径向量 | 对外连接 | 可以 |
由于EGP不支持CIDR(无类别域间路由),现在已经不再用作互联网的对外连接协议了