一种调度方法及装置与流程

文档序号:18105621发布日期:2019-07-06 11:38阅读:196来源:国知局
一种调度方法及装置与流程

本发明涉及通信技术领域,特别涉及一种调度方法及装置。



背景技术:

终端的芯片通常包括应用程序处理器和通信处理器。应用程序处理器上运行一个tcp/ip协议栈,用来处理应用程序的联网需求,无线通信协议栈通常运行在通信处理器上,tcp/ip协议栈通过网卡驱动实现和通信处理器中的调制解调器(modem)之间的通信。

现有技术中,如图1所示,tcp/ip协议栈和网卡驱动之间设置有先入先出(firstinfirstout,fifo)队列。终端进行上行传输时,各种类型的业务数据(比如视频、文件下载等)均由应用程序处理器通过fifo队列发送给调制解调器。采用此种方式,当存在大量文件下载的业务数据时,会导致视频的业务数据无法及时发送给调制解调器,进而无法满足视频的数据传输速率需求。

综上,目前亟需一种调度方法,用于解决现有技术中应用程序处理器通过fifo队列向调制解调器发送数据,无法满足业务的数据传输速率需求的技术问题。



技术实现要素:

本申请实施例提供一种调度方法,用于解决现有技术中应用程序处理器通过fifo队列向调制解调器发送数据,无法满足业务的数据传输速率需求的技术问题。

第一方面,本申请实施例提供一种调度方法,所述调度方法包括:

应用程序处理器确定待发送数据包所属的类型,并将所述待发送数据包放入所述待发送数据包所属的类型对应的服务质量qos数据流;所述待发送数据包所属的类型为承诺比特速率gbr类型或非承诺比特速率non-gbr类型;

所述应用程序处理器调度所述gbr类型对应的qos数据流中的待发送数据包发送给所述应用程序处理器所在的终端中的调制解调器,并在确定满足gbr类型的数据传输速率需求后,调度所述non-gbr类型对应的qos数据流中的待发送数据包发送给所述调制解调器。

如此,通过应用程序处理器将待发送数据包过滤到gbr类型对应的qos数据流和non-gbr类型对应的qos数据流,并优先将gbr类型对应的qos数据流的待发送数据包发送给调制解调器,在满足gbr类型的数据传输速率需求后,再将non-gbr类型对应的qos数据流的待发送数据包发送给调制解调器,从而将qos数据流由调制解调器延伸至应用程序处理器,有效解决现有技术中由于tcp/ip协议栈和网卡驱动之间仅设置一个fifo队列而导致无法满足业务的数据传输速率需求的技术问题。

在一种可能的设计中,所述应用程序处理器确定待发送数据包所属的类型,包括:

所述应用程序处理器将所述待发送数据包与多个qos规则进行匹配,所述qos规则中包括qos数据流标识qfi;

所述应用程序处理器根据与所述待发送数据包匹配成功的第一qos规则中的qfi以及qfi和类型的映射关系,确定所述待发送数据包所属的类型。

在一种可能的设计中,所述方法还包括:

所述应用程序处理器使用所述第一qos规则中的qfi,对所述待发送数据包进行标记。

如此,由应用程序处理来对待发送数据包进行标记,能够有效减轻通信处理器(或调制解调器)的处理负担。

在一种可能的设计中,所述待发送数据包的包头前面包括头域,所述头域的内容为所述第一qos规则中的qfi;或者,所述待发送数据包的描述符中包括第一字段,所述第一字段的内容为所述第一qos规则中的qfi。

在一种可能的设计中,所述应用程序处理器将所述待发送数据包放入所述待发送数据包所属的类型对应的qos数据流,包括:

所述应用程序处理器将所述待发送数据包放入所述第一qos规则中的qfi对应的qos数据流。

在一种可能的设计中,所述应用程序处理器调度所述第一qos数据流中的待发送数据包的速率大于或等于第一gfbr,所述第一gfbr为与所述第一qos数据流中的待发送数据包匹配成功的qos规则中的gfbr,所述第一qos数据流为所述gbr类型对应的任一qos数据流。

通过这种方式,使得调度gbr类型的待发送数据包的速率符合需求。

