CN105490964B - 一种服务质量的处理方法和装置 - Google Patents
一种服务质量的处理方法和装置 Download PDFInfo
- Publication number
- CN105490964B CN105490964B CN201510930811.6A CN201510930811A CN105490964B CN 105490964 B CN105490964 B CN 105490964B CN 201510930811 A CN201510930811 A CN 201510930811A CN 105490964 B CN105490964 B CN 105490964B
- Authority
- CN
- China
- Prior art keywords
- rate
- data message
- queue
- wine
- rice
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6295—Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种服务质量的处理方法和装置。该方法包括:根据空口发送速率,确定从业务层面的各优先级队列中取数据报文的取包速率;其中,所述取包速率不大于所述空口发送速率;根据所述取包速率,从所述业务层面的各优先级队列中,按照数据报文的优先级从高到低的顺序,取出数据报文,放入驱动软件队列中;将所述驱动软件队列中的数据报文放入硬件队列中;并按照空口发送速率将所述数据报文从所述硬件队列中发送至空口。该方案可以使得高优先级的数据报文不仅可以被及时的发送,而且也不会出现由于驱动软件队列被塞满而出现高优先级数据报文被丢弃的现象,很好的保证了业务的QoS。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种服务质量的处理方法和装置。
背景技术
无线局域网(Wireless Local Area Networks,WLAN)设备向空口发送数据报文,如图1所示,通常包括如下步骤:业务层面产生需要发送的数据报文,下发给驱动软件;驱动软件进行电气和电子工程师协会(Institute of Electrical and ElectronicsEngineers,IEEE)802.11a/b/g/n协议介质访问控制(Media Access Control,MAC)层由软件实现的相关处理,再下发给WLAN模块硬件;WLAN模块硬件完成MAC层由硬件实现的相关处理,再进行物理层处理,最终将数据报文发往空口。
为满足用户对不同业务(例如紧急业务,重要业务和普通业务)不同服务质量(Quality of Service,QOS)的要求,针对某种业务的数据报文,WLAN设备的业务层面为它赋予某个级别的传输优先级,来标识它的相对重要性,并使用各种优先级转发策略、拥塞避免等机制为这些数据报文提供QoS。但这并非WLAN QoS,因为在WLAN的空口带宽波动或拥塞,不足以让所有数据报文从空口发出时,需要优先确保紧急数据报文的发送,只凭借业务层面实现的QoS是不够的。
IEEE 802.11e为基于IEEE 802.11协议的WLAN体系添加了QoS特性,这个协议的标准化时间很长,在这个过程中,Wi-Fi组织为了保证不同WLAN厂商提供QoS的设备之间可以互通,定义了无线多媒体(Wi-Fi Multimedia,WMM)标准,WMM为发往空口的不同优先级的数据报文提供了Voice、Video、Best-effort、Back-ground四个优先级从高到低的接入类别(access categories,AC)队列,与增强分布式信道(Enhanced Distributed ChannelAccess,EDCA)无线信道竞争机制配合,通过较短的仲裁帧间距(arbitration inter-framespace,AIFS)和较短的随机回退竞争窗口(contention window,CW),保证高优先级的数据报文优先抢占无线信道发送并持续更长时间,即获得传输机会(TransmissionOpportunity,TXOP)。
当前常见的WLAN模块硬件,通常提供一组含有多个优先级的硬件缓存队列,并有相应的队列控制单元和无线信道竞争控制单元,支持按照IEEE802.11e协议或WMM标准实现的QoS。硬件需要驱动软件配合来共同完成QoS功能。驱动软件的缓存队列必不可少,且根据软件功能和实现的不同而不同,主要为适配业务层面与硬件的交互。
只有业务层面实现的QoS与驱动软件+WLAN硬件配合实现的QoS密切配合,WLANQoS才能取得较理想的效果。
基于此,现有的WLAN设备向空口发送数据报文,如图2所示,为各队列之间的交互图,通常包括如下步骤:
步骤1、驱动软件根据自身队列(即驱动软件队列)的最大深度限制,以最大速率,按优先级从高到低的顺序从业务层面的各优先级队列(即业务层面队列)中取出数据报文,放入驱动软件队列中缓存,取包频率固定,例如为100次/s。驱动软件队列的深度和取包速率的选择依据是当信道状况最好时能够达到最大的吞吐量。
步骤2、WLAN模块硬件将硬件队列中的数据报文发往空口后,会产生中断,通知驱动软件将缓存的数据报文继续送入硬件队列,驱动软件按WLAN硬件模块的最大限制和软硬件接口的最大速率发送数据报文给硬件队列。
步骤3、WLAN硬件模块在竞争空口成功后,按分配的空口带宽和速率算法计算的速率将硬件队列中的数据报文发往空口。
虽然业务层面送出的数据报文按严格的优先级排序,但驱动软件以最大速率取包,只求满足驱动软件队列最大深度的限制,而变化的空口速率会导致取入驱动队列的数据报文不能都立即送入硬件队列并从空口发出,造成数据报文在驱动软件队列中优先级乱序排列,最终低优先级的数据报文可能先于高优先级的数据报文从空口发出。另外,数据报文在排队后时延也将增大,时延抖动也会恶化。甚至高优先级的数据报文因为低优先级的数据报文已经占满驱动软件队列,无法入队列而被丢弃,无法保证业务的QOS。
发明内容
本发明实施例提供一种服务质量的处理方法和装置,可以使得高优先级的数据报文不仅可以被及时的发送,而且也不会出现由于驱动软件队列被塞满而出现高优先级数据报文被丢弃的现象,很好的保证了业务的QoS。
本发明实施例采用以下技术方案:
第一方面提供了一种服务质量的处理方法,包括:
根据空口发送速率,确定从业务层面的各优先级队列中取数据报文的取包速率;其中,所述取包速率不大于所述空口发送速率;
根据所述取包速率,从所述业务层面的各优先级队列中,按照数据报文的优先级从高到低的顺序,取出数据报文,放入驱动软件队列中;
将所述驱动软件队列中的数据报文放入硬件队列中;并
按照所述空口发送速率将所述数据报文从所述硬件队列中发送至空口。
其中,根据所述空口发送速率,确定从业务层面的各优先级队列中取数据报文的取包速率,具体包括:
根据所述空口发送速率和所述驱动软件队列的当前占用率,确定从业务层面的各优先级队列中取数据报文的取包速率。
其中,根据所述空口发送速率和所述驱动软件队列的当前占用率,确定从业务层面的各优先级队列中取数据报文的取包速率,具体包括:
确定所述驱动软件队列的当前占用率;
在所述当前占用率低于预设门限值时,将所述空口发送速率作为从所述业务层面的各优先级队列中取数据报文的取包速率;
在所述当前占用率不低于所述预设门限值时,从根据开源minstrel速率自适应算法计算出的各发送速率中,选择与所述当前占用率对应的发送速率,作为从所述业务层面的各优先级队列中取数据报文的取包速率;其中,根据开源minstrel速率自适应算法计算出的各发送速率中的最大发送速率为所述空口发送速率。
其中,根据开源minstrel速率自适应算法计算出的各发送速率,具体包括:
最大吞吐量速率、第二大吞吐量速率、最大成功率速率和最低速率中的至少一个。
其中,按照所述空口发送速率将所述数据报文从所述硬件队列中发送至空口之后,所述方法还包括:
接收所述硬件队列发送的中断消息;则
将所述驱动软件队列中的数据报文放入硬件队列中,具体包括:
首次执行时,直接将所述驱动软件队列中的数据报文放入硬件队列中;
非首次执行时,在接收到所述硬件队列发送的中断消息时,将所述驱动软件队列中的数据报文放入硬件队列中。
第二方面提供了一种服务质量的处理装置,包括:
取包速率确定单元,用于根据空口发送速率,确定从业务层面的各优先级队列中取数据报文的取包速率;其中,所述取包速率不大于所述空口发送速率;
报文取出单元,用于根据所述取包速率确定单元确定的取包速率,从所述业务层面的各优先级队列中,按照数据报文的优先级从高到低的顺序,取出数据报文,放入驱动软件队列中;
报文放入单元,用于将所述报文取出单元放入驱动软件队列中的数据报文放入硬件队列中;
报文发送单元,用于按照所述空口发送速率将所述报文放入单元放入硬件队列中的数据报文从所述硬件队列中发送至空口。
其中,所述取包速率确定单元,具体用于:
根据所述空口发送速率和所述驱动软件队列的当前占用率,确定从业务层面的各优先级队列中取数据报文的取包速率。
其中,所述取包速率确定单元,具体包括:
占用率确定模块,用于确定所述驱动软件队列的当前占用率;
取包速率确定模块,用于在所述当前占用率低于预设门限值时,将所述空口发送速率作为从所述业务层面的各优先级队列中取数据报文的取包速率;在所述当前占用率不低于所述预设门限值时,从根据开源minstrel速率自适应算法计算出的各发送速率中,选择与所述当前占用率对应的发送速率,作为从所述业务层面的各优先级队列中取数据报文的取包速率;其中,根据开源minstrel速率自适应算法计算出的各发送速率中的最大发送速率为所述空口发送速率。
其中,根据开源minstrel速率自适应算法计算出的各发送速率,具体包括:
最大吞吐量速率、第二大吞吐量速率、最大成功率速率和最低速率中的至少一个。
其中,所述装置还包括:
中断消息接收单元,用于在所述报文发送单元按照所述空口发送速率将所述数据报文从所述硬件队列中发送至空口之后,接收所述硬件队列发送的中断消息;
所述报文放入单元,具体用于:
首次执行时,直接将所述驱动软件队列中的数据报文放入硬件队列中;
非首次执行时,在接收到所述硬件队列发送的中断消息时,将所述驱动软件队列中的数据报文放入硬件队列中。
本发明实施例的有益效果如下:
本发明实施例中,根据空口发送速率确定从业务层面的各优先级队列中取数据报文的取包速率,其中取包速率不大于空口发送速率,并根据该取包速率,从业务层面的各优先级队列中,按照数据报文的优先级从高到低的顺序,取出数据报文,放入驱动软件队列中,再将驱动软件队列中的数据报文放入硬件队列中,并按照空口发送速率将数据报文从硬件队列中发送至空口,由于取包速率可以根据空口发送速率实时进行调整,使得高优先级的数据报文不仅可以被及时的发送,而且也不会出现由于驱动软件队列被塞满而出现高优先级数据报文被丢弃的现象,很好的保证了业务的QoS。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为现有的WLAN设备向空口发送数据报文的示意图;
图2为现有的WLAN设备向空口发送数据报文时各队列之间的交互图;
图3为现有技术中将业务层面的数据报文放入驱动软件队列的示意图;
图4为本发明实施例提供的一种服务质量的处理方法的实现流程图;
图5为本发明实施例提供的业务层面队列,驱动软件队列和硬件队列之间的交互关系示意图;
图6为本发明实施例提供的一种服务质量的处理方法的具体实现流程图;
图7为本发明实施例提供的一种服务质量的处理方法的实施效果示意图;
图8为本发明实施例提供的一种服务质量的处理装置的结构示意图。
具体实施方式
图3为现有技术中将业务层面的数据报文放入驱动软件队列的示意图。如图3所示:
在T1时刻,空口带宽为3个数据报文的字节数,驱动软件将业务层面各优先级队列中的数据报文1~7(数据报文1为高优先级,数据报文2和3为中优先级,数据报文4~7为低优先级)取到驱动软件队列中缓存,并全部发送到硬件列队中,除非硬件队列已满;其中,虽然驱动软件队列中缓存的数据报文按硬件队列限制发送到硬件队列了,但驱动软件队列仍然保留这部分数据报文,直到硬件队列产生中断并上送tx status,通知驱动软件队列这部分数据报文已经成功发送到空口,才将这部分数据报文从驱动软件队列中移除。
在T2时刻,空口带宽发生变化,为2个数据报文的字节数,驱动软件将业务层面的各优先级队列中的数据报文8~14(数据报文8为高优先级,数据报文9和10为中优先级,数据报文11~14为低优先级)取到驱动软件队列中缓存,并全部发送到硬件列队中,除非硬件队列已满,其中,数据报文8~14(即使优先级更高)将排在之前已取到硬件队列但还未发送的数据报文(即使优先级低)之后,如高优先级的数据报文8必须排在低优先级的数据报文4~7之后;
在T3时刻,空口带宽发生变化,为3个数据报文的字节数,此时硬件队列中高优先级的数据报文无法被优先发出,而靠后的数据报文存在严重的时延和时延抖动,优先级反转,甚至当缓冲队列被塞满时,高优先级的数据报文因无法进入驱动软件队列而被丢弃,根本无法到达空口进行发送,无法保证业务的QOS。
因此,为了使高优先级的数据报文不仅可以被及时的发送,而且也不会出现由于驱动软件队列被塞满而出现高优先级数据报文被丢弃的现象,很好的保证业务的QoS,本发明实施例提供了一种服务质量的处理方案。该技术方案中,确定空口发送速率,并根据空口发送速率确定从业务层面的各优先级队列中取数据报文的取包速率,其中取包速率不大于空口发送速率,并根据该取包速率,从业务层面的各优先级队列中,按照数据报文的优先级从高到低的顺序,取出数据报文,放入驱动软件队列中,再将驱动软件队列中的数据报文放入硬件队列中,并按照空口发送速率将数据报文从硬件队列中发送至空口,由于取包速率可以根据空口发送速率实时进行调整,使得高优先级的数据报文不仅可以被及时的发送,而且也不会出现由于驱动软件队列被塞满而出现高优先级数据报文被丢弃的现象,很好的保证了业务的QoS。
以下结合说明书附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限制本发明。并且在不冲突的情况下,本发明中的实施例及实施例的特征可以互相结合。
本发明实施例提供了一种服务质量的处理方法,如图4所示,为该方法的实现流程图,具体包括下述步骤:
步骤41,确定空口发送速率。
本发明实施例中可以根据开源minstrel速率自适应算法计算出空口发送速率。具体的,开源minstrel速率自适应算法在下文中进行详细介绍。
步骤42,根据确定出的空口发送速率,确定从业务层面的各优先级队列中取数据报文的取包速率;其中,取包速率不大于空口发送速率。
步骤43,根据确定的取包速率,从业务层面的各优先级队列中,按照数据报文的优先级从高到低的顺序,取出数据报文,放入驱动软件队列中。
其中,minstrel速率自适应算法支持802.11a/b/g/n协议:
每100ms为一轮,在这100ms内,随机选择90%的数据报文按上轮计算得到的正常速率发送(优先以最大吞吐量速率发送,如果发送不成功且达到重传次数限制,就降低速率,以第二大吞吐量速率发送,仍不成功且达到重传次数限制,则以最大成功率速率发送,再失败且达到重传次数限制就以最低速率发送),随机选择10%的报文以探测速率(除最低速率外的所有其它速率,随机选择,但不重复)发送,90%和10%为默认比例,可以调整。如表1所示,为minstrel速率自适应算法的发送速率及重传序列(包含正常发送和探测发送)。
表1:
根据上述表1的重传序列来选择速率发送当前数据报文,每个速率具有固定的重传次数。当发送成功,剩余重传序列被忽略。每个速率的重传次数选择是依据整个重传序列不超过26ms,即必须在26ms内将数据报文发出,或者放弃发送该数据报文。默认每个速率发送6000us,以此确定该速率下最大的重传次数,但对于成功率很低的速率,最多重传1次。
发送时,记录所有数据报文(含重传报文)在不同速率下的发送成功率。
在某速率下:
本轮的发送成功率=本轮发送成功的报文数/本轮发送的报文数;
新EWMA发送成功率=本轮的发送成功率×25%+历史EWMA发送成功率×75%;
其中,EWMA(Exponentially Weighted Moving-Average)为指数加权移动平均,每100ms更新一次,具有数据平滑的效果,25%和75%为默认比例,可以调整。新EWMA发送成功率用于minstrel速率自适应算法的下一轮计算。如果某速率没有用于本轮发送,则该速率的EWMA发送成功率保持不变。
在这一轮的100ms内,某速率的吞吐量为:
然后根据各个速率的吞吐量和EWMA发送成功率,选择下一轮的正常发送速率、探测发送速率、重传序列。例如表2所示,为minstrel速率自适应算法的速率更新及选择。
表2:
在本轮,数据报文将按照minstrel速率自适应算法上一轮计算的速率进行发送,速率控制信息将被封装在发包描述符中由驱动软件提交给硬件,信道状况即使在本轮时间间隔内相较于上一轮发生了快速变化,硬件也将按发包描述符中的速率控制信息进行发送,如果信道变差,就在重传数次失败之后降低一档速率再次尝试。
本发明实施例中会采用上述minstrel速率自适应算法在上一轮时间间隔的计算结果,控制驱动软件本轮从业务层面取数据报文,驱动软件从业务层面的优先级队列中按优先级从高到低的顺序取出数据报文,取数据报文的速率为上一轮计算的最大吞吐量速率。
然而,由于minstrel速率自适应算法要求在本轮发送时,10%的数据报文用于探测速率,可能会以随机速率从空口发出;更重要的是,并不能确保每个数据报文以最大吞吐量速率发送,信道状况的变化,错误引起的重传等不确定因素会导致以最大吞吐量速率从业务层面取入驱动队列的报文不能立即经过硬件队列从空口发出。因此,本发明实施例中可以按照需要动态调整驱动软件从业务层面取数据报文的速率。
基于上述描述,步骤42可以具体包括:
根据确定出的空口发送速率和驱动软件队列的当前占用率,确定从业务层面的各优先级队列中取数据报文的取包速率。
具体的,可以首先确定驱动软件队列的当前占用率;
然后在当前占用率低于预设门限值时,将确定出的空口发送速率作为从业务层面的各优先级队列中取数据报文的取包速率;
在当前占用率不低于预设门限值时,从根据minstrel速率自适应算法计算出的各发送速率中,选择与当前占用率对应的发送速率,作为从业务层面的各优先级队列中取数据报文的取包速率;其中,根据minstrel速率自适应算法计算出的各发送速率中的最大发送速率为空口发送速率。
其中,当前占用率与发送速率之间的对应关系可以是预先设置好的,比如以预设门限值为15%为例,在当前占用率低于15%时,将minstrel速率自适应算法计算出的最大发送速率作为从业务层面的各优先级队列中取数据报文的取包速率;在当前占用率不低于15%时,根据预先设置的当前占用率与minstrel速率自适应算法计算出的除最大发送速率之外的其它发送速率之间的对应关系,选择与当前占用率对应的发送速率,作为从业务层面的各优先级队列中取数据报文的取包速率。
其中,minstrel速率自适应算法计算出的各发送速率可以具体包括:
最大吞吐量速率、第二大吞吐量速率、最大成功率速率和最低速率中的至少一个。
具体的,步骤42的具体实现过程如下:
首先实时维护当前驱动软件队列的占用率,每次从业务层面取数据报文前,统计驱动软件队列中已经有多少数据报文,这些在驱动软件队列中驻留的数据报文包含两类:一类数据报文是由于硬件队列已满,还没被取入硬件队列;另一类数据报文是已经被取到硬件队列,正等待空口竞争成功以便从空口发出,但在收到成功发送的状态通告(硬件中断)之前,这类数据报文仍然驻留在驱动软件队列,需要同样纳入占用率统计。驱动软件从业务层面的取包时间间隔为10ms,一轮minstrel速率自适应算法的时间间隔为100ms,即在minstrel速率自适应算法对速率更新之前,驱动软件会按照此轮minstrel速率自适应算法的计算结果,从业务层面取10次数据报文。理想情况下,在下一次从业务层面取数据报文时,本次按空口发送的速率取出的数据报文应该能全部从空口发出,驱动软件队列清空,占用率归零;但由于前面提到的信道状况变化,错误引起的重传,以及10%的数据报文探测等多种原因,驱动软件队列可能仍然有部分来不及发出的数据报文驻留。如果继续以上一轮minstrel速率自适应算法得到的最大吞吐量速率取数据报文,驱动软件队列中驻留的数据报文可能逐渐增多,甚至被填满,这会导致QoS效果变差,高低优先级的数据报文乱序。因此,在每隔10ms取数据报文时,检测驱动软件队列的当前占用率,占用率较高超过水线时,降低取数据报文的速率,当取数据报文速率低于空口发送速率时,队列占用率会逐渐降低,当占用率降低到水线以下时,再恢复到之前较快的取数据报文速率,保证吞吐量。这里设计了3条水线,15%,25%和45%,可以根据实际使用情况再调整。具体操作如下:
A、当前驱动软件队列的占用率不超过15%,用最大吞吐量速率取报文;
B、当前驱动软件队列的占用率不超过25%,用第二大吞吐量速率取报文;
C、当前驱动软件队列的占用率不超过45%,用最大成功率速率取报文;
D、当前驱动软件队列的占用率超过45%,用最低速率取报文。
步骤44,将驱动软件队列中的数据报文放入硬件队列中。
步骤45,按照空口发送速率将数据报文从硬件队列中发送至空口。
其中,按照空口发送速率将数据报文从硬件队列中发送至空口之后,驱动软件队列接收硬件队列发送的中断消息。
当步骤44首次执行时,可以直接将驱动软件队列中的数据报文放入硬件队列中;当步骤44非首次执行时,则在接收到硬件队列发送的中断消息时,将驱动软件队列中的数据报文放入硬件队列中。
为了更好的理解本发明实施例,以下结合具体的实施对本发明实施例的具体实施过程进行说明。
将minstrel速率自适应算法计算的空口发送速率和驱动软件队列的当前占用情况,用于辅助业务层面的QoS机制进行数据报文发送的控制,帮助业务层面确定各数据报文以什么顺序和流量发送给驱动软件,以此来保障当空口发送速率波动时WLAN QoS的效果。具体步骤如下:
步骤1、驱动软件按优先级从高到低的顺序从业务层面的各优先级队列中取出数据报文,放入驱动软件队列中缓存。驱动软件队列深度的选择依据仍然是当信道状况最好时能够达到最大的吞吐量。取包频率为100次/s,即间隔10ms取报文一次,每次取数据报文时,检查当前驱动软件队列的占用率。取出数据报文的速率参照minstrel速率自适应算法在上一轮(每轮100ms)计算得到的各个速率(这些速率在本轮将真正用于硬件发送),速率的选择标准如下:
A、当前驱动缓存队列的占用率不超过15%,用最大吞吐量速率;
B、当前驱动缓存队列的占用率不超过25%,用第二大吞吐量速率;
C、当前驱动缓存队列的占用率不超过45%,用最大成功率速率;
D、当前驱动缓存队列的占用率超过45%,用最低速率。
步骤2、WLAN模块硬件将硬件队列中的数据报文发往空口后,产生中断,通知驱动软件数据报文是否成功发送,通知驱动软件是否将缓存的报文继续送入硬件队列,驱动软件将步骤1取得的数据报文按软硬件接口的最大速率发送给硬件队列。更新驱动软件队列的占用率,在10ms的取包间隔内,每次收到硬件中断,确定数据报文已成功发送后都会更新占用率。收到硬件中断后,根据发送成功与否的状态,统计minstrel速率自适应算法中各个速率的发送成功率和吞吐量,以100ms为一轮,根据这一轮的统计数据及更早之前的历史统计数据,重新得到下一轮将用于硬件队列发送的各个速率,这些速率同时也用于下一轮驱动软件从业务层面取包。
步骤3、WLAN模块硬件在竞争空口成功后,以minstrel速率自适应算法上一轮计算得到的速率将缓存的数据报文发往空口。
图5为上述过程中业务层面队列,驱动软件队列和硬件队列之间的交互关系示意图。
图6描述了本发明实施例详细的实施流程,特别是WLAN设备刚启动时流程中需要做的微调:
1、启动时,minstrel速率自适应算法还不能靠计算得到各个速率,所以首次发送使用随机速率。而且之后还需要一段探测和统计的时间来帮助minstrel速率自适应算法获得足够的统计数据以便计算结果。
2、启动时,硬件队列中没有数据报文,也就不会产生首次硬件中断,需要驱动软件主动将驱动软件队列中的数据报文放入硬件队列,以便WLAN模块硬件有数据报文用于空口发送,之后产生硬件中断,靠中断通知驱动软件发包。
图7描述了本发明实施例的实施效果,对比图3不难发现它弥补了现有技术方案的不足。
本发明实施例中,确定空口发送速率,并根据空口发送速率确定从业务层面的各优先级队列中取数据报文的取包速率,其中取包速率不大于空口发送速率,并根据该取包速率,从业务层面的各优先级队列中,按照数据报文的优先级从高到低的顺序,取出数据报文,放入驱动软件队列中,再将驱动软件队列中的数据报文放入硬件队列中,并按照空口发送速率将数据报文从硬件队列中发送至空口,由于取包速率可以根据空口发送速率实时进行调整,使得高优先级的数据报文不仅可以被及时的发送,而且也不会出现由于驱动软件队列被塞满而出现高优先级数据报文被丢弃的现象,很好的保证了业务的QoS。
基于同一发明构思,本发明实施例中还提供了一种服务质量的处理装置,由于上述装置解决问题的原理与服务质量的处理方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图8所示,为本发明实施例提供的一种服务质量的处理装置的结构示意图,包括:
取包速率确定单元81,用于根据空口发送速率,确定从业务层面的各优先级队列中取数据报文的取包速率;其中,所述取包速率不大于所述空口发送速率;
报文取出单元82,用于根据所述取包速率确定单元81确定的取包速率,从所述业务层面的各优先级队列中,按照数据报文的优先级从高到低的顺序,取出数据报文,放入驱动软件队列中;
报文放入单元83,用于将所述报文取出单元82放入驱动软件队列中的数据报文放入硬件队列中;
报文发送单元84,用于按照所述空口发送速率将所述报文放入单元83放入硬件队列中的数据报文从所述硬件队列中发送至空口。
其中,所述取包速率确定单元81,具体用于:
根据所述空口发送速率和所述驱动软件队列的当前占用率,确定从业务层面的各优先级队列中取数据报文的取包速率。
其中,所述取包速率确定单元81,具体包括:
占用率确定模块811,用于确定所述驱动软件队列的当前占用率;
取包速率确定模块812,用于在所述当前占用率低于预设门限值时,将所述空口发送速率作为从所述业务层面的各优先级队列中取数据报文的取包速率;在所述当前占用率不低于所述预设门限值时,从根据开源minstrel速率自适应算法计算出的各发送速率中,选择与所述当前占用率对应的发送速率,作为从所述业务层面的各优先级队列中取数据报文的取包速率;其中,根据开源minstrel速率自适应算法计算出的各发送速率中的最大发送速率为所述空口发送速率。
其中,根据开源minstrel速率自适应算法计算出的各发送速率,具体包括:
最大吞吐量速率、第二大吞吐量速率、最大成功率速率和最低速率中的至少一个。
其中,所述装置还包括:
中断消息接收单元85,用于在所述报文发送单元84按照所述空口发送速率将所述数据报文从所述硬件队列中发送至空口之后,接收所述硬件队列发送的中断消息;
所述报文放入单元83,具体用于:
首次执行时,直接将所述驱动软件队列中的数据报文放入硬件队列中;
非首次执行时,在接收到所述硬件队列发送的中断消息时,将所述驱动软件队列中的数据报文放入硬件队列中。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种服务质量的处理方法,其特征在于,包括:
根据空口发送速率,确定从业务层面的各优先级队列中取数据报文的取包速率;其中,所述取包速率不大于所述空口发送速率;
根据所述取包速率,从所述业务层面的各优先级队列中,按照数据报文的优先级从高到低的顺序,取出数据报文,放入驱动软件队列中;
将所述驱动软件队列中的数据报文放入硬件队列中;并
按照所述空口发送速率将所述数据报文从所述硬件队列中发送至空口;所述根据所述空口发送速率,确定从业务层面的各优先级队列中取数据报文的取包速率,具体包括:
根据所述空口发送速率和所述驱动软件队列的当前占用率,确定从业务层面的各优先级队列中取数据报文的取包速率。
2.如权利要求1所述的方法,其特征在于,根据所述空口发送速率和所述驱动软件队列的当前占用率,确定从业务层面的各优先级队列中取数据报文的取包速率,具体包括:
确定所述驱动软件队列的当前占用率;
在所述当前占用率低于预设门限值时,将所述空口发送速率作为从所述业务层面的各优先级队列中取数据报文的取包速率;
在所述当前占用率不低于所述预设门限值时,从根据开源minstrel速率自适应算法计算出的各发送速率中,选择与所述当前占用率对应的发送速率,作为从所述业务层面的各优先级队列中取数据报文的取包速率;其中,根据开源minstrel速率自适应算法计算出的各发送速率中的最大发送速率为所述空口发送速率。
3.如权利要求2所述的方法,其特征在于,根据开源minstrel速率自适应算法计算出的各发送速率,具体包括:
最大吞吐量速率、第二大吞吐量速率、最大成功率速率和最低速率中的至少一个。
4.如权利要求1所述的方法,其特征在于,按照所述空口发送速率将所述数据报文从所述硬件队列中发送至空口之后,所述方法还包括:
接收所述硬件队列发送的中断消息;则
将所述驱动软件队列中的数据报文放入硬件队列中,具体包括:
首次执行时,直接将所述驱动软件队列中的数据报文放入硬件队列中;
非首次执行时,在接收到所述硬件队列发送的中断消息时,将所述驱动软件队列中的数据报文放入硬件队列中。
5.一种服务质量的处理装置,其特征在于,包括:
取包速率确定单元,用于根据空口发送速率,确定从业务层面的各优先级队列中取数据报文的取包速率;其中,所述取包速率不大于所述空口发送速率;
报文取出单元,用于根据所述取包速率确定单元确定的取包速率,从所述业务层面的各优先级队列中,按照数据报文的优先级从高到低的顺序,取出数据报文,放入驱动软件队列中;
报文放入单元,用于将所述报文取出单元放入驱动软件队列中的数据报文放入硬件队列中;
报文发送单元,用于按照所述空口发送速率将所述报文放入单元放入硬件队列中的数据报文从所述硬件队列中发送至空口;所述取包速率确定单元,具体用于:
根据所述空口发送速率和所述驱动软件队列的当前占用率,确定从业务层面的各优先级队列中取数据报文的取包速率。
6.如权利要求5所述的处理装置,其特征在于,所述取包速率确定单元,具体包括:
占用率确定模块,用于确定所述驱动软件队列的当前占用率;
取包速率确定模块,用于在所述当前占用率低于预设门限值时,将所述空口发送速率作为从所述业务层面的各优先级队列中取数据报文的取包速率;在所述当前占用率不低于所述预设门限值时,从根据开源minstrel速率自适应算法计算出的各发送速率中,选择与所述当前占用率对应的发送速率,作为从所述业务层面的各优先级队列中取数据报文的取包速率;其中,根据开源minstrel速率自适应算法计算出的各发送速率中的最大发送速率为所述空口发送速率。
7.如权利要求6所述的处理装置,其特征在于,根据开源minstrel速率自适应算法计算出的各发送速率,具体包括:
最大吞吐量速率、第二大吞吐量速率、最大成功率速率和最低速率中的至少一个。
8.如权利要求5所述的处理装置,其特征在于,所述装置还包括:
中断消息接收单元,用于在所述报文发送单元按照所述空口发送速率将所述数据报文从所述硬件队列中发送至空口之后,接收所述硬件队列发送的中断消息;
所述报文放入单元,具体用于:
首次执行时,直接将所述驱动软件队列中的数据报文放入硬件队列中;
非首次执行时,在接收到所述硬件队列发送的中断消息时,将所述驱动软件队列中的数据报文放入硬件队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510930811.6A CN105490964B (zh) | 2015-12-14 | 2015-12-14 | 一种服务质量的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510930811.6A CN105490964B (zh) | 2015-12-14 | 2015-12-14 | 一种服务质量的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105490964A CN105490964A (zh) | 2016-04-13 |
CN105490964B true CN105490964B (zh) | 2019-01-11 |
Family
ID=55677689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510930811.6A Active CN105490964B (zh) | 2015-12-14 | 2015-12-14 | 一种服务质量的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105490964B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309001B (zh) * | 2018-03-27 | 2023-05-05 | 麒麟软件有限公司 | 一种基于Linux通用块层多队列的优化系统及方法 |
CN112272148B (zh) * | 2020-10-15 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种多优先级队列管理方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420366A (zh) * | 2007-10-23 | 2009-04-29 | 中兴通讯股份有限公司 | 宽带无线接入系统中保证实时业务服务质量的装置及方法 |
CN102404745A (zh) * | 2010-09-17 | 2012-04-04 | 普天信息技术研究院有限公司 | 一种对用户进行动态业务调度的方法 |
CN102448147A (zh) * | 2011-12-21 | 2012-05-09 | 华为技术有限公司 | 一种无线业务接入方法和装置 |
CN103442391A (zh) * | 2013-09-12 | 2013-12-11 | 华为终端有限公司 | 一种数据传输的方法及用户终端、系统 |
-
2015
- 2015-12-14 CN CN201510930811.6A patent/CN105490964B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420366A (zh) * | 2007-10-23 | 2009-04-29 | 中兴通讯股份有限公司 | 宽带无线接入系统中保证实时业务服务质量的装置及方法 |
CN102404745A (zh) * | 2010-09-17 | 2012-04-04 | 普天信息技术研究院有限公司 | 一种对用户进行动态业务调度的方法 |
CN102448147A (zh) * | 2011-12-21 | 2012-05-09 | 华为技术有限公司 | 一种无线业务接入方法和装置 |
CN103442391A (zh) * | 2013-09-12 | 2013-12-11 | 华为终端有限公司 | 一种数据传输的方法及用户终端、系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105490964A (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10826654B2 (en) | Method and system for improving wireless link efficiency | |
US9386128B2 (en) | Delay based active queue management for uplink traffic in user equipment | |
JP4435235B2 (ja) | コンテンションウィンドウサイズの調整および選択された移動局の分離によって無線媒体の輻輳を制御するための方法および装置 | |
US20050265302A1 (en) | Wireless communication apparatus and wireless communication method | |
US8451749B2 (en) | Wireless communication device and wireless communication control method | |
WO2018121522A1 (zh) | 数据传输方法及用户设备、无线接入设备 | |
US20170164231A1 (en) | Data transmission method and base station | |
JP2010232819A (ja) | 再送制御方法および無線通信装置 | |
US11357032B2 (en) | Control information transmission method, transmit end, and receive end | |
CN102685468B (zh) | 视频包的传输方法和设备 | |
CN105490964B (zh) | 一种服务质量的处理方法和装置 | |
TW201628434A (zh) | 基於競爭的網路中的頻寬獲取的方法及裝置 | |
US7787434B2 (en) | Method access point and program product for providing bandwidth and airtime fairness in wireless networks | |
JP2014204443A (ja) | コンテンション・アクセス・ネットワーク向けの輻輳制御の方法 | |
US11683811B2 (en) | Radio communication method and device with alterable transmission time interval | |
EP3041285B1 (en) | Data frame sending method and apparatus | |
JP2009278354A (ja) | 通信装置、通信方法、プログラム、および通信システム | |
JP2015192195A (ja) | 無線通信装置、cw最大値取得装置、cw最大値取得方法、及びプログラム | |
WO2009069047A1 (en) | Link-based transmission queue structure for wireless networks | |
CN111601343B (zh) | 帧聚合方法、终端设备及计算机存储介质 | |
JP6450556B2 (ja) | 無線通信装置、無線通信方法、および無線通信プログラム | |
CN110730141B (zh) | 一种聚合调度方法、发送端及计算机可读存储介质 | |
JP6223942B2 (ja) | 無線通信環境に応じてアグリゲーション量を変更可能な無線通信装置、無線通信プログラム及び方法 | |
US9197482B1 (en) | Optimizing quality of service in wireless networks | |
KR20110075166A (ko) | 무선 통신 시스템에서 신호 송신 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee after: RUIJIE NETWORKS Co.,Ltd. Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee before: Beijing Star-Net Ruijie Networks Co.,Ltd. |