路由算法分类
计算机网络中的路由算法

计算机网络中的路由算法路由算法在计算机网络中起着关键的作用,它用于确定数据包在网络中的传输路径。
根据不同的网络拓扑和需求,有多种不同的路由算法被应用。
本文将介绍几种常见的路由算法。
1. 距离矢量算法(Distance Vector Algorithm)距离矢量算法是一种分布式的路由算法,每个节点在路由表中记录到达目的节点的距离向量。
节点之间通过交换距离向量信息来更新路由表,并且通过Bellman-Ford算法来计算最短路径。
该算法简单易实现,但是在大型网络中容易产生计数到无穷大的问题,即由于链路故障等原因产生的无限循环。
2. 链路状态算法(Link State Algorithm)链路状态算法是一种集中式的路由算法,每个节点都会收集与自身相连的链路状态信息,并通过最短路径算法(如Dijkstra算法)计算出到达其他节点的最短路径。
然后,每个节点都将自己的链路状态信息广播给所有其他节点,使得每个节点都有完整的网络拓扑和链路状态信息。
该算法需要节点之间频繁的广播和计算,但是能够保证收敛,即要么找到最短路径,要么不进行路由。
3. 路径向量算法(Path Vector Algorithm)路径向量算法可以看作是距离矢量算法和链路状态算法的结合,它通过回退进行路径检测和避免计数到无穷大的问题。
每个节点在路由表中记录到达目的节点的路径和向量信息,通过交换路径向量信息来更新路由表。
在计算最短路径时,路径向量算法使用类似链路状态算法的Dijkstra算法,但是在寻找路径时,会检查前面的节点是否已经在路径中出现,以避免产生环路。
4. 队列距离矢量算法(Queue Distance Vector Algorithm)队列距离矢量算法是距离矢量算法的一种改进算法,主要解决计数到无穷大问题。
该算法引入了队列和计数器,通过计数器和链路状态信息来确定数据包是否进入队列。
每个节点在路由表中记录到达目的节点的距离向量和队列的长度。
计算机网络网络层路由算法

计算机网络网络层路由算法网络层是计算机网络中的一个重要层次,负责提供节点之间的数据传输服务。
网络层的核心任务是进行路由选择,即根据不同的路由算法选择最佳的路径来传输数据包。
本文将介绍常见的几种网络层路由算法,并对其进行分析和比较。
1.静态路由算法静态路由算法是指路由表在网络建立之初静态地配置好,不会随着网络的变化而改变。
常见的静态路由算法有默认路由、固定路由和策略路由等。
静态路由算法的优点是简单易懂,配置方便,适用于网络规模不大且变动较少的场景。
但是缺点是无法适应网络拓扑的变化,不利于负载均衡和故障恢复。
2.距离向量路由算法距离向量路由算法是一种分布式路由算法,具有良好的自适应性和容错性。
每个节点只知道与其相邻节点的距离,通过交换距离向量表来实现路由选择。
常见的距离向量路由算法有RIP(Routing Information Protocol)和IGRP(Interior Gateway Routing Protocol)等。
距离向量路由算法的优点是实现简单,计算量小。
但是缺点是不能解决环路问题和计数到无穷问题,容易产生路由震荡。
3.链路状态路由算法链路状态路由算法是另一种分布式路由算法,采用全局信息来计算最佳路径。
每个节点需要发送链路状态信息给其他节点,并根据收到的信息构建全局拓扑图,再利用迪杰斯特拉算法等来计算最短路径。
常见的链路状态路由算法有OSPF(Open Shortest Path First)和IS-IS(Intermediate System to Intermediate System)等。
链路状态路由算法的优点是计算准确,能够解决路由环路和计数到无穷问题。
但是缺点是占用较大的计算和存储资源,并且对网络中的链路状态信息要求较高。
4.路径向量路由算法路径向量路由算法是一种结合链路状态和距离向量的路由算法。
每个节点维护到其他节点的路径向量表,并通过交换路径向量表来更新路由信息。
常见的路径向量路由算法有BGP(Border Gateway Protocol)等。
第6章路由算法总结