在一种可能的设计中,所述应用程序处理器调度所述第二qos数据流中的待发送数据包的速率小于或等于qos参数中的ambr,所述第二qos数据流为所述non-gbr类型对应的任一qos数据流。

通过这种方式,使得调度non-gbr类型的待发送数据包的速率符合需求。

在一种可能的设计中,所述应用程序处理器调度所述gbr类型对应的qos数据流中的待发送数据包,包括:所述应用程序处理器根据所述gbr类型对应的多个qos数据流的优先级,调度所述gbr类型对应的多个qos数据流中的待发送数据包;

所述应用程序处理器调度所述non-gbr类型对应的qos数据流中的待发送数据包,包括:所述应用程序处理器根据所述non-gbr类型对应的多个qos数据流的优先级,调度所述non-gbr类型对应的多个qos数据流中的待发送数据包。

根据上述内容可知,应用程序处理器在调度gbr类型对应的待发送数据包时,是根据gbr类型对应的队列的优先等级值(即优先级)来确定调度顺序的,相比于现有技术中仅有一个fifi队列来说,本申请实施例中的方式能够有效保证高优先级的待发送数据包可以被优先发送到调制解调器中。

应用程序处理器在调度non-gbr类型对应的待发送数据包时,是根据non-gbr类型对应的队列的优先等级值(即优先级)来确定调度顺序的,相比于现有技术中仅有一个fifi队列来说,本申请实施例中的方式能够有效保证高优先级的待发送数据包可以被优先发送到调制解调器中。

第二方面,本申请实施例提供一种应用程序处理器,所述应用程序处理器包括:

处理模块,用于确定待发送数据包所属的类型,并将所述待发送数据包放入所述待发送数据包所属的类型对应的服务质量qos数据流;所述待发送数据包所属的类型为承诺比特速率gbr类型或非承诺比特速率non-gbr类型;

调度模块,用于调度所述gbr类型对应的qos数据流中的待发送数据包发送给所述应用程序处理器所在的终端中的调制解调器,并在确定满足gbr类型的数据传输速率需求后,调度所述non-gbr类型对应的qos数据流中的待发送数据包发送给所述调制解调器。

在一种可能的设计中,所述处理模块具体用于:

将所述待发送数据包与多个qos规则进行匹配,所述qos规则中包括qos数据流标识qfi;

根据与所述待发送数据包匹配成功的第一qos规则中的qfi以及qfi和类型的映射关系,确定所述待发送数据包所属的类型。

在一种可能的设计中,所述处理模块还用于:

使用所述第一qos规则中的qfi,对所述待发送数据包进行标记。

在一种可能的设计中,所述待发送数据包的包头前面包括头域,所述头域的内容为所述第一qos规则中的qfi;或者,所述待发送数据包的描述符中包括第一字段,所述第一字段的内容为所述第一qos规则中的qfi。

在一种可能的设计中,所述处理模块具体用于:

将所述待发送数据包放入所述第一qos规则中的qfi对应的qos数据流。

在一种可能的设计中,所述调度模块调度所述第一qos数据流中的待发送数据包的速率大于或等于第一gfbr,所述第一gfbr为与所述第一qos数据流中的待发送数据包匹配成功的qos规则中的gfbr,所述第一qos数据流为所述gbr类型对应的任一qos数据流。

在一种可能的设计中,所述调度模块调度所述第二qos数据流中的待发送数据包的速率小于或等于qos参数中的ambr,所述第二qos数据流为所述non-gbr类型对应的任一qos数据流。

在一种可能的设计中,所述调度模块具体用于:

根据所述gbr类型对应的多个qos数据流的优先级,调度所述gbr类型对应的多个qos数据流中的待发送数据包;

根据所述non-gbr类型对应的多个qos数据流的优先级,调度所述non-gbr类型对应的多个qos数据流中的待发送数据包。

第三方面,本申请实施例提供一种终端,该终端包括应用程序处理器,所述应用程序处理器用于实现第一方面中方法示例中的功能。

所述终端还可以包括通信模块、通信处理器,所述通信处理器中包括调制解调器,所述通信模块用于将应用程序处理器调度的待发送数据包发送给所述调制解调器;所述通信模块可以为网卡驱动。

