EIGRP协议之理论详解

EIGRP(Enhanced Interior Gateway Routing Protocol)增强内部网关路由协议,也是Cisco公司的私有协议(当Cisco设备和其他厂商的设备互连时,不能使用EIGRP协议),它结合了链路状态和距离矢量型路由选择协议的Cisco专用协议,具有快速收敛,减少带宽占用等特点。下面,我们整理了有关EIGRP的详细理论知识,EIGRP简介EIGRP是由距离矢量和链路状态两种路由协议混合,因此可以像距离矢量协议那样,从它的相邻路由器
那里得到更新信息;也像链路状态协议那样,保存着一个拓扑表,
然后通过自己的DUAL算法选择一个最优的无环路径。不同于传统的距离矢量协议,EIGRP有着很快的收敛时间,而且不用发送定期的路由更新;也不像链路状态协议,EIGRP并不知道整个网络是
什么样的,它只能靠邻居公布的信息。EIGRP使用与IGRP相同的路由算法DUAL(扩散更新算法),DUAL机制是EIGRP的核心,通过它来实现无环路径。内部EIGRP管理距离为90,外部EIGRP管理距离为170,支持等价和非等价负载均衡。IP数据包中,EIGRP的协议字段为88。EIGRP的优点:100%无环:如果整个网络包含在一个自制系统中,EIGRP使用DUAL能保证一张100%无环路由转发表;快速收敛:EIGRP使用DUAL(),通过备份路由而实现,当S不可用时,快速切换到FS上从而达到快速收敛的目的;使用多播、单播:使用组播(224.0.0.10)或单播进行路由更新,节省链路带宽;增大了网络规模:RIP最大只能是15跳;而EIGRP最大可支持255跳,IGRP为224跳,他们两个默认都为100跳;支持三种网络层协议:EIGRP支持IP、IPX、Apple Talk三种网络层协议,这也就增大了EIGRP的使用范围;支持VLSM和非连续的网络:RIP和IGRP则不支持;减少了带宽的消耗、更好地利用带宽:EIGRP不像RIP和IGRP那样,每隔一段时间就交换一次路由信息,它使用 触发式更新和增量更新,仅当某个目的网络的路由状态改变或路由的度量发生变化时,才向邻居发送路由 更新,因此其更新路由所需要的带宽比RIP和EIGRP小得多。EIGRP从EIGRP分组即将发出的接口上获得带宽 参数,这个参数值是基于接口指定的。
例如:默认情况下,所有串行接口都有1544kb/s的带宽,不过这个 带宽值是可以配置的,EIGRP最多可以使用50%的接口带宽来承载EIGRP分组(可以使用ip bandwidth- percent eigrp来修改),这就保证了EIGRP分组不会在主要的网络收敛过程中“饿死”常规的数据分组。RIP和IGRP没有这种特性,
所以大量的RIP和IGRP更新分组可能会阻止常规的分组通过。名词解释:度量值:EIGRP使用带宽(bandwidth)、延迟(delay)、可靠性(reliability)、负载(loading)、最大传输单元(MTU)这
五个值来计算度量,默认情况下只有带宽和延迟起作用。计算公式为——EIGRP度量=[(10^7/路径上的较低带宽)+(所有延迟之和)]×256;EIGRP度量=IGRP度量×256。可行距离(Feasible Distance):到达一个目的地的最小度量值。通告距离(Advertise Distance):相邻路由器所通告的它自己到达某个目的地的最小度量值。可行条件(Feasible Condition):通告距离(AD)小于可行距离的条件即ADEIGRP 后继(Successor):一个直接连接的邻居路由器,它满足FC,通过它具有到达目的地的最小度量值的路 由器。后继路由器被用作下一跳来将报文转发到目的地。可行后继(Feasible Successor):一个邻居路由器,它满足FC,具有到目的地第二低度量值的路由器。当主 路由S不可用时,FS被用来替代主路由,因而被保存在拓扑表中,当做备用路由。活跃状态/主动路由(active state):是一种正在搜索FS的状态,当路由器丢失了S,并且没有FS可用时,该路由进入活跃状态,是一条不可用的路由。当一条路由处于活跃状态时,路由器向所有邻居发送查询来寻 找另外一条到达该目的地的路由。被动状态/被动路由(passive state):是一种目前有正确的路由到达目的地的状态,当路由器
失去了S而有一个FS时,或者再找到一个S时,该路由进入被动状态,是一条可用路由。邻居关系:EIGRP通过hello包来建立邻居关系,在低速链路上hello包的发送间隔为60秒、高速链路上为5秒。 在一段时间内如果没有收到hello包则重置邻居关系,这个时间为保持时间(hold time),默认的保持时间是hello时间的三倍。这两种时间均可以手动修改,在建立邻居关系时,K值和自制系统号必须一样。可以 通过show ip eigrp neighbor查看邻居关系。EIGRP形成邻居的条件:1.AS号相同;2.度量计算的K值相同;3.认证相同(EIGRP只支持密文认证);4.对端通告的Neighbor ID必须在本端的直连网段中存在。注意:路由协议都是通过端口的Primary IP传输数据流并形成Neighbor ID(代表一个接口)。EIGRP路由器在接收到Hello后会用自己的Primary IP的子网掩码与Hello中的Neighbor ID进行与运算,得出网络地址后与自己路由表中的直连网段进行匹配,有则
认为对方是邻居,并将其放入邻居表中,没有就会以不在同一子网为由来拒绝形成邻居。说明:IGRP和EIGRP在相同的自制系统中可以自动再发布路由信息,
但是也可以关闭自动再发布路由信息。EIGRP涉及的4种重要技术:1.邻居发现协议:使用hello分组来发现邻居,维护邻居,检查邻居状态等等。2.可靠传输协议RTP:确保EIGRP分组能顺序的传递到所有邻居。3.DUAL算法:有限状态机,决算进程根据所有邻居通告的所有路由,依据距离信息来选择前往目的地的无环路路径。4.协议无关模块:EIGRP的协议无关模块负责处理随网络层协议而异的需求。如IP-EIGRP是兼容IP网络EIGRP详解EIGRP的三张表:Neighbor Table、Topology Table、Routing Table初始运行EIGRP的路由器都要经历发现邻居、了解网络及选择路由的过程,在这个过程中同时建立三张独立的表格:Neighbor Table、Topology Table、Routing Table。其中Neighbor Table保存了和路由器建立了邻居关系的且直连的路由器;Topology Table包含路由器学习到的到达目的地的所有路由条目;Routing Table则是最佳路径的路由表。以路由器R4为例介绍Neighbor Table、Topology Table、Routing Table498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="324" alt="" width="480" border="0" src="http://s5.51cto.com/wyfs01/M01/0E/E8/wKioJlGymk2AT6sfAAA9vlN2J5U537.jpg" />498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="94" alt="" width="333" border="0" src="http://s1.51cto.com/wyfs01/M00/0E/EA/wKioOVGymlzDOfsjAAAtU4Y8xvQ586.jpg" />498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="99" alt="" width="471" border="0" src="http://s1.51cto.com/wyfs01/M00/0E/E8/wKioJlGymmnzAl4fAABMl7xhkwA170.jpg" />498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="75" alt="" width="567" border="0" src="http://s8.51cto.com/wyfs01/M00/0E/EA/wKioOVGymnOTyzvkAABCponRR0c686.jpg" />1、R4的Neighbor Table中的每个邻居都转发一份IP路由表的备份给R4;2、R4把从邻居处收到的路由表存储在自己的Topology Table中,如图,R4分别收到R2和R3到网络172.16.1.0/24通告,通告距离为110和160,R4收到后加上自己到R2和R3的度量后就得到了计算距离210和260;3、R4检查Topology Table,然后选择出一条到达目的地的最佳路由,确定最佳的Successor routers为R2,然后把它放在Routing Table中。EIGRP的Routing Table:498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="227" alt="" width="630" border="0" src="http://s7.51cto.com/wyfs01/M00/0E/E8/wKioJlGymn6TDV9zAABtxDkzlHQ096.jpg" />D:在本自制系统里学到的路由。D EX:从外面发布进来的路由。EIGRP的Neighbor Table:498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="82" alt="" width="612" border="0" src="http://s4.51cto.com/wyfs01/M01/0E/EA/wKioOVGymo7xq60-AAAxFdd3UVE562.jpg" />Address:邻居路由器的地址。Interface:本地到邻居的接口。Hold time:等待米有从邻居处接受到任何数据报文的最大时间,当收到新的报文后Hold time复位。SRTT(Smooth round-trip time)顺利往返时间:一个EIGRP报文发送给邻居然后到本地路由器从邻居处接收到确认报文所花费的时间,单位是ms。RTO(Retransmission timeout)重传超时:重新传输报文之前等待确认报文的时间,单位是ms。Q Cnt(Queue count)队列计数:等待发送的EIGRP报文数,如果这个数值持续高于0,说明网络发生了拥塞。EIGRP的Topology Table:498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="193" alt="" width="522" border="0" src="http://s6.51cto.com/wyfs01/M00/0E/E8/wKioJlGymqbwWc42AACK2xuwu1A673.jpg" />P:passive,表示网络处于稳定状态。A:active,表示当前网络不可用,正处于发送查询状态。U:update,表示网络处于等待update包的确认状态。Q:query,表示网络处于等待query包的确认状态。SIA:stuck-in-active,表示网络持续处于active状态,说明EIGRP网络的收敛发生了问题。EIGRP路由的Traffic Table(接收和发送信息表):498)this.width=498;' onmousewheel = 'javascript:return big(this)' height="194" alt="" width="324" border="0" src="http://s5.51cto.com/wyfs01/M01/0E/EA/wKioOVGymrSwe70CAAByVNhjXg4525.jpg" />EIGRP的报文类型:EIGRP使用可靠传输协议RTP(Reliable Transport Protocl),RTP确保每一个EIGRP分组都必须得到确认,只有前一个分组得到确认之后才会发送下一个分组,RTP的重传机制使得发送给邻居可靠的报文在RTO(Retransmit Time Out)超出以后,还没得到确认的话,RTP会将分组重传(重传为单播,目的是为了不影响那些已经正常确认的路由),最多重传16次,如果16次之后还没有确认则重置邻居关系,直到邻居关系保持时间(hold time)超出,宣布邻居不可达。接收者需要对update、reply和query这些有序号的报文进行确认,不需要可靠性的报文(如Hello和ACK)则没有必要确认。Hello:以多播的方式发送,用于发现邻居路由器,并维持邻居关系。更新(update):当路由器收到某个邻居路由器的第一个Hello报文时,以单点传送方式回送一个包含它所知道的路由信息的更新报文。当路由信息发生变化时,以多播的方式发送一个只包含变化信息的更新报文。注意,两个更新报文的内容不一样。查询(query):当一条链路失效,路由器重新进行路由计算。但在拓扑表中没有可行的后继路由时,路由器就以多播的方式向它的邻居发送一个查询报文,以询问它们是否有一条到目的地的可行后继路由。答复(reply):以单点的方式回传给查询方,对查询数据报文进行应答。确认(ACK):以单点的方式传送,用来确认update、query、reply数据报文,以确保传输的可靠性。说明:OSPF要求邻居必须具有相同的Hello和Down的判定间隔才能进行通信,而EIGRP没有这种限制。在实际应用中,将EIGRP的保持时间设为Hello间隔的3倍,而在OSPF中将保持时间设为Hello间隔的4倍。EIGRP路由维护过程:1.建立相邻关系:运行EIGRP的路由器自开始运行起,就不断地用多播地址224.0.0.10从参与EIGRP的各个接口向外发送Hello报文。当路由器之间彼此都收到Hello报文后,这时双方建立起邻居关系。2.发现网络拓扑,选择最短路由:当路由器通过Hello报文动态地发现了一个新邻居时,也获得了来自这个新邻居update通告的路由信息。路由器将获得的路由更新信息首先与拓扑表中所记录的信息进行比较,FD最小的为S,如果有相同的FD的话,路由表可以存在多个S,默认可以存在4个。符合FC的路由被放入拓扑表,作为FS备选路由器,如果S因故无效,而有效的FS存在的话,FS将代替S并无需进行重新计算。EIGRP的TopologyTable一次可以存在多个有效地FS。3.路由查询、更新:当路由信息没有变化时,EIGRP邻居间只是通过发送Hello报文,来维持邻居关系,以减少对网络带宽的占用。在发现一个邻居丢失、一条链路不可用时,EIGRP立即会从拓扑表中寻找FS,启用备选路由器。如果拓扑表中没有FS,将该路由设置为活跃状态,向所有邻居发送查询数据报文,除了失效邻居。如果某个邻居有一条到达目的地的路由,
那么它将对这个查询进行答复,并且不再扩散这个查询。否则,相邻路由器将进一步向它自己的每个邻居查询,只有所有查询都得到答复后,EIGRP才重新计算路由,重置FD,选择新的后继路由器。如果相邻路由器没有可替换的路由,也没有相邻的邻居路由器,那么它就向请求路由器发回一个度量为无穷大的回复报文。原文地址:http://blog.sina.com.cn/s/blog_635e1a9e01010x13.html

