zoukankan      html  css  js  c++  java
  • 不同状态的动态路由协议对比

    距离矢量协议与链路状态协议

    距离矢量:
    运行距离矢量路由协议的路由器,会将所有它知道的路由信息与邻居共享,但是只与直连邻居共享!
     
    所有距离矢量路由协议均使用Bellman-Ford(Ford-Fulkerson)算法,容易产生路由环路(loop)和计数到无穷大(counting to infinity)的问题。因此它们必须结合一些防环机制:
    split-horizon
    route poisoning
    poison reverse
    hold-down timer
    trigger updates
    同时由于每台路由器都必须在将从邻居学到的路由转发给其它路由器之前,运行路由算法,所以网络的规模越大,其收敛速度越慢。


    链路状态:
    运行链路状态路由协议的路由器,只将它所直连的链路状态与邻居共享,这个邻居是指一个域内(domain),或一个区域内(area)的所有路由器!


    链路状态路由协议均使用了强健的SPF算法,如OSPF的dijkstra,不易产生路由环路,或是一些错误的路由信息。路由器在转发链路状态包时(描述链路状态、拓扑变化的包),没必要首先进行路由运算,再给邻居进行发送,从而加快了网络的收敛速度。

    距离矢量路由协议,更新的是“路由条目”!一条重要的链路如果发生变化,意味着需通告多条涉及到的路由条目!
    距离矢量路由协议发送周期性更新、完整路由表更新(periodic & full)

    链路状态路由协议,更新的是“拓扑”! 每台路由器上都有完全相同的拓扑,他们各自分别进行SPF算法,计算出路由条目!一条重要链路的变化,不必再发送所有被波及的路由条目,只需发送一条链路 通告,告知其它路由器本链路发生故障即可。其它路由器会根据链路状态,改变自已的拓扑数据库,重新计算路由条目。

    而链路状态路由协议更新是非周期性的(nonperiodic),部分的(partial)


    动态路由协议有这几种类型:
    1.距离矢量路由选择:将它的整张路由表信息通告给它所有的邻居 (RIP,IGRP)
    2.链路状态路由选择:将它的邻居链路信息通告给网络所有路由器 (OSPF)
    3.混合路由选择协议:同时具备距离矢量和链路状态路由选择协议的特性  (EIGRP)

    RIP 跳 最大跳数16
    IGRP EIGRP :带宽 延迟 负载 可靠性 MTU
    OSPF: Cost

    当一个路由器通过不同的路由协议学习到达同一个目标网络,使用可信度来判断。
    当。。。。。。。同一种路由协议学习。。。。。。。。。,比较Metric值。小的为优先,如果Metric一样,则开启负载均衡。

    一.距离矢量路由选择:
    1.周期性的向直连邻居路由器广播 (RIP-30s IGRP-90s)
    2.传递的是路由表的复制信息
    3.当网络拓补发生变化引起路由表更新,路由器将更新后的路由表复制信息向所有邻居路由器发送,这样的更新会在网络中的所有路由器间按部就班进行,直到收敛

    通常距离矢量路由选择协议在路由器间交换的是整张的路由表信息(目的地址,掩码,下一跳)


    解决路由环路问题由以下方法:
    1.水平分割:从某个接口接收的路由信息不会再从这个接口发送出来 (但不能防止物理环路问题)
    2.最大跳数:当跳数到达规定的最大跳时,认为目标不可达了  RIP 16
    3.路由中毒:一条目标不可达的信息称为路由中毒 (设置跳数为最大跳)
    4.毒性反转:向所有的相邻路由器发送中毒路由信息(中毒路由信息可以忽略水平分割而且忽略间隔周期直接发送--坏消息比无消息好)
    5.触发更新:当一个度量变好或变坏时,路由器立即发送更新信息,不必等到更新周期.
    6.抑制计时器:降低了错误信息的可能性,它标识失效路由信息为可能性失效,并开启抑制计时器保持一段时间,直到计时时间到才竟其写入路由 表
      1)当在抑制时间内,收到一个路由更新信息,如果比原来的更差,忽略
      2)当在抑制时间内,收到一个路由更新信息,如果比原来的更优,取消抑制计时器
      3)当在抑制时间内,原来的路由恢复,则取消抑制计时器
      4)当在抑制计时器超时,则接受任何去往目标的路由

    二. 链路状态路由选择协议
    为了克服距离矢量的缺点,我们就开发了链路状态路由选择协议,它有如下特征:
    1.第一次采用泛洪通告的方式,通告所有路由器,并建立自己的链路状态数据库
    2.交换的是链路状态信息而非路由表的复制信息
    3.链路状态路由选择协议通过交换链路状态通告(LSA),以完善自己的链路状态数据库(LSDB,Link State Data Base)
    4.根据链路状态数据库,路由器将运行最短路径算法(SPF)计算到达每个目的网络的最优路由
    5.当网络拓扑发生变化时,链路状态路由选择只交换变化部分的链路状态信息(增量更新)

    链路状态路由选择:将它的邻居链路信息通告给网络所有路由器,到收敛时每台路由器都知道整个网络的信息(整张地图信息),所以它能够支持更大的网络拓扑
    链路状态路由协议维护的数据库:
    1.邻接数据库(邻居表):用于存储和路由器直接相连的路由器的ID(链路信息)-----更新交换的就是此张表内容
    2.链路状态数据库(拓补表):用于存储所有路由器发送的链路状态通告-----整个网络的地图
    3.转发数据库(路由表):用于存储到达网络中每一个目的网络的最优路由----在拓扑表中根据SPF最短路径优先算法计算出来


    我们可以这样来描述链路状态选择协议:
    1.第一次采用泛洪通告的方式,通告所有路由器,并建立自己的链路状态数据库
    2.交换的是链路状态信息而非路由表的复制信息
    3.链路状态路由选择协议通过交换链路状态通告(LSA),以完善自己的链路状态数据库(LSDB,Link State Data Base)
    4.根据链路状态数据库,路由器将运行最短路径算法(SPF)计算到达每个目的网络的最优路由
    5.当网络拓扑发生变化时,链路状态路由选择只交换变化部分的链路状态信息(增量更新)

    缺点:我们从上面可以看到,当网络中router的数量较多的时候,每台router要维护的数据量将比较多,计算最优路由的时候花费的时间将成倍增长,而且在网络中通告的信息量也很大,当网络变化时候,收敛就会变慢!

    链路状态路由协议通常用于支持大型网络拓补,所以我们采用划分区域来减少路由条目:

    区域概念:只有同一区域的路由器才能形成邻居关系并交换链路状态信息,区域内路由器只维护本区域的链路状态数据库,所以它可以实现: 
    a.减小区域内路由器路由表的尺寸
    b.减少区域内链路状态信息量
    c.将网络拓补的变化限制在单个区域内

    注意区域和我们前面介绍的AS是不同概念的:
    AS自治系统:属于同一个管理机构控制下,一组路由器的集合
    区域:通常我们是在同一个AS中来进一步划分不同的区域,一台路由器维护本区域内的链路状态信息


    所以我们总结一下链路状态选择协议的优缺点如下:
    链路状态路由选择的优点:
    1.收敛速度快:触发更新在每个路由器上进行
    2.没有路由环路:才用SPF算法
    3.分等级设计网络和路由,更合理的利用网络资源
    4.和距离矢量路由协议相比,链路状态路由协议的故障排除更为复杂

    链路状态路由选择的缺点:
    1.占用系统和网络资源:
     a.对处理器和内存的要求高
     b.第一次链路状态信息交换使用泛洪方式
    2.设计复杂:需要遵循严谨的区域划分原则
    3.配置可能比较复杂:设计多区域链路状态路由选择时,配置有时可能比较复杂

  • 相关阅读:
    easyui combobox 实现联动
    smartWizard 和 uploadify 插件
    easyui panel href 引用页面导致的命名冲突问题
    Installshield 多语言安装包 和 安装序列号验证,及如何解决 Failed to set code page for Language 46 问题
    easyui 之tab和portal 在IE9下使用iframe时报未定义错误的解决方法
    easyui datagrid 动态列和前端分页,以及加载Datatable
    easyui 动态创建模式对话框
    移动硬盘一个分区“数据循环冗余错误”要求格式化解决方法
    easyui 开发中的通用类库
    easyui datagrid 工具栏实现方式
  • 原文地址:https://www.cnblogs.com/activecode/p/9734063.html
Copyright © 2011-2022 走看看