一种流量选路方法、路由器和通信系统的制作方法

文档序号:7923536阅读:163来源:国知局

专利名称::一种流量选路方法、路由器和通信系统的制作方法
技术领域
:本发明涉及通信
技术领域
,具体涉及一种流量选路方法、路由器和通信系统。
背景技术
:现有的流量选路方法,一般是由节点根据接收到的数据流量中携带的信息,通过查询路由表来选择路径,或者说确定路由的。现网中,一条路由可能会对应着多个下一跳节点,即存在多条到达目的地的链^^,々i设存在多种内部网关协议(IGP,InteriorGatewayProtocol),现有技术会首先选择优先级最高的IGP,然后比较路径开销(cost)最小的链路,令其被优选,当一条链路成为优选的链路后,其他链路成为备用链路。当节点传送的数据流量存在目的地相同但下一跳节点不同的多条链路选择时,节点往往会选择一条优选的链路对数据流量进行转发,而备用链路一般情况下在路由表中不生效,通常直到优选的链路故障后才会承载数据流量,否则就一直空闲,当然,真正空闲的链路可能不存在,这里所说的空闲指的是处于轻载状态。假设被选的链路发生拥塞,即数据流量超出了该链路带宽的上限,则该链路会直接丢弃超出链路带宽上限的那部分数据流量(以下将丟弃数据量简称为丢包),即使使用了服务质量(QOS,QualityofService)技术,也只能是选择将低优先级的报文丢弃,从而保证高优先级的报文通过。在对现有技术的研究和实践过程中,本发明的发明人发现,在现有技术方案中,当被选的链路发生拥塞时,只能采用丢包的方法来解决问题,而此时备用链路却还是轻载状态,这就造成了带宽利用的不合理和带宽的浪费。
发明内容本发明实施例提供一种流量选路方法、路由器和通信系统。目的在于提高带宽的利用率,以及避免当被选的链路发生拥塞时发生丟包的情况。一种流量选^各方法,包4舌获取当前链路的数据流量所占的带宽;判断当前链路的数据流量所占的带宽是否超过当前链路的预置的带宽上限阀值K;若否,则选择当前链路传送数据流量;若是,则将当前链路的部分数据流量切换到当前链路未生效的备用链路上进4亍传送。一种路由器,包括获取单元,用于获取当前链路的数据流量所占的带宽;判断单元,用于判断获取单元获取到的当前链路的数据流量所占的带宽是否超过当前链路的预置的带宽上限阀值K;传送单元,用于当判断单元确定不超过K时,选择当前链路传送数据流量;切换单元,用于当判断单元确定超过K时,将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送。一种通信系统,包括路由器a、J洛由器b和^各由器c;路由器a,用于获取自身和路由器b之间的链路的数据流量所占的带宽A;然后判断获取到的A是否超过自身和路由器b之间的链路预置的带宽上限阀值K,若否,则选择自身和路由器b之间的链路传送数据流量,若是,则将自身和路由器b之间的链路的部分数据流量切换到自身和路由器c之间的链路上进行传送;路由器b,用于当路由器a判断A不超过K时,接收路由器a传送的数据流量;路由器c,用于当路由器a判断A超过K时,接收路由器a传送的数据流量。本发明实施例通过收集全网链路的数据流量信息,建立动态流量信息库,从而确定当前链路的负载状况,然后再根据当前链路的负载状况作出路径选择,即如果判断超出当前链路的带宽上限阀值K,则将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送,从而避免了当链路发生拥塞时,当前链路会将超出带宽的那部分数据流量直接丢弃导致丟包的这种情况,在有效地保护用户数据的同时,使得带宽分配更合理化,在生效链路不中断的情况下,提高未生效链路的利用率,即提高带宽的整体利用率。为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以才艮据这些附图获得其他的附图。图i是本发明提供的实施例一的方法流程图2是本发明提供的实施例一的网络示意图3是本发明提供的实施例三中的超上限告警功能的网络示意图4是本发明提供的实施例四的路由器的结构示意图5是本发明提供的实施例五的通信系统的结构示意图6是本发明提供的实施例五的通信系统的网络示意图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供一种流量选路方法。本发明实施例还提供相应的路由器和通信系统。以下分别进行详细i兌明。实施例一、一种流量选路方法,首先,节点获取当前链路的数据流量所占的带宽,然后判断当前链路的数据流量所占的带宽是否超过当前链路的预置的带宽上限阀值K,若否,则仍然选择当前链路传送全部数据流量;若是,则将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送。如图l所示,其具体流程可以如下101、节点获取当前链路的数据流量所占的带宽;例如,节点可以获取自身各个接口上的数据流量信息,然后保存这些数据流量信息,同时将这些数据流量信息发送给网络中除其自身以外的其他节点,当然,网络中的其他节点也会有同样的动作,也就是说,节点除了获取自身各个接口上的数据流量信息之外,也会接收到网络中的其他节点发送的关于它们自身获取到的各个接口的数据流量信息,节点存储获取到的所有的流量信息7(包括其自身的和其他节点的),建立起动态流量信息库,需要时,就可以根据存储的数据流量信息计算出当前链路的数据流量所占的带宽,然后执行步骤102。102、节点判断当前链路的数据流量所占的带宽是否超过(大于)当前链路的带宽上限阀值;若否,则执行步骤103,若是,则执行步骤104;其中,带宽上限阀值主要用于控制流量在达到带宽上限阀值时切换一部分流量至轻载链路上,带宽上限阀值可以才艮据运营商的策略进行设置,例如,可以设置默认每条链路,包括当前路由优选的链路(优选链路)和没有被优选的链路(备用链路)的上限阀值在未配置的情况下都是链路物理带宽的70%,为了描述方便,本发明实施例中均称带宽上限阀值为K。103、节点选择当前链路传送数据流量,即采用原来选择的路径进行数据流量的传送,不需要进行切换。104、节点将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送;当然,这里所说的部分数据流量可以是超过K的那部分数据流量,也可以是当前链路上的某条完整的流,即切换后,当前链路的数据流量所占的带宽除了可以等于K之外,还可能小于K;例如,参见图2,假设节点A具有多条到达目的节点D的链路,节点A的下一跳节点为节点B和节点C,又假设链路A》B—D为优选链路,可参见图2中的实线部分,A+C^D为备用链路,且A^C^D未生效,可参见图2中的实线部分,则当节点A确定链路A^B+D上的数据流量所占的带宽超过链路A^B"^D的带宽上限阀值时,将超过K的那部分数据流量切换到备用链路A^C^D上,或者将链路A^B^D上的某条流切换到备用链路A^C^D上,使得链路A^B^D上的数据流量所占的带宽小于等于链i各A^B^D的带宽上限阀值。因为链路故障后会采用备用链路承载数据流量,所以这里所说的未生效的备用链路指的是还未被采用的备用路径,即该未生效的备用链路是一种未生效的路径,所谓的未生效的路径指的是一种已存在,但未被优选且当前不可用的路径(路由),进一步说,是通过IGP发现、计算,并存储于系统的转发信息表(FIB,ForwardingInformationBase)中的未被优选的路径(3各由),该未被优选的3各径不存在于网际协i义路由表(IP路由表,InternetProtocolroutingtable)中,不能指导三层流量(三层为网络层,三层流量指的是按照IP地址转发的流量)的转发。未生效的路径在已生效的路径发生故障,或者人为修文链路开销等情况下,有可能成为生效的路径。使用未生效路径可以形象地比喻成IP版的流量工程,其与多协i义标签交换的流量工程(MPLSTE,MultiprotocolLabelSwitchTrafficEngineering)的区别在于,MPLSTE是通过预留带宽实现流量工程,而使用未生效路径是通过收集、利用剩余带宽,即空闲带宽来实现流量工程。相对MPLSTE来说,开发使用未生效链路要更加简单、容易,因为不涉及复杂的标签分发协议(LDP,LabelDistributeProtocol)、资源预留协议(RSVP,ResourceReservationProtocol)等,未生效的路由已经存在与FIB表中,可以直接实用。为了保证可以有足够的带宽传送超过K的那部分数据流量,所选择的未生效的备用链路应该为轻载链路,一般的,数据流量小于等于物理带宽的30%的链路,可以认为是轻载链路(为了描述方便,本发明的实施例均假设数据流量小于等于物理带宽的30%的链路为轻载链路),当然,这个值可根据运营商的策略进行配置。另外,如果存在多条未生效的备用链路的话,则根据这些未生效的备用链路的负载状况选择负载最轻的,即最轻载的未生效的备用链路进行切换。切换时可以采用多种切换方式,例如,可以将当前链路的部分数据流量,比如超过K的那部分数据流量一次性切换到当前链路未生效的备用链路上,也可以将当前链路的部分数据流量,比如超过带宽上限阀值K的那部分数据流量按照预置的切换百分比依次切换到当前链路未生效的备用链路上,等等。本发明实施例所说的节点具体可以为路由器。需说明的是,为了描述方便,本发明实施例中将本发明实施例提供的技术方案称为智能流量(SmartFlow)技术,将这种可以根据链路的负载状况作出路径选择的功能称为SmartFlow功能。使用时,可以设置Smartflow技术与现有技术结合使用,例如,同时配置IGP和路径开销选路功能和Smartflow功能,然后将应用IGP和路径开销选路功能作为选择链路的优选条件,smartflow功能作为次优选条件,即根据IGP和路径开销来选择链路,而smartflow功能暂不生效,当选择的链路的数据流量饱和时,smartflow功能才开始生效,将超出K的那部分数据流量切换到轻载的未生效的备用链路上。该技术方案可以应用于IP路由转发,亦可应用于三层虚拟私有网(L3VPN,L3VirtualPrivateNetwork)的路由转发。由上可知,本实施例的节点通过判断当前链路的数据流量所占的带宽是否超过当前链路的带宽上限阀值K,来确定当前链路的负载状况,然后再根据当前链路的负载状况作出路径选择,即如果超出当前链路的带宽上限阀值K,则将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送,从而避免了当链路发生拥塞时,当前链路会将超出带宽的那部分数据流量直接丟弃导致丢包的这种情况,在有效地保护用户数据的同时,使得带宽分配更合理化,在生效链路不中断的情况下,提高未生效链路的利用率,即提高带宽的总体利用率。实施例二、根据实施例一所描述的方法,可以建立一个全网动态数据流量信息库,然后节点通过查询该全网动态数据流量信息库来获取当前链路的数据流量所占的带宽,从而进一步确定当前链路的负载状况。另外,将数据流量进行切换时也可以采取多种方法,以下将对该全网动态数据流量信息库的建立及数据流量的切换方法作详细说明(以下实施例均以节点为路由器进行说明)。首先,路由器需要收集(或者说统计)自身每个接口的数据流量的转发速率,即需要分别收集路由器的出接口(Output)和入接口(Input)的数据流量的转发速率,然后作为数据流量信息进行保存,并在全网的路由器之间进行传播,当然,也可以只收集出接口的数据流量信息。其次,需要建立一种监控、计算、存储全网的数据流量信息的机制,通过让每台路由器监控自身的各个接口来获取、计算、更新、存储数据流量信息,并通过路由器之间的信息共享形成全网动态数据流量信息库。例如,可以通过用户数据报协议(UDP,UserDatagramProtocol)在全网的路由器之间相互共享数据流量信息,并且当数据流量信息发生变化时,及时地更新路由器的本地数据库,并让路由器将发生变化的数据流量信息,即更新的数据流量信息发送给网络中的除该路由器自身以外的其他路由器,为了描述方便,本发明实施例中将这种功能称之为鹰眼功能,所形成的全网动态数据流量信息库称为鹰目艮数10据库;总之,该鹰眼功能与鹰眼数据库主要用于收集&咯由器上的各个接口的数据流量信息,共享本路由器的数据流量信息,以及接收其他路由器提供的数据流量信息,以便节点可以根据这些数据流量信息计算出当前链路的数据流量所占的带宽。其中,路由器间可以以组播的方式来传送数据流量信息,即指定一个专用的组地址,互相发送携带数据流量信息的消息,例如,可以基于UDP协议创建一种私有的协议报文,命名为hello消息,报文中的UDP源和目的端口号可以取一个非知名的端口号,该报文,即hello消息携带一种TLV端口速率信息,沿着传送给相邻的其他路由器。当然,前提是全网的路由器以及各台路由器的各个接口都使能smartflow功能。该hello消息的格式可参见表一,其中,TLV指的是类型(Type)、长度(Length)和值(Value)。表一:<table>tableseeoriginaldocumentpage11</column></row><table>表一中,"UDPHeader"为UDP报头,"LinkTypeTLV"为链路类型的TLV,"ForwardingRateTLV"为转发速率,"SourcePort"为源节点,"DestinationPort"为目的节点,"CheckSum"为校验和,TLVType指的是TLV值中的Type值,TLVLength指的是TLV值中的Length值,TLVValue指的是TLV值中的Value值,"Bytes"为字节,是上述各种值的单位。这种hello消息的发送,以组播泛洪的方式进行,泛洪hello消息时,数据流量信息携带在"ForwardingRateTLV"中。如表一所示,"ForwardingRateTLV"中的Value长度可以为5字节(Bytes),由于一个字节等于2的8次方,所以5字节就是2的40次方,即Value长度取值为0r099,511,627,775,相当于有1000Gb/s的转发速率。需说明的是,表一中所给出的各种值仅仅只是例子,具体还可以进行调整和设置。当然,为了节省网络中的信令流量,可以将hello消息的生存时间(TTL,TimeToLive)的值设置为l,使得每一台路由器仅向其相邻的其他路由器泛洪。泛洪以一定周期进行,每隔一个周期泛洪一次,该周期可以根据运营商的策略在系统上进行设置。为了进一步节省信令流量,^f吏得当路由器的某个接口的数据流量发生争支大的变化时,路由器无需将所有接口的数据流量信息重新进行泛洪,还可以创建一种更新(update)消息,使得在一个泛洪周期内,当3各由器的某个接口的数据流量发生较大变化时,路由器可以以增量更新的方式将变化的部分发送给其相邻的其他路由器,即只将该发生较大变化的接口的数据流量信息发送给其相邻的其他路由器。更进一步的,路由器间传递的数据流量信息可以不是具体的数据流量所占用的带宽,而是一种关于所占用的带宽的等级值,例如将链路的物理带宽划分成5个等级,分别是20%、40%、60%、80%、100%,当泛洪hello消息时,就将当前链路所占用的带宽的等级值出去,例如将当前链路所占用的带宽的等级值携带在hello消息的"ForwardingRateTLV,,中传播出去,用这种方法可以减少路由器的计算量。具体实现时,首先让全网的路由器以及各台路由器的各个接口都使能smartflow功能,当然,如果只收集出接口的数据流量信息的话,那么就只需让全网的路由器以及各台路由器的各个出接口都使能smartflow功能即可,然后在网络中的每一台路由器上都使能鹰眼功能,以便建立鹰目艮数据库,这样,路由器就可以通过查询鹰眼数据库来确定当前链路的负载状况,确定是否需要将当前链路的部分数据流量切换到未生效的备用链路上,例如超过当前链路的带宽上限阀值K的那部分数据流量切换到未生效的备用链路上。由于路由器将当前链路的部分数据流量进行切换,需要满足两个前提条件,一是存在未生效的备用路由,二是生成动态的链路信息表,所以可以通过查询鹰眼数据库,将上述两个前提条件的信息全部集成起来,生成一张路由与带宽相结合的特殊路由表,即流量信息表,可以参见表二。路由器通过查这张流量信息表,就可以知道该向哪一条链路进行数据流量的转发,当然,需说明的是,表二中所给出的各种值以及该表的结构仅仅只是例子,具体还可以根据实际应用进行调整和设置。表二:<table>tableseeoriginaldocumentpage13</column></row><table>表二中,"已用带宽"和"可用带宽"的值是通过hello消息来获取的,而"目的IP,,、"下一跳的IP"和"出接口"的值则可以从原有的路由表中获取,其中,"目的IP,,指的是目的节点的网际协议(IP,InternetProtocol)地址,"下一跳的IP"指的是下一跳节点的IP地址,由表一可知,优选链路和备用链路的目的节点的IP地址一样,但是下一跳节点和出接口都不一样,也就是说,该路由器,或者说该节点具有两条可以到达同一目的地"1.1.1.1"的不同链路,一条为优选链路,一条为备用链路,优选链路的数据流量所占的带宽为优选链路的物理带宽的50%,备用链路的数据流量所占的带宽为备用链路的物理带宽的10%,可知,该备用链路为轻载链路(本发明的实施例均假设数据流量小于等于物理带宽的30%的链路为轻载链路)。假设当前链路为优选链路,其带宽上限阀值K为70。/。,且此时备用链路还未生效。若此时该节点又接收到新的数据流量,则该节点通过查询鹰目艮数据库,计算出该新的数据流量所需要的带宽为当前链路带宽的30%,由于该新接收到的数据流量所需要的带宽"30%"与当前链路的数据流量所占的带宽"50%"的和为"80%",已经超过了当前链路的带宽上限阀值"70%",所以需要将当前链路的部分数据流量切换到备用链路上进行转发。数据流量的切换方式有两种方法可选,一是逐包切换,即让所有满足切换条件的流都执行切换,将超过70%带宽的数据流量均分到这些流上,每条流都切换一部分至轻载的未生效的备用链路上。二是逐流切换,即让所有满足切换条件的流,通过对源节点的IP地址和目的节点的IP地址进行散列算法(Hash),将每一条流的数据流量切换并均勾地分布至轻载的未生效的链路上。所谓的切换,即将当前链路的部分数据流量在当前链路上的下一跳节点的IP地址修改为当前链路未生效的备用链路上的下一跳节点的IP地址,然后将修改了下一跳节点的IP地址后的数据流量发送给当前链路未生效的备用链路上的下一跳节点。例如,可以将超过带宽上限阀值的那部分数据流量切换到备用链路上进行转发,即将超过带宽上限阀值的那部分数据流量从出接口为"2/0/0"的端口输出,发送给ip地址为"2o.i丄r的下一跳节点,当然,也可以按照流来切换,即将当前链路上的数据流量中的某条流或某几条流完整地切换到备用链路上进行转发,使得当前链路的带宽小于等于当前链路的带宽上限阀值,例如,某条命名为T1的流所占的带宽为当前链路的物理带宽的20%,则可以将T1全部切换到备用链路上,即将T1从出接口为"2/0/0"的端口输出,发送给IP地址为"20丄1.1"的下一跳节点,切换后,当前链路上的数据流量所占的带宽就只剩下60%,小于当前链路的带宽上限阀值;或者,若某条命名为T2的流所占的带宽为当前链路的物理带宽的10%,则也可以对T2进行切换,切换后,当前链路上的数据流量所占的带宽为70%,等于当前链路的带宽上限阀值另夕卜,切换时,可以将当前链路的部分数据流量一次性切换到当前链路未生效的备用链路上,也可以将当前链路的部分数据流量按照预置的切换百分比依次切换到当前链路未生效的备用链路上,即切换可以多次进行,例如,假设超过K的那部分数据流量为当前链路带宽的10%,则可以一次性地将该10%的数据流量一次性切换到未生效的备用链路上,也可以分多次进行切换,如预先设置每次切换的流量为5%,则第一次切换5%,第二次再切换5%等等,直到该超过K的那部分数据流量全部切换完毕。相对于第一种切换方法,后一种切换方法实现会比较简单。当然,这两种切换方法都不能超过该备用链路的带宽上限阀值。当所有链路,包括优选链路和备用链路的数据流量都达到带宽上限阀值时,则不再发生切换。由上可知,本实施例采用使能路由器的鹰眼功能来建立一个全网动态数据流量信息库,使得路由器可以通过查询该全网动态数据流量信息库来获取当前链路的数据流量所占的带宽,以便确定当前链路的负载状况,并根据当前链路的负载状况作出路径选择,即如果超出当前链路的带宽上限阀值K,则将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送,采用该技术方案可以避免了当链路发生拥塞时,当前链路会将超出带宽的那部分数据流量直接丢弃导致丢包的情况,在有效地保护用户数据的同时,使得带宽分配更合理化,带宽的利用率更高。另外,本实施例提供的方案还可以采用多种方法将数据流量切换到当前链路未生效的备用链路上进行传送,为用户提供多样化的选择。实施例三、根据实施例二所描述的方法,其中,关于流量信息表(可参见表二)的建立,除了实施例二中提到的鹰眼功能之外,本发明实施例还提供另一种方法,即对IGP路由协议的协议报文进行修改,使其可以携带链路的数据流量信息。例如,可以在IGP路由协议的协议报文增加字段,或者在已有的字段中嵌入标志位,使之达到携带链路的数据流量信息的目的。以开》丈式最短3各径优先(OSPF,OpenShortestPathFirst)协i义举例,在OSPF协议的链路状态宣告(LSA,linkstateadvertisement)报文中嵌入至少3位(bit)的标志位,该标志位可以就放在度量(metric)字段中,占用metric字段的低3位。这样,在路由器之间的数据库摘要信息(DD,DatabaseDescriptionpacket)报文交互之后,在建立路由表的同时,也就可以建立起了流量信息表。需说明的是,流量信息表的建立只是增加了一种流量的选路机制,并不影响现有技术中路由的选路。至于此后对数据流量是否超过当前链路的带宽上限阀值的判断,以及对超过带宽上限阀值的数据流量的切换可参见实施例二,在此不在累赘。此外,为了使得路由器能够提前知道下游链路已经饱和(即数据流量已经超过链路的带宽上限阀值),提前做出切换数据流量的动作,避免数据流量在下游产生拥塞,还可以让路由器在确定数据流量超过当前链路的带宽上限阀值时,发送超上限告警至全网的其他路由器,其他路由器接收到超上限告警后,就可以及时调整数据流量进行选路,避免数据流量在下游产生拥塞。以下将举例作进一步详细说明。如图3所示,PEl和PE2为服务提供商边纟lJ^由器(ProviderEdge),PE1为源节点,PE2为目的节点,P1和P2是作为中间节点的路由器,PE1上有两条至PE2的链路,其中优选链路是PE1^P1^PE2,可参见图3中的实线部分,未优选路由即备用链路是PE1^P2+PE2,可参见图3中的虚线部分。假设各条链路的带宽上限阀值均为70%,占用带宽小于30%的链路为轻载链路,则超上限告警功能具体可以如下全网的路由器使能smartflow功能,PE1通过与其他路由器交互,接收到全网动态带宽数据流量信息,从而获知链路PE1^P1+PE2带宽使用了50%,链路PE1》P2》PE2带宽仅使用了10%,因此可判断链路PE1"^P2^PE2为轻载链路。假设此时P1上有其他数据流量接入,目的节点是PE2,且这些新接入的数据流量需要占用的带宽是链路P1^PE2的物理带宽的30。/。,由于50%和30%的和为80%,达到了链路P1^PE2的带宽上限阀值,所以这时,Pl确定数据流量超过当前链路的带宽上限阀值,于是发送超上限告警给全网的其他路由器。PE1收到P1的超上限告警后,通过计算得到PE1"^P2^PE2链路为轻载链路,带宽较为空闲,于是将部分数据流量,例如超过带宽上限阀值的那部分数据流量切换至PE1^P2^PE2上进行传送,从而避免了若数据流量从链路PE1^P1^PE2上传送的话,将会在链路P1^PE2上产生拥塞的情况。需说明的是,数据流量切换后,若优选链路恢复到轻载链路的水平,可以将数据流量回切至原链路上进行传送,例如,可以设置一定的周期,在该周期后,可以将数据流量回切至原链路上。由上可知,本实施例采用修改IGP路由协议的协议报文来携带数据流量信息,从而建立起流量信息表,以便路由器可以从中获取当前链路的数据流量所占的带宽,确定当前链路的负载状况,并根据当前链路的负载状况作出路径选择,即如果超出当前链if各的带宽上限阀值K,则将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送,从而避免了当链路发生拥塞时,当前链路会将超出带宽的那部分数据流量直接丢弃导致丟包的情况,在有效地保护用户数据的同时,4吏得带宽分配更合理化,带宽的利用率更高。另夕卜,在确定数据流量超过当前链路的带宽上限阀值时,本实施例的路由器还可以发送超上限告警至全网的其他路由器,使得其他路由器能够提前知道下游链路已经饱和,提前做出切换数据流量的动作,避免数据流量在下游产生拥塞。实施例四、16为了更好地实施以上方法,本发明实施例还相应地提供一种路由器,如图4所示,包括获取单元401、判断单元402、传送单元403和切换单元404;获取单元401,用于获取当前链路的数据流量所占的带宽;判断单元402,用于判断获取单元401获取到的当前链路的数据流量所占的带宽是否超过当前链路的预置的带宽上限阀值K;传送单元403,用于当判断单元402确定不超过K时,选择当前链路传送数据流量;切换单元404,用于当判断单元402确定超过K时,将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送。其中,获取单元401可以包括获取子单元4011、发送子单元4012、存储子单元4013和运算子单元4014;获取子单元4011,用于获取自身各个接口上的数据流量信息以及网络中除其自身以外的其他路由器发送的数据流量信息;当然,也可只获取自身各个出接口上的流量信息以及网络中除其自身以外的其他路由器发送的数据流量信自发送子单元4012,用于发送获取子单元4011获取到的自身各个接口上的数据流量信息给网络中除其自身以外的其他路由器;当然,若获取单元只获取自身各个出接口上的流量信息的话,则发送子单元4012还用于发送获取子单元4011获取到的自身各个出接口上的数据流量信息给网络中除其自身以外的其他路由器;存储子单元4013,用于存储获取子单元4011获取到的数据流量信息;运算子单元4014,用于根据存储子单元4013存储的数据流量信息计算出当前链路的数据流量所占的带宽。该路由器还可以包括告警单元405;告警单元405,用于当判断单元402判断当前链路的数据流量所占的带宽超过K时,发送远端超上限告警消息给网络中除其自身以外的其他节点;所述切换单元404,还用于当接收到网络中其他路由器的告警单元405发送的远端超上限告警消息时,切换数据流量到未生效的备用路径上。当然,数据流量切换后,若优选链路恢复到轻载链路的水平,所述切换单元404还可以将数据流量回切至原链路上进行传送,例如,可以设置一定的周期,在该周期后,所述切换单元404将数据流量回切至原链路上。由上可知,本实施例的路由器的判断单元402可以通过判断当前链路的数据流量所占的带宽是否超过当前链路的带宽上限阀值K,来确定当前链路的负载状况,然后再根据当前链路的负载状况作出路径选择,即如果超出当前链路的带宽上限阀值K,则切换单元404将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送,从而避免了当链路发生拥塞时,当前链路会将超出带宽的那部分数据流量直接丢弃导致丢包的这种情况,在有效地保护用户数据的同时,使得带宽分配更合理化,带宽的利用率更高。另外,在判断单元402确定数据流量超过当前链路的带宽上限阀值时,告警单元405还可以发送超上限告警至全网的其他路由器,使得其他路由器能够提前知道下游链路已经饱和,提前做出切换数据流量的动作,避免数据流量在下游产生拥塞。实施例四、为了更好地实施以上方法,本发明还相应地4是供一种通信系统,包括实施例三所提供的路由器,例如,如图5所示,可以包括路由器a501、路由器b502和;洛由器c503;路由器a501,用于获取自身(即路由器a501)和路由器b502之间的链路的数据流量所占的带宽A,然后判断获取到的A是否超过自身和路由器b502之间的链路预置的带宽上限阀值K,若否,则选择自身和路由器b502之间的链路传送数据流量,若是,则将超过K的那部分数据流量切换到自身和路由器c503之间的链路上进行传送;路由器b502,用于当路由器a501判断A不超过K时,接收路由器a501传送的数据流量;路由器c503,用于当路由器a501判断A超过K时,接收路由器a501传送的数据流量。其中,路由器a501、路由器b502和路由器c503均包括获取单元401、判断单元402、传送单元403和切换单元404,当然,还可以包括告警单元405;其中,获取单元401还可以包括获取子单元4011、发送子单元4012、存储子单元4013和运算子单元4014。以下将举例对通信系统的选路过程作进一步详细说明。如图6所示,假设通信系统包括路由器l、、路由器2、路由器3和路由器4;其中,路由器l为源节点,路由器4为目的节点,路由器2和路由器3为中间节点,路由器1上有两条至路由器4的链路,其中优选链路是路由器1^路由器2^路由器4,可参见图6中的实线部分,未优选路由即备用链路是路由器1^路由器3~>路由器4,可参见图6中的虚线部分。假设各条链路的带宽上限阀值均为70%,占用带宽小于30%的者连路为轻载链路,则超上限告警功能具体可以如下路由器l、路由器2、路由器3和路由器4都使能smartflow功能,路由器l通过与其他路由器交互,接收到全网动态带宽数据流量信息,从而获知路由器1^路由器2^路由器4的带宽使用了50%,路由器1^路由器3^路由器4带宽仅使用了10%,因此可判断路由器1^路由器3^路由器4为轻载链路。假设此时路由器l上有其他数据流量接入,目的节点是路由器4,且这些新接入的数据流量需要占用的带宽是路由器1+路由器2的物理带宽的30%,由于50%和30%的和为80%,达到了路由器1》路由器2的带宽上限阀值,所以这时,路由器l确定数据流量超过当前链路的带宽上限阀值,于是将部分数据流量,例如超过带宽上限阀值的那部分数据流量切换至路由器1^路由器3^路由器4上进行传送,从而避免了数据流量在路由器1^路由器2^路由器4上产生拥塞。数据流量切换后,若路由器1^路由器2^路由器4恢复到轻载链路的水平,可以将数据流量回切至路由器1^路由器2^路由器4上进行传送,例如,可以设置一定的周期,在该周期后,可以将数据流量回切至路由器1^路由器2^路由器4上。由上可知,本实施例的通信系统中的路由器可以通过判断当前链路的数据流量所占的带宽是否超过当前链路的带宽上限阀值K,来确定当前链路的负载状况,然后再根据当前链路的负载状况作出路径选择,即如果超出当前链路的带宽上限阀值K,则将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送,从而避免了当链路发生拥塞时,当前链路会将超出带宽的那部分数据流量直接丟弃导致丢包的这种情况,在有效地保护用户数据的同时,使得带宽分配更合理化,带宽的利用率更高。综上,本发明实施例具有如下有益效果本发明实施例通过收集全网链路的数据流量信息,建立一个全网动态数据流量信息库,使得路由器可以通过查询该全网动态数据流量信息库来获取当前链路的数据流量所占的带宽,以便确定当前链路的负载状况,并根据当前链路的负载状况作出路径选择,即如果超出当前链路的带宽上限阀值K,则将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送,釆用该技术方案可以避免了当链路发生拥塞时,当前链路会将超出带宽的那部分数据流量直接丢弃导致丢包的情况,在有效地保护用户数据的同时,使得带宽分配更合理化,在生效链路不中断的情况下,提高未生效链路的利用率,即提高了带宽的总体利用率,有效保护了运营商已投资的通讯资源。另夕卜,本实施例提供的方案还可以釆用多种方法将数据流量切换到当前链路未生效的备用链路上进行传送,为用户提供多样化的选择。另夕卜,在确定数据流量超过当前链路的带宽上限阀值时,本发明实施例的路由器还可以发送超上限告警至全网的其他路由器,使得其他路由器能够提前知道下游链路已经饱和,提前做出切换数据流量的动作,避免数据流量在下游产生拥塞。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括ROM、RAM、磁盘或光盘等。以上对本发明实施例所提供的流量选路方法、路由器和通信系统方法进行本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1、一种流量选路方法,其特征在于,包括获取当前链路的数据流量所占的带宽;判断当前链路的数据流量所占的带宽是否超过当前链路的预置的带宽上限阀值K;若否,则选择当前链路传送数据流量;若是,则将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送。2、根据权利要求l所述的流量选路方法,其特征在于,所述当前链路未生效的备用链路为一种已存在,但未被优选且当前不可用的路径。3、根据权利要求l所述的流量选路方法,其特征在于,所述获取当前链路的数据流量所占的带宽具体为获取自身各个接口上的数据流量信息以及网络中除其自身以外的其他节点发送的数据流量信息;发送所述自身各个接口上的数据流量信息给网络中除其自身以外的其他节点;存储获取到的数据流量信息;冲艮据存储的数据流量信息计算出当前链路的数据流量所占的带宽。4、根据权利要求3所述的流量选路方法,其特征在于,所述发送自身各个接口上的数据流量信息给网络中除其自身以外的其他节点具体为在预置的周期内通过组播泛洪的方式发送自身各个接口上的数据流量信息给网络中除其自身以外的其他节点。5、根据权利要求4所述的流量选路方法,其特征在于,还包括在一个组播泛洪周期内,以增量更新的方式发送自身各个接口上的数据流量信息给网络中除其自身以外的其他节点。6、根据权利要求3所述的流量选路方法,其特征在于,所述发送自身各个接口上的数据流量信息给网络中除其自身以外的其他节点具体为发送自身各个接口上的数据流量所占的带宽等级给网络中除其自身以外的其他节点。7、根据权利要求l所述的流量选路方法,其特征在于,所述将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送具体为将当前链路的部分数据流量在当前链路上的下一跳节点的网际协议地址修改为当前链路未生效的备用链路上的下一跳节点的网际协议地址;将修文后的数据流量发送给当前链路未生效的备用链路上的下一跳节点。8、根据权利要求l所述的流量选路方法,其特征在于,所述将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送具体为将超过K的那部分数据流量一次性切换到当前链路未生效的备用链路上;或者将当前链路的部分数据流量按照预置的切换百分比依次切换到当前链路未生效的备用链路上。9、根据权利要求1至8中任一项所述的流量选路方法,其特征在于,还包括当当前链路的数据流量所占的带宽超过K时,发送远端超上限告警消息给网络中除其自身以外的其他节点。10、根据权利要求9中所述的流量选路方法,其特征在于,还包括当接收到网络中其他节点发送的远端超上限告警消息时,切换数据流量到未生效的备用路径上。11、一种路由器,其特征在于,包括获取单元,用于获取当前链路的数据流量所占的带宽;判断单元,用于判断获取单元获取到的当前链路的数据流量所占的带宽是否超过当前链路的预置的带宽上限阀值K;传送单元,用于当判断单元确定不超过K时,选择当前链路传送数据流量;切换单元,用于当判断单元确定超过K时,将当前链路的部分数据流量切换到当前链路未生效的备用链路上进行传送。12、根据权利要求ll所述的路由器,其特征在于,所述获取单元包括获取子单元,用于获取自身各个接口上的数据流量信息以及网络中除其自身以外的其他路由器发送的数据流量信息;发送子单元,用于发送获取子单元获取到的自身各个接口上的数据流量信息给网络中除其自身以外的其他路由器;存储子单元,用于存储获取子单元获取到的数据流量信息;运算子单元,用于根据存储子单元存储的数据流量信息计算出当前链路的数据流量所占的带宽。13、根据权利要求11或12所述的路由器,其特征在于,还包括告警单元,用于当判断单元判断当前链路的数据流量所占的带宽超过K时,发送远端超上限告警消息给网络中除其自身以外的其他节点;所述切换单元,还用于当接收到网络中其他路由器的告警单元发送的远端超上限告警消息时,切换数据流量到未生效的备用路径上。14、一种通信系统,其特征在于,包括路由器a、路由器b和路由器c;路由器a,用于获取自身和路由器b之间的链路的数据流量所占的带宽A;然后判断获取到的A是否超过自身和路由器b之间的链路预置的带宽上限阀值K,若否,则选择自身和路由器b之间的链路传送数据流量,若是,则将自身和路由器b之间的链路的部分数据流量切换到自身和路由器c之间的链路上进行传送;路由器b,用于当路由器a判断A不超过K时,接收路由器a传送的数据流量;路由器c,用于当路由器a判断A超过K时,接收路由器a传送的数据流量。全文摘要本发明公开了一种流量选路方法、路由器和通信系统。本发明实施例通过收集全网链路的数据流量信息,建立动态流量信息库,从而确定当前链路的负载状况,然后再根据当前链路的负载状况作出路径选择,即如果判断超出当前链路的带宽上限阀值K,则将当前链路的部分数据流量切换到当前未生效且轻载的备用链路上进行传送,从而避免了当链路发生拥塞时,当前链路会将超出带宽的那部分数据流量直接丢弃导致丢包的这种情况,在有效地保护用户数据的同时,也使得带宽分配更合理化,提高带宽的利用率。文档编号H04L12/56GK101447929SQ200810188819公开日2009年6月3日申请日期2008年12月26日优先权日2008年12月26日发明者坚梁,艳汤申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1