网际协议电信网上动态带宽分配的方法和装置的制作方法

文档序号:7592369阅读:231来源:国知局
专利名称:网际协议电信网上动态带宽分配的方法和装置的制作方法
技术领域
本发明涉及网际协议(IP)电信网络,特别涉及在IP电信网上进行动态带宽分配的方法和装置。
背景技术
因特网的飞速发展使得网际协议(IP)成为支持数据业务的首选协议,而IP电话(VoIP,Voice over IP)的大范围部署也加快了IP向其它业务扩展的步伐。于是,运营商纷纷建立起新的IP网络或对原有网络进行扩容,但是运营商很快发现其运营收入并未随着因特网流量的增长速度线性增长,其原因正是原有的传输控制协议/网际协议(TCP/IP)的设计初衷是为了支持数据业务,从而导致现有的IP网络支持包括话音和视频等实时业务时,仍采用尽力而为(Best-effort)的机制,无法针对业务的不同带宽需求进行分配,所以不具有可管理性和可运营性。
为了解决现有网络的问题,ITU(国际电信联盟)和ETSI(欧洲电信标准协议)开始致力于构造将传统的电话网和因特网两者结合的下一代网络(NGN)。ETSI对NGN的定义为“NGN是一种规范和部署网络的概念,通过使用分层、分面和开发接口的方式,对业务提供者和运营者提供一个平台,借助这一平台逐步演进以生成、部署和管理新的业务”。而一般认为IP+QoS(服务质量)是NGN能力的标准,它代表了因特网和电信网技术的结合,即所谓的IP电信网。而实现IP电信网的QoS问题的关键问题之一,就是如何有效地实现对带宽的动态分配。
因此,寻找一种简单高效的动态带宽分配机制对未来的IP网络前途有着重大的意义,这是因为未来的IP电信网需要对带宽的有效的动态分配,以保证对用户服务质量的保证,并实现运营商利益的最大化(Maximal Revenue)。
目前的IP网络上对带宽分配是基于以下三种模型,即尽力而为模型、集成服务模型和区分服务模型。
在目前大规模的应用的IP网络中,路由器对带宽的分配均采用尽力而为(Best-Effort)的方式。图1示意性地图解了尽力而为服务模型。所谓Best-Effort是一个单一的服务模型,也是最简单的服务模型。应用程序可以在任何时候发出任意数量的报文,而且不需要事先获得批准,也不需要通知。所有的报文都被无区别的等同对待,每个路由器对所有的报文均采用先入先出(FIFO)的策略进行处理,如图1所示。它尽最大的努力Best-Effort将报文送到目的地,但对报文传送的可靠性传送延迟等性能不提供任何保证。Best-Effort服务是现在因特网的缺省服务模型,它适用于绝大多数网络应用如超文本传输协议(HTTP)和电子邮件(E-Mail)等。
但是随着网络发展日新月异,IP网络上新应用的不断出现,对IP网络的服务质量也提出了新的要求,例如IP语音等实时业务就对报文的传输延迟提出了较高要求,如果报文传送延时太长将是用户所不能接受的;相对而言,E-Mail和HTTP业务对时间延迟并不敏感。因此,由于传统IP网络的尽力服务对所有应用均采用同一种带宽分配策略(FIFO),无法支持语音等实时业务,也无法满足网络新业务的需求。
为了解决Best-Effort模型下带宽无法保证的问题,IETF(因特网工程任务组)于1994年提出了一种理想化的带宽分配模型-集成服务模型(IntServ),而其核心则是RFC2209中定义的RSVP(资源预留协议)。IntServ是一个集成服务模型,这种服务模型的关键在于IP网络为每个流进行端到端的带宽预留。它要求在发送报文前,应用程序需要向网络申请特定的服务,这个请求是通过RSVP信令来完成的。应用程序首先通知网络它自己的流量参数和需要的特定服务质量请求,包括带宽需求等。网络在收到应用程序的资源请求后进行准入控制(Admission control),即基于应用程序的资源申请和网络现有的资源情况,判断是否为应用程序分配资源。应用程序一般在收到网络的确认信息,即确认网络已经为这个应用程序的报文预留了资源后才开始发送报文。同时,应用程序发出的报文应该控制在流量参数描述的范围以内。
IntServ主要借鉴了窄带公共开关电话网络(PSTN)领域的成功经验,通信前先通过信令协议建立端到端的通信路径,看似十分完美,但同样的思想在IP领域却没有获得成功,其中一个重要的原因在于IP网络与PSTN网量模型和业务模型是不同。在PSTN中,每一对源和目的节点之间只有单一的64Kbps的语音业务;而在因特网中,每一对源和目的之间可能并发多个业务流,并且源和目的可能是多对多的关系。
由于IP网络流量模型和业务模型的特点,使得因特网骨干网瞬间要为成千上万的业务流提供服务。因此,粒度为单个流的带宽预留的解决思路在因特网骨干网上无法扩展,这严重制约了IntServ在实际网络中的应用。此外,采用IntServ意味着需要在互联网中引入端到端的RSVP信令,这会带来一系列的互联互通问题。因此,可以说基于RSVP的IntServ解决方案是在资源分配方面一次失败的尝试。IntServ从1994年推出至今并没有获得任何规模的商用。
为了寻求扩展性和简易性,IETF在1998年推出了基于DSCP(区分服务编码点)的区分服务模型(DiffServ)解决方案,是一种基于粗粒度的QoS技术。在采用DiffServ时,网络的边界路由器通过分组的源地址和目的地址等内容,对分组进行分类,并对不同的分组设置不同的DSCP值,即将不同的流聚合为有限的等级,而网络的核心路由器只需要用DSCP值来进行报文的分类,并为之服务,包括资源分配、队列调度和分组丢弃策略等,这些操作统称为逐跳行为(Per-Hop Behavior or PHB)。
DiffServ没有采用IntServ中为每一个流端到端分配的方式,而是采用了两级的体系结构,即在边界节点分类,并实现流的聚合,而在核心节点根据类别进行不同的带宽分配和转发策略。这样就避免了IntServ中的扩展性差和引入信令的问题。
但是,DiffServ仍然存在不足。首先,DiffServ模型解决了网络汇聚节点和核心节点的带宽分配问题,但并未解决在最靠近用户的接入节点的带宽分配问题,这样就无法真正保证端到端的QoS;其次,DitfServ只能在OSI模型的三层以上解决资源的动态分配,而无法解决二层甚至更底层的带宽分配问题。最后,DiffServ在带宽分配的过程中没有考虑运营商的利益最大化。
综上所述,见下表一,目前的三种模型都无法满足未来IP电信网对带宽分配的需要。因此一种合理的、高效的带宽分配方式显得意义重大。

