文章目录
路由算法(一)
路由算法的分类
静态路由和动态路由:
静态路由选择策略:即非自适应路由选择
-
手工配置
-
路由更新慢,优先级高
-
其特点是简单和开销较小,但不能及时适应网络状态的变化。
动态路由选择策略:即自适应路由选择
-
路由更新快-定期更新,能够及时响应链路费用及网络拓扑的变化
-
其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
实现方式—集中式或者分布式
(1)集中式:
路由器知道整个网络的拓扑结构和链路状态,由于互联网规模大,其代价太大
(2)分布式:
路由器只掌握物理相邻的路由器及其链路费用。
两大路由选择协议
内部网关协议IGP
-在一个自治系统内(AS)使用统一的路由选择算法.AS内使用的路由协议称为IGP(内部网关协议),如RIP、OSPF.
(1)RIP协议
RIP特点
-
分布式的、基于距离向量的路由选择协议。 --此处的距离定义为一条路由的路由器数目
-
仅仅和相邻路由器交换信息,
-
交换的信息是自己的路由表(全部信息)
-
按照固定时间间隔30s交换路由信息,
-
使用RIP协议的路由不能超过15个,16个路由时,则路径不可达
-
RIP协议中的距离是以路由器的个数定义的,因此可能会忽略高速低延迟但路由器较多的链路
-
RIP 协议的收敛过程较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程。
链路失效、恢复
- 如果路由器A在180s内为未收到相邻路由器B发来的交换信息,那么经过B路由器的链路则不可用。
- 重新计算路由
- 向相邻路由器发送新的通告,重新建立路由表
路由表的处理
- RIP路由表通过一个route-d的应用层进程实现的
- 通告报文周期性的通过UDP传播
RIP报文
使用UDP传播
以RIP2报文为例
RIP报文中:由首部和路由信息两部分组成。
地址族标识符:用来标志所使用的的地址协议。
路由标记:填入自治系统的号码,虽然是内部网关协议,但也有可能收到自治系统外的路由选择信息。
网络地址、下一跳、距离:表明到达目的网络的下一跳地址、距离等信息。
距离向量算法:
–基于Bellman-Ford的距离向量算法-用于在一个图中,找出最短路径,此时的距离不再是这里定义的结点(路由器)的个数
路由器收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。
否则
若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。
否则
若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)。
(4) 返回
实例:
RIP协议优缺点
优点:简单、代价下,收敛过程快
缺点:规模小(路由限制在16个路由器以下),可能会造成无穷计数问题。
(2)OSPF协议
OSPF特点:
- 开放的
- 采用分布式的链路状态协议
- 向本自治系统内所有路由器发送信息,使用洪泛法
- 发送的信息是与本路由器相邻的所有路由器的链路状态(只是部分信息),链路状态包括本路由器与哪些路由器相连,以及这些路由器之间的度量。–相当于图中某一个结点的所有邻接点的编号和其边的权重。
- 只有在链路状态改变时,才徐昂自治系统内所有路由器发送信息。
链路状态数据库
- 由于各路由器之间频繁的交换链路状态信息,因此,所有路由器最终都能建立一个链路状态数据库–即全网的拓扑结构图。
- OSPF协议中的链路状态数据库可以较快更新,使每个路由器都能及时更新路由表,OSPF更新过程收敛较快。
OSPF的区域
- 将一个很大的自治系统再划分为若干个更小的范围,叫做区域
- 每个区域都有一个32位区域标志符,使用点分十进制
- 这样的好处是在使用洪泛法交换链路状态信息时,只需要在每一个区域内交换即可,减少了网络的通信量
- 上层的主干区域(0.0.0.0)用来连接下层的区域
OSPF报文
- 直接使用IP数据报(数据量少),不使用UDP
- 路由器标志符、区域标识符:表明此路由器的信息。
OSPF的分组类型
- 问候分组
- 数据库描述分组
- 链路状态请求分组
- 链路状态更新分组
- 链路状态确认
实例:路由器R向整个网络发送其信息。
最短路径算法
–使用了Dijkstra提出的最短路径算法,见链接-图的最短路径算法
每台路由器从链路状态数据库里得到带权有向图,分别利用最短路径算法,得到自己到其他目的网络(路由器)的最短路径
OSPF优缺点
优点:互连网规模较大时,OSPF比RIP较好,响应网络变化的时间短,不存在RIP协议中无穷计数的情况
缺点:代价大,具体实现起来复杂