第6章路由算法总结路由算法是网络中的核心算法之一,它决定了数据包在网络中的传输路径。
路由算法的设计和优化对于网络的性能和稳定性具有重要影响。
在本章中,我们将总结一些常见的路由算法,并介绍它们的优缺点。
1.静态路由算法:静态路由算法是最简单的路由算法,它通过人工配置将目的地和下一跳地址映射起来。
静态路由算法的优点是简单、易于实现和维护,适用于小型网络。
然而,静态路由算法的缺点是无法适应网络拓扑的变化,对于大型和复杂网络不可行。
2.距离向量路由算法:距离向量路由算法是一种基于邻居节点交换信息的分布式算法。
每个节点维护一个路由表,其中包含到达各个目的地的距离和下一跳节点信息。
节点周期性地将路由表广播给邻居节点,并根据收到的更新信息更新自身路由表。
距离向量路由算法的优点是简单、分布式,适用于小型网络。
然而,它的缺点是收敛速度慢和计算复杂度高,容易出现路由环路和计数问题。
3.链路状态路由算法:链路状态路由算法是一种基于全局网络状态信息的算法。
每个节点通过发送链路状态信息到整个网络,使得每个节点都具有完整的网络拓扑信息。
节点根据收到的链路状态信息计算最短路径,并构建路由表。
链路状态路由算法的优点是收敛速度快、计算复杂度低和稳定性好。
然而,它的缺点是需要消耗大量的带宽和存储资源,并且对于网络规模较大的情况下,算法的效率会下降。
4.链路状态路由算法的改进算法:为了优化链路状态路由算法,人们提出了一些改进算法,如OSPF (开放式最短路径优先)、IS-IS(中间系统间路由)等。
这些算法使用了一些技术,如分层、区域划分和链路优化等,以提高算法的性能和可扩展性。
5.BGP(边界网关协议):BGP是用于互联网的一种路径向量路由协议。
它是一种自治系统之间的路由协议,用于实现互联网的路由选择。
BGP通过交换路由信息和策略来确定数据包的最佳路径。
BGP的优点是具有高度的灵活性和可配置性,可以根据策略调整路由。
然而,BGP的缺点是配置复杂和收敛速度较慢。
路由器转发算法带例题

路由器转发算法带例题路由器转发算法是指在计算机网络中,路由器根据接收到的数据包的目的地址,决定将数据包转发到哪个出口端口的算法。
它是网络中的关键技术之一,能够实现网络中数据的快速、准确传输。
常见的路由器转发算法有以下几种:1. 静态路由算法:静态路由算法是指管理员手动配置路由器的路由表,将目的地址与出口端口的对应关系预先设定好。
当路由器接收到数据包时,根据目的地址查找路由表,找到对应的出口端口进行转发。
例如,假设路由器的路由表如下:目的地址出口端口192.168.1.0 1192.168.2.0 2当路由器接收到一个目的地址为192.168.1.100的数据包时,根据路由表可以得知该数据包需要通过出口端口1进行转发。
2. 动态路由算法:动态路由算法是指路由器通过与相邻路由器交换路由信息,自动学习网络拓扑和最优路径,并更新自己的路由表。
常见的动态路由算法有距离矢量路由算法(Distance Vector Routing)和链路状态路由算法(Link State Routing)。
距离矢量路由算法中,路由器通过周期性地交换路由表信息,计算到达目的地址的最短路径。
每个路由器根据相邻路由器发送过来的路由表信息,更新自己的路由表。
链路状态路由算法中,路由器通过交换链路状态信息,计算网络中的最短路径树。
每个路由器根据收集到的链路状态信息,计算出到达目的地址的最短路径,并更新自己的路由表。
3. 自适应路由算法:自适应路由算法是指路由器根据网络拥塞情况和链路质量动态调整路由选择。
常见的自适应路由算法有最小带宽算法、最短延迟算法和最小负载算法等。
最小带宽算法中,路由器根据链路的带宽情况选择最大带宽的路径进行转发。
最短延迟算法中,路由器根据链路的延迟情况选择最短延迟的路径进行转发。
最小负载算法中,路由器根据链路的负载情况选择负载最小的路径进行转发。
总结起来,路由器转发算法根据不同的需求和网络情况,选择合适的算法来实现数据包的转发。
sdn路由算法

