路由选择算法的分类
- 决策地点:分布式、集中式、源节点、节点子集
- 决策时间:分组(数据报)、会话(虚电路)
- 性能准则:链路数、设施代价、时延、吞吐量
- 网络信息源(与路由选择有关的信息):无、本地、相邻节点、路径上的节点、所有节点
- 路选策略:静态(简单类算法)、自适应
几种路选算法
-
随机路由选择
-
洪泛式路由选择
-
固定式路由选择(静态路由)
- 固定式多路由算法(迂回式路由选择)
-
自适应路由选择
1)孤立的自适应路由算法- 最短排队等待法:热土豆法
- 最短排队加偏法:本节点排队状态+网络拓扑状态(如链路数)
2)分布式自适应路由选择(用的最多)
- 距离矢量算法(D-V):基于Bellman-Ford算法。相邻路由器之间交换全部路径信息,各节点根据相邻路由器传来的路径信息更新路由表
- 缺点:交换的路径信息大、路径信息不一致、不适合大型网络、收敛速度慢(坏消息传得慢)
- 水平分裂:防止路由器向邻居返回一个从该邻居获得的最佳路径
- 抑制算法:当发现与相邻节点不通时,不重新选路径,而是把它设为无穷大
- 缺点:交换的路径信息大、路径信息不一致、不适合大型网络、收敛速度慢(坏消息传得慢)
- 链路状态算法(L-S):基于Dijkstra算法。发现邻接节点,得到到邻接节点的延迟或开销,将其组装成链路状态分组(包括域哪些路由器相邻、以及该链路的度量),并发给所有其他路由器,然后计算到每个其他路由器的最短路径(Dijkstra算法)
- 优点:路由信息的一致性好,坏消息也传得快;状态分组的长度较短,传输所耗的带宽不大,可适用于大型网络
- 缺点:每个路由器要有较大的存储空间(用以存储所收到的每个节点的链路状态分组)、计算工作量大(每次都必须计算最短路径)
最短路径法(站点数/经过的链路条数/地理距离/根据信道带宽时延等参数计算过的链路)
- Ford-Fulkerson算法
- Dijkstra算法
- floyd算法
路由选择协议
- 分层次:由于Internet规模非常大,且许多单位不愿意让外界了解自己单位网络的布局细节和本部门采用的路由选择协议,但同时还想连接到Internet上
- 两个大层次:AS间和AS内
- 域内路由选择,内部网关协议IGP:一个AS内部使用的路由选择协议
- RIP(Routing Information Protocol):基于距离向量算法。其中距离即跳数,只适用于小型网。和相邻路由器交换本路由器所知道的全部信息(即路由表)、按固定时间间隔交换路由信息
- OSPF(Open Shortest Path First):基于链路状态算法。向本自治系统中所有路由器发送链路状态。只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此消息
- OSPF还进一步分层:将一个AS分成若干个区域,一个区域内的路由器之间交换所有信息,而对同一AS的其他区域隐藏自己的详细拓扑结构
- 主干区域:通过主干路由器连通其他在下层的区域,通过AS边界路由器与其他AS交换信息
- 下层的区域:通过区域边界路由器连到主干区域
- OSPF还进一步分层:将一个AS分成若干个区域,一个区域内的路由器之间交换所有信息,而对同一AS的其他区域隐藏自己的详细拓扑结构
- 域间路由选择,外部网关协议EGP:数据报到AS边界时,将其传到不同AS时使用的路由选择协议
- BGP:在AS之间交换”可达性“信息(即路径向量,即要到达某个网络所要经过的一系列AS),只能力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。基于路径向量算法(交换路由信息的节点数量级是AS数的量级)
- BGP发言人:往往是BGP边界路由器。两个AS通过各自的BGP发言人相连。每个AS的BGP发言人很少,所以AS之间的路由选择不会很复杂
- BGP:在AS之间交换”可达性“信息(即路径向量,即要到达某个网络所要经过的一系列AS),只能力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。基于路径向量算法(交换路由信息的节点数量级是AS数的量级)
- 域内路由选择,内部网关协议IGP:一个AS内部使用的路由选择协议