进一步地,所述终端还可以包括:存储器,用于存放程序等。具体地,程序可以包括程序代码,该程序代码包括指令。存储器可能包含随机存取存储器(randomaccessmemory,ram),可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。应用程序处理器执行存储器所存放的应用程序,实现上述功能。

一种可能的方式中,通信模块、应用程序处理器、通信处理器和存储器可以通过总线相互连接;总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。

本申请实施例还提供了一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被处理器读取并执行时可实现上述各方面或各种可能的设计提供的调度方法。

本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面或各种可能的设计所述的调度方法。

本申请实施例还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述各方面或各种可能的设计所述的调度方法。

附图说明

图1为现有技术中应用程序处理器和调制解调器之间的通信示意图;

图2a为本申请适用的5gnr通信系统的网络架构示意图;

图2b为一种qos模型示意图;

图3为本申请实施例提供的一种调度方法对应的流程示意图;

图4为使用令牌桶的方式调度待发送数据包的示意图;

图5为本申请实施例提供的在一个调度周期内调度gbr类型的待发送数据包的流程示意图;

图6为本申请实施例提供的在一个调度周期内调度non-gbr类型的待发送数据包的流程示意图;

图7为本申请实施例提供的htbp队列模型示意图;

图8为本申请实施例提供的一种应用程序处理器的结构示意图;

图9为本申请实施例提供的一种终端的结构示意图。

具体实施方式

下面结合说明书附图对本申请实施例进行具体说明,方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

本申请实施例提供的调度方法可以适用但不限于第五代(5thgeneration,5g)新无线电(newradio,nr)通信系统。

以5gnr通信系统为例,图2a为本申请适用的5gnr通信系统的网络架构示意图。如图2a所示,该网络架构中包括终端201,接入网络(accessnetwork,an)网元202,用户面功能(userplanefunction,upf)网元203以及smf网元204。

其中,终端201,是一种具有无线收发功能的设备,可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。该终端可以是用户设备(userequipment,ue),手机(mobilephone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtualreality,vr)终端、增强现实(augmentedreality,ar)终端、工业控制(industrialcontrol)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程医疗(remotemedical)中的无线终端、智能电网(smartgrid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smartcity)中的无线终端、智慧家庭(smarthome)中的无线终端等。

an网元202,用于为终端201提供网络资源。an网元202可以是5gnr通信系统中的基站,负责无线资源管理,上下行数据分类和qos应用,以及与控制面网元共同完成信令处理,与upf网元共同完成数据转发等功能。

upf网元203,用于分组路由和转发,以及用户面数据的qos处理等。

smf网元204,主要功能包括pdu会话管理,终端的ip地址分配和管理,选择和管理用户面功能网元,下行数据通知等。

其中,pdu会话(session)为终端和数据网络之间的链接,一个pdu会话包括一个或多个服务质量数据流(qosflow)。在pdu会话建立过程中,smf网元把qosflow对应的qos参数下发给ue。

进一步地,qos参数可以包括但不限于以下内容:一个或多个qos规则(rule);pdu会话的聚合最大比特速率(aggregatemaxbitrate,ambr)。

具体来说,pdu会话的ambr用来限制pdu会话中所有的non-gbrqosflow的最高数据速率。每个qos规则可以包含以下参数:服务质量规则标识(qosruleidentifier,qri);服务质量数据流标识(qosflowidentity,qfi);数据包过滤器(packetfilter)(可选);qos规则的优先级;5gqos标识(5gqosidentifier,5qi)。针对于gbr类型的qosflow,对应的qos规则还包括以下参数:上行承诺流比特速率(guaranteedflowbitrate,gfbr);下行gfbr;上行最大流比特速率(maximumflowbitrate,mfbr);下行mfbr。其中,5qi与qfi一一对应。

进一步地,如表1所示,为qfi与qos特性映射表。其中,qos特性包括资源类型(resourcetype)、qos数据流的优先等级(prioritylevel)值、数据包时延预算(packetdelaybudget)、包错误率(packeterrorrate)。

表1:qfi与qos特性映射表

基于图2a所示意图的网络架构,图2b为一种qos模型示意图。如图2b所示,在下行方向上,upf网元按照服务数据流(servicedataflow,sdf)模板的优先级逐个匹配每个sdf模板,将下行数据包进行分类,并映射到服务质量数据流(qosflow),以及使用qos数据流标识(qosflowidentifier,qfi)对每个下行数据包进行标识,进而由an网元将下行qosflow映射到接入网资源,比如数据无线承载(dataradiobearers,drb)。