sdn路由算法
SDN(软件定义网络)的路由算法是一种基于软件的网络管理和控制方法,它将网络控制和数据转发功能分离,并使用集中式的控制器来管理网络中的所有交换设备。
SDN路由算法主要有以下几种:
1. 单路径路由算法:最常见的路由算法,通过确定单一的最佳路径将数据包从源节点发送到目标节点。
常用的单路径路由算法有最短路径算法、Bellman-Ford算法和Dijkstra算法等。
2. 多路径路由算法:在拓扑图中存在多条连接路径时,多路径路由算法可以同时利用这些路径,从而提高网络容量和性能。
常见的多路径路由算法有ECMP(等价多路径)和OSPF(开放最短路径优先)等。
3. 负载均衡路由算法:通过在网络中分配负载,将数据流量均衡地分发到多个路径上,从而避免单一路径过载的问题。
常用的负载均衡路由算法有随机路由、带宽感知路由和最短队列优先路由等。
4. 多组播路由算法:用于将组播数据从源节点发送到多个目标节点的路由算法。
常见的多组播路由算法有DVMRP(分布式组播路由协议)、PIM(组播协议独立模式)和CAMP(核心光网络依赖链路状态的自适应组播路由协议)等。
5. 安全路由算法:用于保护网络免受恶意攻击和未经授权的访问。
安全路由算法可以包括防火墙、访问控制列表(ACL)和
流量监测等技术,以保障网络的安全性和可靠性。
这些SDN路由算法可以根据网络的需求和拓扑结构选择合适的算法,以实现最佳的网络性能和效率。
计算机网络中的路由算法

计算机网络中的路由算法随着计算机网络技术的不断发展,网络规模不断扩大,对于数据交换的效率和可靠性的要求也越来越高。
在这种背景下,路由算法的设计和优化变得尤为重要。
本文将介绍计算机网络中常用的几种路由算法,并分析它们的优缺点。
1. 静态路由算法静态路由算法是最简单的一种路由算法。
它通过手动配置路由表,将每个目的网络对应的下一跳节点、距离等信息预先存储在路由表中,从而使路由选择过程变得简单、快速,并且不需要消耗网络带宽。
静态路由算法的优点是路由选择快速、可靠,而且不需要复杂的计算。
但是,它的缺点也非常明显,例如当网络的拓扑结构发生变化时,需要手动重新配置路由表,而且在网络规模较大时,手动配置路由表变得非常繁琐和耗时。
2. RIP路由算法RIP(Routing Information Protocol)是一种基于距离向量的路由算法。
它使用“距离”作为衡量网络拓扑的指标,计算到目的网络的距离。
具体而言,每个路由器都维护一个距离矩阵,其中存储着到其他网络的距离。
当一个路由器发现其他路由器发送的路由信息中包含更短的距离时,会更新自己的路由表,把更少的跳数作为最短路径。
RIP算法的优点是实现简单,算法运行效率高,并且可以自适应网络拓扑的变化。
但是,由于其基于距离向量的设计,每个节点只能获得本节点到距离最短的路径,无法感知全局网络拓扑,因此容易产生路由环路和路由震荡的问题。
3. OSPF路由算法OSPF(Open Shortest Path First)是一种基于链路状态的路由算法。
它使用“带宽”作为衡量网络拓扑的指标,通过广播链路上的信息,构建全网的拓扑图,并计算源节点到目的节点的最短路径。
与RIP算法不同,OSPF算法能够发现全局最短路径,并且可以通过配置不同的权重值来优化网络性能。
OSPF算法的优点是能够实现快速收敛,能够感知全局网络拓扑,并且能够根据网络环境的变化自动调整路由。
但是,由于其基于链路状态的设计,节点需要大量的内存和处理器资源来保存和处理链路状态,这就需要更高的硬件成本。
常见的路由算法

