路由选择算法总结

简介: 路由选择算法总结


一、路由算法

路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。从能否随网络的通信量或拓扑自适应地进行调整变化来划分,路由算法可以分为如下两大类。

1.静态路由与动态路由

①静态路由算法(非自适应路由算法)

  • 由网络管理员手工配置的路由信息。

静态路由特点

  1. 当网络的拓扑结构或链路的状态发生变化时,需手工修改路由表中的静态路由信息。
  2. 它不能及时适应网络状态的变化,对于简单的小型网络,可以采用静态路由。

②动态路由算法(自适应路由算法)

  • 相互连接的路由器之间彼此交换信息,按照一定的算法优化出路由表。

动态路由特点

  1. 这些路由信息会在一定时间间隙里不断更新,以随时获得最优的寻路效果。
  2. 常用的动态路由算法还可以分为两类:距离-向量路由算法链路状态路由选择算法

2.链路状态(LS)算法

它属于全局式路由选择算法,即要求每个参与该算法的结点都具有完全的网络拓扑信息,最终使用Dijstra算法得到源点到各个结点的最短路径。

算法的运行过程

  1. 主动测试所有邻接结点的状态。
  2. 定期地将链路状态传播给所有其他结点(或称路由结点)。

算法伪代码

Initialization:
  N'={u}
  for all nodes v
    if v is a neighbor of u
      then D(V)= c(u, v)
    else D(v)=∞
Loop
  find w not in N'such that D(w) is a minimum
  add w to N'
  update D(v) for each neighbor v of w and not in N' ;
    D(V)=min (D(v) , D(W)+c(w, v) )
/* new cost to v is either old cost to v or knownleast path cost to w plus cost from w to v*/
until N'= N

基本特征

  1. 向本自治系统中所有路由器发送信息使用的方法是洪泛
  2. 发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信
    息。
  3. 只有当链路状态发生变化时,路由器才向所有路由器发送此信息。

3.距离向量(DV)算法

它属于分散式路由选择算法,每个路由表都有三个数据,<目的网络N,距离d,下一跳路由器地址X>
算法的运行过程

1.对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有“距离”字段的值加1。

2.对修改后的RIP报文中的每个项目。首先,当原来的路由表中没有目的网络N时,把该项目添加到路由表中。

3.当原来的路由表中有目的网络N,且下一跳路由器的地址是X时,用收到的项目替换原路由表中的项目。

4.当原来的路由表中有目的网络N,且下一跳路由器的地址不是X时,如果收到的项目中的距离d小于路由表中的距离,那么就用收到的项目替换原路由表中的项目;否则什么也不做。

5.运行完上面三条之后,如果180秒(RIP默认超时时间)还没有收到相邻路由器的更新路由表,那么把此相邻路由器记为不可达路由器,即把距离设置为16(距离为16表示不可达)。

6.返回。

算法伪代码

Initialization:
  for all destinations y in N:
    Dx(y)= c(x, y)/* if y is not a neighbor then c(x, y)=∞*/
  for each neighbor w
    Dw(y)= ? for all destinations y in N
  for each neighbor w
    send distance vector  Dx = [Dx(y) : y in N] to w
Loop
  wait (until I see a link cost change to some neighbor w or until I receive a distance vector from some neighbor w)
  for each y in N:
    Dx(y) =minv{c (x, V)+ Dv(y)}
if Dx(y) changed for any destination y
  send distance vector Dx = [Dx(y) : y in N] to all neighbors
forever

距离-向量算法的实质是通过迭代计算每个路由器的代价,得到目标路由的最小代价


二、层次路由与自治系统

网络规模扩大时,路由器的路由表成比例地增大。这会消耗路由器缓冲区空间,还需要用更多CPU时间,用更多的带宽来交换路由状态信息。因此路由选择必须按照层次的方式进行。

层次路由方法

  • 因特网将整个互联网划分为较小的自治系统(一个自治系统中包含很多局域网),每个自治系统内部有自己的路由选择协议
  • 如果两个自治系统需要通信,则需要自治系统之间的协议来屏蔽掉这些差异,在下一个部分会介绍响应的路由协议。

自治系统(Autonomous System,AS):

  • 单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组在AS之间的路由

    一个自治系统内的所有网络都由一个行政单位管辖,一个自治系统的所有路由器在本自治系统内都必须是连通的

三、路由协议

1.自治系统内部的路由选择

路由信息协议(RIP)