在上行方向上,终端按照qos规则的优先级逐个匹配每个qos规则中的数据包过滤器,将上行数据包进行分类,并映射到qosflow,以及使用qfi对每个上行数据包进行标识,进而把qosflow映射到接入网资源,如drb。

针对于上行方向,由图1可以看出,应用程序处理器通过fifo队列向调制解调器发送数据,然而由于tcp/ip协议栈和网卡驱动之间仅设置一个fifo队列,从而导致无法有效满足部分业务的数据传输速率需求。

本申请实施例中,考虑到业务主要可以分为两大类型:gbr(guaranteedbitrate,保证比特速率)类型和non-gbr(non-guaranteedbitrate,非保证比特速率)类型,其中,gbr类型的业务对时延要求较为严格,容许较高的数据丢包率,比如会话类视频等业务,non-gbr类型的业务对信息的完整性要求较为严格,不容许较高的数据丢包率,比如网页浏览、文件下载等业务,因此,可通过应用程序处理器将待发送数据包过滤到gbr类型对应的qos数据流和non-gbr类型对应的qos数据流,并优先将gbr类型对应的qos数据流的待发送数据包发送给调制解调器,在满足gbr类型的数据传输速率需求后,再将non-gbr类型对应的qos数据流的待发送数据包发送给调制解调器,由此可知,本申请实施例中由应用程序处理器将待发送数据包放入不同的qos数据流中,从而通过将qos数据流由调制解调器延伸至应用程序处理器,有效解决现有技术中无法满足业务的数据传输速率需求的技术问题。

图3为本申请实施例提供的一种调度方法对应的流程示意图,如图3所示,该方法包括:

步骤301,应用程序处理器确定待发送数据包所属的类型,并将所述待发送数据包放入所述待发送数据包所属的类型对应的qos数据流;所述待发送数据包所属的类型为gbr类型或non-gbr类型。

此处,待发送数据包可以有多个,比如,待发送数据包1、待发送数据包2、待发送数据包3;应用程序处理器若确定待发送数据包1所属的类型为gbr类型,则将待发送数据包放入gbr类型对应的qos数据流,若确定待发送数据包2和待发送数据包3所属的类型为non-gbr类型,则将待发送数据包2和待发送数据包3放入non-gbr类型对应的qos数据流。其中,以gbr类型为例,应用程序处理器将待发送数据包放入gbr类型对应的qos数据流可以理解为应用程序处理器将待发送数据包放入gbr类型对应的队列中,进一步地,该队列可以为fifo队列。也就是说,qos数据流可以对应应用程序处理器中的一个队列。

通过这种方式,可以将gbr类型的待发送数据包和non-gbr类型的待发送数据包区分开来,以便于后续根据相应的需求进行调度。

步骤302,应用程序处理器调度所述gbr类型对应的qos数据流中的待发送数据包,并在确定满足gbr类型的数据传输速率需求后,调度所述non-gbr类型对应的qos数据流中的待发送数据包。

此处,应用程序处理器在调度待发送数据包时,可优先调度gbr类型对应的qos数据流中的待发送数据包,后调度non-gbr类型对应的qos数据流中的待发送数据包,以便于满足gbr类型的数据传输速率需求,相比于现有技术中应用程序处理器通过一个fifo队列来调度待发送数据包来说,本申请实施例中的方法能够有效确保满足gbr类型速率需求。

进一步地,上述步骤301中,应用程序处理器确定待发送数据包所属的类型的具体方式可以有多种,一种可能的实现方式为:应用程序处理器获取服务质量qos参数,所述qos参数中包括多个qos规则,将待发送数据包与所述多个qos规则进行匹配,并根据与所述待发送数据包匹配成功的第一qos规则中的qfi以及表1所示出的qfi和类型之间存在映射关系,可确定所述待发送数据包所属的类型。

进一步地,待发送数据包所属的类型对应的qos数据流可以包括一个或多个qos数据流(即队列),比如,队列a1、队列a2和队列a3;non-gbr类型对应的qos数据流可以包括多个qos数据流(即队列),比如,队列b1、队列b2和队列b3。如此,应用程序处理器可根据与所述待发送数据包匹配成功的第一qos规则中的qfi,将所述待发送数据包放入第一qos规则中的qfi对应的队列。