常见的路由算法常见的路由算法路由算法是指为了用于在互联网之类的分组通讯网络中的数据包进行寻址所使用的一种算法。
其目的是为了能够掌握网络拓扑结构,更有效的使用网络资源,提供更好的服务质量,在众多的路由算法中,下面列出了一些常见的。
1. 链路状态路由协议(Link State Routing Protocol)链路状态路由协议是一种以网络中所有的节点为基础的路由协议,它的特点是在所有节点之间建立并保持一个网络状态数据库,每个节点首先会发出一个链路状态数据包来描述自己知道的其他节点的相关信息,并通过该信息计算出一张最短路径树。
LSRP一般都有洪泛问题,产生洪泛的原因在于每个节点的发出的链路状态数据包要发到整个网络中,所以数据包会不断传播,产生大量网络流量。
常见的LSRP有OSPF等。
2. 距离向量路由协议(Distance Vector Routing Protocol)距离向量路由协议是一种以自身节点所连接的邻居节点的路由信息为基础的协议,每个节点只知道自己所连接的邻居节点的路由信息,而不知道整张网络的拓扑结构。
DVRP算法通过递归与相邻节点交换距离向量信息来分配最短路径,因此它能够在网络中改变路由波动时使整个路由表保持一致。
常见的DVRP有RIP等。
3. 混合路由协议(Hybrid Routing Protocol)混合路由协议是链路状态和距离向量路由协议的混合体,它采用链路状态路由协议的优点,建立了一张网络拓扑地图;同时又采用距离向量路由协议的算法对网络进行遍历,它使用距离向量路由协议的性质表明每个路由器只需要与它的成邻接的路由器通信,这样可以大大减小链路状态路由协议产生的洪泛问题。
4. 路由发现协议(Route Discovery Protocol)路由发现协议通常是物理网络发挥作用的协议。
当网路中有一个新的路由器被连接时,路由器会通过路由发现协议来发现新路由器,这样数据就可以经过新路由器并到达目的地。
路由选择算法分类