发明内容由于现有技术存在种种缺陷,本发明提出一种带宽分配模型,并针对这种模型提出了一种全新的带宽分配的方法。它不需要引入额外的信令,带来任何互联互通的问题,也不会带来任何可扩展性差的问题。它基于用户的带宽请求的收入密度(Revenue Density)进行带宽分配,能够保证运营商收入的最大化,可用于数据网上传输和交换节点,并可以和其它主流的QoS技术共同使用。
本发明提供了一种带宽分配方法,用于向多个请求方分配预定总带宽,该方法包括以下步骤获取每个请求方的带宽需求及其所对应的一个指标值;对每个请求方计算其所对应的指标值与其带宽需求的比值,得出单位带宽指标值;对所述多个请求方根据单位带宽指标值从大到小排序,形成第一队列;以及形成可满足其带宽需求的请求方的第一集合,其中,按所述第一队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,当能够满足其带宽需求时,将该请求方添加到所述第一集合中。
最好,本发明的带宽分配方法还包括判断是否需要完全满足请求方的带宽需求的步骤,其中,当判定剩余带宽不足以满足一个请求方的带宽需求时,如果判定需要完全满足请求方的带宽需求,则跳过该请求方,而对下一个请求方进行判断;如果判定不需要完全满足请求方的带宽需求,则将剩余带宽分配给该请求方。
最好,本发明的带宽分配方法在需要完全满足请求方的带宽需求的情况下,还包括以下步骤对所述第一队列中单位带宽指标值相同的请求方进一步按每个请求方所对应的指标值从高到低排列顺序。
最好,本发明的带宽分配方法在需要完全满足请求方的带宽需求的情况下,还包括以下步骤计算所述第一集合中的各请求方所对应的指标值之和,作为第一总指标值;将最高单位带宽指标值之外的各单位带宽指标值所对应的多个请求方中指标值较高的至少一个请求方从所述第一队列中取出,排在队列最前面,形成第二队列;形成可满足其带宽需求的请求方的第二集合,其中,按所述第二队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,当能够满足其带宽需求时,将该请求方添加到所述第二集合中;计算所述第二集合中各请求方所对应的指标值之和,作为第二总指标值;比较所述第一总指标值和第二总指标值;当第一总指标值大于第二总指标值时,满足所述第一集合中的各请求方的带宽需求;以及当第二总指标值大于第一总指标值时,满足所述第二集合中的各请求方的带宽需求。
最好,本发明的带宽分配方法在不需要完全满足请求方的带宽需求的情况下,还包括首先向每个请求方分配预定比例的基本带宽的步骤。
最好,本发明的带宽分配方法还包括以下步骤循环判断请求方的带宽需求和其所对应的指标值是否发生了改变,并在发生改变的情况下重新进行带宽分配。
本发明还提供了一种带宽分配装置,用于向多个请求方分配预定总带宽,该装置包括请求信息获取装置,用于获取每个请求方的带宽需求及其所对应的一个指标值;单位带宽指标值计算装置,用于对每个请求方计算其所对应的指标值与其带宽需求的比值,得出单位带宽指标值;排序装置,对所述多个请求方根据单位带宽指标值从大到小排序,形成第一队列;存储装置,用于存储可满足其带宽需求的请求方的第一集合;判断选取装置,按所述第一队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,在判定能够满足请求方的带宽需求时,将该请求方添加到所述第一集合中。
最好,本发明的带宽分配装置还包括模式判断装置,用于判断是否需要完全满足请求方的带宽需求,其中,当所述带宽判断装置判定剩余带宽不足以满足一个请求方的带宽需求时,如果所述模式判断装置判定需要完全满足请求方的带宽需求,则跳过该请求方,而对下一个请求方进行判断;如果所述判断装置判定不需要完全满足请求方的带宽需求,则将剩余带宽分配给该请求方。
最好,本发明的带宽分配装置在所述模式判断装置判定需要完全满足请求方的带宽需求的情况下,所述排序装置对所述第一队列中单位带宽指标值相同的请求方进一步按每个请求方所对应的指标值从高到低排列顺序。
最好,在本发明的带宽分配装置中,排序装置将最高单位带宽指标值之外的各单位带宽指标值所对应的多个请求方中指标值较高的至少一个请求方从所述第一队列中取出,排在队列最前面,形成第二队列;存储装置还存储可满足其带宽需求的请求方的第二集合,其中,所述带宽判断装置按所述第二队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,当能够满足其带宽需求时,将该请求方添加到所述第二集合中,该带宽分配装置还包括总指标值计算装置,用于计算所述第一集合中各请求方所对应的指标值之和,作为第一总指标值,并计算所述第二集合中各请求方所对应的指标值之和,作为第二总指标值;比较选择装置,用于比较所述第一总指标值和第二总指标值,当第一总指标值大于第二总指标值时,选择所述第一集合,以满足其中的各请求方的带宽需求,当第二总指标值大于第一总指标值时,选择所述第二集合,以满足其中的各请求方的带宽需求。
最好,本发明的带宽分配装置还包括基本带宽分配装置,用于在不需要完全满足请求方的带宽需求的情况下,首先向每个请求方分配预定比例的基本带宽。
最好,本发明的带宽分配装置还包括检测装置,用于循环判断请求方的带宽需求和其所对应的指标值是否发生了改变,并在发生改变的情况下重新进行带宽分配。


