弥散更新算法(DUAL)是一个收敛算法.它代替了其他距离矢量协议使用的Bellman-Ford 算法。路由环路.甚至是在协议完全收敛前出现的瞬时环路.都会对网络性能造成不良影响。为了防止环路的形成.DUAL使用弥散计算的概念.执行分布的最短路径计算.并在执行这些计算的过程中.维护一个无环的环境。DUAL是EIGRP路由协议的核心。
 
拓扑表中集中存储了EIGRP进程的数据。拓扑表这个名称可能并不特別贴切.因为EIGRP毕竟还是一项距离矢量路由协议.它本身对网络的拓扑一无所知。尽管如此.拓扑表是EIGRP储存所有路由信息的地方.其中包含以下这些内容:
 
•每个己知目的地网络的前缀(地址/网络掩码);
•目的地网络的可行距离;
•每个通告了目的地网络的邻居路由器地址.以及去往这个邻居的出接口;
•每个邻居通告的目的地网络度量值.以及通过这个邻居去往目的地网络的路径度量值;
•目的地网络的状态;
•网络的其他信息(各种内部标记、网络类型和源等)。
 
EIGRP会通过以下途径生成并更新拓扑表:本地注入的网络(加入EIGRP的直连接口、本地重分布的路由).以及接收到的EIGRP更新包、査询包、响应包、SIA査询包和SIA响应包中通告的网络。所有通过EIGRP学习到的网络都会被放入拓扑表中.EIGRP会在所有邻居中.査找通告了最低总开销路径的邻居.并确认该邻居提供的是无环路径;找到后.它会把通过这条邻居去往该网络的路径放入路由表中。要记住.远端网络必须首先出现在拓扑表中.才能放入路由表中。
 
拓扑表中记录的每个网络都关联着一个状态信息。这个状态可以是被动或活动.被动状态表示EIGRP己经找到了去往这个网络的最短路径.并且对这条路径感到满意.活动状态表示EIGRP目前正在为这个网络寻找最短路径。在稳定拓扑中.所有路由器都应该处于被动状态。活动状态总是与发送査询包的路由器相关.这台路由器会让它的邻居也参与到寻找新路径的过程中。处于活动状态中.路由器无法修改路由表中特定网络的路由.也就是说路由器无法从路由表中移除这条路由.或者修改它的下一跳。只有当发出査询包的路由器从它的所有邻居那里接收到了响应包.活动状态才能圆满结束。直到那时.这条路由才能再次进入被动状态.路由器可以做出新的最短路径选择.并最终更新路由表中的条目。前文己经提到过.EIGRP在其设计中.可以避免在每个路由进程中出现路由环路。在路由进入活动状态后.在路由表中保留这条之前还能用(且无环)的路由.这种做法保证网络中不会出现环路.这条路由现在可能己经不是最优的了.甚至可能己经不可达了.但它仍是无环的。在弥散计算结束后.路由器会选出一条新的无环最有路径并开始使用它。EIGRP实际上是以这样一种方式工作的:它总是把一条无环路径换成另一条无环路径.并不会出现有可能形成环路的中间过渡状态。现在将其简要总结如下。
 
•如果在一台路由器需要选择一条新的最短路径时.提供了那条路径的邻居能够确保自己无环.那么这条路由就会保持在被动状态中.因为路由器己经拥有了做出正确选择的所有信息。
•如果提供了最短路径的邻居无法保证自己无环.或者根本没有提供最短 路径的邻居.路由器就需要进入活动状态。
 
下例中展示了路由器中EIGRP拓扑表中的内容.命令的输出内容以下图中的路由器R1为 例。这个网络中运行IPv6 EIGRP.R1和所有其他路由器之间的串行链路上只配置了IPv6链路本地地址.格式为FE80::〈路由器编号〉。图右侧的LAN是一个被动网络(R2、R3和R4连接在LAN中的接口都被配置为被动模式;因此不会通过它们建立EIGRP邻接关系).它所使用的全局IPv6前缀是2001 :DB8:CC1E:: /64。R4将去往2001:DB8:FFFF:: /48的静态路由重分布到EIGRP中。为了简化度量值的汁算.这个网络中的EIGRP只在计算中使用延迟度量参数 (K3=l.所有其他K值都设置为0)。工程师按照拓扑所示.配置了每个接口的延迟值。之所以在这个案例中使用IPv6.是因为这样做可以只使用链路本地地址实现最多的互连.而且这 样做可以使各种show和debug命令具有更强的可读性。为了简化案例.本例中只使用经典度量来选择路由。要记住.EIGRP会对计算出的经典度量值乘以256。注意仔细阅读案例中的注释内容。
这条命令显示EIGRP进程的AS号,Router ID,收集到的本地注入或从其它邻居学到的网络信息。输出中到2001:DB8:CC1E::/64的下一跳为FE80::3(R3)和FE80::3(R3),R4当前不满足成为预期下一跳的可行条件。这个命令是少数的几个之一真实展示EIGRP进程的Router ID的命令
 
使用all-links关键字,显示所有邻居通告的网络,也显示那些不满足可行条件检查的。
2001:DB8:FFFF::/48 还是只有一个邻居是因为EIGRP使用了毒性反转的水平分割。因为R2和R3使用R1作为他们到2001:DB8:FFFF::/48的下一跳,他们通告回R1一个无限度量。
 
 
通过关联一个指定的网络,显示出它的详细信息,注意存储的关于网络的信息:
状态,继承者数量,可行距离,覆盖线路类型的每个邻居的信息,到邻居的路径单独的度量成分,和混合计算度量的结果。
 
 
如果关于外部网络(重分布)的详细信息被拉入拓扑表,除了显示的信息之外,外部网络也携带关于执行重分布的路由器的信息,和原始的重分布路由,例如原始类型,AS号,或metric度量。
 
 
 
 
 
 
 