时间: 2024-09-20 00:32:16

EIGRP协议之理论详解的相关文章

HTTP协议Keep-Alive模式详解

HTTP协议Keep-Alive模式详解     1.什么是Keep-Alive模式    我们知道HTTP协议采用"请求-应答"模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 之后立即断开连接(HTTP协议为无连接的协议):当使用Keep-Alive模式(又称持久连接.连接重用)时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接.     

RTP协议分析和详解

一.RTP协议分析 第1章.     RTP概述 1.1.  RTP是什么 RTP全名是Real-time Transport Protocol(实时传输协议).它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本).RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实时传输控制协议).RTP用来为IP网上的语音.图像.传真等多种需要实时传输的多媒体数据提供端到端的实时

HTTP协议状态码详解(HTTP Status Code)

原文地址 使用ASP.NET/PHP/JSP 或者javascript都会用到http的不同状态,一些常见的状态码为: 200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换. 2xx (成功) 表示成功处理

HTTP协议Keep-Alive模式详解节选

一.什么是Keep-Alive模式  HTTP协议采用"请求-应答"模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议):当使用Keep-Alive模式(又称持久连接.连接重用)时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接. http 1.0中默认是关闭的,需要在http头加入"Conn

PS制作三折页宣传册的一些设计理论详解

本文从零开始讲解如何设计一张呈锯齿形的折叠单张,下面这个折叠单张就是最终成果,不仅显得富吸引力,而且也很有趣. 这种呈锯齿形的单张是我们最喜欢的一种排版格式,因为你只需要一点改变,就显得与众不同,甚至在用桌面打印机输出时也一样胜任自如.将一张标准的 8.5×14(英寸) 纸张(相当于216×356 mm )水平摆放,将上方呈角度切去一边,然后按风琴折折成四个折页.在呈锯齿形的区域加上颜色,你就能设计出一张富冲击力的宣传单张,而且该版式适合所有的主题.让我们深入了解一下: 分类: PS入门教程