图1示意性地图解了尽力而为服务模型;图2图解了本发明提出抽象的带宽分配模型;图3是根据本发明一个实施例的带宽分配方法的流程图;图4是在严格带宽分配情况下,图3中的步骤S4的详细子步骤流程图;
图5是在灵活带宽分配情况下,图3中的步骤S4的详细子步骤流程图;图6是根据本发明另一个实施例的带宽分配方法的流程图;图7是本发明的带宽分配装置的示意性方框图;图8显示出本发明的应用的逻辑视图;以及图9是应用本发明的线卡的示意图。
具体实施例方式
首先描述本发明中带宽分配的模型。
由于在IP电信网中,进行带宽分配的实体可能是路由器、交换机、宽带接入服务器、EPON(以太网无源光网络)的ONU(光网络节点)或城域多业务环(MSR)设备等,而用户接入的方式也可能是xDSL(数字用户环路)、局域网(LAN)、光纤到家庭(FTTH)或专线接入等,因此一个好的带宽分配模型必须满足以下条件其一必须具备逻辑上的独立性,即独立于具体物理设备和具体实现技术,是逻辑上最基本的一种模型;其二具有通用性,必须能够用于多种应用环境,即既可以用于三层的网络层,也可以用于三层以下的链路层如MSR,甚至于物理层的带宽分配如无源光网络(PON);其三具有兼容性,即该模型可以和现有的主流技术一起使用,即可以用于Best-effort和Diffserv的网络环境中。
图2图解了本发明提出抽象的带宽分配模型。本发明中以用户(Client)来代表请求带宽的最小单元,它可以是IP电信网中一个具体的接入用户(比如在宽带接入服务器BNAS(宽带网络接入服务器)的应用中),也可以是一个支路信号(比如是在城域多业务环MSR的应用中),每个Client有自己和运营商的服务协定(SLA),其中包括用户的等级、请求的带宽(Request Bandwidth)、流量参数和为运营商带来的收入(Revenue)。而带宽的分配由资源管理器完成,它必须能够实时的进行动态带宽分配,它所能管理的带宽总量为B。
显然,该模型符合以上三个要求,它是一个单节点的模型,不考虑和其他节点的信令交互,独立于具体的物理设备和底层技术,并可以应用于多种环境,还可以和其它主流技术一起使用。
资源管理器中一个好的带宽分配算法必须具备以下特点1.简单。其由于请求带宽的Client在实时变化,因此为了实现动态带宽分配,带宽分配的算法必须能够在确定性(deterministic)的时间内实现,即该算法的计算时间不能是请求Client个数n的指数形式,而必须是在多项式时间内能够计算,并且必须方便软件实现或专用集成电路(ASIC)实现。
2.公平。资源管理器(RM,Resource Manager)对各个用户带宽的分配应该是公平(Fair)的。在带宽资源充裕的条件下,按需分配;而在用户带宽的请求量超过总带宽时,按一定的算法进行分配,但需要考虑对不同用户等级带宽分配的公平性,即进行带宽分配时,应该能够满足高优先级业务的带宽要求,即保证对高付费用户的公平性和运营商利益的最大化。因此,RM必须通过建立起区分业务和基于业务的调度算法,对各等级队列中的发送数据进行控制,即可决定分配到给各类业务的带宽大小,从而满足用户等级队列对带宽分配的公平性。
3.健壮性好。该带宽分配算法必须能够不依赖任何具体的业务模型,即无论IP网的流量采用何种业务模型,均能有效的对之进行支持。
在本发明中,动态带宽分配问题可以具体描述如下假定有编号为N1,N2,…,Nk,共k个Client,分别具有用户等级1,2,…,k(其中,不同的用户等级表示不同的统计特性和带宽需求,而用户等级和带宽需求及收入为正相关。所谓正相关是指用户等级越高,则带宽需求越大,而给运营商带来的收入越大,即收入密度越大),向一个速率为B的链路提出带宽请求。问题是网络能否选择出足够的Client,能够充分利用现有的带宽,满足Client的带宽需求,并且能够最大化的运营收入。
当网络必须完全满足为Client的带宽需求时,此时我们称之为严格的带宽分配(Strict Bandwidth Allocation or SBA)问题,而当网络可以部分满足Client带宽需求时,我们称之为灵活带宽分配问题(Flexible BandwidthAllocation or FBA)。
下面,先描述对严格带宽分配问题的求解。
SBA问题可以更准确地描述为存在编号为N1,N2,…,Nk的Client,用户等级分别为C1,C2,…Ck,其带宽需求分别为B1,B2,…,Bk,而产生的收入为R1,R2,…,Rk,链路的速率为B,收入目标为R。
问网络能否选择足够的Client,产生的收入>R,且带宽需求<=B,且完全满足这些Client的带宽需求。
容易看出BAP(带宽分配问题)属于NP问题,因为存在非确定性的算法被用来解决该问题,即简单的猜一组Client,并在多项式时间内检验以下1.检查选择的Client的带宽需求和是否不超过现有的带宽;2.检查产生的收入是否超过R;3.检查是否完全满足各个Client的带宽需求。
以下我们证明严格的带宽分配问题是NP完全问题,不存在多项式时间求出最优解的多项式算法。
我们知道存在定理若Q为NP完全问题,且Q可以在多项式时间内归约到L,则L是NP难度的。因此为了证明SBA问题是NP完全问题,我们只需要证明某个经典的NP完全问题可以在多项式时间内归约到SBA问题。
从对SBA问题的描述,我们可以看出其与背包问题类似。而背包问题描述如下已知有n种物品和一个可容纳W重量的背包,存在一个有限集U,其中每个物品的重量为W(u),而将物品u的一部分X(u)放入到背包中产生的效益为V(u)X(u),问能否选择一些物品,使得背包的重量不超过W,且产生的效益>=V。其中当0<=X(u)<=1时,该问题为背包问题,而当X(u)只能等于0或1时,为0-1背包问题。而0-1背包问题为经典NP完全问题。
现在,我们可以证明0-1背包问题是SBA问题的一个特例。0-1背包问题中定义的有限集U可以等效于Client,W(u)等效于Bk,V(u)等效于Rk,背包的大小等效于W,价值目标V等效于R。这些等效可以在常数时间内完成,即可以在O(1)时间内完成0-1背包问题到SBA问题的归约,这可以证明SBA问题是NP完全问题。因此,不存在多项式时间内的确定算法可以求解严格的带宽分配问题,而我们要寻求的是如何得出在确定时间内可以得到近似的算法。
本发明提出采用一种改进贪心算法(Greedy Algorithm)进行求解SBA问题。因为简单的贪心算法并不一定能够找到最优解。例如,如果是以收入值进行贪心算法,即优先选择产生的收入值最大的Client,则如果存在收入值大的Client的带宽需求大时,所找到的结果并非是最优解。如当带宽B为100Mbps,有Client分别为C1(100元,100Mbps);C2(75元,25Mbps);C3(200元,50Mbps);用收入值进行贪心算法,选择的结果为{C1};而最优解为{C2,C3}。
同样以收入密度(Revenue Density,即收入/带宽)进行贪心算法,所得结果也可能不是最优解。如带宽B为100Mbps,有Client分别为C1(8元,2Mbps);C2(200元,100Mbps);C3(98元,98Mbps);用收入密度进行贪心算法得到的结果为{C1,C3},而最优解为{C2};另外,需要注意的是,在带宽分配中,还存在一些其它约束条件1.Client的数量n可能很大(n>=10K),但用户等级较少(<=256),因为目前的IP电信网上采用粗粒度的QoS机制,且用户等级决定了收入密度;2.相同优先级的Client必须保证其带宽分配的公平性;SBA问题的求解方法如下;1.将Client分为N’组,其中N’为用户等级的个数,每组内Client用户等级(收入密度)相同。
2.按照用户等级(收入密度)的非递增顺序排列这N’组Client,而每组内的Client按照收入值的非递增顺序进行排列。
3.U’为空集合;4.fori=1 to n do beginif∑Bi<=B,the U’=U’+Ui;5.将结果放入暂存数组1。
6.将第一组之外的N’-1组中收入最大的且带宽需求小于B的Client放入U’中,并重新重复4)的过程,将所得结果放入暂存数组2中。比较两次的结果,将能够产生的收入较大的作为结果输出。
下面分析本发明对SBA问题的求解算法的时间和空间复杂度1.排序时间,由于第一步排序可以根据数据的用户等级进行,其时间复杂度为O(nlog2n)。
2.采用快速排序算法将相同用户等级的按照非递增顺序进行排列的时间为O(nlog2n)。
3.而采用针对收入密度的Client进行贪心算法的时间复杂度为O(n)。
4.选择第一组之外的收入最大值所需要的时间为O(1),第二次运行贪心算法的时间为O(n)。
因此,时间复杂度为O(nlog2n),空间复杂度只需要三个最大长度为n的数组,所以空间复杂度为O(n)。
下面描述对灵活带宽分配问题的求解。
对于FBA问题准确表述和上文中对SBA的表述基本相同,唯一的区别将完全满足改为部分满足Client的带宽需求,所以由上述的证明可知本问题可以等效于背包问题,则该问题是一个P问题,可以用贪心算法在多项式时间内求解出最优解。
但是对于灵活带宽分配问题,我们需要注意的是,在IP电信网中对Client进行灵活带宽分配时,除考虑收入的最大化时,还必须考虑保证所有业务基本带宽需求(CIR),因此,我们必须首先进行基本带宽分配(CIR),保证没有用户出现饥饿(Starvation)现象,然后用贪心算法进行带宽分配如下第一步进行基本带宽分配算法首先根据加权轮转法(WRR)算法将系统能够分配的总带宽在各个业务队列中进行分配,保证各个业务队列获得一定比例(Ratio)的固定数目的系统上行带宽。根据WRR基本原则,各业务队列可获得如下基本带宽;B’i=Ci*(B*Ratio/∑Ck)第二步用贪心算法对剩余的B*(1-Ratio)进行求解;采用贪心算法求解按照Client请求的收入密度(用户等级),即Revenue/Bandwidth(R/B)进行贪心算法;1.将Client分为N’组,其中N’为用户等级的个数,每组内Client用户等级相同。
2.将每组的Client进行合并,则重新生成N’个Client’,其请求的带宽分别为∑C1,∑C2,…,∑CN,并将重新合并过的N’个请求按照用户等级的大小(即收入密度)的非递增顺序进行排列。
3.对这N’个请求运行贪心算法,选择出产生收入最大的最优解。
4.输出选择的每个Client’所对应的所有Client,每个Client分配的收入值为R(u)*X(u)。
下面分析本发明对灵活带宽分配问题的求解的时间复杂度和空间复杂度。显然该算法是确定性算法,所需的时间为O(nlog2n),而空间复杂度也为O(n)。
下面参考附图,更详细地描述本发明的带宽分配方法和装置。
首先参考图3-6描述本发明的带宽分配方法。图3是根据本发明一个实施例的带宽分配方法的流程图。
在步骤S1,从n个用户流量的带宽请求中获取每个请求方的带宽需求值及其所对应的一个指标值,该指标值可以是运营商或其他人所需要的任何值,除了上文中所提到的为运营商带来的收入之外,还可以是其它一些值,例如,该运营商指定的一些优先级等。本发明旨在从这n个用户中选择部分用户,在总带宽B的限度范围内满足其带宽需求,以使总指标值最大化或接近最大化。
在步骤S2,对每个请求方计算其所对应的指标值与其带宽需求的比值,从而得出单位带宽指标值。
在步骤S3,对所述n个请求方根据单位带宽指标值从大到小排序,形成第一队列。如前面所描述,可以先将所有请求方按照单位带宽指标值进行分组,然后对各个组进行排序。优选地,还可以在各个具有相同单位带宽指标值的请求方的组内部,进一步按照各个请求方的指标值从大到小排序,这在严格带宽分配模式下尤其显得有益。
在步骤S4,按所述第一队列顺序选取可满足其带宽需求的请求方,形成第一集合。其中,按所述第一队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,当能够满足其带宽需求时,将该请求方添加到所述第一集合中。图4和图5分别图解了步骤S4在不同分配模式要求下的具体执行方式。
在本发明的带宽分配方法中还可以包括判断是否需要完全满足请求方的带宽需求的步骤,即判断是严格带宽分配还是灵活带宽分配。图中没有示出这一步骤,但是本领域一般技术人员应该明白,这一步骤可以在步骤S4之前任何时候进行,也可以在执行步骤S4的过程中进行。严格带宽分配模式和灵活带宽分配模式的区别就在于当总带宽中剩余部分不足以满足一个请求方的带宽需求时严格带宽分配模式需要完全满足请求方的带宽需求,而不允许只满足请求方的部分带宽需求,因此跳过该请求方,对下一个请求方进行判断;而灵活带宽分配模式不需要完全满足请求方的带宽需求,允许只满足请求方的部分带宽需求,因此可以简单地通过将剩余带宽分配给该请求方而完成分配,并获得最高的指标值。
图4图解了在严格带宽分配模式下,执行图3中的步骤S4的选取操作的详细子步骤流程图。
在步骤S401,进行初始化,建立一个空的集合U,从队列中第一个请求方开始,即取i=1,因为尚未选择任何请求方,因此,已选请求方的带宽总需求Bselect=0。
在步骤S402,判断已选请求方的带宽总需求Bselect与第i个请求方Ni的带宽需求Bi之和是否超过了总带宽B。
如果在步骤S402判定上述和值未超过总带宽B,则在步骤S403中将第i个请求方Ni添加到集合U中,然后处理进入步骤S404。如果在步骤S402判定上述和值超过了总带宽B,则处理直接进入步骤S404。
在步骤S404,使i值递增1。在步骤S405判断递增后的i是否大于请求方数目。通过步骤S404和步骤S405的处理,判断了队列中是否还有未判断的请求方,即是否已对所有这n个请求方进行了判断和选取。
如果在步骤S404判定i值不大于n,即队列中还有未被判断选取的请求方,则处理范围步骤S402,继续对下一个请求方进行判断和选取。
如果在步骤S404判定i值大于n,即已判断选取了队列中所有的请求方,则处理进入步骤S406,选取操作结束。
图5图解了在灵活带宽分配模式下,执行图3中的步骤S4的选取操作的详细子步骤流程图。
图5中与图4相同的步骤使用了相同的标号。图5中,步骤S401的初始化和步骤S402的判断,以及在步骤S402判定上述和值未超过总带宽B的情况下的操作步骤S413、步骤S414、步骤S415与图4中相应的步骤相同,因此这里省略对其的详细描述。图5的方法与图4的方法的区别仅在于,在步骤S402判定上述和值超过了总带宽B的情况下的操作不同。在灵活带宽分配模式中,由于可以只满足请求方的部分带宽需求,因此,只需在步骤S417将剩余带宽B-Bselect分配给该第i个请求方,即可进入步骤S406,最优地完成带宽分配任务。
至此,在所描述的带宽分配方法中,对于灵活带宽分配模式而言,已经获得了最优的带宽分配的方案,对于严格带宽分配模式而言,获得了一个近似最优的带宽分配方案,如前所述,这一可能并不是最优的,但是这一方案同样是可行的,而且在很多情况下,也可以获得较大的指标值。由于前面已经证明严格带宽分配问题是NP完全问题,不可能在多项式时间内获得精确求解,所以这样一个近似的方案同样是非常有意义的。
对于严格带宽分配模式,为了进一步优化带宽分配方案,还可以进一步改进图3所示的方法。
图6图解了根据本发明另一个实施例的带宽分配方法的流程图。
其中步骤S1-S4与图3中的步骤S1-S4完全相同,步骤S4中采用图4所示的方法选取请求方。即相当于先按前述方法获得一套分配方案。
然后在步骤S5对步骤S3中获得的队列进行重新排序,即将最高单位带宽指标值之外的各单位带宽指标值所对应的多个请求方(如果按照单位带宽指标值进行分组排序,则是第一组之外各组)中指标值较高的至少一个请求方从所述第一队列中取出,排在队列最前面,形成第二队列。
在步骤S6,按照第二队列的顺序,再次对各个请求方执行如图4所示的选取操作,选取可满足其带宽需求的请求方,形成第集合。即逐一判断剩余带宽能否满足其带宽需求,当能够满足其带宽需求时,将该请求方添加到所述第二集合中。
在步骤S7,计算所述第一集合中的各请求方所对应的指标值之和,作为第一总指标值,并计算所述第二集合中各请求方所对应的指标值之和,作为第二总指标值,比较所述第一总指标值和第二总指标值。
在步骤S8,选择总指标值较大的集合,即当第一总指标值大于第二总指标值时,满足所述第一集合中的各请求方的带宽需求;而当第二总指标值大于第一总指标值时,满足所述第二集合中的各请求方的带宽需求。
另外,如前面所述,在灵活带宽分配模式下,即不需要完全满足请求方的带宽需求的情况下,还可以包括首先向每个请求方分配预定比例的基本带宽的步骤。
另外,还可以包括循环判断请求方的带宽需求和其所对应的指标值是否发生了改变,并在发生改变的情况下重新进行带宽分配的步骤。从而可以针对带宽需求和指标值的改变进行实时带宽分配。
图7是本发明的带宽分配装置的示意性方框图。
如图7所示,本发明的带宽分配装置包括请求信息获取装置701,用于获取每个请求方的带宽需求及其所对应的一个指标值;单位带宽指标值计算装置702,用于对每个请求方计算其所对应的指标值与其带宽需求的比值,得出单位带宽指标值;排序装置703,对所述多个请求方根据单位带宽指标值从大到小排序,形成第一队列;存储装置705,用于存储可满足其带宽需求的请求方的第一集合,此外,存储装置705也可以,但非必须,存储请求信息获取装置所获取的每个请求方的带宽需求及其所对应的一个指标值;判断选取装置704,按所述第一队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,在判定能够满足请求方的带宽需求时,将该请求方添加到所述第一集合中。
拥有上述装置,本发明已足以完成带宽分配的任务,但是为了更好地实现本发明的目的,本发明的带宽分配装置还可以包括模式判断装置(未示出),用于判断是否需要完全满足请求方的带宽需求,其中,当所述带宽判断装置判定剩余带宽不足以满足一个请求方的带宽需求时,如果所述模式判断装置判定需要完全满足请求方的带宽需求,则跳过该请求方,而对下一个请求方进行判断;如果所述判断装置判定不需要完全满足请求方的带宽需求,则将剩余带宽分配给该请求方。
在所述模式判断装置判定需要完全满足请求方的带宽需求的情况下,所述排序装置还可以对所述第一队列中单位带宽指标值相同的请求方进一步按每个请求方所对应的指标值从高到低排列顺序。
图7中虽然同时还示出了总指标值计算装置706和比较选择装置707,但是,没有它们同样可以实现本发明的目的。
为了在严格带宽分配模式下,即需要完全满足请求方的带宽需求的情况下更好地实现本发明的目的,本发明的排序装置703进一步将最高单位带宽指标值之外的各单位带宽指标值所对应的多个请求方中指标值较高的至少一个请求方从所述第一队列中取出,排在队列最前面,形成第二队列;存储装置705还存储可满足其带宽需求的请求方的第二集合,其中,所述判断选取装置704按所述第二队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,当能够满足其带宽需求时,将该请求方添加到所述第二集合中。同时,为了更好地实现本发明的目的,本发明的带宽分配装置还包括总指标值计算装置706,用于计算所述第一集合中各请求方所对应的指标值之和,作为第一总指标值,并计算所述第二集合中各请求方所对应的指标值之和,作为第二总指标值;比较选择装置707,用于比较所述第一总指标值和第二总指标值,当第一总指标值大于第二总指标值时,选择所述第一集合,以满足其中的各请求方的带宽需求,当第二总指标值大于第一总指标值时,选择所述第二集合,以满足其中的各请求方的带宽需求。
本发明的带宽分配装置还可以包括基本带宽分配装置(未示出),用于在不需要完全满足请求方的带宽需求的情况下,首先向每个请求方分配预定比例的基本带宽。
本发明的带宽分配装置还包括可以包括检测装置(未示出),用于循环判断请求方的带宽需求和其所对应的指标值是否发生了改变,并在发生改变的情况下重新进行带宽分配。
上面参考附图3-7所描述的本发明的方法和装置只是作为示例而提出,本领域技术人员完全可以在此基础上进行各种修改,而这种修改都涵盖在本由于本发明用于网络中的单个节点,不需要对数据包做任何修改,也不需要引入任何信令,因此本发明具有良好的兼容性,可以和其它主流技术一起使用。如在现有的Best-effort网络应用中,本发明由于只在用户的接入节点实现动态带宽分配,并不对其它节点的转发方式进行要求,因此不影响现有网络的正常运行,即在网络的接入节点根据SLA进行动态带宽分配,而在其它节点仍采用Best-effort的方式。而在Diffserv的三层应用环境中,即在采用本发明的设备进行了动态带宽分配后,网络的汇聚节点仍然可以对数据包进行分类,并打入DSCP标记,供核心节点转发。
下一代的IP电信网络是可运营、可管理的网络,因此,它必须能够实现对带宽进行有效的动态分配。本发明提出一种简化的带宽分配模型,并阐述了带宽分配问题可以分为完全满足带宽需求的严格带宽分配问题和部分满足的灵活带宽分配问题。前者可以等效于0-1背包问题,是一个NP完全问题,不存在多项式时间的算法求出最优解;而后者可以等效于背包问题,可以用对收入密度贪心算法求出最优解。本发明提供了针对严格带宽分配问题的一种近似求解算法,它可以在O(nlog2n)的时间内求出近似解;而针对灵活带宽分配问题,在采用贪心算法之前,需要对业务进行基本带宽分配,以满足带宽分配的公平性。本发明提出的算法既满足了带宽的分配的公平性,也考虑了运营收入的最大化,并且可以在确定性时间内完成,具有较好的应用前景。并且,由本发明仅用于单个网络设备内,不需要引入复杂的信令和带来可扩展性的问题,可以和其它QoS方法兼容使用。
下面,描述本发明的上述设备的应用实例,即在武汉烽火网络公司的R8000多业务高端路由器上的具体应用。
武汉烽火网络公司研制的R8000是定位于城域网汇聚层和主干层的路由交换设备,它支持多种接口种类和具有灵活的业务生成能力。当R8000定位于城域网汇聚层的网络设备时,它主要完成对城域网中接入层上联链路的汇接(Metro Aggregation),在用户侧能够接入Fast Ethernet、Gigabit Ethernet和低速ATM等信号,并提供智能业务生成(Service Creation)功能,为运营商提供各种增值功能,而在网络层通过GE(千兆以太网)或POS(Packet overSDH/Sonet)和城域网主干层设备相连。此外,R8000也可以通过POS接口和SDH本地环连接,或者通过GE组成环形或星形网络,组成城域网的主干,并通过OC-48 POS和主干网设备相连。
从组网的需求来看,R8000上需要实现RIP(路由信息协议)和OSPF(开放最短路径优先)等域内协议和BGP-4等域间协议,在链路层支持端对端协议(PPP)、以太网(Ethernet)、LAPS(链路接入协议-SDH)和高级数据链路控制(HDLC)等协议。从应用的角度来说,R8000能够提供实现单播、组播和MPLS(多协议标记交换)转发,并提供NAT、Firewall(防火墙)、虚拟个人网络(VPN)、虚拟路由器(Virtual Router)和移动IP等应用。此外,考虑到目前国内接入层的组网方式,R8000上该能够提供二层应用(VLAN)的支持。作为提供给运营商的增值功能,R8000目前可以提供基于端口和PPPoE Session(PPPoE会话)的带宽限制和QoS保证。从对用户的管理角度来说,R8000目前可以提供基于PPPoE的认证方式,并能通过Radius来实现对用户流量的计费。此外,还支持VLAN+IP+MAC的三级绑定和Web认证。
R8000的机架采用工业标准的19英寸机箱,盘位间距为25.4mm,总共16个槽位,其中主控CPU和交换盘占用7号和8号槽位,为1+1的备份,而剩余14个槽位提供给线卡使用,线卡为9U。
图8显示出本发明的应用的逻辑视图。图中,黑色箭头代表高速数据总线,绿色箭头代表高速控制总线。其中,高速的数据总线提供的大容量的数据通道,而控制总线中提供了管理消息的通道,并提供了监控硬件状态的Health#、Present#和Alarm#等信号。整个系统采用3∶1的风扇备份和1∶1的电源备份,提供了硬件的高可用性冗余支持。
此外,MAISP-8000采用了控制和转发分离的体系结构,其中控制和管理功能运行在主控CPU上,本发明上的动态带宽分配方法就运行在主控CPU上。而线卡采用了基于网络处理器转发的体系架构,如图9,在每个线卡的核心为一个高性能的网络处理器,它在SRAM和SDRAM中维护有全局的转发消息库(FIB),并可以对用户的流量进行动态的带宽控制。
综上所述,由于MAISP-8000是定位于运营商的电信级设备,它采用了冗余的硬件体系结构和转发和控制分离的实现方案,并实现了本发明的动态带宽分配方法,主要包括以下功能
1.线卡上的网络处理器对进入R8000的用户流量按照SLA进行分类,也就是说,对每个用户流量获取其相关的服务协定,包括带宽需求、指标值如收入等,并将带宽需求信息送至主控CPU;2.主控CPU上的带宽分配软件判断该接口的工作模式为严格带宽分配(SBA)还是灵活带宽分配(FBA)方式;3.如果是SBA方式,则主控CPU上的软件按照本发明中的SBA的分配算法在多项式时间内计算出,各个用户能够满足的带宽,并将带宽参数发给各个网络处理器。各个网络处理器上的流量控制单元将按照这些带宽参数控制各个用户的带宽。
4.如果FBA方式,则主控按照本发明中的FBA的分配算法在多项式时间内计算出,各个用户能够满足的带宽,并将带宽参数发给各个网络处理器。各个网络处理器上的流量控制单元将按照这些带宽参数控制各个用户的带宽。
当用户的带宽需求发生动态改变时,重复1到4的过程。
尽管参考本发明的优选实施例具体展示和描述了本发明,但是本领域一般技术人员应该明白,在不脱离所附权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种修改。
权利要求
1.一种带宽分配方法,用于向多个请求方分配预定总带宽,该方法包括以下步骤获取每个请求方的带宽需求及其所对应的一个指标值;对每个请求方计算其所对应的指标值与其带宽需求的比值,得出单位带宽指标值;对所述多个请求方根据单位带宽指标值从大到小排序,形成第一队列;以及形成可满足其带宽需求的请求方的第一集合,其中,按所述第一队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,当能够满足其带宽需求时,将该请求方添加到所述第一集合中。
2.如权利要求1所述的带宽分配方法,还包括判断是否需要完全满足请求方的带宽需求的步骤,其中,当判定剩余带宽不足以满足一个请求方的带宽需求时,如果判定需要完全满足请求方的带宽需求,则跳过该请求方,而对下一个请求方进行判断;如果判定不需要完全满足请求方的带宽需求,则将剩余带宽分配给该请求方。
3.如权利要求2所述的带宽分配方法,在需要完全满足请求方的带宽需求的情况下,还包括以下步骤对所述第一队列中单位带宽指标值相同的请求方进一步按每个请求方所对应的指标值从高到低排列顺序。
4.如权利要求3所述的带宽分配方法,在需要完全满足请求方的带宽需求的情况下,还包括以下步骤计算所述第一集合中的各请求方所对应的指标值之和,作为第一总指标值;将最高单位带宽指标值之外的各单位带宽指标值所对应的多个请求方中指标值较高的至少一个请求方从所述第一队列中取出,排在队列最前面,形成第二队列;形成可满足其带宽需求的请求方的第二集合,其中,按所述第二队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,当能够满足其带宽需求时,将该请求方添加到所述第二集合中;计算所述第二集合中各请求方所对应的指标值之和,作为第二总指标值;比较所述第一总指标值和第二总指标值;当第一总指标值大于第二总指标值时,满足所述第一集合中的各请求方的带宽需求;以及当第二总指标值大于第一总指标值时,满足所述第二集合中的各请求方的带宽需求。
5.如权利要求2所述的带宽分配方法,在不需要完全满足请求方的带宽需求的情况下,还包括首先向每个请求方分配预定比例的基本带宽的步骤。
6.如权利要求1-5中任何一个所述的带宽分配方法,还包括以下步骤循环判断请求方的带宽需求和其所对应的指标值是否发生了改变,并在发生改变的情况下重新进行带宽分配。
7.一种带宽分配装置,用于向多个请求方分配预定总带宽,该装置包括请求信息获取装置,用于获取每个请求方的带宽需求及其所对应的一个指标值;单位带宽指标值计算装置,用于对每个请求方计算其所对应的指标值与其带宽需求的比值,得出单位带宽指标值;排序装置,对所述多个请求方根据单位带宽指标值从大到小排序,形成第一队列;存储装置,用于存储可满足其带宽需求的请求方的第一集合;判断选取装置,按所述第一队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,在判定能够满足请求方的带宽需求时,将该请求方添加到所述第一集合中。
8.如权利要求7所述的带宽分配装置,还包括模式判断装置,用于判断是否需要完全满足请求方的带宽需求,其中,当所述带宽判断装置判定剩余带宽不足以满足一个请求方的带宽需求时,如果所述模式判断装置判定需要完全满足请求方的带宽需求,则跳过该请求方,而对下一个请求方进行判断;如果所述判断装置判定不需要完全满足请求方的带宽需求,则将剩余带宽分配给该请求方。
9.如权利要求9所述的带宽分配装置,其中在所述模式判断装置判定需要完全满足请求方的带宽需求的情况下,所述排序装置对所述第一队列中单位带宽指标值相同的请求方进一步按每个请求方所对应的指标值从高到低排列顺序。
10.如权利要求9所述的带宽分配装置,其中,排序装置将最高单位带宽指标值之外的各单位带宽指标值所对应的多个请求方中指标值较高的至少一个请求方从所述第一队列中取出,排在队列最前面,形成第二队列;存储装置还存储可满足其带宽需求的请求方的第二集合,其中,所述带宽判断装置按所述第二队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,当能够满足其带宽需求时,将该请求方添加到所述第二集合中,该带宽分配装置还包括总指标值计算装置,用于计算所述第一集合中各请求方所对应的指标值之和,作为第一总指标值,并计算所述第二集合中各请求方所对应的指标值之和,作为第二总指标值;比较选择装置,用于比较所述第一总指标值和第二总指标值,当第一总指标值大于第二总指标值时,选择所述第一集合,以满足其中的各请求方的带宽需求,当第二总指标值大于第一总指标值时,选择所述第二集合,以满足其中的各请求方的带宽需求。
11.如权利要求8所述的带宽分配装置,还包括基本带宽分配装置,用于在不需要完全满足请求方的带宽需求的情况下,首先向每个请求方分配预定比例的基本带宽。
12.如权利要求7-11中任何一个所述的带宽分配装置,还包括检测装置,用于循环判断请求方的带宽需求和其所对应的指标值是否发生了改变,并在发生改变的情况下重新进行带宽分配。
全文摘要
本发明提供了一种快速高效带宽分配方法和装置,用于向多个请求方分配预定总带宽,该方法包括以下步骤获取每个请求方的带宽需求及其所对应的一个指标值;对每个请求方计算其所对应的指标值与其带宽需求的比值,得出单位带宽指标值;对所述多个请求方根据单位带宽指标值从大到小排序,形成第一队列;以及形成可满足其带宽需求的请求方的第一集合,其中,按所述第一队列顺序对各个请求方逐一判断剩余带宽能否满足其带宽需求,当能够满足其带宽需求时,将该请求方添加到所述第一集合中。该方法能够对带宽进行有效的分配,以实现对用户服务质量的保证,并实现运营商利益的最大化,并可以在多项式时间内得出最优或接近最优解的结果。
文档编号H04L12/24GK1691604SQ20041004209
公开日2005年11月2日 申请日期2004年4月30日 优先权日2004年4月30日
发明者吉萌, 余少华 申请人:武汉烽火网络有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1