本申请实施例中,应用程序处理器还可以根据第一qos规则中的qfi所述待发送数据包进行标记。

具体来说,在本申请实施例中,终端在成功建立pdu会话,并接收到网络侧配置的qos参数后,将qos参数中的多个qos规则配置到应用程序处理器的过滤器中。如此,待发送数据包经过应用程序处理器的过滤器时,过滤器可根据多个qos规则的优先级,按照优先级从高到低的顺序,将待发送数据包与多个qos规则进行匹配。

举个例子,qos参数中包括3个qos规则,分别为qos规则1、qos规则2、qos规则3,其中,qos规则1的优先级大于qos规则2的优先级,qos规则2的优先级大于qos规则3的优先级。如此,针对于任一待发送数据包,应用程序处理器的过滤器可先将该待发送数据包与qos规则1进行匹配,若与qos规则1匹配成功,则根据qos规则1中的qfi确定出待发送数据包所属的类型,并使用qos规则1中的qfi对该待发送数据包进行标记,若与qos规则1匹配不成功,则将该待发送数据包与qos规则2进行匹配;若与qos规则2匹配成功,则根据qos规则2中的qfi确定出待发送数据包所属的类型,并使用qos规则2中的qfi对该待发送数据包进行标记,若与qos规则2匹配不成功,则将该待发送数据包与qos规则3进行匹配;若与qos规则3匹配成功,则根据qos规则3中的qfi确定出待发送数据包所属的类型,并使用qos规则3中的qfi对该待发送数据包进行标记,若与qos规则3匹配不成功,则丢弃该待发送数据包。

根据上述内容可知,本申请实施例中由应用程序处理器来对待发送数据包进行分流和标记,相比于现有技术中需要由调制解调器进行标记来说,能够有效减轻通信处理器的负担。

应用程序处理器使用与所述待发送数据包匹配成功的qos规则中的qfi,对所述待发送数据包进行标记的具体方式可以有多种。在一个示例中,应用程序处理器在所述待发送数据包的包头前面增加头域,所述头域的内容包括与所述待发送数据包匹配成功的qos规则中的qfi;在另一个示例中,应用程序处理器在所述待发送数据包的描述符中增加第一字段,所述第一字段的内容包括与所述待发送数据包匹配成功的qos规则中的qfi。

通过上述方式,应用程序处理器实现了对待发送数据包的分类和标记,下面基于此具体描述步骤302中的调度过程。

具体来说,针对于gbr类型对应的任一队列(即第一队列),应用程序处理器可根据第一队列中的待发送数据包标记的qfi以及qfi和优先等级值的映射关系(如表1所示),得到所述第一队列的优先等级值。比如,队列a1中的待发送数据包标记的qfi为1,对应的优先等级值为20,进而可得到队列a1的优先等级值为20;队列a2中的待发送数据包标记的qfi为2,对应的优先等级值为40,进而可得到队列a1的优先等级值为40;队列a3中的待发送数据包标记的qfi为3,对应的优先等级值为30,进而可得到队列a3的优先等级值为30。其中,优先等级值越大,优先级越低,反之优先等级值越小,优先级越高。

应用程序处理器可按照gbr类型对应的队列的优先级从高到低(即按照gbr类型对应的队列的优先等级值从小到大)的顺序,调度gbr类型对应的队列中的待发送数据包。比如,队列a2的优先等级值大于队列a3的优先等级值,队列a3的优先等级值大于队列a1的优先等级值。因此,应用程序处理器可先调度队列a1中的待发送数据包,然后调度队列a3中的待发送数据包,最后调度队列a2中的待发送数据包。

根据上述内容可知,应用程序处理器在调度gbr类型对应的待发送数据包时,是根据gbr类型对应的队列的优先等级值(即优先级)来确定调度顺序的,相比于现有技术中仅有一个fifi队列来说,本申请实施例中的方式能够有效保证高优先级的待发送数据包可以被优先发送到调制解调器中。