EIGRP-9-弥散更新算法-拓扑表的更多相关文章

  1. EIGRP-12-弥散更新算法-DUAL的FSM(*没写完)

    FD (可行距离).后继和可行后继.本地计算和弥散计算(随着查询包的发出而扩散,随着响应包的接收而收敛)一到目前为止介绍的这些机制能够使路由器有效地计算出去往某目地的新路径,只要在整个弥散计算中不再出 ...

  2. EIGRP-11-弥散更新算法-EIGRP中的本地计算和弥散计算

    至此,我们已经了解了诸多概念: RD (报告距离). CD (计算距离). FD (可行距 离)和FC (可行性条件) ,在此基础上继续了解EIGRP对于拓扑变化的应对方法想必是轻松愉快的.能够导致拓 ...

  3. EIGRP-13-弥散更新算法-停滞在活动状态

    如果一台路由器参与到了针对某个目的地的弥散计算中(即将相应路由置为活动状态,并发送查询包),它必须首先等待所有邻居都返回响应包,之后它才能执行自已的弥散计算,接着选出新的最优路径,最后开始发送自已的响 ...

  4. EIGRP-10-弥散更新算法-计算距离,报告距离,可行距离和可行性条件

    对于某个目的网络,EIGRP持续关注它的各种距离参数.EIGRP使用复合度量参数,不过为了简化,这里使用一个没有单位的数值.同样出于简化,这里的EIGRP路由器都不使用水平分割.

  5. mysql批量更新、多表更新、多表删除

    本文介绍下,mysql中进行批量更新.多表更新.多表删除的一些实例,有需要的朋友可以参考下. 本节主要内容: mysql的批量更新.多表更新.多表删除 一,批量更新: 复制代码代码示例: update ...

  6. Oracle两张表关联批量更新其中一张表的数据

    Oracle两张表关联批量更新其中一张表的数据 方法一(推荐): UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXI ...

  7. mySQL:两表更新(用一个表更新另一个表)的SQL语句

    用一个表中的字段去更新另外一个表中的字段, MySQL 中有相应的 update 语句来支持,不过这个 update 语法有些特殊.看一个例子就明白了. create table student ( ...

  8. AOV网络和Kahn算法拓扑排序

    1.AOV与DAG 活动网络可以用来描述生产计划.施工过程.生产流程.程序流程等工程中各子工程的安排问题.   一般一个工程可以分成若干个子工程,这些子工程称为活动(Activity).完成了这些活动 ...

  9. ALV编辑数据后未更新到内表

    在调用 ‘I_CALLBACK_USER_COMMAND’的时候定义 DATA: GR_ALV TYPE REF TO CL_GUI_ALV_GRID. "alv数据更改后更新到内表 CAL ...

随机推荐

  1. 【Java_SSM】(三)maven中的配置文件setting的配置

    这篇博文我们介绍两方面:如何修改setting.xml文件及相应配置(本文maven版本为3.5.0) (1)首先打开maven文件目录--conf,会看见如下目录 (2)复制setting.xml文 ...

  2. Java——Json字符串与Object互转

    public static void JacksonTest() {//推荐 //{"MNG001":[{"ID":"1","PW ...

  3. Android_基础之分辨率

    常见屏幕分辨率对应尺寸 标屏 分辨率 比例 宽屏 分辨率 比例 QCIF 176X144 11:9       CIF 352X288 11:9       QVGA 320X240 4:3 WQVG ...

  4. [PHP学习教程 - 网络]001.下载/采集远程文件到本地(Download File)

    引言:如何把http://mzitu.com里的图片全部下载下来呢? 一身浩然正气的AC陷入的深思.... 当然这里涉及到的功能有线程,网页请求,页面提取,下载图片等等.今天,我们先讲一下如何下载文件 ...

  5. idea创建maven项目慢的原因以及解决方案

    问题分析;在idea中maven项目所依赖的jar包,默认是从中央仓库直接下载jar包,不管jar包是否在本地仓库存在,所以导致idea创建maven项目速度慢,那么要解决这个问题,那么将idea设置 ...

  6. GitHub+jsDelivr+PicGo 打造稳定快速、高效免费图床

    标题: GitHub+jsDelivr+PicGo 打造稳定快速.高效免费图床 作者: 梦幻之心星 347369787@QQ.com 标签: [GitHub, 图床] 目录: 图床 日期: 2019- ...

  7. 【Android】SDK的配置

    1:Android Studio 下载   安装后创建项目 2:  打开settings 3:下载后,配置SDK 4:下载jdk1.8.0_74.rar 解压   加入环境变量 5:下载夜神模拟器,加 ...

  8. 网络编程-TCP长连接和短连接

    TCP是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.下面会介绍一个TCP连接是如何建立的以及通信结束后是如何终止的. 一.TCP连接的建立与终止 1.1 建立连 ...

  9. PAT1033 旧键盘打字 (20分) (关于测试点4超时问题)

    1033 旧键盘打字 (20分)   旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 ...

  10. 一文带你了解js数据储存及深复制(深拷贝)与浅复制(浅拷贝)

    背景 在日常开发中,偶尔会遇到需要复制对象的情况,需要进行对象的复制. 由于现在流行标题党,所以,一文带你了解js数据储存及深复制(深拷贝)与浅复制(浅拷贝) 理解 首先就需要理解 js 中的数据类型 ...