本发明涉及移动通信领域,尤其涉及一种流量分配方法及无线接入点。
背景技术:
目前,ap(wirelessaccesspoint,无线访问接入点)对接入的sta(station,站)的流量分配方式有:
方式1,ap对所接入的stas完全公平,不做任何限制,各wifi终端自由抢占流量带宽。即wifi网卡性能较强的终端将会抢占较多的流量带宽;反之,wifi网卡性能较差的终端抢占到的流量带宽较少。
方式2,tcp/ip网络层对ap接入的wifi终端进行流量限制与分配。
方式3,严格按时间片轮询发送数据,其中,ap所接入的各stas需要预先设置其发送时间片大小。
然而,上述各方式都存在相应的不足,主要表现为:
对于方式1,各wifi终端自由抢占流量带宽的方案下,性能相对较差的wifi终端上的用户体验较差。
对于方式2,tcp/ip网络层对ap所接入的wifi终端进行流量限制与分配。该方案的自适应能力差,即分配流量带宽前必须要预先确定所接入的wifi终端的性能量化参数以及当前网络总带宽情况。
对于方式3,严格按时间片轮询发送数据方案所存在的问题与方式2一样,自适应能力较差,需要预先给出各wifi终端的性能定量参数。
技术实现要素:
本发明提供一种流量分配方法及无线接入点,用以解决现有技术中的流量分配方式自适应能力差,影响流量分配效率和/或用户使用效率的问题。
依据本发明的一个方面,提供一种流量分配方法,应用于无线接入点ap侧,所述方法包括:
在sta接入后,确定所述sta的性能级别;
按照性能级别从低到高的顺序,对已接入的各sta的数据报文进行调度;其中,每调度一个数据报文,均按设定的性能级别上浮标准,对该数据报文所属sta的性能级别进行更新。
依据本发明的另一个方面,提供一种无线接入点,包括:
级别确定模块,用于在sta接入后,确定所述sta的性能级别;
数据报文调度模块,用于按照性能级别从低到高的顺序,对已接入的各sta的数据报文进行调度;其中,每调度一个数据报文,均按设定的性能级别上浮标准,对该数据报文所属sta的性能级别进行更新。
本发明有益效果如下:
本发明所述方法和无线接入点,按性能级别从低到高的顺序进行数据报文调度,并动态更新各sta的性能级别,使得性能级别越小的sta的数据报文具有更多发送机会,而性能级别高的sta的数据报文也会得到发送,避免了性能较强的sta抢占流量,使得流量分配更均衡,取得了积极的技术效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明第一实施例提供的一种流量分配方法的流程图;
图2为本发明第二实施例中sta性能参数获取过程流程图;
图3为本发明第二实施例中数据报文调度示意图;
图4为本发明第三实施例中无线接入点的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明的第一实施例中提供一种流量分配方法,应用于ap侧,如图1所示,所述方法包括如下步骤:
步骤s101,在sta接入后,确定sta的性能级别;
步骤s102,按照性能级别从低到高的顺序,对已接入的各sta的数据报文进行调度;其中,每调度一个数据报文,均按设定的性能级别上浮标准,对该数据报文所属sta的性能级别进行更新。
基于上述原理阐述,下面给出几个具体的实施方式,用以细化或优化本发明所述方法的功能,以使本发明方案的实施更方便,准确。需要说明的是,在不冲突的情况下,如下特征可以互相任意组合。
在本发明的一个具体实施例中,确定所述sta的性能级别,具体包括:
在sta接入后,根据sta的性能参数,确定该sta的初始性能级别,并判断其他已接入的sta的性能级别是否有上浮,若没有,则以初始性能级别为确定的sta的性能级别,若有,根据其他已接入sta性能级别的上浮量,对确定的初始性能级别进行修正。本实施例考虑到随着数据报文的调度,已接入的各sta的性能级别会逐渐增加,所以,在有新sta接入时,在确定其性能级别时,要考虑其他已接入sta性能级别的上浮情况,以使新接入的sta的性能级别与上浮后的各sta的性能级别在同等水平,从而保证调度公平性。
本实施例中,根据sta的性能参数,确定该sta的初始性能级别,具体包括:
调取设定的sta各性能参数的权重值;
通过加权求和的方式,计算已接入的每个sta的性能级别值。
在本发明的一个具体实施例中,sta的性能参数包括:接收速率、信号强度指标和接收天线信息。较佳的,接收速率、信号强度指标和接收天线信息在ap与sta进行关联过程中协商得到。
进一步地,为了提高性能级别计算的准确度,本实施例中,在sta接入后,还测试sta的接收性能,得到表示所述sta接收性能的性能参数,并将该性能参数作为性能级别的参考指标。
其中,测试sta的接收性能,得到表示sta接收性能的性能参数,具体包括:将n个测试数据报文按照固定的时间间隔依次发送给所述sta;其中,n个测试数据报文的大小相同;根据接收到的所述sta反馈的接收确认消息,统计n个数据报文发送成功次数,以该发送成功次数作为表示sta接收性能的性能参数。
进一步地,本发明实施例中,根据其他的已接入sta性能级别的上浮量,对确定的初始性能级别进行修正的方式包括但不限于为:
方式一:求取其他已接入sta性能级别的上浮量的平均值,将该平均值与确定的初始性能级别求和处理,得到修正后的性能级别;
方式二:在其他已接入的sta中查找初始性能级别与所述确定的初始性能级别最接近的某sta,求取所述某sta的性能级别的上浮量,并根据该上浮量,对所述确定的初始性能级别进行上调处理,得到修正后的性能级别。
在本发明的一个较佳实施例中,根据该上浮量,对确定的初始性能级别进行上调处理,具体通过如下方式实现:
修正后的性能级别=(查找到的sta的初始性能级别/当前确定的初始性能级别)*上浮量+确定的初始性能级别。
本实施例,通过该上调处理方式可以提高对确定的初始性能级别的修正准确度。
进一步地,在本发明的一个具体实施例中,按设定的级别上浮标准,对该数据报文所属sta的性能级别进行更新,包括:
调用预设的动态上浮值生成算法,生成数据报文所属sta的性能级别的上浮值,并将该上浮值叠加到该sta当前的性能级别值上。
其中,预设的动态上浮值生成算法为:
式中,delta=maxj{orignal(prio_j)}-minj{orignal(prio_j)},prioi为调度的sta当前的性能级别值,prioj为staj当前的性能级别值,n为已接入的sta的总数,orignal(prio_j)为已接入的各sta的初始性能级别值。
也就是说,本实施例提供了一种级别动态更新方法,经过该动态更新可以使得:
1)级别值越小的队列,其级别值增长的越缓慢;从而优先值越小的sta队列的数据报文将会得到更多的发送机会。
2)通过对级别值的更新,使其他级别值高的sta队列的报文也会得到发送,从而更公平。
在本发明的又一具体实施例中,设定的级别上浮标准为静态标准,即每调度一个数据报文,在该数据报文所属sta的当前性能级别值上叠加一固定的上浮值。较佳的,本实施例中,针对不同的级别分别设定该级别下的固定上浮值。设定标准为低级别对应的固定上浮值小于高级别对应的固定上浮值。通过该更新机制也从一定程度上能够即保障低级别队列有更多的发送机会,同时高级别队列的报文也有发送机会。
当然,通过更新级别值的方式保障调度公平性,只是实现本发明目的的一种具体实施方式。而本发明也试图保护其他可以实现低级别队列有更多的发送机会,同时高级别队列的报文也有发送机会的方案。例如,可以设定不同级别队列数据报文的调度量,设定标准为:低级别队列的数据报文调度量高,而高级别队列的数据报文调度量低,通过设定不同级别队列的报文调度量来达到流量的自适应均衡。例如,假设有三个级别队列a(低)、b(中)、c(高),则可设a队列的调度量为6,b队列的调度量为4,c队列的调度量为2,那么进行调度时,a队列调度6个数据报文后,进行b队列的调度,b队列调度4个数据报文后,进行c队列的调度,如此循环。
综上可知,本发明实施例所述方法,按性能级别从低到高的顺序进行数据报文调度,并动态更新各sta的性能级别,使得性能级别越小的sta的数据报文具有更多发送机会,而性能级别高的sta的数据报文也会得到发送,避免了性能较强的sta抢占流量,使得流量分配更均衡。
在本发明的第二实施例中提供一种流量分配方法,本实施例通过公开更多的技术细节对本发明实施例所述方法的实施过程进行更详尽的阐述。具体的,本实施例所述方法包括:
一,sta性能参数获取步骤;
如图2所示,本实施例中,获取sta性能参数的方式具体包括:
步骤201:某个sta与ap进行关联过程中,可以协商出sta的若干性能参数,包括但不限于为:接收速率rxrate、信号强度指标rssi、接收天线信息antenna(比如:1×1天线、2×2天线等)。其中,关联过程为sta接入ap时的一个必要环节,目的是底层链路间建立关联,由于其属于协议的基本概念,在此不对关联过程进行详细阐述。
步骤202:当sta与ap建立连接之后(即sta接入ap后),ap内由wifi驱动层发起数据包启动data-test-start;当ap收到sta的ack确认之后,正式开始数据发送。
步骤203:由ap开始发送第一个数据报文给sta(其中,数据报文大小固定,在具体实现时可根据实际情况定);如果ap收到sta的本次数据发送的ack确认之后,ap内驱动层统计一次成功传输。
步骤204:在发送第一个数据包过固定时间t1之后,接着发送第二个数据报文(数据包大小与步骤203中的一致),然后按步骤203中相同的规则统计是否传输成功。
步骤205:当经过t1*(n-1)时间后,发送第n个数据报文,并统计是否发送成功。其中,数量n可根据实际效果需求设定。
步骤206:ap内驱动统计以上n各数据包发送成功次数count_success,得到sta的接收性能。
其中,步骤202~206为可选步骤,执行步骤202~206目的是提高对sta接收性能的评估准确度。
二,级别定量计算步骤;
本实施例中,在sta接入ap后,ap按如下公式定量计算各sta的初始性能级别:
prio=α*rxrate+β*rssi+γ*antenna+δ*count_success
其中,rxrate为sta接入ap后协商得到的接收速率;rssi为sta接入ap后的信号强度指标;antenna为sta的wifi网卡的接收天线数数量;count_success为ap在测试确认sta的接收性能过程中发送成功的数据包数量值。α,β,γ,δ依次为接收速率rxrate、信号强度指标rssi、接收天线数antenna以及成功发送数据包数count_success的权重。
在实际使用中,可以考虑将δ和α的权重放大,因为接收速率rxrate和成功发送数据包数count_success更能体现sta的数据接收性能指标。
本实施例中,在某sta接入ap后,如果ap已经对其他已接入sta的数据报文进行了调度,则此时其他已接入sta的性能级别已经上浮(由步骤三可以获知),所以,此时需要对当前接入ap的sta的初始性能级别进行修正。具体修正方式参见第一实施例,在此不再赘述。
三,数据报文调度步骤;
本实施例中,在确定了已接入的各sta的性能级别后,按照性能级别从低到高的顺序,对已接入的各sta的数据报文进行调度。
本实施例中,假设ap维护的sta队列为:sta1,sta2,…,stan,每个sta对应的性能级别值为prio_1,prio_2,…,prio_n。
如图3所示,为对已接入的各sta的数据报文进行调度的示意图。ap从sta1,sta2,…,stan的队列中取出一个级别值最小的队列,假设为stai;当从stai的队列中取出一个报文数据之后,更新prio_i的性能级别值,并将取出的数据报文交给wifi驱动发送队列等待发送到目的sta。
其中,性能级别的更新方式为:
其中,delta=maxj{orignal(prio_j)}-minj{orignal(prio_j)}。
综上可知,本发明所述方法,通过动态更新各sta的性能级别,并按级别从低到高的顺序进行数据报文调度,使得性能级别越小的sta的数据报文具有更多发送机会,而性能级别高的sta的数据报文也会得到发送,避免了性能较强的sta抢占流量,使得流量分配更均衡。
在本发明第三实施例中提供一种无线接入点,如图4所示,具体包括:
级别确定模块410,用于在sta接入后,确定sta的性能级别;
数据报文调度模块420,用于按照性能级别从低到高的顺序,对已接入的各sta的数据报文进行调度;其中,每调度一个数据报文,均按设定的级别上浮标准,对该数据报文所属sta的性能级别进行更新。
基于上述结构框架及实施原理,下面给出在上述结构下的几个具体及优选实施方式,用以细化和优化本发明所述无线接入点的功能,以使本发明方案的实施更方便,准确。具体涉及如下内容:
本实施例中,数据报文调度模块420,具体用于调用预设的动态上浮值生成算法,生成数据报文所属sta的性能级别的上浮值,并将该上浮值叠加到该sta当前的性能级别值上;其中,预设的动态上浮值生成算法为:
进一步地,本实施例中,级别确定模块410,具体包括:
计算单元411,用于在sta接入后,根据sta的性能参数,确定该sta的初始性能级别;
判断单元412,用于判断其他已接入的sta的性能级别是否有上浮,若没有,则以所述初始性能级别为确定的sta的性能级别;若有,则触发修正单元;本实施例中,可以维护一个已接入sta的性能级别表,该表中记录每个sta的初始性能级别,以及每次更新后的性能级别值。将该表存储在指定文件中,判断单元可以调取该文件,根据文件中记录的信息确定其他已接入的sta的性能级别是否有上浮。
修正单元413,用于根据其他已接入sta性能级别的上浮量,对确定的初始性能级别进行修正。
进一步地,本实施例中,修正单元413,具体用于求取其他已接入sta性能级别的上浮量的平均值,将该平均值与确定的初始性能级别求和处理,得到修正后的性能级别;或者,在其他已接入的sta中查找初始性能级别与所述确定的初始性能级别最接近的某sta,求取所述某sta的性能级别的上浮量,并根据该上浮量,对所述确定的初始性能级别进行上调处理,得到修正后的性能级别。
可选地,修正单元413根据该上浮量,对确定的初始性能级别进行上调处理,得到的修正后的性能级别=(查找到的sta的初始性能级别/当前确定的初始性能级别)*上浮量+确定的初始性能级别。
进一步地,本实施例中,计算单元411,具体用于调取设定的sta各性能参数的权重值,通过加权求和的方式,计算sta的初始性能级别值。
进一步地,本实施例中,还包括:关联模块430,用于负责与sta进行关联,并在与sta进行关联时协商得到sta的性能参数;所述性能参数包括如下参数中的一个或多个:接收速率、信号强度指标和接收天线数。
进一步地,本实施例中,还包括:测试模块440,用于在sta接入后,将n个测试数据报文按照固定的时间间隔依次发送给所述sta,并根据接收到的所述sta反馈的接收确认消息,统计n个数据报文发送成功次数,得到表示sta接收性能的性能参数;其中,n个测试数据报文的大小相同。
综上可知,本发明所述的无线接入点,按性能级别从低到高的顺序进行数据报文调度,并动态更新各sta的性能级别,使得性能级别越小的sta的数据报文具有更多发送机会,而性能级别高的sta的数据报文也会得到发送,避免了性能较强的sta抢占流量,使得流量分配更均衡。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。