ASP 中使用 HTTP 协议发送参数详解_ASP基础

<%@LANGUAGE="VBSCRIPT" CODEPAGE="CP_ACP"%>     <html>     <head>     <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS">     <SCRIPT LANGUAGE="JavaScript">

ASP 中使用 HTTP 协议发送参数详解

<%@LANGUAGE="VBSCRIPT" CODEPAGE="CP_ACP"%>     <html>     <head>     <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS">     <SCRIPT LANGUAGE="JavaScript">

浏览器HTTP协议缓存原理分析详解

浏览器HTTP缓存原理分析 浏览器缓存原理 文字版描述 ①浏览器第一次访问服务器资源 /index.html 在浏览器中没有缓存文件,直接向服务器发送请求. 服务器返回 200 OK,实体中返回 index.html文件内容,并设置一个缓存过期时间,一个文件修改时间,一个根据index.html内容计算出来的实体标记Entity Tag,简称Etag. 浏览器将/index.html路径的请求缓存到本地. ②浏览器第二次访问服务器资源 /index.html 由于本地已经有了此路径下的缓存文件,

EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6.x中不同,相同的则不再叙述. EntityFramework Core 1.1方法理论详解 当我们利用EF Core查询数据库时如果我们不显式关闭变更追踪的话,此时实体是被追踪的,关于变更追踪我们下节再叙.就像我们之前在EF 6.x中讨论的那样,不建议手动关闭变更追踪,对于有些特殊情况下,关闭变更追