进一步地,参见上述有关qos参数的描述可知,与gbr类型对应的队列中的待发送数据包匹配成功的qos规则(为便于描述,可以称为第一类型qos规则)中还包括gfbr;因此,应用程序处理器在调度gbr类型对应的任一队列(第一队列)中的待发送数据包时,可根据与第一队列中的待发送数据包匹配成功的qos规则中的gfbr,来调度第一队列中的待发送数据包,具体地,应用程序处理器调度第一队列中的待发送数据包的速率大于或等于与第一队列中的待发送数据包匹配成功的qos规则中的gfbr。更进一步地,第一类型qos规则中还包括mfbr,应用程序处理器调度第一队列中的待发送数据包的速率应小于或等于与第一队列中的待发送数据包匹配成功的qos规则中的mfbr。通过这种方式,使得调度gbr类型的待发送数据包的速率符合需求。

具体实施中,应用程序处理器可以为gbr类型对应的每一队列设置一个令牌桶(tokenbucket,tb),分别以每一队列对应的gfbr(即为与每一队列匹配成功的qos规则中的gfbr)向令牌桶中放入令牌,从而通过令牌桶的方式实现对调度gbr类型的待发送数据包的速率的控制。

图4为使用令牌桶的方式调度待发送数据包的示意图。如图4所示,令牌桶按照一定速率(比如gfbr)填入令牌桶内,当令牌桶被填满后,令牌桶内的令牌数目不再增加。应用程序处理器确定待发送数据包到达后,判断待发送数据包的队列是否已满,若是,则丢弃该待发送数据包,若否,则将该待发送数据包放入队列中。在当前调度周期内,应用程序处理器进行调度时,根据令牌桶内的令牌数从调度队列中相应的待发送数据包,同时令牌桶减去相应的令牌数。若令牌桶内的令牌已经用完,则在当前调度周期内完成对该队列的调度(队列中剩余的待发送数据包可等待下一调度周期进行调度),并调度其它队列;若队列中的所有待发送数据包均被调度完,则在当前调度周期内完成对该队列的调度,并调度其它队列。

应用程序处理器采用上述调度方式,若在当前调度周期内完成对gbr类型对应的所有队列中的待发送数据包的调度,则确定满足gbr类型的数据传输速率需求,进而可调度non-gbr类型对应的队列中的待发送数据包。

也就是说,本申请实施例中,满足gbr类型的数据传输速率需求具体包括两个方面的内容:(1)应用程序处理器调度gbr类型对应的任一队列中的待发送数据包的速率符合需求,即应用程序处理器调度gbr类型对应的第一队列中的待发送数据包的速率大于或等于与第一队列中的待发送数据包匹配成功的qos规则中的gfbr且小于或等于与第一队列中的待发送数据包匹配成功的qos规则中的mfbr。(2)在当前调度周期内,应用程序处理器完成对gbr类型对应的所有队列中的待发送数据包的调度。

图5为本申请实施例提供的在一个调度周期内调度gbr类型的待发送数据包的流程示意图,如图5所示,包括:

步骤501,根据该调度周期内未被调度的队列的优先等级值,从未被调度的队列中选取优先等级值最小的队列。

步骤502,根据选取出的队列对应的令牌桶中的令牌的数量,从选取出的队列中调度相应的待发送数据包。

步骤503,从令牌桶中减去相应的令牌。

步骤504,判断令牌桶是否为空,队列是否为空;若令牌桶为空或队列为空,则执行步骤505,若令牌桶不为空且队列不为空,则执行步骤502。

步骤505,判断该调度周期内是否还存在未被调度的队列,若是,则执行步骤501,若否,则结束对gbr类型的待发送数据包的调度,此时,可确定已满足gbr类型的数据传输速率需求,并可调度non-gbr类型对应的队列中的待发送数据包。

需要说明的是,应用程序处理器在调度gbr类型对应的任一队列中的待发送数据包时,可能会出现网卡驱动被阻塞而无法发送数据包到调制解调器的现象,此时,可停止调度待发送数据包。

本申请实施例中,应用程序处理器在调度non-gbr类型对应的队列中的待发送数据包时,可根据non-gbr类型对应的任一队列(即第二队列)中的待发送数据包标记的qfi以及qfi和优先等级值的映射关系(如表1所示),得到所述第二队列的优先等级值,进而按照non-gbr类型对应的队列的优先级从高到低(即按照non-gbr类型对应的队列的优先等级值从小到大)的顺序,调度所述non-gbr类型对应的队列中的待发送数据包。