路由选择算法分类路由选择算法是指在计算机网络中,根据一定的策略选择最佳的路由路径,以实现数据包的传输。
根据不同的策略和算法,路由选择算法可分为静态路由选择算法和动态路由选择算法。
静态路由选择算法是指在网络中,路由器的路由表是静态配置的,不会根据网络拓扑的变化而自动更新。
常见的静态路由选择算法有默认路由、静态路由和策略路由等。
默认路由是指当路由表中找不到与目标地址匹配的路由条目时,将数据包发送到默认网关进行转发。
默认路由的配置简单,适用于规模较小的网络环境。
但是,由于所有数据包都经过默认网关,容易造成网络拥堵和单点故障。
静态路由是指管理员手动配置路由器的路由表。
管理员需要根据网络拓扑和流量情况,手动配置每个路由器的路由表,以确保数据包能够按照预期的路径进行转发。
静态路由的配置灵活,适用于稳定的网络环境。
但是,随着网络规模的增大,静态路由的配置工作量将会变得非常繁重,且不易应对网络拓扑的变化。
策略路由是指根据不同的策略选择最佳的路由路径。
策略路由可以基于源地址、目标地址、服务类型等多个因素进行路由选择。
管理员可以根据网络需求和优先级,通过配置策略路由来实现更灵活的路由选择。
策略路由的配置复杂,但可以根据实际需求灵活调整路由路径,提高网络性能和可靠性。
动态路由选择算法是指路由器根据网络拓扑和链路状态信息,自动计算最佳的路由路径。
常见的动态路由选择算法有距离向量路由选择算法和链路状态路由选择算法。
距离向量路由选择算法是一种分布式的路由选择算法,每个路由器根据相邻路由器发送的路由信息,计算到达目标地址的最短路径。
距离向量路由选择算法使用了距离向量(即距离和下一跳路由器)来描述路由信息。
常见的距离向量路由选择算法有RIP(Routing Information Protocol)和IGRP(Interior Gateway Routing Protocol)。
链路状态路由选择算法是一种集中式的路由选择算法,每个路由器需要向网络中的其他路由器发送链路状态信息,并计算最短路径树。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
路由算法及分类
路由算法及分类:
1、非自适应算法,静态路由算法
不能根据网络流量和拓扑结构的变化更新路由表,使用静态路由表,也称为固定式路由选择算法。
特点:简单,开销少;灵活性差。
2、自适应算法,动态路由算法
可根据网络流量和拓扑结构的变化更新路由表。
特点:开销大;健壮性和灵活性好。
3、最优化原则(optimality principle)
如果路由器J 在路由器I 到K 的最优路由上,那么从J 到K 的最优路由会落在同一路由上。
4、汇集树(sink tree)
从所有的源结点到一个给定的目的结点的最优路由的集合形成了一个以目的结点为根的树,称为汇集树;
路由算法的目的是找出并使用汇集树。
几种典型的路由选择算法:
1、最短路径路由算法(Shortest Path Routing)
1)基本思想
构建子网的拓扑图,图中的每个结点代表一个路由器,每条弧代表一条通信线路。
为了选择两个路由器间的路由,算法在图中找出最短路径。
2)测量路径长度的方法
结点数量
地理距离
传输延迟
距离、信道带宽等参数的加权函数
3)Dijkstra算法
每个结点用从源结点沿已知最佳路径到本结点的距离来标注,标注分为临时性标注和永久性标注;
初始时,所有结点都为临时性标注,标注为无穷大;
将源结点标注为0,且为永久性标注,并令其为工作结点;
检查与工作结点相邻的临时性结点,若该结点到工作结点的距离与工作结点的标注之和小于该结点的标注,则用新计算得到的和重新标注该结点;
在整个图中查找具有最小值的临时性标注结点,将其变为永久性结点,并成为下一轮检查的工作结点;
重复第四、五步,直到目的结点成为工作结点;
2、洪泛及选择洪泛算法
1)洪泛算法(Flooding)
属于静态路由算法
a)基本思想
把收到的每一个包,向除了该包到来的线路外的所有输出线路发送。
b)主要问题
洪泛要产生大量重复包。
c)解决措施
每个包头包含站点计数器,每经过一站计数器减1,为0时则丢弃该包;
记录包经过的路径
2)选择性洪泛算法(selective flooding)
洪泛法的一种改进。
将进来的每个包仅发送到与正确方向接近的线路上。
3)应用情况
路由器和线路的资源过于浪费,实际很少直接采用;
具有极好的健壮性,可用于军事应用;
作为衡量标准评价其它路由算法。
3、基于流量的路由算法(Flow-Based Routing)
属于静态路由算法
1)基本思想
既考虑拓扑结构,又兼顾网络负荷;
前提:每对结点间平均数据流是相对稳定和可预测的;
根据网络带宽和平均流量,可得出平均包延迟,因此路由选择问题归结为找产生网络最小延迟的路由选择算法。
提前离线(off-line)计算
2)需要预知的信息
网络拓扑结构;
通信量矩阵Fij;
线路带宽矩阵Cij;
3)路由算法(可能是临时的)
1/m = 800 bits
根据排队论,平均延迟T = 1/ (mC - l)
4、距离向量路由算法(Distance Vector Routing)
属于动态路由算法,也称Bellman-Ford路由算法和Ford-Fulkerson算法,最初用于ARPANET,被RIP协议采用。
1)基本思想
每个路由器维护一张表,表中给出了到每个目的地的已知最佳距离和线路,并通过与相邻路由器交换距离信息来更新表;
以子网中其它路由器为表的索引,表项包括两部分:到达目的结点的最佳输出线路,和到达目的结点所需时间或距离;
每隔一段时间,路由器向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表;
邻居结点X发来的表中,X到路由器i的距离为Xi,本路由器到X的距离为m,则路由器经过X到i的距离为Xi + m。
根据不同邻居发来的信息,计算Xi + m,并取最小值,更新本路由器的路由表;
注意:本路由器中的老路由表在计算中不被使用
算法的缺陷:对好消息反应迅速,对坏消息反应迟钝;
3)水平分裂算法
工作过程与距离向量算法相同,区别在于到X的距离不向真正通向X的邻居结点报告,使得坏消息传播的也快。
虽然广泛使用,但有时候会失败。
5、链路状态路由算法(Link State Routing)
1)距离向量路由算法的主要问题
选择路由时,没有考虑线路带宽;
路由收敛速度慢。
2)链路状态路由算法
发现邻居结点,并学习它们的网络地址;
路由器启动后,通过发送HELLO包发现邻居结点;
两个或多个路由器连在一个LAN时,引入人工结点;
测量到每个邻居结点的延迟或开销;
一种直接的方法是:发送一个要对方立即响应的ECHO包,来回时间除以2即为延迟。
将所有学习到的内容封装成一个包;
包以发送方的标识符开头,后面是序号、年龄和一个邻居结点列表;
列表中对应每个邻居结点,都有发送方到它们的延迟或开销;Fig. 5-15
链路状态包定期创建或发生重大事件时创建。
将这个包发送给所有其它路由器;
3)基本思想
洪泛链路状态包,为控制洪泛,每个包包含一个序号,每次发送新包时加1。
路由器记录信息对(源路由器,序号),当一个链路状态包到达时,若是新的,则分发;若是重复的,则丢弃;若序号比路由器记录中的最大序号小,则认为过时而丢弃;
4)改进
序号循环使用会混淆,解决办法:使用32位序号;
路由器崩溃后,序号重置;
链路状态包到达后,延迟一段时间,并与其它已到达的来自同一路由器的链路状态包比较序号,丢弃重复包,保留新包;
链路状态包需要应答;
计算到每个其它路由器的最短路径。
根据Dijkstra算法计算最短路径;
5)实用协议
OSPF IS-IS
从E发来的链路状态包有两个,一个经过EAB,另一个经过EFB;
从D发来的链路状态包有两个,一个经过DCB,另一个经过DFB;
6、分层路由(Hierarchical Routing)
1)网络规模增长带来的问题
路由器中的路由表增大;
路由器为选择路由而占用的内存、CPU时间和网络带宽增大。
2)分层路由
分而治之的思想;
根据需要,将路由器分成区域(regions)、聚类(clusters)、区(zones)和组(groups)…Fig. 5-17,路由表由17项减为7项。
3)分层路由带来的问题
路由表中的路由不一定是最优路由。
7、移动主机的路由
1)需要解决的问题
为了能够将数据包转发给移动主机,网络必须首先要找到移动的主机。
2)网络结构示意图
3)一些基本概念
移动用户(mobile users):包括位置发生变化,通过固定方式或移动方式与网络连接的两类用户;
家乡位置(home location):所有用户都有一个永久的家乡位置,用一个地址来标识;
外部代理(foreign agent):每个区域(一个LAN或一个wireless cell)有一个或多个外部代理,它们记录正在访问该区域的移动用户;
家乡代理(home agent):每个区域有一个家乡代理,负责记录家乡在该区域,但是目前正在访问其它区域的用户。
移动用户进入一个新区域时,必须首先向外部代理注册
外部代理定期广播声明自己的存在和地址的包,新到达的移动主机接收该信息;若移动用户未能收到该信息,则移动主机广播包,询问外部代理的地址;
移动主机向外部代理注册,告知其家乡地址、目前的数据链路层地址和一些安全信息;
外部代理与移动主机的家乡代理联系,告知移动主机的目前位置、自己的网络地址和一些安全信息;
家乡代理检查安全信息,通过,则给外部代理确认;
外部代理收到确认后,在登记表中加入一项,并通知移动主机注册成功
4)移动用户的路由转发过程
当一个包发给移动用户时,首先被转发到用户的家乡局域网;
该包到达用户的家乡局域网后,被家乡代理接收,家乡代理查询移动用户的新位置和与其对应的外部代理的地址;
家乡代理采用隧道技术,将收到的包作为净荷封装到一个新包中,发给外部代理;
家乡代理告诉发送方,发给移动用户的后续包作为净荷封装成包直接发给外部代理;
外部代理收到包后,将净荷作为数据链路帧发给移动用户;
8、广播路由(Broadcast Routing)
广播(broadcasting):同时发送一个包给所有目的地。
1)实现广播路由的方法
通过多个点到点通信实现,缺点:浪费带宽,源主机需要知道所有目的地;
洪泛(flooding)方式,缺点:浪费带宽
多目的地路由(multidestination routing)
每个包包括一个目的地列表或一个目的地位图;
路由器根据目的地做路由选择,在相应输出线路上复制一个包,并将该线路对应的目的地填入包中。
利用汇集树(sink tree)或生成树(spanning tree)
生成树是通信子网的一个子集,将所有路由器连接起来,并且没有回路;
如果每个路由器知道它的哪些线路属于生成树,则将收到的广播包拷贝到输入线路以外的所有其它生成树线路上;
2)算法评价
优点:最优利用带宽,产生最小数目的包
缺点:每个路由器都需要构造生成树。