对路由算法的讨论电气学院自动化1313金莉萍131001260305摘要:路由算法是提高路由协议功能,尽量减少路由时所带来开销的算法。路由算法在路由协议中起着至关重要的作用,采用何种算法往往决定了最终寻径结果。本文就对各路由算法在不同模型下,综合对比它们路径选择的差异以展开研究讨论。关键词:路由算法差异不同模式研究讨论随着科学技术的飞速发展,不仅传统业务流量大大增加,而且出现了许多新业务,如语音、数据和多媒体应用等对网络传输质量的要求差别很大,关于IP网络相关问题变得日益尖锐,特别是宽带业务,对网络性能加转发速度、流量控制以及网络的可扩展性等提出了较高的要求、随着主干网链路传输速度的不断提高,IP网络中节点上的包转发成了网络的瓶颈,在不断地需求下,人们提出了新的高效的路由算法,这种算法是通过提高网络的调节和控制功能使流量分布更加合理,以达到尽可能减少网络阻塞、最小的网络代价、分布的网络负载等目标。路由算法,又名选路算法,可以根据多个特性来加以区分。实现路由算法的软件必须运行在物理资源有限的计算机上时高效尤其重要。路由算法必须健壮,即在出现不正常或不可预见事件的情况下必须仍能正常处理,例如硬件故障、高负载和不正确的实现。因为路由器位于网络的连接点,当它们失效时会产生重大的问题。最好的路由算法通常是那些经过了时间考验,证实在各种网络条件下都很稳定的算法。就我看来,一个理想的路由算法应该在计算上应简单。路由选择的计算不应使网络通信量增加太多的额外开销。算法应具有稳定性。在网络通信量和网络拓扑结构相对稳定的情况下,路由算法应收敛于一个可以接受的解,而不应使得出的路由不停的变化。算法必须是正确的和完整的。这里,“正确”的含义是指沿着各路由表所指引的路由,分组一定能够最终到达目的网络和目的主机。算法应能适应通信量和网络拓扑的变化,这就是说要有自适应性。当网络中的通信量发生变化时,算法能自适应的改变路由以均衡个链路的负载。等某个或某些节点、链路发生故障不能工作,或者修理好了再投入运行时,算法也能及时的改变路由。有时称这种自适应性为“稳健性”。算法应是最佳的。路由选择算法应当能够找出最好的路由,使得分组平均延时最小而网络的吞吐量最大。我们希望得到“最佳”的算法,但这并不是最重要的。对于某些网络,网络的可靠性有时要比最小的分组平均延时或最大吞吐量更加重要。因此,所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。一个实际的路由选择算法,应尽可能接近于理想算法。在不同的应用条件下对以上提出的六个方面也可有不同的侧重。所以,路由是个非常复杂的问题,因为它是网络中的所有结点共同协调工作的结果。路由算法应是公平的。路由选择算法应对所有用户(除了少数优先级高的用户)都是平等的。例如,若仅仅使某一对用户的端到端时延为最小,但却不考虑其他的广大用户,这就明显的不符合公平性的要求。路由算法的核心是路由选择算法,常见的路由选择算法有最短路径法、扩散法、基于流量的路由选择、距离向量路由选择、链路状态路由选择、分级路由选择、移动主机的路由选择、组播路由选择、广播路由选择。这种算法是个非常复杂的问题,因为它是网络中的所有节点共同协调工作的结果。其次,路由选择的环境往往是不断变化的,而这种变化有时无法事先知道,例如,网络中出现了某些故障。此外,当网络发生拥塞时,就特别需要有能缓解这种拥塞的路由选择策略,但恰好在这种条件下,很难从网络中的各结点获得所需的路由选择信息。然而,倘若从路由算法能否随网络的通信量或拓扑自适应的进行调整变化来划分,则只有两大类,即静态路由选择策略与动态路由选择策略。静态路由算法很难算得上是算法,只不过是开始路由前由网管建立的表映射。这些映射自身并不改变,除非网管去改动。使用静态路由的算法较容易设计,在网络通信可预测及简单的网络中工作得很好。静态路由也叫做非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。对于很简单的小网络,完全可以采用静态路由选择,用人工配置每一条路由。由于静态路由系统不能对网络改变做出反映,通常被认为不适用于的大型、易变的网络。在之前,主要的路由算法都是动态路由算法,通过分析收到的路由更新信息来适应网络环境的改变。如果信息表示网络发生了变化,路由软件就重新计算路由并发出新的路由更新信息。这些信息渗入网络,促使路由器重新计算并对路由表做相应的改变。动态路由选择也叫做自适应路由选择,其特点是能较好的适应网络状态的变化,但实现起来较为复杂,开销也比较大。因此,动态路由选择适用于较复杂的大网络。动态路由算法可以在适当的地方以静态路由作为补充。例如,最后可选路由,作为所有不可路由分组的去路,保证了所有的数据至少有方法处理。关于路由器如何收集网络的结构信息以及对之进行分析来确定最佳路由,有两种主要的路由算法:总体式路由算法和分散式路由算法。采用分散式路由算法时,每个路由器只有与它直接相连的路由器的信息,而没有网络中的每个路由器的信息,这些算法被称为DV算法。DV算法也称为Bellman-Ford算法,是要求每个路由器发送其路由表全部或部分信息,但仅发送到邻近结点上。而采用总体式路由算法时,每个路由器都拥有网络中所有其他路由器的全部信息以及网络的流量状态,这些算法被称为LS算法。LS算法也称为最短路径算法,其发送路由信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分,因此,从本质上来说IS算法到处发送较少的更新信息,而DV算法只向相邻的路由器发送较多的更新信息。由于LS算法收敛更快,因此它在一定程度上比DV算法更不易产生路由循环。但另一方面,LS算法要求比距离向量算法有更强的CPU能力和更多的内存空间,因此LS算法将会在实现时显得更昂贵一些。另外,路由算法使用了许多种不同的度量标准去决定最佳路径。复杂的路由算法可能采用多种度量来选择路由,通过一定的加权运算,将它们合并为单个的复合度量、再填入路由表中,作为寻径的标准。通常所使用的度量有:路径长度、可靠性、时延、带宽、负载、通信成本等。路径长度是最常用的路由metric。一些路由协议允许网管给每个网络链接人工赋以代价值,这种情况下,路由长度是所经过各个链接的代价总和。其它路由协议定义了跳数,即分组在从源到目的的路途中必须经过的网络产品,如路由器的个数。可靠性,在路由算法中指网络链接的可依赖性,有些网络链接可能比其它的失效更多,网路失效后,一些网络链接可能比其它的更易或更快修复。任何可靠性因素都可以在给可靠率赋值时计算在内,通常是由网管给网络链接赋以metric值。而路由延迟指分组从源通过网络到达目的所花时间。很多因素影响到延迟,包括中间的网络链接的带宽、经过的每个路由器的端口队列、所有中间网络链接的拥塞程度以及物理距离。因为延迟是多个重要变量的混合体,它是个比较常用且有效的metric。再者就是带宽,带宽指链接可用的流通容量。在其它所有条件都相等时,10Mbps的以太网链接比64kbps的专线更可取。虽然带宽是链接可获得的最大吞吐量,但是通过具有较大带宽的链接做路由不一定比经过较慢链接路由更好。例如,如果一条快速链路很忙,分组到达目的所花时间可能要更长。负载指网络资源,如路由器的繁忙程度。负载可以用很多方面计算,包括CPU使用情况和每秒处理分组数。持续地监视这些参数本身也是很耗费资源的。最后通信代价是另一种重要的metric,尤其是有一些公司可能关心运作费用甚于关心性能。即使线路延迟可能较长,他们也宁愿通过自己的线路发送数据而不采用昂贵的公用线路。随着网络技术的迅猛发展,路由算法的使用率越来越高,可扩展性越来越大,也越发受人关注,是人们今后网络生活的重要组成部分,也是当前网络开发领域研究探讨的重点,希望人们能够充分利用现有的网络结构去发挥路由算法的最大功效。参考文献:【1】赵问道,金士杰。CDN网络路由技术[J]。计算机应用研究,2003,8(1),80-82【2】赵问道,王娟。基于网络拓扑的CDN内容路由技术[J]。江南大学学报,自然科学版,2004,3(5),445-447