距离矢量路由协议及路由环路
- 格式:doc
- 大小:30.50 KB
- 文档页数:6
距离矢量和链路状态区别距离矢量(DV)是“传说的路由”,A发路由信息给B,B加上自己的度量值又发给C,路由表里的条目是听来的,虽说“兼听则明,偏信则暗”,但是选出最优路径的同时会引发环路问题,当然,DV协议也使用水平分割,毒性逆转,触发更新等特性来避免,无奈的是,这种问题对于竞争对手LS而言是天生免疫的。
链路状态(LS)是“传信的路由”,A将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起给C,这样,信息没有任何改变和丢失,最后所有路由器都收到相同的一堆信,这一堆信就是LSDB。
然后,每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree(即到达目的地的各个方案),选出最佳路径,放入转发数据库中(即路由表)。
链路状态协议有三样看家本领:LSDB,SPF算法,SPF Tree。
还有三张表:邻居表,拓扑表,路由表,但这三张表并不是DV和LS的根本区别,EIGRP作为高级的距离矢量路由协议同样有这三张表,关键点在于表的内容和传递信息的过程。
DV的拓扑表事实上是邻居通告的路由条目的集合,依据算法从中选出最佳的放进路由表,它并不完全了解网络拓扑;而LS的拓扑表是真正意义上的网络拓扑,路由器对网络信息完全了解,所以可以独立的做出决策,确定最佳路由。
举例来说,如果我是DV的思维,我从华师去火车东站,通过询问知道,我可以在走到师大暨大车站坐515路车,也可以走到坐177路车,这样问下来有几种方案,我再选一个最优的,以这样的方式我就知道广州市内的一些地方该怎么去;而如果我是LS的思维,我会先去四下打听,搜集信息然后汇总成一张广州市区的地图,然后依据这张地图自己决定如何去火车东站以及其它地方。
路由过滤器对DV和LS的影响也是不同的。
运行DV的路由器基于自身的路由表来通告路由信息,其结果是路由过滤器将会对通告产生影响。
运行LS的路由器是基于自身的链路状态数据库来计算出自己的路由,路由过滤器对两路状态的通告和链路状态数据库没有影响,所以只会影响本路由器的路由表的安装,正是因为这种特性,路由过滤器主要被用在进入链路状态域的重新分配点上,即在ASBR执行重发布时,控制那些要进入或离开的路由.-------------------------------------------------------------------所以我们总结一下链路状态选择协议的优缺点如下:链路状态路由选择的优点:1.收敛速度快:触发更新在每个路由器上进行2.没有路由环路:才用SPF算法3.分等级设计网络和路由,更合理的利用网络资源4.和距离矢量路由协议相比,链路状态路由协议的故障排除更为复杂链路状态路由选择的缺点:1.占用系统和网络资源:a.对处理器和内存的要求高b.第一次链路状态信息交换使用泛洪方式2.设计复杂:需要遵循严谨的区域划分原则3.配置可能比较复杂:设计多区域链路状态路由选择时,配置有时可能比较复杂。
距离矢量路由协议(distancevector)VS链路状态路由协议(link-st...距离矢量路由协议(distance vector) VS 链路状态路由协议(link-state)收藏新一篇: 链路状态路由选择协议 | 旧一篇: chap. 1一、PK第一番距离矢量:运行距离矢量路由协议的路由器,会将所有它知道的路由信息与邻居共享,但是只与直连邻居共享!链路状态:运行链路状态路由协议的路由器,只将它所直连的链路状态与邻居共享,这个邻居是指一个域内(domain),或一个区域内(area)的所有路由器!二、PK第二番所有距离矢量路由协议均使用Bellman-Ford(Ford-Fulkerson)算法,容易产生路由环路(loop)和计数到无穷大(counting to infinity)的问题。
因此它们必须结合一些防环机制:split-horizonroute poisoningpoison reversehold-down timertrigger updates同时由于每台路由器都必须在将从邻居学到的路由转发给其它路由器之前,运行路由算法,所以网络的规模越大,其收敛速度越慢。
链路状态路由协议均使用了强健的SPF算法,如OSPF的dijkstra,不易产生路由环路,或是一些错误的路由信息。
路由器在转发链路状态包时(描述链路状态、拓扑变化的包),没必要首先进行路由运算,再给邻居进行发送,从而加快了网络的收敛速度。
三、PK第三番距离矢量路由协议,更新的是“路由条目”!一条重要的链路如果发生变化,意味着需通告多条涉及到的路由条目!链路状态路由协议,更新的是“拓扑”!每台路由器上都有完全相同的拓扑,他们各自分别进行SPF算法,计算出路由条目!一条重要链路的变化,不必再发送所有被波及的路由条目,只需发送一条链路通告,告知其它路由器本链路发生故障即可。
其它路由器会根据链路状态,改变自已的拓扑数据库,重新计算路由条目。
解决路由器环路现象的方法路由器环路是指在计算机网络中,数据包在网络中传递时被路由器错误地传送回遍历的路径上,造成数据包不断循环。
这会导致网络拥塞、延迟增加甚至服务不可达等问题。
为了解决路由器环路现象,可以采取以下方法。
1.使用距离矢量路由协议(DVRP)距离矢量路由协议(Distance Vector Routing Protocol)是一种简单的路由选择算法,通过在网络中交换信息来建立路由表,并使网络中的每个路由器都能计算出到目的地的最佳路径。
DVRP可以避免环路形成,因为它使用了路由器之间的距离来计算路径成本,而不是直接通过之前的路径。
2.使用链路状态路由协议(LSRP)链路状态路由协议(Link State Routing Protocol)是一种更复杂的路由选择算法,它将网络中的每个路由器的链路状态信息(如带宽、延迟等)存储在路由器的链路状态数据库中。
通过交换链路状态信息,每个路由器可以计算出到目的地的最佳路径,并使用该路径转发数据包。
同样,LSRP可以避免环路形成,因为它计算路径时会考虑链路状态信息。
3.使用回环检测机制回环检测机制是一种可以检测并阻止环路的方法。
在实现中,路由器在转发数据包时,将数据包的源IP地址和传来的接口信息保存下来。
当同样的数据包重新出现在相同的接口上时,说明存在环路,路由器可以使用回环检测机制,丢弃数据包,阻止环路的产生。
4.利用路由器控制平面与数据平面分离路由器控制平面与数据平面分离是一种新兴的网络架构,它将路由器的控制决策从数据平面分离开来。
通过将控制平面与数据平面分离,可以在控制平面中实现环路检测和避免环路的算法,从而更好地管理网络中的路由器。
5.使用链路聚合技术链路聚合技术(Link Aggregation)是将多个链路捆绑为一个逻辑链路的技术。
在链路聚合中,多个链路可以同时传输数据,增加带宽和可靠性。
同时,通过链路聚合,可以避免环路的产生,因为传输数据的路径是预先配置好的,不会产生循环路径。
距离矢量路由协议和链路状态路由协议距离矢量路由协议和链路状态路由协议是计算机网络中常见的两种路由协议。
它们分别通过不同的方式来确定网络中数据包的最佳传输路径。
本文将对这两种路由协议进行深入探讨,从协议原理、工作方式、优缺点等几个方面进行比较分析,以便读者更好地理解两种路由协议的异同之处。
一、距离矢量路由协议距离矢量路由协议(Distance Vector Routing Protocol)是一种基于距离度量的路由选择协议,它根据每条路径的距离(即跳数或者成本)来确定最佳路径。
常见的距离矢量路由协议有RIP(Routing Information Protocol)和IGRP(Interior Gateway Routing Protocol)等。
1.1原理距离矢量路由协议的原理比较简单,每个路由器会周期性地向它的邻居路由器发送路由更新信息,包括自己所知道的所有网络地址及到达这些地址的距离。
邻居路由器收到这些更新信息后,会根据这些信息更新自己的路由表。
如果某个路由器的路由表发生变化,它就会通知它的邻居路由器。
通过这种方式,路由表信息会在整个网络中传播,直到所有路由器的路由表都收敛到最优状态。
1.2工作方式距离矢量路由协议的工作方式是分散式的,每个路由器只知道它直接相连的邻居路由器的路由信息,并且根据这些信息来计算到达其他网络的最佳路径。
因此,距离矢量路由协议的路由表只包含了直接相连的邻居路由器的信息,而不包含整个网络的拓扑结构信息。
1.3优缺点距离矢量路由协议的优点是实现比较简单,对网络带宽和处理器资源的需求较低。
但是它也存在很多缺点,比如收敛速度慢、不适合大型网络、易受环路影响等。
二、链路状态路由协议链路状态路由协议(Link State Routing Protocol)是另一种常见的路由选择协议,它根据网络中每个路由器的链路状态信息来计算最佳路径。
常见的链路状态路由协议有OSPF(Open Shortest PathFirst)和IS-IS(Intermediate System to Intermediate System)等。
距离矢量和链路状态区别距离矢量(DV)是“传说的路由”,A发路由信息给B,B加上自己的度量值又发给C,路由表里的条目是听来的,虽说“兼听则明,偏信则暗”,但是选出最优路径的同时会引发环路问题,当然,DV协议也使用水平分割,毒性逆转,触发更新等特性来避免,无奈的是,这种问题对于竞争对手LS而言是天生免疫的。
链路状态(LS)是“传信的路由”,A将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起给C,这样,信息没有任何改变和丢失,最后所有路由器都收到相同的一堆信,这一堆信就是LSDB。
然后,每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree(即到达目的地的各个方案),选出最佳路径,放入转发数据库中(即路由表)。
链路状态协议有三样看家本领:LSDB,SPF算法,SPF Tree。
还有三张表:邻居表,拓扑表,路由表,但这三张表并不是DV和LS的根本区别,EIGRP作为高级的距离矢量路由协议同样有这三张表,关键点在于表的内容和传递信息的过程。
DV的拓扑表事实上是邻居通告的路由条目的集合,依据算法从中选出最佳的放进路由表,它并不完全了解网络拓扑;而LS的拓扑表是真正意义上的网络拓扑,路由器对网络信息完全了解,所以可以独立的做出决策,确定最佳路由。
举例来说,如果我是DV的思维,我从华师去火车东站,通过询问知道,我可以在走到师大暨大车站坐515路车,也可以走到坐177路车,这样问下来有几种方案,我再选一个最优的,以这样的方式我就知道广州市内的一些地方该怎么去;而如果我是LS的思维,我会先去四下打听,搜集信息然后汇总成一张广州市区的地图,然后依据这张地图自己决定如何去火车东站以及其它地方。
路由过滤器对DV和LS的影响也是不同的。
运行DV的路由器基于自身的路由表来通告路由信息,其结果是路由过滤器将会对通告产生影响。
运行LS的路由器是基于自身的链路状态数据库来计算出自己的路由,路由过滤器对两路状态的通告和链路状态数据库没有影响,所以只会影响本路由器的路由表的安装,正是因为这种特性,路由过滤器主要被用在进入链路状态域的重新分配点上,即在ASBR执行重发布时,控制那些要进入或离开的路由.-------------------------------------------------------------------所以我们总结一下链路状态选择协议的优缺点如下:链路状态路由选择的优点:1.收敛速度快:触发更新在每个路由器上进行2.没有路由环路:才用SPF算法3.分等级设计网络和路由,更合理的利用网络资源4.和距离矢量路由协议相比,链路状态路由协议的故障排除更为复杂链路状态路由选择的缺点:1.占用系统和网络资源:a.对处理器和内存的要求高b.第一次链路状态信息交换使用泛洪方式2.设计复杂:需要遵循严谨的区域划分原则3.配置可能比较复杂:设计多区域链路状态路由选择时,配置有时可能比较复杂。
距离矢量路由协议中路由环路问题的解决方法概括来讲,主要分为六种:1.定义最大值;2.水平分割技术;3.路由中毒;4.反向路由中毒;5.控制更新时间;6.触发更新。
下面我们就来一一讲解各种解决方法的实现原理:1.定义最大值:距离矢量路由算法可以通过IP头中的生存时间(TTL)来纠错,但路由环路问题可能首先要求无穷计数。
为了避免这个延时问题,距离矢量协议定义了一个最大值,这个数字是指最大的度量值(如rip协议最大值为16),比如跳数。
也就是说,路由更新信息可以向不可到达的网络的路由中的路由器发送15次,一旦达到最大值16,就视为网络不可到达,存在故障,将不再接受来自访问该网络的任何路由更新信息。
2.水平分割:一种消除路由环路并加快网络收敛的方法是通过叫做“水平分割”的技术实现的。
其规则就是不向原始路由更新的方向再次发送路由更新信息(个人理解为单向更新,单向反馈)。
比如有三台路由器ABC,B向C学习到访问网络10.4.0.0的路径以后,不再向C声明自己可以通过C访问10.4.0.0网络的路径信息,A向B学习到访问10.4.0.0网络路径信息后,也不再向B声明,而一旦网络10.4.0.0发生故障无法访问,C会向A和B发送该网络不可达到的路由更新信息,但不会再学习A和B发送的能够到达10.4.0.0的错误信息。
3.路由中毒(也称为路由毒化):定义最大值在一定程度上解决了路由环路问题,但并不彻底,可以看到,在达到最大值之前,路由环路还是存在的。
为此,路由中毒就可以彻底解决这个问题。
其原理是这样的:假设有三台路由器ABC,当网络10.4.0.0出现故障无法访问的时候,路由器C便向邻居路由发送相关路由更新信息,并将其度量值标为无穷大,告诉它们网络10.4.0.0不可到达,路由器B收到毒化消息后将该链路路由表项标记为无穷大,表示该路径已经失效,并向邻居A路由器通告,依次毒化各个路由器,告诉邻居10.4.0.0这个网络已经失效,不再接收更新信息,从而避免了路由环路。
构成路由选择协议的两个基本机制在计算机网络中,路由选择协议是实现数据包转发的关键。
路由选择协议的主要作用是根据网络拓扑结构和路由策略,选择最佳的数据包转发路径,从而保证数据的可靠传输和网络的高效运行。
而构成路由选择协议的两个基本机制,分别是距离矢量路由和链路状态路由。
一、距离矢量路由距离矢量路由是最早出现的路由选择协议之一,它的核心思想是通过每个节点之间交换距离矢量信息,来确定最佳的数据包转发路径。
距离矢量路由的实现基于以下两个基本机制:1.1 距离度量距离度量是指用于衡量节点之间距离的标准。
常见的距离度量有以下几种:(1)跳数:跳数是指从源节点到目的节点所经过的中间节点数量。
跳数越小,路径越短,数据包转发速度越快。
(2)延迟:延迟是指数据包在网络中传输所需的时间。
延迟越小,数据包的传输速度越快。
(3)带宽:带宽是指网络中传输数据的能力。
带宽越大,可以传输的数据量就越大,网络的吞吐量也越大。
距离度量的选择取决于具体的网络环境和路由策略,不同的距离度量对路由选择的影响也不同。
1.2 距离矢量计算距离矢量计算是指每个节点根据自身的距离矢量信息和邻居节点的距离矢量信息,计算出到目的节点的最短路径。
距离矢量计算的算法有很多种,其中最常用的是Bellman-Ford算法和Dijkstra算法。
Bellman-Ford算法是一种基于动态规划的算法,它通过反复更新每个节点的距离矢量信息,直到收敛为止。
Bellman-Ford算法的优点是能够处理带有负权边的图,但是它的时间复杂度较高,对于大规模网络来说,计算速度较慢。
Dijkstra算法是一种基于贪心策略的算法,它通过不断选择距离起点最近的节点,并更新其邻居节点的距离矢量信息,直到到达目的节点为止。
Dijkstra算法的优点是计算速度较快,但是它不能处理带有负权边的图。
距离矢量路由协议的缺点是容易产生路由环路和路由震荡等问题。
路由环路是指数据包在网络中循环转发,无法到达目的节点;路由震荡是指节点之间频繁地改变路由信息,导致网络拥堵和性能下降。
第七讲:距离矢量路由协议及路由环路
回顾昨天:提问:1、距离矢量路由协议包括哪几种?2、路由器是如何确定最佳路由的说出步骤?
今天内容:距离矢量路由协议及确保路由表条目的的正确的六种方法,及六种方法的结合使用。
一、距离矢量路由协议学习路由的方法首先明确一点,该协议并不能学到整个网络的拓扑。
只能靠学习邻居路由表内容来学习路由。
但每个路由表中只有最佳路径(也就是路由)。
也就是说只有目的地方向(路由器接口)和距离,于是被叫距离矢量。
举例:高速路上开车,没有地图,出错,只能打听。
而打听的人也不知道还要向另外的人打听(好比路由器问邻居路由器,邻居也不知道于是就要再问下一个邻居,这样收敛的速度可想而知)
1、距离矢量路由协议是通过传递路由更新
包来学习路由的(见图10-1),在图10-2到10-4是说明了RIP路由协议是怎样来学习路由的。
在路由协议刚刚运行的时
候,路由器没有开始相互发送UPDATE
包,于是路由表里只有自己直连的网段,管理距离是0。
如图10-2,路由器学到
了自己直连的网段后便开始向邻居路由
器发送更新包了,此包里包含我们发布
的路由。
(一台路由器所直接连接的网段
必须发布在路由协议里才能够被放到
UPDATE包里传送)这样路由器就学到
了其他路由器的路由了见图10-3。
路由
器学到了邻居的路由再打包向邻居发,
这样所有路由器会学到所有的路由条
目。
如图10-4(注意此图的RIP为RIPV2,找同学说为什么)
#########注意:从以上可以看出距离矢量路由协议就是靠和邻居之间周期性的交换路由表来一步一步学到远端路由的#######
2、路由更新包的格式决定了路由协议是有
类还是无类。
实际上有类的路由协议出现的比较早,当时没有出现子网。
路由学到的都是正规的ABC 类网段。
RIP V1等距离矢量路由协议的更
新包里没有放掩码位的地方,虽然能学到子网的网段但没有掩码来确定网络位,于是把学到的子网网段自动归为主类网从而学不到子网变成了事实。
RIP V2加入了放掩码的空间于是能用该掩码与学到的IP做与的运算,于是能学到子网
特例:见图10-5与昨天讲的图9-8做比较
原理:在有类的IP路由协议里有这样一个规定:当路由器从一个接口学到的网段和配置在这个接口上的IP地址属于同一个主类网时,可以用配置在该接口上的子网掩码作为所学到那个网段的子网掩码。
二、距离矢量路由协议保证路由表正确的
六种方法
路由环路是任何路由协议都要避免的路由故障,发生路由环路时,路由器的路由表会频繁的变化,从而造成路由表中的某一条或几条,甚至整个路由表都无法收敛,结果使网络处于瘫痪或半瘫痪状态。
1、路由环路是如何产生的(见课件10-6
-10)
2、保证路由表正确的六种方法
(1)最大度量值
不同协议的度量值不同,RIP规定最大跳数为16,到达16时将认为无效路由将其丢掉,于是最大网络直径15跳。
16台路由器。
而IGRP协议的算法比较复杂,最大度量值为4294967295。
(2)水平分割
最大度量值的方法只能在环路产生之后才会有效。
而我们要制定一个策略尽量制止环路的产生。
即水平分割。
水平分割就是对一台路由器来说,从一个方向学来的路由信息,不能再放入发回那个方向的路由更新包并且发回那个方向(见图10-11)
(3)路由中毒
水平分割只能避免出现路由环路,可是从上图可以看到,路由器A和B中依然有到错误网段的路由表条目,那么路由协议要有一种机制自己的网段如果出错了,可以告诉别的路由器。
(见图10
-12)
(4)反向下毒
在图中的路由器A和B都被下毒后它们会继续向自己的邻居下毒,同时为了保证整个网络中的路由器都被下毒它们会向毒源的方向下毒,(这种方式是不是违反水平分割??但这是被允许的)图10-13
(5)保持时间
如果只有路由中毒还是会出问题如图1―14当B被下毒后,把升级包刚要发给A的时候,却被A的UPDATA包抢先发过来,占据了B的路由表,下毒的路由条目又被使能,之后向所有邻居发送错误信息。
再次环路。
针对这种现象我们做了保持时间,即在“可能DOWN”的状态下要保持一定时间,在些时间内,即使收到了别的升级包(度量值相等或更差)也不会改变“可能DOWN”的状态,直到一定时间后,整个网络可能都已经收敛为止。
(6)触发更新
我们知道了路由器是周期性的发送更新包,如果网络一旦出现故障。
则要等到下一个周期才能发。
那么将会造成网络中大量的数据包被错错误的路由到已经坏掉或都漰溃的路由器上。
造成路由黑洞。
路由更新就是为了解决这个问题的,一旦有错误发生会马上触发更新包通知给邻居路由器。