路由算法的比较及电路交换与包交换的优缺点.docx
- 文档编号:9874268
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:14
- 大小:102.16KB
路由算法的比较及电路交换与包交换的优缺点.docx
《路由算法的比较及电路交换与包交换的优缺点.docx》由会员分享,可在线阅读,更多相关《路由算法的比较及电路交换与包交换的优缺点.docx(14页珍藏版)》请在冰豆网上搜索。
路由算法的比较及电路交换与包交换的优缺点
LS路由算法与DV路由算法的比较
徐雄博20050830226信息安全2班
摘要:
当一个分组要从源主机带目的主机时,网络层必须确定从发送方到接受方的分组所采用的路径。
选路算法的目的就是给定一组路由器以及连接路由器的链路,选路算法要找到一条从源路由器到目的路由器的“好”的路径,即具有最低费用的路径。
根据算法是全局性的还是分布式的,选路算法可分为两种:
具有全局状态信息的链路状态算法(linkstatealgorithm,LS)以及分散式的选路算法距离向量算法(distance-vector,DV)。
本文将通过对这两种算法的比较来找出两个算法在不同的情况下,每种算法的适应环境。
关键词:
路由算法;RIP路由协议;OSPF路由协议;LS路由算法;DV路由算法
Abstraction:
Whenapacketwanttoroundfromsourcehosttodestinationhost,thenetworklayermustnonethelessdeterminethepaththatpacketstakefromsenderstoreceivers.Thepurposeofaroutingalgorithmisthatgivenasetofrouters,withlinksconnectingtherouter,aroutingalgorithmfindsa“good”pathfromsourceroutertodestinationrouter.Typically,agoodpathisonethathastheleastcost.Accordingtowhetherthealgorithmsareglobalordecentralized,theroutingalgorithmcanbeclassifiedintotwotypes:
algorithmswithglobalstateinformationareoftenreferredtoaslink-state(LS)algorithms,andthedecentralizedroutingalgorithmcalledadistance-vector(DV)algorithm.Throughthispassagewewillfindtheenvironmentwhichsuitseachalgorithmmost.
Keywords:
routingalgorithm,RIP,OSPF,LS,DV
1.概述
随着社会的发展,计算机技术已经越来越普及。
不同的网络层提供的不管是数据服务还是虚电路服务,网络层都必须确定为从发送方到接受方的分组所采用的路径。
我们看到选路的工作是从发送方到接受方通过路由器的网络决定的好路径。
选路算法的目的是简单的,即给定一组路由器以及连接路由器的链路,选路算法要找到一条从源路由器到目的路由器的“好”的路径,。
通常一条好的路径指具有最低费用的路径。
对选路算法分类的一种方法是根据该算是全局性的还是分散式的可分为全局选路算法(globalroutingalgorithm)和分散式选路算法(decentralizedroutingalgorithm)[1]。
而根据这两个路由选路算法,历史上曾有两个选路协议曾被广泛用于Internet上自治系统内的选路:
选路信息协议(RoutingInformationProtocol,RIP)与开放最短路径优先(OpenShortestPathFirst,OSPF)[2]。
2.路由算法
路由算法在路由协议中起着至关重要的作用,采用何种算法往往决定了最终的寻径结果,因此选择路由算法一定要仔细。
通常需要综合考虑以下几个设计目标:
——
(1)最优化:
指路由算法选择最佳路径的能力。
——
(2)简洁性:
算法设计简洁,利用最少的软件和开销,提供最有效的功能。
——(3)坚固性:
路由算法处于非正常或不可预料的环境时,如硬件故障、负载过高或操作失误时,都能正确运行。
由于路由器分布在网络联接点上,所以在它们出故障时会产生严重后果。
最好的路由器算法通常能经受时间的考验,并在各种网络环境下被证实是可靠的。
——(4)快速收敛:
收敛是在最佳路径的判断上所有路由器达到一致的过程。
当某个网络事件引起路由可用或不可用时,路由器就发出更新信息。
路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。
收敛慢的路由算法会造成路径循环或网络中断。
——(5)灵活性:
路由算法可以快速、准确地适应各种网络环境。
例如,某个网段发生故障,路由算法要能很快发现故障,并为使用该网段的所有路由选择另一条最佳路径。
路由算法按照种类可分为以下几种:
静态和动态、单路和多路、平等和分级、源路由和透明路由、域内和域间、链路状态和距离向量。
前面几种的特点与字面意思基本一致,下面着重介绍链路状态和距离向量算法[3]。
3.链路状态算法(linkstatealgorithm,LS)
链路状态算法(也称最短路径算法)发送路由信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分。
链路-状态路由选择算法的基本思想很简单,可以分成以下五个部分叙述:
⑴ 每个节点必须找出它的所有邻居
当一个节点启动后,通过在每一条点到点的链路上发送一个特殊的HELLO报文,并通过链路另一端的节点发送一个应答报文告诉它自己是谁。
⑵ 每个节点测量到它的每个邻居的时延或其他参数
链路-状态路由选择算法要求每个节点都知道到它的每个邻居的时延。
测量这种时延的最直接的方法是在它们之间的链路上发送一个特殊的ECHO响应报文,并且要求对方收到后立即再将其发送回来。
将测量得到的来回时间除以2,即可得到一个比较合理的估计。
为了得到更准确的结果,可以将测试重复多次,取平均值。
⑶ 建立链路-状态报文
收集齐了用于交换的信息后,下一步就为每一个节点建立一个包含所有数据的报文。
报文以发送者的标识符开始,随后为顺序号以及它的所有邻居的列表。
对于每一个邻居,给出到此邻居的时延。
建立链路-状态报文很容易,困难是决定何时建立它们。
一种可行的方法是每隔一段规律的时间间隔周期性地建立它们。
另一种可行的方法是当节点检测到了某些重要事件的发生时建立它们。
例如,一条链路或一个邻居崩溃或恢复时,建立它们。
⑷ 分发链路-状态报文
基本的分发算法是使用顺序号的洪泛法。
这种分发算法由于循环使用顺序号、某个节点曾经崩溃或某个顺序号曾经被误用过等原因,可能会使不同的节点使用不同版本的拓扑结构,这将导致不稳定、循环、到达不了目的机器及其他问题。
为了防止这类错误的发生,需要在每个报文中包含一个年龄域,年龄每秒减1,当年龄减到0时,丢弃此报文。
⑸ 计算新路由
一旦一个节点收集齐了所有来自于其他节点的链路-状态报文,它就可以据此构造完整的网络拓扑结构图,然后使用Dijkstra算法在本地构造到所有可能的目的地的最短通路。
链路-状态路由选择算法具有各节点独立计算最短通路、能够快速适应网络变化、交换的路由信息少等优点,但相对于距离向量路由选择算法,它较复杂、难以实现[4]。
4.距离向量路由选择算法(Distance Vector,DV)
各节点周期性地向所有相邻节点发送路由刷新报文,报文由一组(V,D)有序数据对组成,V表示该节点可以到达的节点,D表示到达该节点的距离(跳数)。
收到路由刷新报文的节点重新计算和修改它的路由表。
距离向量路由算法具有简单,易于实现的优点。
但它不适用于路由剧烈变化的或大型的网络环境。
因为某个节点的路由变化像波动一样从相邻节点传播出去,其过程是非常缓慢的,称之为“慢收敛”。
因此,在距离向量路由选择算法的路由刷新过程中,可能会出现路由不一致问题。
距离向量路由选择算法的另一个缺陷是它需要大量的信息交换,但很多都可能是与当前路由刷新无关的[4]。
5.LS与DV的比较
本文复杂性、收敛速度和健壮性从三个方面进行比较。
1.报文复杂性。
LS算法要求每个节点知道网络中每条链路的费用。
这就要求要发送O(|N||E|)个报文。
而且无论何时一条链路的费用改变,必须向所有节点发送新的链路费用。
DV算法要求在每次迭代时,在两个直接相连邻居之间交换报文。
当链路费用改变时,DV算法仅当在新的链路费用导致与该链路相连节点的最低费用路径发生改变时,才传播已改变的链路费用。
2.收敛速度。
LS算法的实现是一个要求O(|N||E|)个报文的
算法。
DV算法收敛较慢。
且在收敛时会遇到选路环路。
3.健壮性。
LS算法下,路由计算是有些是孤立的,提供了一定程度的健壮性。
DV算法中一个不正确的节点计算值会扩展到整个网络。
6.路由协议
根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP,InternalGatewayProtocol)和外部网关协议(EGP,ExternalGatewayProtocol)。
常用路由协议比较见表1[5]。
表1.常用路由协议比较
(1)路由信息协议(RIP,RoutingInformationProtoco)
RIP用更新(UNPDATES)和请求(REOUESTS)两种分组传输路由信息。
更新信息用于广播路由表,其中每一项由两部分组成:
局域网上能达到的IP地址和与该网络的距离。
请求信息用于寻找网络上能发出RIP报文的其他设备。
RIP使用UDP作为它的传输协议,端口是520。
通过广播报文来交换路由信息,主要传递路由信息(路由表)来广播路由。
每隔30秒,广播一次路由表,维护相邻路由器的关系,同时根据收到的路由表计算自己的路由表。
在每30秒发送一次路由信息更新时。
RIP提供跳跃计数(hopcount)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的路由器的数目。
使用距离来决定最佳路径,如通过路由跳数来衡量。
到这个路由器具有最低跳数的路径是被选中的路径。
如果首选的路径不能正常工作,那么具有较高跳数的路径被作为备份。
除到达目的地的最佳路径外,任何其它信息均予以丢弃。
同时路由器也把所收集的路由信息用RIP协议通知相邻的其它路由器。
这样,正确的路由信息逐渐扩散到了全网[6]。
其优点是:
它简单、可靠,便于配置,障碍修复非常容易。
其缺点是:
①.没有子网地址的概念,无法区分子网号;RIP协议的原始版本不能应用可变长子网屏蔽(VLSM,VariableLengthSubnetMasks),因此不能分割地址空间以最大效率地应用有限的IP地址。
②.路由度量忽略了吞吐率、往返时间、可靠性、实际距离、通信延迟、网络速度及带宽等一些应该考虑的因素或性能。
如果到相同目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。
RIP协议的另一个基本问题是,当选择路径时它忽略了连接速度问题。
例如,如果一条由所有快速以太网连接组成的路径比包含一个10Mbps以太网连接的路径远一个跳数,具有较慢10Mbps以太网连接的路径将被选定作为最佳路径。
③.支持网络大小有限,只适用于小型网络。
RIP最多支持的跳数为15,即在源和目的网间所要经过的最多路由器的数目为15,跳数16表示不可达。
假定如果从网络的一个终端到另一个终端的路由跳超过15个,那么就认为一定牵涉到了循环。
因此当一个路径达到16跳,将被认为是达不到的。
对于规模较大的网络,或具有多余路径的网络,应该考虑使用其它路由协议。
④.而且RIP每隔30秒一次的路由信息广播也是造成网络的广播风暴的重要原因之一。
于1993年,RIP2是在RFC1388中对RIP定义进行完善扩充而产生的第二版本,它支持IPv6(InternetProtocolVersion6)规范的128位地址;通过引入子网屏蔽与每一路由广播信息一起使用实现了对可变长子网掩码(VLSM,VariableLengthSubnetMasks)的支持;除广播外还增加了多播功能,可以减少不收听报文的主机负载;提供简单的鉴别机制以及路由汇总功能。
在有多重路径到相同目标的网络中,RIP确定使用一条可选择的路径将花费许多时间。
在RIP协议认识到路径不能达到前,它被设为等待,直到它已错过6次更新,总共180秒时间。
然后,在使用新路径更新路由表前,它等待另一个可行路径的下一个信息的到来。
这意味着在备份路径被使用前至少经过了3分钟,这对于多数应用程序超时是相当长的时间[5]。
(2)开放式最短路优先路由信息协议(OSPF,OpenShortestPathFirst)
开放式最短路径优先协议(OSPF)是一种链路状态路由选择协议,链路是路由器接口的另一称法,因此也称为接口状态路由协议。
采用Dijkstra算法,路由选择的变化基于网络中路由器物理连接的状态与速度,并且变化被立即广播到网络中的每一个路由器。
它被用于单个自治系统来分发路由选择信息。
作为链接状态路由协议,OSPF与RIP和IGRP这些距离向量路由协议是不同的。
使用距离向量算法的路由器的工作模式是在路由更新信息中把路由表全部或部分发送给其相邻的路由器。
而OSPF用链路状态算法来计算在每个区域中到所有目的的最短路径时,只有当一个路由器第一次被激活或者任一个路由变化发生,这个配备给OSPF的路由器使用OSPF的“hello协议”来发现与它连接的邻节点,将链路状态通告(LSA,LinkStateAdvertisement)扩散到同一级区域内所有路由器,这些LSA包含这个路由器的接口的状态(包括与上、下、IP地址、网络类型筹)和路由器和它邻居间的联系,从这些LSA的收集中形成了链路状态数据库,在这个区域中的所有路由器都有一个特定的数据库,它由每个接口、对应邻节点和接口速度组成,被用来描述这个区域的拓扑结构。
这个路由器于是就运行Diskjtra算法,这个算法根据到达这个网络的费用计算规则,利用链路状态数据库在该区域中形成以自己为根到所有目的的最短路径优先树(SPF树),从这个最短路径优先树(SPF树)中形成了IP路由表。
如果网络中发主的任何改变都将会被链路状态包扩散出去,直到网络中的每个路由器收到了所有其它路由器的LSA,同时使路由器利用这些新信息,重新计算最短路径优先树(SPF树),形成新路由表。
OSPF是一种相对复杂的路由协议。
OSPF即不使用TCP,也不使用UDP作为它的传输协议,直接使用IP,在IP首部的协议(Protocol)字段,有其单独的值89。
它通过传递链路状态来得到网络信息,LSA每30分钟被交换一次,除非网络拓扑结构有变化。
例如,如果接口变化,信息立刻通过网络广播;如果有多余路径,收敛将重新计算SPF树。
计算SPF树所需的时间取决于网络规模的大小。
因为这些计算,路由器运行OSPF需要占用更多CPU资源[7]。
于1991年,在RFC1247中对第2版OSPF进行了描述,即OSPF2,也是第一次被标准化。
其优点是:
①.首先该协议是开放的,即其规范是公开的。
OSPF协议是"开放式最短路优先"的缩写。
"开放"是针对当时某些厂家的"私有"路由协议而言,而正是因为协议开放性,才使得OSPF具有强大的生命力和广泛的用途。
②.OSPF能服务于大型、异构网络。
③.OSPF可以对每个IP服务类型计算各自的路由集。
实现对于任何目的,可以有多个路由表表项,每个表项对应着一个IP服务类型。
④.给每个接口指派一个无维数的费用,可以通过吞吐率、往返时间、可靠性或其他性能来进行指派。
可以给每个IP服务类型指派一个单独的费用。
⑤.当对同一个目的地址存在着多个相同费用的路由时,可以平均分配流量。
实现流量平衡。
⑥.OSPF支持子网,子网掩码与每个通告路由相连。
允许将一个任何类型的IP地址分割成多个不同大小的子网(称之为变长度子网)。
到一个主机的路由是通过全1子网掩码进行通告,默认路由是以IP地址为0.0.0.0网络掩码为全0进行通告的。
⑦.路由器之间的点对点链路不需要每端都有一个IP地址,实现无编号网络。
节省IP地址资源。
⑧.采用一种简单鉴别机制。
可以采用类似于RIP2机制的方法指定一个明文口令。
⑨.OSPF采用多播,而不是广播形式,以减少不参与OSPF的系统负载[8]。
7.总结
路由算法使用了许多种不同的度量标准去决定最佳路径。
复杂的路由算法往往采用多种度量来选择路由,通过的加权运算,合并为单个的复合度量、填入路由表,作为寻径的标准。
通常所使用的度量有:
路径长度、可靠性、时延、带宽、负载、最大传输单元和通信成本等。
从本质上来说,链路状态算法将少量更新信息发送至网络各处,而距离向量算法发送大量更新信息至邻接路由器。
由于链路状态算法收敛更快,它在一定程度上比距离向量算法更不易产生路由循环。
但另一方面,链路状态算法要求比距离向量算法有更强的CPU能力和更多的内存空间。
但两种算法可以结合使用,互补不足。
参考文献
[1].JamesF.KuroseKeithW.Ross计算机网络——自顶向上方法与Internet特色(第三版).机械工业出版社.pp234~235
[2].JamesF.KuroseKeithW.Ross计算机网络——自顶向上方法与Internet特色(第三版).机械工业出版社.pp247
[3].路由器原理及路由算法[ES\OL]http:
//www.gd-emb.org/detail/id-32325.html2007-12-5
[4].动态路由算法[ES\OL]2007-11-29
[5].细说路由协议[ES\OL]2007-11-29
[6].C.L.Hendrick.RoutingInformationProtocol.RFC1058,June1988.http:
//www.rfc-editor.org/rfc/rfc1058.txt
[7].J.Moy.OSPFSpecification,RFC1131,October1989.http:
//www.faqs.org/ftp/rfc/rfc1131.pdf
[8].J.Moy,“OSPFVersion2,”RFC1247,July1991.http:
//www.faqs.org/rfcs/rfc1247.html
开放最短路径优先(OSPF)
2009-12-05
本文关键词:
网络技术OSPF路由协议
一、背景
OSPF是由IETF的IGP工作组为IP网开发的路由协议。
该工作组成立于1998年,专门设计用于因特网的基于最短路径优先(SPF)算法的IGP。
与IGRP类似,OSPF创建的原因是到了八十年代中期,RIP不能服务于大型、异构网络的缺陷愈发明显。
本文介绍OSPF的路由环境、基础的路由算法和基本的协议组件。
OSPF是由多个研究结果发展而来的,包括1978年为ARPANET开发的Bolt,Beranek,Newman(BBN)的SPF算法,Dr.RadiaPerlman对路由信息容错性广播的研究(1988),BBN在区域路由的工作(1986)和OSI的IS-IS路由协议的早期版本。
OSPF有两个主要的特性。
首先该协议是开放的,即其规范是公开的,公布的OSPF规范是RFC1247。
另一个基本的特性是OSPF基于SPF算法,该算法也称为Dijkstra算法,即以创建该算法的人来命名。
OSPF是个链接状态路由协议,在同一层的区域内与其它所有路由器交换链接状态公告(LSA)信息。
OSPF的LSA中包含连接的接口、使用的metric及其它的变量信息。
OSPF路由器积累链接状态信息,并使用SPF算法来计算到各节点的最短路径。
作为链接状态路由协议,OSPF与RIP和IGRP这些距离向量路由协议是不同的。
使用距离向量算法的路由器的工作模式是在路由更新信息中把路由表全部或部分发送给其相邻的路由器。
二、路由层次
与RIP不同,OSPF的工作是有层次的,其层次中最大的实体是自治系统(AS),即遵循共同的路由策略统一管理下的网络群。
虽然OSPF可以与其它AS中的路由器交换路由信息,但它们是一种AS内部(内部网关)路由协议。
一个AS可以分为多个区间,即一组连续的网络和相连的主机。
拥有多个接口的路由器可以加入多个区间,这些路由器称为区间边缘路由器,分别为每个区间保存其拓扑数据库。
拓扑数据库实际上是与路由器有关联的网络的总图,包含从同一区间所有路由器收到的LSA的集合。
因为同一区间内的路由器共享相同的信息,所以它们具有相同的拓扑数据库。
(术语域(domain)有时用于描述含有相同拓扑数据库的路由器组成的网络,通常与AS可互换。
)
区间的划分产生了两种不同类型的OSPF路由,区别在于源和目的是在相同的还是不同的区间,分别为区间内路由和跨区间路由。
OSPF主干负责在区间之间分发路由信息,包含所有的区间边缘路由器、非全部属于某区间的网络及其相连的路由器。
下图是一个分为若干区间的OSPF自治系统的例子。
上图中,路由器4、5、6、10、11和12构成了主干。
如果区间3中的主机H1要给区间2中的主机H2发送数据,则先发给路由器13,它转发给路由器12,再转给路由器11,路由器11再沿主干转发给路由器10,然后通过两个区间内路由器(9和7)到达主机H2。
主干本身也是个OSPF区间,所以所有的主干路由器与其它区间路由器一样,使用相同的过程和算法来维护主干内的路由信息,主干拓扑对所有的跨区间路由器都是可见的。
可以以非连续主干的形式来定义区间,这时,主干的连接必须通过虚拟链接来保持。
虚拟链接可以配置在任意共享非主干区间链接的路由器对之间,就象它们有直接链接一样工作。
运行OSPF的AS边缘路由器通过外部网关协议,如EGP或BGP,或通过配置信息来学习外部路由。
三、SPF算法
最短路径优先(SPF)路由算法是OSPF的基础。
当SPF路由器加点后,它就初始化路由协议数据结构,然后等待下层协议关于接口已可用的通知信息。
当路由器确认接口已准备好,就用OSPFHello协议来获取邻居信息,即具有在共同的网络上接口的路由器。
路由器向邻居发送Hello包并接收它们的Hello包。
除了帮助学习邻居外,Hello包也有keep-alive的功能。
在多重访问网络(支持多于两个路由器的网络)中,Hello协议选出一个“指派路由器”和一个备份指派路由器。
指派路由器负责为整个多重访问网络生成LSA,它可以减少网络通信量和拓扑数据库的大小。
当两个相邻路由器的链接状态数据库同步后,就称为“邻接”。
在多重访问网络中,指派路由器决定哪些路由器应该相邻接,拓扑数据库在邻接路由器对间进行同步。
邻接控制路由协议分组的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路由 算法 比较 电路 交换 优缺点