路由信息协议(Routing Information Protocol,RIP)是内部网关协议(IGP)中最先得到广泛应用的协议。RIP是一种分布式基于距离向量的路由选择协议,其最大优点就是简单

该协议的规定及工作原理

1.网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录

2.距离也称跳数(Hop Count),规定从一个路由器到直接连接网络的距离(跳数)为1。而
每经过一个路由器,距离(跳数)加1。
RIP认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径

3.RIP 允许一条路径最多只能包含15个路由器(即最多允许15跳)。因此距离等于16时,它表示网络不可达可见
4.RIP只适用于小型互联网。
距离向量路由可能会出现环路的情况,规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性。

5.RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表(动态维护)。
6.在RIP中不支持子网掩码的RIP广播,所以RIP中每个网络的子网掩码必须相同。

RIP协议缺点

1.RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)。

2.路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大
网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),俗称3.“坏消息传得慢”,使更新过程的收敛时间长

RIP协议特点

  • 仅和相邻路由器交换信息。
    路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表
  • 固定的时间间隔交换路由信息,如每隔30秒。

开放最短路径优先(OSPF)协议

开放最短路径优先(OSPF)协议是使用分布式链路状态路由算法的典型代表,也是内部网关协议(IGP)的一种。
OSPF与RIP相比有以下4点主要区别:

1.OSPF向本自治系统中的所有路由器发送信息,这里使用的方法是洪泛法而RIP仅向自己相邻的几个路由器发送信息。
2.发送的信息是与本路由器相邻的所有路由器的链路状态,这些信息说明本路由器和哪些路由器相邻及该链路的“度量”(或代价)而在RIP中,发送的信息是本路由器所知道的全部信息,即整个路由表。
3.只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新过程收敛得快。不会出现 RIP“坏消息传得慢”的问题。而在 RIP 中,不管网络拓扑是否发生变化,路由器之间都会定期交换路由表的信息。
4.OSPF是网络层协议,它不使用UDP或TCP,而直接用IP数据报传送(其IP数据报首部的协议字段为89)。而RIP是应用层协议,它在传输层使用UDP。

OSPF协议的工作原理

1.各路由器之间频繁的交换链路状态信息,从而构建一个大的数据库,存储全网的拓扑结构,并且同步到每个路由器上。

2.每个路由器根据这个拓扑图,使用Dijstra算法计算总自己到各个网络的最优路径。
3.当链路状态发生变化时,每个路由器重新计算各目的网络的最优路径,构建新的网络表。


:虽然使用Dijkstra算法能计算出完整的最优路径,但路由表中不会存储完整路径,而只存储“下一跳”

为使OSPF能够用于规模很大的网络,OSPF 将一个自治系统再划分为若千更小的范围,称为区域

划分区域的好处:将洪泛法的范围局限于每个区域而非整个自治系统,减少了整个网络上的通信量
在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。这些区域也有层次之分。处在上层的域称为主干区域,负责连通其他下层的区域,并且还连接其他自治域。

2.ISP之间的路由选择

边界网关协议(BGP)

边界网关协议(Border Gateway Protocol,BGP)是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。边界网关协议常用于互联网的网关之间。

BGP的工作原理:

1.每个自治系统的管理员要选择至少一个路由器(可以有多个)作为该自治系统的“BGP发言人”。
2.一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接。然后在此连接上交换BGP报文以建立BGP会话,再利用BGP会话交换路由信息。
3.当所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可找出到达各个自治系统的较好路由。

4.每个BGP发言人除必须运行BGP外,还必须运行该AS所用的内部网关协议,如 OSPF或RIP。BGP所交换的网络可达性信息就是要到达某个网络(用网络前缀表示)所要经过的一系列AS。


BGP的特点

1.BGP交换路由信息的结点数量级是自治系统的数量级,要比这些自治系统中的网络数少很多。
2.每个自治系统中BGP发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。

3.BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
4.在BGP刚运行时,BGP的邻站交换整个BGP路由表,但以后只需在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。

3.三种路由协议的比较

