计算机网络笔记No.20

路由算法

    • 路由算法简介与分类
    • 链路状态路由算法(LS)
    • 距离向量路由算法(DV)
    • 层次路由

路由算法简介与分类

转发表中的路径是由路由算法决定的

  • 路由算法(协议)确定去往目的网络的最佳路径
  • 转发表确定在本路由器如何转发分组

网络抽象:
计算机网络笔记No.20_第1张图片
c(x, x’) = 链路(x, x’)的费用
eg:c(w, z) = 5
每段链路的费用可以总是1,或者是带宽的倒数、拥塞程度等
路径费用:(x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)

关键问题: 源到目的(如u到z)的最小费用路径是什么

路由算法分类

  • 静态路由 与 动态路由
    静态路由:手工配置、路由更新慢、优先级高
    动态路由:路由更新快、定期更新、及时响应链路费用或、网络拓扑变化

  • 全局信息路由 与 分散信息路由
    全局信息:所有路由器掌握完整的网络拓扑和链路费用信息——链路状态(LS)路由算法
    分散信息:路由器只掌握物理相连的邻居以及链路费用、邻居间交换信息——距离向量(DV)路由算法

链路状态路由算法(LS)

Dijkstra 算法:

  • 链路状态路由算法是全局信息路由算法,所有结点(路由器)掌握网络拓扑和链路费用
    • 通过“链路状态广播”,所有结点拥有相同信息
  • 计算从一个结点(“源”)到达所有其他结点的最短路径
    • 通过获得该结点的转发表
  • 迭代: k次迭代后,得到到达k个目的结点的最短路径

符号:

  • c(x,y): 结点x到结点y链路费用;如果x和y不直接相连,则=∞
  • D(v): 从源到目的v的当前路径费用值
  • p(v): 沿从源到v的当前路径,v的前序结点
  • N’: 已经找到最小费用路径的结点集合

图例:以节点 u 向其他节点计算
计算机网络笔记No.20_第2张图片
计算机网络笔记No.20_第3张图片

Dijkstra 算法存在震荡(oscillations)可能——假设链路费用是该链路承载的通信量
计算机网络笔记No.20_第4张图片
每当数据到达D,D有可能刚好计算新的路由逆时针发送;到达B时,又有可能顺时针发,导致数据始终不能到达目的A

距离向量路由算法(DV)

Bellman-Ford方程(动态规划)
令: dx(y):=从x到y最短路径的费用(距离)
则:计算机网络笔记No.20_第5张图片

举例:
计算机网络笔记No.20_第6张图片
显然: dv(z) = 5, dx(z) = 3, dw(z) = 3
根据B-F方程:
du(z) = min { c(u,v) + dv(z), c(u,x) + dx(z), c(u,w) + dw(z) }
= min {2 + 5, 1 + 3, 5 + 3} = 4

核心思想:

  • 每个结点不定时地将其自身的DV估计发送给其邻居
  • 当x接收到邻居的新的DV估计时,即依据B-F更新其自身的距离向量估计:
    Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ∊ N
  • Dx(y)将最终收敛于实际的最小费用 dx(y)

特点:

  • 异步迭代:引发每次局部迭代的因素——局部链路费用改变、来自邻居的DV更新
  • 分布式:每个结点只当DV变化时才通告给邻居——邻居在必要时(其DV更新后发生改变)再通告它们的邻居
    计算机网络笔记No.20_第7张图片

图例:
每一个圆圈表示DV发生变化,箭头表示通告给其他邻居
计算机网络笔记No.20_第8张图片
链路费用变化——好消息传播快! 坏消息传播慢!

  1. 结点检测本地链路费用变化
  2. 更新路由信息,重新计算距离向量
  3. 如果DV改变,通告所有邻居

好消息:
在这里插入图片描述

  • t0 : y检测到链路费用改变 ,更新DV,通告其邻居.
  • t1 : z收到y的DV更新,更新其距离向量表,计算到达x的最新 最小费用,更新其DV,并发送给其所有邻居.
  • t2 : y收到z的DV更新,更新其距离向量表,重新计算y的DV,
    未发生改变,不再向z发送DV.

坏消息:

  • 当X、Y之间的距离变为 60,Y在转发表中发现Z到X的距离只有 5,那么更新转发表Y到X为Y到Z再到X为 1+5 = 6并通知Z,Z收到后转发表里由Z到Y到X更新为1+6 = 7,如此往复更新
    计算机网络笔记No.20_第9张图片

解决方法:

  • 毒性逆转(poisoned reverse)
    如果一个结点(e.g. Z)到达某目的(e.g.X)的最小费用路径是通过某个邻居(e.g.Y),则:
    通告给该邻居结点到达该目的的距离为无穷大
    毒性逆转不能彻底解决无穷计数问题——网络足够大不满足条件
    计算机网络笔记No.20_第10张图片

  • 定义最大度量(maximum metric)
    定义一个最大的有效费用值,如15跳步,16跳步表示∞

计算机网络笔记No.20_第11张图片

层次路由

将任意规模网络抽象为一个图计算路由过于理想化
标识所有路由器、 “扁平”网络——在实际网络(尤其是大规模网络)中,不可行!

网络规模:

  • 考虑6亿目的结点的网络
  • 路由表几乎无法存储
  • 路由计算过程的信息(eg. 链路状态分组、DV)交换量巨大,会淹没链路

管理自治:

  • 每个网络的管理可能都期望自主控制其网内的路由
  • 互联网(internet) = 网络之网络(network of networks)

聚合路由器为一个区域:自治系统AS(autonomous systems)

  • 同一AS内的路由器运行相同的路由协议(算法)
  • 不同自治系统内的路由器可以运行不同的AS内部路由协议
  • 网关路由器(gateway router):通过链路连接其他AS的网关路由器、位于AS“边缘”

转发表由AS内部路由算法与AS间路由算法共同配置

  • AS内部路由算法设置 AS内部目的网络路由入口(entries)
  • AS内部路由算法与AS间路由算法共同设置 AS外部目的网络路由入口
    计算机网络笔记No.20_第12张图片

自治系统间(Inter-AS)路由任务

假设AS1内某路由器收到一个目的地址在AS1之外的数据报
AS1必须:

  • 学习到哪些目的网络可以通过AS2到达,哪些可以通过AS3到达
  • 将这些网络可达性信息传播给AS1内部路由器
    计算机网络笔记No.20_第13张图片
    计算机网络笔记No.20_第14张图片
    ———————————————————————————————————————————————————————

由于水平有限及时间仓促或疏忽大意以及其他的一些原因,文中难免会存在一些错误,如若有发现不正确的地方,还请大佬们评论或私信告之于我,以便及时纠错

你可能感兴趣的:(计算机网络学习笔记)