计算机网络原理(15)—— 路由算法(LSDV层次)、RIP协议OSPF协议BGP协议

一、路由算法分类

路由算法
  • 路由算法(协议)确定去往目的网络的最佳路径。
  • 转发表确定在本路由器如何转发分组。
  • 网络抽象:图、费用、最小费用路径。
1. 静态路由 vs 动态路由

静态路由:

  • 手工配置

  • 路由更新慢

  • 优先级高

动态路由:

  • 路由更新快
    • 定期更新
    • 及时响应链路费用或网络拓扑变化
2. 全局信息vs分散信息

全局信息

  • 所有路由器掌握完整的网络拓扑和链路费用信息

    E.g. 链路状态(LS)路由算法

分散(decentralized)信息:

  • 路由器只掌握物理相连的邻居以及链路费用

  • 邻居间信息交换、运算的迭代过程

    E.g. 距离向量(DV)路由算法

二、常用的路由算法

1. 链路状态(LS)路由算法——Dijkstra算法(全局信息)
  • 所有结点(路由器)掌握网络拓扑和链路费用

    • 通过“链路状态广播“
    • 所有结点拥有相同信息
  • 计算从一个结点(“源" )到达所有其他结点的最短路径

    • 获得该结点的转发表
  • 迭代: k次迭代后,得到到达k个目的结点的最短路径

2. 距离向量(DV)路由算法——分散信息
  • 动态规划
  • 一个结点维护到达自己的邻居的费用,并且维护其所有邻居的距离向量。

核心思想:

  • 每个结点不定时地将其自身的DV估计发送给其邻居

  • 当x接收到邻居的新的DV估计时,即依据B-F更新其自身的距离向量估计:

    Dx(y)←minv{c(x,v) + Dv(y)} for each node y∈N

三、层次路由算法

将任意规模网络抽象为一个图计算路由——过于理想化

  • 标识所有路由器
  • 扁平”网络

在实际网络(尤其是大规模网络)中,不可行!

  • 网络规模
  • 管理自治

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

  • 同一AS内的路由器运行相同的路由协议(算法)
    • 自治系统内部路由协议
    • 不同自治系统内的路由器可以运行不同的AS内部路由协议
  • 网关路由器:位于AS边缘,通过链路连接其他AS的网关路由器。
  • 转发表由AS内部路由算法和AS间路由算法共同配置。
Internet采用层次路由

AS内部路由协议也称为内部网络协议IGP(interior gateway protocols)

最常见的AS内部路由协议

  • 路由信息协议: RIP(Routing Information Protocol)
  • 开放最短路径优先: OSPF(Open Shortest Path First)
  • 内部网关路由协议: IGRP(Interior Gateway Routing Protocol)
    • Cisco私有协议

四、RIP协议(Routing Information Protocol,路由信息协议)

早于1982年随BSD-UNIX操作系统发布。

1. 距离向量路由算法
  • 距离度量:跳步数(max= 15 hops),每条链路1个跳步——防止无穷计数问题
  • 每隔30秒,邻居之间交换- -次DV,成为通告(advertisement)
  • 每次通告:最多25个目的子网(IP地址形式)
2. 链路失效、恢复

如果180秒没有收到通告-→邻居/链路失效

  • 经过该邻居的路由不可用
    • 重新计算路由
  • 向邻居发送新的通告
  • 邻居再依次向外发送通告( 如果转发表改变)
  • 链路失效信息能否快速传播到全网?——可能发生无穷计数问题。
  • 毒性逆转技术用于乒乓环路。无穷大距离 = 16 hops。
3. 路由表的处理
  • RIP路由表是利用一个称作route-d (daemon)的应用层进程进行管理
    • 应用进程实现
  • 通告报文周期性地通过UDP数据报发送。

三、OSPF协议(Open Shortest Path First,开放最短路径优先)

  • ”开放”:公众可用
  • 采用链路状态路由算法(LS)
    • LS分组扩散(通告)
    • 每个路由器构造完整的网络(AS)拓扑图
    • 利用Djkstra算法计算路由
  • OSPF通告中每个入口对应一个邻居
  • OSPF通告在整个AS范围泛洪
    • OSPF报文直接封装到IP数据报
  • 与OSPF极其相似的一个路由协议:IS-IS路由协议
OSPF优点(RIP不具备)
  • 安全:所有OSPF报文可以被认证,预防恶意入侵;
  • 允许使用多条相同费用的路径(RIP只能选一条);
  • 对于每条链路,可以针对不同的TOS设置多个不同的费用度量
  • 集成单播路由和多播路由;
  • OSPF支持对大规模AS分层(局部区、主干区)。

四、BGP协议(Border Gateway Protocol,边界网关协议)

  • BGP协议(Border Gateway Protocol,边界网关协议):事实上的标准域间路由协议
    • 将Internet“粘合”为一个整体的关键
  • BGP为每个AS提供了一种手段:
    • eBGP: 从邻居AS获取子网可达性信息.
    • iBGP: 向所有AS内部路由器传播子网可达性信息.
    • 基于可达性信息与策略,确定到达其他网络的“好”路径.
  • 容许子网向Internet其余部分通告它的存在:“我在这儿!”
1. BGP基础
  • BGP会话(session):两个BGP路由器(Peers)交换BGP报文。
    • 通告去往不同目的前缀的路径;
    • 报文交换基于半永久的TCP连接。
  • BGP报文
    • OPEN:与peer建立TCP连接,并认证发送方;
    • UPDATE:通告新路径(或撤销原路径);
    • KEEPALIVE:在无UPDATE时,保活连接;也用于对OPEN请求的确认
    • NOTIFICATION:报告先前报文的差错;也被用于关闭连接。
2. 路径属性和BGP路由
  • 通告的前缀信息包括BGP属性:前缀 + 属性= 路由
  • 两个重要属性:
    • AS-PATH(AS路径):包含前缀通告所经过的AS序列;
    • NEXT-HOP(下一跳):开始一个AS-PATH的路由器接口,指向下一跳AS。
3. BGP路由选择
  • 网关路由器收到路由通告后,利用其输入策略(import policy)决策接受/拒绝该路由。
    • 基于策略(policy-based)路由
  • 路由器可能获知到达某目的AS的多条路由,基于以下准则选择:
    • 本地偏好(preference)值属性: 策略决策(policy decision)
    • 最短AS-PATH
    • 最近NEXT-HOP路由器:热土豆路由(hot potato routing)
    • 附加准则
4. 为什么采用不同的 AS内 与 AS间 路由协议

策略(policy):

  • inter-AS: 期望能够管理控制流量如何被路由,谁路由经过其网络等.
  • intra-AS: 单一管理,无需策略决策

规模(scale):

  • 层次路由节省路由表大小,减少路由更新流量
  • 适应大规模互联网

性能(performance):

  • intra-AS: 侧重性能
  • inter-AS: 策略主导

你可能感兴趣的:(计算机网络)