LS和DV路由协议的分析与比较
摘要:路由器是网络间的连接设备,它重要工作之一是路径选择。这个功能是路由器智能的核心,它是由管理员的配置和一系列的路由算法实现的。路由算法可分为distance vector(DV)algorithm和link_state(LS)algorithms两种【4】。本文主要对LS和DV路由协议进行比较和分析,并对采用该算法的OSPF和RIP协议做些简略比较。关键字:LS算法 DV算法 OSRF路由协议 RIP路由协议
1 路由算法分类
路由算法有动静之分,静态路由是一种特殊的路由,它是由管理员手工设定的。手工配置所有的路由虽然可以使网络正常运转,但是也会带来一些局限性。网络拓扑发生变化之后,静态路由不会自动改变,必须有网络管理员的介入。缺省路由是静态路由的一种,也是由管理员设置的。在没有找到目标网络的路由表项时,路由器将信息发送到缺省路由器(gateway of last resort)。而动态的算法,顾名思义,是由路由器自动计算出的路由,常说的RIP、OSPF等等都是动态算法的典型代表。
根据算法是全局的,还是分散的。路由算法又可分为全局路由算法(gobal routing algorith.)和分散的路由算法(decentralized routing algorithms)【1】((1)全局路由算法(gobal routing algorith.)全程路由算法要求每一个节点都必须获悉网络中所有连接情况以及每条链路的信息——权值、花费。通常情况下,全局路由算法是指链路状态算法LS(link_state algorithms),在这种算法中,初始输入值必须包括网络中所有链路的信息。(2)分散的路由算法(decentralized routing algorithms)采用分散路由算法的每个路由仅仅知道与它相连的链路的信息——权值、花费,而不是像全程路由算法那样,每个节点都必须获悉网络中的所有的连接情况以及每条链路的权值。通常情况下,分散的路由算法是指距离矢量算法DV(distance vector algorithm)。【1】
RIP是DV类算法的典型代表,而OSPF是LS的代表协议。
2 LS和DV算法介绍
那先让我们了解下什么是LS算法?该算法于1979年出现在ARPAnet上,作为一种用来取代DVR的动态路由选择算法,得到了广泛的应用。它通过主动测试邻接节点的状态;定期地将相邻节点的状态信息传送给所有节点;每个节点都有完整的网络拓扑信息,然后计算到每个节点的最佳路径。该方法也叫最短路径优先(shortest path first),简称SPF算法。使用该算法选路时存在震荡【3】【4】。
那什么是DV算法?DV(distance vector routing)算法是现代计算机网络两个最常使用的动态路由选择算法之一。ARPAnet,DECnet,Novell的IPX以及Internet的一种内部网关协议(IGP,Interior Gateway Protocol)RIP(Route Information Protocol)都使用了距离矢量路由选择算法;Cisco则开发了一种改进的协议,叫作IGRP(Interior Gateway Routing Protocol)。每个节点都定期地将它们的路由表传送给所有相邻节点,这里的路由表所包含的内容有:每条路径的目的地址——矢量;本节点到该目的地址的代价——距离;每个节点根据收到的相邻节点的路由信息更新自己的路由表。它主要的问题如下:1寻路环(routing loops);2慢收敛(slow convergence);3无穷计算(count to infinity):;4它对好消息的反应迅速,但对坏消息却反应迟钝。可以通过一种叫做毒性逆转(poisoned reverse)的技术或水平分割(split horizon)算法而避免。
3 LS算法和DV算法的分析与比较
LS算法和DV算法,这两种算法各有特点,分述如下。
1)工作原理的不同。LS算法中,网络拓扑和所有的链路费用都是已知的,也就是说可用来做LS算法的输入。在实践中,这是通过让每个节点向网络中所有其他路由器广播状态分组来完成,其中每个链路分组包含它所连接的链路的特征和费用,这经常用链路广播算法【2】来完成。节点广播的结果是所有节点具有了该网络的同一个以及完整的视图。于是每个节点都可像其他节点一样,运行LS算法并计算相同的最低费用路径集。在此算法中,每个节点经广播于所有其他节点交谈。DV算法中,每个节点仅与他的直接邻居交谈,但它为他的邻居提供了从其自己到网络中所有其他节点的最低费用。DV算法要求每个路由器都要向其他邻接的路由器发布一个距离向量,距离向量是该路由器到其他已知的各网络的相对距离。通告内容基本上是告诉其邻接的路由器:你可以通过我到达网络X,距离是Y。从本地路由器到X的有效距离等于该路由器从各邻接路由器接收到的最短距离,再加上他与该邻接路由器之间的链路距离。
2)算法结构不同。显然LS算法是一种全局信息的算法,而DV算法是一种迭代的,异步的和分布式的算法。说它是分布式的,是因为每个节点都要从一个或多个直接相连邻居接受某些信息,执行计算,然后将计算结果发回给邻居。说它是迭代的,是因为此过程一直要持续到邻居之间没有更多要交换的信息为之。说该算法是异步的,是因为他不要求所有节点相互之间锁步,即步伐一致的工作。
3)时间复杂性。考虑LS算法,即给定n个节点,考虑最坏情况下需要经多少次计算才能找到从源节点到所目的节点的最低费用呢。在第一次迭代时,我们需要搜索所有的n个节点已确定出节点w,w不在N’中且具有最低费用。第二次我们需要检查所有的n-1个节点已确定最低费用,第三次,需要检查n-2个节点,依此类推。因此,我们在所有迭代中需检索n+(n-1)+(n-2)+…+1=n(n+1)/2个节点。所以我们可以得出LS算法在最差情况下的时间复杂度为n的平方阶【1】。考虑DV算法,它存在对好消息的反应迅速,但对坏消息却反应迟钝。特别是对坏消息存在计数无穷大问题。当链路的权值变化很大时,它的时间复杂性也就很难确定了。
4)报文复杂性。LS算法要求每个节点知道网络中每条链路的费用。这就要发送○(|N||E|)个报文。DV算法要求在每次迭代时,在两个直接相连的邻居之间交换报文。在链路费用改变时,DV算法仅当在新费用导致与该链路相连节点的最低费用路径发生改变时,才传播以改变的链路费用。
5)收敛速度。收敛是路由算法选择时所遇到的一个重要问题。收敛时间是指从网络的拓扑结构发生变化到网络上所有的相关路由器都得知这一变化,并且相应地做出改变所需要的时间。这一时间越短,网络变化对全网的扰动就越小。收敛时间过长会导致路由循环的出现。LS在直接相连的路由之间维护正常的邻居关系。这允许路由更快收敛。链路状态路由协议在会话期间通过交换Hello包(也叫链路状态信息)创建对等关系,这种关系加速了路由的收敛。而DV算法收敛较慢,且在收敛过程中会遇到选路环路。DV算法还会遭到计数无穷大的问题。
6)跳数的限制。DV使用跳数或向量来确定从一个设备到另一个设备的距离。不考虑每跳链路的速率。LS没有跳数的限制,使用“图形理论”算法或最短路径优先算法。
7)路由表的更新。DV算法根据相邻节点的路由信息更新自己的路由表。LS算法,每个节点都有一个全局的拓扑结构,根据此拓扑结构计算路由表。不像DV那样,更新时发送整个路由表。DV的这种特性随着路由表的增大,需要消耗更多的CPU资源,并消耗了内存。LS只广播更新的或改变的网络拓扑,这使得更新信息更小,节省了带宽和CPU利用率。另外,如果网络不发生变化,更新包只在特定的时间内发出(通常为30min到2h)【5】。
8)健壮性。如果一台路由器发生故障,行为错乱或受到破坏时情况会怎样呢?对于LS算法,路由器能够像其连接的的一条链路广播不正确费用。一个节点也可损坏或丢弃他收到的任何LS广播分组作为LS广播的一部分。但是一个LS节点仅计算自己的转发表:其他节点为自己做类似的计算。这就意味这在LS算法下,路由计算是有些孤立的,提供了一定程度的健壮性。在DV算法下,一个节点可向任意或所有的目的节点通告其不正确的最低费用路径。DV算法中一个不正确的节点计算值会扩散到整个网络。
9)可扩展性。DV算法可扩展性差。相对而言,LS算法可扩展性好,可靠。
10)环路。尽管最基本的DV协议描述和实现起来非常简单,但是会导致网络中的最短通路树在短时间内出现环路。一个基于DV的网络路由可能需要花费几十秒到几分钟才能汇聚到一个无环路的拓扑。如果本地路由器对于本地链路以外的网络属性只能掌握一些二手的,已被解释过的信息,那么在任何一种这样的方案中低速汇聚都是一种跟本的局限性。LS协议,虽然与DV协议相比较,即便是对于最基本的形式,它的描述和实现都是很复杂的,但它有一个优点,当链路状态发生变化时,在变化的信息传播到网络中以后,我们立即就可以得到不存在环路的最短通路树。
4 RIP路由协议
4.1 RIP路由协议的介绍
RIP(Routing Information Protocols,路由信息协议)是使用最广泛的DV(距离向量)协议,它是由施乐(Xerox)在70年代开发的。当时,RIP是XNS(Xerox Network Service,施乐网络服务)协议簇的一部分。TCP/IP版本的RIP是施乐协议的改进版。RIP最大的特点是,无论实现原理还是配置方法,都非常简单。RIP基于跳数【6】计算路由,并且定期向邻居路由器发送更新消息。当使用RIP时,一台Cisco路由器可以与其他厂商的路由器连接。
RIP使用UDP数据包更新路由信息。路由器每隔30s更新一次路由信息,如果在180s内没有收到相邻路由器的回应,则认为去往该路由器的路由不可用,该路由器不可到达。如果在240s后仍未收到该路由器的应答,则把有关该路由器的路由信息从路由表中删除。
RIP主要设计来利用同类技术与大小适度的网络一起工作,因此通过速度变化不大的接线连接。RIP 比较适用于简单的校园网和区域网,不适于复杂网络的情况。
RIP有两个版本:RIPv1和RIPv2,它们均基于经典的距离向量路由算法,最大跳数为15跳。
RIP版本1:RIPv1是族类路由(Classful Routing)协议,因路由上不包括掩码信息,所以网络上的所有设备必须使用相同的子网掩码,不支持VLSM。需消耗广域网带宽,消耗CPU、内存资源。
RIP版本2:RIPv2可发送子网掩码信息,是非族类路由(Classless Routing)协议,支持VLSM。
4.2 RIP路由协议的分析
RIP协议使用矢量距离算法在网关和主机中传播路由信息,其最大的优点就是简单。RIP通过限制从源地址到目的地址路径上的跳数,有效防止了路由选择循环的无限延续,从而保证了网络的稳定性。然而随着Internet规模的不断扩大,RIP协议的缺点就更加严重。首先就是RIP限制了网络的规模,它能使用的最大距离为15(16为不可达);其次路由器之间交换的完整路由信息开销太大。最后,“坏消息传播得慢”,使许多更新过程的收敛时间过长。它适用于网络拓扑结构相对简单且数据链路故障率极低的小型网络中,在大型网络中,一般不使用RIP。
RIP具有以下特点:
1)不同厂商的路由器可以通过RIP互联
2)配置简单, 适用于小型网络(小于15跳)
3)RIPv1不支持VLSM
4)需消耗广域网带宽
5)需消耗CPU、内存资源
5 OSPF协议
5.1 OSPF协议的介绍
OSPF协议是80年代后期开发的,90年代初成为工业标准,是一种典型的LS(链路状态)协议。OSPF的主要特性包括:支持VLSM(变长的子网掩吗)、收敛迅速、带宽占用率低等等。OSPF协议在邻居之间交换链路状态信息,以便路由器建立链路状态数据库(LSD),之后,路由器根据数据库中的信息利用SPF(Shortest Path First,最短路径优先)算法计算路由表,选择路径的主要依据是带宽。
OSPF(Open Shortest Path First,OSPF)【7】协议是一种为IP网络开发的内部网关路由选择协议,由IETF开发并推荐使用。OSPF协议由三个子协议组成:Hello协议、交换协议和扩散协议。其中Hello协议负责检查链路是否可用,并完成指定路由器及备份指定路由器;交换协议完成“主”、“从”路由器的指定并交换各自的路由数据库信息;扩散协议完成各路由器中路由数据库的同步维护
OSPF-分组首部格式
版本 类型 报文长度
源路由器IP地址
区域ID
检验和 身份验证类型
身份验证
OSPF ,采用链路状态路由选择技术,开放最短路径优先算法。路由器互相发送直接相连的链路信息和它拥有的到其它路由器的链路信息。每个OSPF路由器维护相同自治系统拓扑结构的数据库。从这个数据库里,构造出最短路径树来计算出路由表。当拓扑结构发生变化时,OSPF 能迅速重新计算出路径,而只产生少量的路由协议流量。此外,所有OSPF 路由选择协议的交换都是经过身份验证的。
5.2 OSPF路由协议的分析
OSPF被认为是RIP的的后继者,并且有许多先进性优点。
OSPF协议具有以下优点:
(1)OSPF是真正的LOOP- FREE(无路由自环)路由协议。源自其算法本身的优点。(链路状态及最短路径树算法)
(2)OSPF收敛速度快:能够在最短的时间内将路由变化传递到整个自治系统。
(3)提出区域(area)划分的概念,将自治系统划分为不同区域后,通过区域之间的对路由信息的摘要,大大减少了需传递的路由信息数量。也使得路由信息不会随网络规模的扩大而急剧膨胀。
(4)将协议自身的开销控制到最小。见下:
1)用于发现和维护邻居关系的是定期发送的是不含路由信息的hello报文,非常短小。包含路由信息的报文时是触发更新的机制。(有路由变化时才会发送)。但为了增强协议的健壮性,每1800秒全部重发一次。
2)在广播网络中,使用组播地址(而非广播)发送报文,减少对其它不运行ospf 的网络设备的干扰。
3)在各类可以多址访问的网络中(广播,NBMA),通过选举DR,使同网段的路由器之间的路由交换(同步)次数由 O(N*N)次减少为 O (N)次。
4)提出STUB区域的概念,使得STUB区域内不再传播引入的ASE路由。
5)在ABR(区域边界路由器)上支持路由聚合,进一步减少区域间的路由信息传递。
6)在点到点接口类型中,通过配置按需播号属性(OSPF over On Demand Circuits),使得ospf不再定时发送hello报文及定期更新路由信息。只在网络拓扑真正变化时才发送更新信息。
(5)通过严格划分路由的级别(共分四极),提供更可信的路由选择。
(6)良好的安全性,OSPF支持基于接口的明文及md5 验证。
(7)OSPF适应各种规模的网络,最多可达数千台。
6 总结
总之,没有一种算法是绝对的赢家。LS,DV每种算法都有他自己的长处和局限性。但它们都被因特网广泛使用。RIP是DV类算法的典型代表,而OSPF是LS的代表协议。它们也有各自的优缺点。OSPF被认为是RIP的的后继者,因此较RIP有更多先进性优点。通过这次的分析与比较,是我更清楚明了了路由协议的工作原理及其优缺点,更有助于对路由协议的掌握。
参考文献:
【1】James F.Kurose Keith W.Ross,计算机网络--自顶向下与Internet特色[M]北京:高等教育出版社,2005:353-366
【2】R.Perlman,Interconnections:Bridges,Routers,Switches,and Internetworking Protocols,2nd ed..,Addison-Wesley Professional Computiong Series,Reading,[MA]1999
【3】侯越先,自适应随机化链路状态路由算法[D]中兴通讯股份有限公司技术中心研究部,2001
【4】 A.S.Tanenbaum,Computer Networks 3rd ed.(影印本)[M] 北京:清华大学出版社, 1997.
【5】范永清,常用路由协议的分析及比较[EB/OL]http://www.wgjz.com/network/protocol/20070911/174130.html,2007-12-11
【6】C.L.Hendrick,“Routing Information Protocol,”RFC 1058,June 1988 http://www.rfc-editor.org/rfc/rfc1058.txt
【7】J.Moy,“OSPF Version 2”,RFC 2328,Apr.1998. http://www.rfc-editor.org/rfc/rfc2328.txt