协议 RIP OSPF BGP
类型 内部 内部 外部
路由算法 距离-向量 链路状态 路径-向量
传递协议 UDP IP TCP
路径选择 跳数最少 代价最低 较好
交换结点 和本结点相邻的路由器 网络中的所有路由器 和本结点相邻的路由器
交换内容 当前本路由器知道的全部信息 与自己相邻的所有路由器的链路状态 首次为整个路由表,之后是变化的部分
相关文章
|
4月前
|
算法
基于多路径路由的全局感知网络流量分配优化算法matlab仿真
本文提出一种全局感知网络流量分配优化算法,针对现代网络中多路径路由的需求,旨在均衡分配流量、减轻拥塞并提升吞吐量。算法基于网络模型G(N, M),包含N节点与M连接,并考虑K种不同优先级的流量。通过迭代调整每种流量在各路径上的分配比例,依据带宽利用率um=Σ(xm,k * dk) / cm来优化网络性能,确保高优先级流量的有效传输同时最大化利用网络资源。算法设定收敛条件以避免陷入局部最优解。
|
4月前
|
负载均衡 算法 网络协议
动态路由的主流算法
【8月更文挑战第3天】BGP 协议使用的算法是路径矢量路由协议(path-vector protocol)。它是距离矢量路由协议的升级版。
|
6月前
|
缓存 算法
基于机会网络编码(COPE)的卫星网络路由算法matlab仿真
**摘要:** 该程序实现了一个基于机会网络编码(COPE)的卫星网络路由算法,旨在提升无线网络的传输效率和吞吐量。在MATLAB2022a中测试,结果显示了不同数据流个数下的网络吞吐量。算法通过Dijkstra函数寻找路径,计算编码机会(Nab和Nx),并根据编码机会减少传输次数。当有编码机会时,中间节点执行编码和解码操作,优化传输路径。结果以图表形式展示,显示数据流与吞吐量的关系,并保存为`R0.mat`。COPE算法预测和利用编码机会,适应卫星网络的动态特性,提高数据传输的可靠性和效率。
|
5月前
|
存储 传感器 算法
基于ACO蚁群优化算法的WSN网络路由优化matlab仿真
摘要(Markdown格式): - 📈 ACO算法应用于WSN路由优化,MATLAB2022a中实现,动态显示迭代过程,输出最短路径。 - 🐜 算法模拟蚂蚁寻找食物,信息素更新与蚂蚁选择策略确定路径。信息素增量Δτ += α*τ*η,节点吸引力P ∝ τ / d^α。 - 🔁 算法流程:初始化→蚂蚁路径选择→信息素更新→判断结束条件→输出最优路由。优化WSN能量消耗,降低传输成本。
|
6月前
|
传感器 算法 安全
基于WSN网络的定向步幻影路由算法matlab仿真
该文探讨了无线传感器网络中的位置隐私保护,对比了NDRW路由与定向步幻影路由在安全时间和能耗方面的性能。在MATLAB2022a中进行测试,结果显示NDRW路由提供最长的安全时间,尤其在长距离传输时,且在近距离下能耗低于幻影路由。幻影路由虽消耗更多能量,但通过随机步创造幻影源以增强安全性。NDRW路由利用非确定性随机游走策略,避免拥堵并提高效率,而幻影路由则引入方向性控制,通过启发式算法优化路径选择。
|
7月前
|
网络协议 算法 数据库
【专栏】OSPF是广泛应用的链路状态路由协议,通过分层网络结构和SPF算法实现高效路由。强烈建议收藏!
【4月更文挑战第28天】OSPF是广泛应用的链路状态路由协议,通过分层网络结构和SPF算法实现高效路由。其关键特性包括区域划分、链路状态数据库、邻居关系和路由更新。工作过程涉及邻居发现、信息交换、数据库构建、路由计算及收敛。理解OSPF对于网络管理和规划具有重要意义。
134 1
|
7月前
|
算法 网络协议 数据建模
【计算机网络】—— IP协议及动态路由算法(下)
【计算机网络】—— IP协议及动态路由算法(下)
|
7月前
|
算法 网络协议 数据建模
【计算机网络】—— IP协议及动态路由算法(上)
【计算机网络】—— IP协议及动态路由算法(上)
|
7月前
|
网络协议 算法 数据库
【专栏】IS-IS协议是内部网关协议,常用于大型网络路由器间的路由信息交换,基于OSI的CLNP标准和Dijkstra算法
【4月更文挑战第28天】IS-IS协议是内部网关协议,常用于大型网络路由器间的路由信息交换,基于OSI的CLNP标准和Dijkstra算法。其特点是分层设计、快速收敛、高效资源利用和强故障恢复能力。在现代网络中,IS-IS广泛应用于服务提供商、企业网络及与其他协议的融合,是构建稳定、高效网络的关键。了解和应用IS-IS能提升网络系统的可靠性和效率。
133 0