根据上述内容可知,应用程序处理器在调度non-gbr类型对应的待发送数据包时,是根据non-gbr类型对应的队列的优先等级值(即优先级)来确定调度顺序的,相比于现有技术中仅有一个fifi队列来说,本申请实施例中的方式能够有效保证高优先级的待发送数据包可以被优先发送到调制解调器中。

进一步地,参见上述有关qos参数的描述可知,qos参数中还包括pdu会话的ambr;因此,应用程序处理器可根据pdu会话的ambr,来调度第二队列中的待发送数据包,具体地,应用程序处理器调度所述第二队列中的待发送数据包的速率小于或等于所述pdu会话的ambr,也就是说,在满足pdu会话的ambr的情况下,应用程序处理器可一次性调度第二队列中的所有待发送数据包。

具体实施中,应用程序处理器可以为non-gbr类型对应的队列设置一个令牌桶,以pdu会话的ambr向令牌桶中放入令牌,从而通过令牌桶的方式实现对调度non-gbr类型的待发送数据包的速率的控制。

图6为本申请实施例提供的在一个调度周期内调度non-gbr类型的待发送数据包的流程示意图,如图6所示,包括:

步骤601,根据该调度周期内未被调度的队列的优先等级值,从未被调度的队列中选取优先等级值最小的队列。

步骤602,根据令牌桶中的令牌的数量从选取出的队列中调度相应的待发送数据包。此处,若令牌桶中的令牌足够多,可以一次性从选取出的队列中调度所有待发送数据包。

步骤603,从令牌桶中减去相应的令牌。

步骤604,判断令牌桶是否为空,若令牌桶为空,则结束对non-gbr类型的待发送数据包的调度,若令牌桶不为空,则执行步骤605。

步骤605,判断该调度周期内是否还存在未被调度的队列,若是,则执行步骤601,若否,则结束对non-gbr类型的待发送数据包的调度。

需要说明的是,应用程序处理器在调度non-gbr类型对应的任一队列中的待发送数据包时,可能会出现网卡驱动被阻塞而无法发送数据包到调制解调器的现象,此时,可停止调度待发送数据包。

进一步地,在一个调度周期内,应用程序处理器通过上述方式对gbr类型的待发送数据包和non-gbr类型的待发送数据包进行调度后,可对gbr类型的待发送数据包再进行一轮调度,且针对于gbr类型对应的每一队列,两轮调度的速率相加后,每一队列的最大速率不超过该队列的mfbr。

需要说明的是,本申请实施例中所描述的队列和队列仅为一种逻辑上的划分,具体实施中,队列可以是指fifo队列,队列也可以是指fifo队列。

基于上述内容,本申请实施例所提供的qos队列模型可以称为混合令牌桶和优先级队列(hybridtokenbucketandpriorityfifoqueue,htbp),且htbp队列模型可应用于tcp/ip协议栈和网卡驱动之间。进一步地,具体实施中,可以为每个网卡设置一个对应的htbp队列模型,不同网卡对应的htbp队列模型相互独立。

图7为本申请实施例提供的htbp队列模型示意图,如图7所示,htbp队列模型中可以包括过滤器、根类、tb子类、优先级(priority,pri)子类和htbp队列调度器。应用程序处理器根据网络配置的qos参数中的qos规则,为每个qosflow建立一个对应的fifo队列,如果是gbr类型的qosflow,在tb子类下建立tbfifo队列;如果是non-gbr类型的qosflow,在pri子类下建立prififo队列。也就是说,tb子类对应上文中所描述的gbr类型,tb子类可以包括一个或多个tbfifo队列,比如,图7中所示意出的tbfifo1、tbfifo2、……、tbfifon;pri子类对应上文中所描述的non-gbr类型,pri子类可以包括一个或多个prififo队列,比如,图7中所示意出的prififo1、prififo2、……、prififok。

待发送数据包(即为上行数据包)在经过过滤器时,过滤器根据多个qos规则的优先级按照优先级从高到低的顺序,将待发送数据包与多个qos规则进行逐条匹配,匹配成功的待发送数据包被标记上对应的qos规则中的qfi,进而根据待发送数据包标记的qfi,将待发送数据包放入相应的tbfifo队列或prififo队列中。

针对于每个tbfifo,可以使用对应的令牌桶算法来保证gfbr带宽。针对于pri子类,可以使用令牌桶算法对pri子类的所有prififo队列进行速率限制。在调度时,htbp队列调度器优先对tb子类进行调度,并在确定满足gbr类型的数据传输速率需求后,再对pri子类进行调度。具体实现方式可参见上述描述,此处不再赘述。

根据上述内容可知,本申请实施例在应用处理器侧的tcp/ip协议栈和网卡驱动程序之间插入了一个qos队列模型,从而保证应用程序处理器到通信处理器的通路上的qos。

针对于上述方法流程,本申请实施例还提供一种应用程序处理器,该应用程序处理器的具体实现可参见上述方法的描述。

图8为本申请实施例提供的一种应用程序处理器的结构示意图,该应用程序处理器用于执行上述图3、图5和图6所示意的流程或步骤。如图8所示,该应用程序处理器800包括:处理模块801和调度模块802;

处理模块801,用于确定待发送数据包所属的类型,并将所述待发送数据包放入所述待发送数据包所属的类型对应的服务质量qos数据流;所述待发送数据包所属的类型为承诺比特速率gbr类型或非承诺比特速率non-gbr类型;

调度模块802,用于调度所述gbr类型对应的qos数据流中的待发送数据包发送给所述应用程序处理器所在的终端中的调制解调器,并在确定满足gbr类型的数据传输速率需求后,调度所述non-gbr类型对应的qos数据流中的待发送数据包发送给所述调制解调器。

在一种可能的设计中,所述处理模块801具体用于:

将所述待发送数据包与多个qos规则进行匹配,所述qos规则中包括qos数据流标识qfi;

根据与所述待发送数据包匹配成功的第一qos规则中的qfi以及qfi和类型的映射关系,确定所述待发送数据包所属的类型。

在一种可能的设计中,所述处理模块801还用于:

使用所述第一qos规则中的qfi,对所述待发送数据包进行标记。

在一种可能的设计中,所述待发送数据包的包头前面包括头域,所述头域的内容为所述第一qos规则中的qfi;或者,所述待发送数据包的描述符中包括第一字段,所述第一字段的内容为所述第一qos规则中的qfi。

在一种可能的设计中,所述处理模块801具体用于:

将所述待发送数据包放入所述第一qos规则中的qfi对应的qos数据流。

在一种可能的设计中,所述调度模块调度所述第一qos数据流中的待发送数据包的速率大于或等于第一gfbr,所述第一gfbr为与所述第一qos数据流中的待发送数据包匹配成功的qos规则中的gfbr,所述第一qos数据流为所述gbr类型对应的任一qos数据流。

在一种可能的设计中,所述调度模块调度所述第二qos数据流中的待发送数据包的速率小于或等于qos参数中的ambr,所述第二qos数据流为所述non-gbr类型对应的任一qos数据流。

在一种可能的设计中,所述调度模块802具体用于:

根据所述gbr类型对应的多个qos数据流的优先级,调度所述gbr类型对应的多个qos数据流中的待发送数据包;

根据所述non-gbr类型对应的多个qos数据流的优先级,调度所述non-gbr类型对应的多个qos数据流中的待发送数据包。

需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

图9为本申请实施例提供的一种终端的结构示意图,该终端900包括应用程序处理器901,所述应用程序处理器901用于执行上述图3、图5和图6所示意的流程或步骤。所述终端900还可以包括通信模块902、通信处理器903,所述通信处理器903中包括调制解调器,所述通信模块902用于将应用程序处理器901调度的待发送数据包发送给所述调制解调器;所述通信模块902可以为网卡驱动。

进一步地,所述终端900还可以包括:存储器904,用于存放程序等。具体地,程序可以包括程序代码,该程序代码包括指令。存储器904可能包含随机存取存储器(randomaccessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。处理器执行存储器所存放的应用程序,实现上述功能。

一种可能的方式中,通信模块902、应用程序处理器901、通信处理器903和存储器904可以通过总线905相互连接;总线905可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。

本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1