首页> 中国专利> 基于802.11协议混合模式下的数据包调度方法

基于802.11协议混合模式下的数据包调度方法

摘要

本发明涉及网络数据传输技术,具体的说是涉及一种基于802.11协议混合模式下考虑QOS保障的数据包调度方法。本发明所述的方法主要技术方案为:通过网络上层递交给AP MAC层数据帧,自动识别接入终端当前发送数据的速率。然后根据每个数据帧的PHY发送速率标示,将该数据帧的发送速率属于哪个速率区间,并将选择和决策对该数据帧的处理流程,实现将高速率数据帧直接发送,将中低速率数据帧存放在相应的缓冲队列等待发送。本发明的有益效果为,能够自动识别当前发送数据帧的传输速率,并选择适合于该速率的数据帧的发送方式,从而有效提高混合模式下的系统吞吐量,提高混合模式下802.11n的服务质量和用户感受。本发明尤其适用于混合模式下数据包调度方法。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-09

    授权

    授权

  • 2014-10-15

    著录事项变更 IPC(主分类):H04L12/861 变更前: 变更后: 申请日:20130619

    著录事项变更

  • 2014-04-23

    著录事项变更 IPC(主分类):H04L12/861 变更前: 变更后: 申请日:20130619

    著录事项变更

  • 2013-10-16

    实质审查的生效 IPC(主分类):H04L12/861 申请日:20130619

    实质审查的生效

  • 2013-09-11

    公开

    公开

说明书

技术领域

本发明涉及网络数据传输技术,具体的说是涉及一种基于802.11协议混合模式下考虑QOS保障的数据包调度方法。 

背景技术

WLAN是计算机网络与无线通信技术相结合的产物,使用无线信道来接入网络,为通信的移动化提供了方法。WLAN可以作为传统有线网络的延伸,并且WLAN正以它的高度灵活性、移动性、低成本和日益提高的传输能力发挥着越来越重要的作用,成为未来网络发展的主流形式之一。 

目前,已经产品化的无线网络标准主要有4种,即802.11n、802.11a、802.11g、802.11b。802.11b可以支持最高为11Mbps的数据速率,运行在2.4GHz的ISM频段上,调制技术采用补码键控(CCK)技术,802.11b的传输速度并不能满足大容量数据的无线传输要求,于是产生了802.11a和802.11g。802.11a工作在5GHz频段上,并且采用正交频分复用(OFDM)技术,速度达到54Mbps,与802.11b相比802.11a受干扰少,由于802.11a与802.11b工作在不同的频段,采用不同的调制技术,因此两者是不兼容的。802.11g采用2.4GHz工作频谱,并使用正交频分复用(OFDM)技术,使传输速率提高到54Mbps,802.11g保留了802.11b所采用的CCK技术,同时采用了一个“保护”机制,使802.11g能够兼容802.11b。由于802.11g信号可以穿透墙壁和地板,与802.11a相比802.11g传送信号的距离更远,因此,802.11g既提供了较高的网络带宽,又保护了原有的投资从而成为目前市场的主流。为了实现高带宽、高质量的WLAN服务,使WLAN达到以太网的性能水平,则产生了802.11n,802.11n协议为双频工作模式,既能工作在2.4GHz,又能工作在5GHz,并且802.11n将多入多出(MIMO)与正交频分复用(OFDM)技术相结合,不但提高了无线传输的质量,也使802.11n可以实现300Mbps甚至高达600Mbps的传输速率。在802.11n草案中,要求802.11n产品能够在包含802.11a、802.11g、802.11b的混合模式下运行,且具有向下兼容性。 

802.11n支持HT(High-Throughput)和Non-HT/混合模式两种场景,然而在混合模式场景下,由于低速率数据终端的引入,严重拖慢了高速802.11n用户的传输,从而大大降低了802.11n终端用户的感受和服务质量。造成这种现象的原因有两个:第一,由于802.11协议本身提供给了所有用户同样的信道接入机会,802.11g/b等低速率数据帧等概率的插入在高速率802.11n数据帧的中间,大大拖慢了802.11n终端的传输。第二,由于802.11n和802.11g物理层都支持速率自适应,其数据发送速率根据信道状况具有一定的时变性,所以即使该终 端支持802.11n协议,也有可能由于信道原因,传输速率很慢。所以,针对这些传输速率各异的终端能力现状,现有协议给他们提供了看似平等的信道接入机会,但是,从802.11n高速率用户的角度,却是不公平的。基于以上考虑,我们需要设计一种方法,在混合模式下,对高低速率用户区分对待,调整其数据帧的时间片在系统资源内的分布顺序,从而有效提高在混合模式场景下的系统吞吐量和802.11n终端用户的感受。 

发明内容

本发明所要解决的技术问题,就是基于目前的IEEE802.11协议之上,提供一种基于802.11协议混合模式下的数据包调度方法。 

本发明解决上述技术问题所采用的技术方案是:基于802.11协议混合模式下的数据包调度方法,其特征在于,包括以下步骤: 

a.实时检测当前接入终端发送数据帧的速率值,设置多个传输速率区间,每个传输速率区间分别预设有相对应的速率临界值范围,并根据检测到的速率值判断当前发送数据帧所属的传输速率区间; 

b.建立多个区间队列用于分别保存不同传输速率区间的数据帧,根据当前发送数据帧的传输速率区间将当前发送数据帧保存到对应的区间队列; 

c.为不同区间队列设置不同的发送比例,根据当前数据帧所属的区间队列的发送比例发送当前数据帧,返回步骤a。 

具体的,所述实时检测当前发送数据帧的速率值是通过获取当前连接态终端的最大物理层发送速率或者其对应的标识来判断。 

具体的,所述设置多个传输速率区间为设置3个速率区间,分别为第一低速率区间A、第二低速率区间B和高速率区间C,所述第一低速率区间A对应的速率临界值范围为0~6Mbps,所述第二低速率区间B对应的速率临界值范围为6~15Mbps,所述高速率区间对应的速率临界值范围为>15Mbps。 

具体的,所述建立多个区间队列为建立2个区间队列,分别为第一区间队列和第二区间队列,所述第一区间队列用于保存第一低速率区间A的数据,所述第二区间队列用于保存第二低速率区间B的数据,所述高速率区间C的数据不需要保存。 

具体的,所述不同区间队列设置不同的发送比例为,第一低速率区间A:第二低速率区间B:高速率区间C为2:1:20。 

具体的,当前发送数据帧属于第一低速率区间A或第二低速率区间B时,判断当前数据帧是否符合规定的比例,若是,则将当前发送数据帧存入相对应的区间队列的队尾并将该区间队列头部的数据发送出去,若否,则将当前发送数据帧存入相对应的区间队列的队尾并不 发送数据出去。 

具体的,对不同区间队列设置的长度设置上限值,实时判断当前队列的长度是否达到长度上限值,若是,则将该队列中的数据一起全部发送出去,若否,则不作处理。 

具体的,通过定时器在固定的时间间隔内清空第一区间队列或第二区间队列中的数据。 

具体的,步骤b还包括:根据发送速率将当前所有接入终端分为低速率适配接入终端和高速率适配接入终端,并实时检测判断当前接入终端是否发生移动,若检测到有接入终端从低速率适配终端移动为高速率适配终端,则记录该接入终端缓存数据的最大序列号X,并判断高速率区间C当前发送数据帧的序列号是否大于最大序列号X,若是,则将该终端所有的缓存数据发送,若否,则不作处理。 

进一步的,步骤a还包括,在接入终端处设置流量统计模块,分别统计每个应用终端缓冲队列中的数据包负载情况,并根据检测到的速率值计算出每个业务终端所需的发送时长,根据发送时长对每个业务终端进行排序。 

具体的,所述根据发送时长对每个业务终端进行排序为根据发送时长值从小到大排序,对排序在0~1/3范围内的终端设置直接发送队列A,对排序在1/3~2/3范围内的终端设置第一缓冲队列B,对排序在2/3~范围内的终端设置第二缓冲队列C。 

具体的,所述不同区间队列设置不同的发送比例为,发送队列A:第一缓冲队列B:第二缓冲队列C为1:2:20。 

具体的,当前发送数据帧属于第一缓冲队列B或第二缓冲队列C时,判断当前数据帧是否符合规定的比例,若是,则将当前发送数据帧存入相对应的区间队列的队尾并将该区间队列头部的数据发送出去,若否,则将当前发送数据帧存入相对应的区间队列的队尾并不发送数据出去。 

具体的,通过定时器在固定的时间间隔内清空发送队列A和第一缓冲队列B中的数据。 

具体的,步骤b还包括:根据发送时长将当前所有接入终端分为长时间适配接入终端和短时间适配接入终端,并实时检测判断当前接入终端是否发生移动,若检测到有接入终端从长时间适配终端移动为短时间适配终端,则记录该接入终端缓存数据的最大序列号X,并判断发送队列A当前发送数据帧的序列号是否大于最大序列号X,若是,则将该终端所有的缓存数据发送,若否,则不作处理。 

本发明的有益效果为,能够自动识别当前发送数据帧的传输速率,并选择适合于该速率的数据帧的发送方式,从而有效提高混合模式下的系统吞吐量,提高混合模式下802.11n的服务质量和用户感受。 

附图说明

图1为实施例1高速率区间C的数据帧流程示意图; 

图2为实施例1第二低速率区间B的数据帧流程示意图; 

图3为实施例1第一低速率区间A的数据帧流程示意图; 

图4为实施例1的混合模式下数据帧调度算法流程图; 

图5为实施例2发送队列A的数据帧流程示意图; 

图6为实施例2第二缓冲队列C的数据帧流程示意图; 

图7为实施例2第一缓冲队列B的数据帧流程示意图; 

图8为实施例2的混合模式下数据帧调度算法流程图; 

其中,a_rate为数据帧发送速率值,实施例1中,n_b_tx为C队列相对于A队列的数据帧发送个数,n_g_tx为C队列相对于B队列的据帧发送个数,queue_b_depth为A队列中数据帧存放个数,queue_g_depth为B队列中数据帧存放个数;实施例2中,A_c_tx为C队列相对于A队列的数据帧发送个数,A_b_tx为C队列相对于B队列的数据帧发送个数,Queue_c_depth为A队列中数据帧存放个数,Queue_b_depth为B队列中数据帧存放个数,K为定时器门限值。 

具体实施方式

本发明提出一种基于802.11协议混合模式下的数据包调度方法,主要采用的技术方案为通过网络上层递交给AP MAC层数据帧,自动识别接入终端当前发送数据的速率。然后根据每个数据帧的PHY发送速率标示,将该数据帧的发送速率属于哪个速率区间,并将选择和决策对该数据帧的处理流程,实现将高速率数据帧直接发送,将中低速率数据帧存放在相应的缓冲队列等待发送,最后,利用调度算法控制数据帧的发送顺序,从而有效提高了混合模式下的802.11n用户服务质量。 

同时考虑到各个应用终端的负载量可能不同,即存在负载不均衡的情况,所以,在AP侧增加流量统计模块,分别统计各个应用终端缓冲队列中的数据包负载情况,然后定义每个业务终端所需发送时长:T=LOAD/RATE,其中LOAD为缓冲队列中数据包的比特数,RATE为该终端的发送速率。然后对每个业务终端进行排序,为排序最高的0-1/3个终端的数据包直接发送,定义为区间A,1/3-2/3区间的终端数据包进入缓冲队列B,2/3-1区间的终端数据包进入缓冲队列C。从而实现按需的下行时隙数据包调度。 

下面结合附图和实施例,详细描述本发明的技术方案: 

实施例中的速度值单位默认为Mbps。 

实施例1: 

本例采用定义三个速率区间:(a_rate>0&&a_rate<6)为第一低速率区间A,(a_rate>6&&a_rate<15)定义为第二低速率区间B,a_rate>15为高速率区间C。当有数据帧要发送,通过获取当前连接态终端的最大物理层发送速率或者其对应标识,根据该值判别出终端当前发送数据帧的速率属于哪个发送区间。 

在识别出当前发送数据的速率区间后,建立两个区间队列,一个保存A区间的数据(如图1所示),一个保存B区间的数据(如图2所示),C区间的数据不需要缓存(如图3所示)。对低速率的数据帧按照一定的比例进行数据发送。设定一个限度,比如说发10个C区间的数据之后,发1个B区间的数据。同理,发20个C区间的数据之后,发1个A区间的数据,按照这个比例对数据进行发送。 

当有A区间、B区间的数据到来时,符合规定比例的,把它存到对应的队列尾,同时把队列头部的数据发出去。不符合的,我们把它存在队列尾,不发送数据。当队列的长度达到一定限度时,我们把队列中的数据一起全部发出去。 

为了防止A区间和B区间数据积累过多,可以通过定义一个linux timer定时器清空A和B区间队列中的数据。 

同时对接入的终端进行实时检测,当检测到接入终端移动时,从低速率适配成了高速率时,记录当前每个终端缓存数据的最大序列号X,如果及时发送队列C当前发送数据帧的序列号比X大,作为一个事件触发条件,将该终端所有缓存数据发送。 

如图1所示,高速率区间C的数据帧处理流程为: 

C区间中存放的为速率区间a_rate>15的数据帧队列,当数据帧速率值>15时,进入判断流程,首先判断数据帧是否满足case1,即C队列数据帧个数比B队列数据帧个数的比例小于30比1且C队列数据帧个数比A队列数据帧个数的比例小于100比1,若满足,则发送一个C队列数据帧,若不满足,继续判断是否满足case2,即C队列数据帧个数比B队列数据帧个数的比例小于30比1且C队列数据帧个数比A队列数据帧个数的比例大于100比1,若满足,则发送一个C队列和一个A队列头数据帧,若不满足,则继续判断是否满足case3,即C队列数据帧个数比B队列数据帧个数的比例大于30比1且C队列数据帧个数比A队列数据帧个数的比例小于100比1,若满足,则发送一个C队列和一个B队列头数据帧,若不满足,则继续判断是否满足case4,即C队列数据帧个数比B队列数据帧个数的比例大于30比1且C队列数据帧个数比A队列数据帧个数的比例大于100比1,若满足,则同时发送一个C队列、一个B队列和一个A队列数据帧。 

如图2所示,第二低速率区间B的数据帧处理流程为: 

B区间中存放的为速率区间6<a_rate<15的数据帧队列,在数据帧速率在6到15之间 时进入B区间判断流程,首先判断是否n_b_tx(C队列相对于A队列的数据帧发送个数)个数小于100且queue_b_depth(A队列中数据帧存放个数)个数小于等于300,若是,则将数据帧放入B队列的队尾,若否,则继续判断queue_g_depth(B队列中数据帧个数)个数是否大于300,若是,则将数据放入B队列的队尾,并发送B队列头部的一个数据帧,若否,则发完B队列中的数据帧。 

如图3所示,第一低速率区间A的数据帧处理流程为: 

A区间中存放的是速率区间0<a_rate<6的数据帧队列,在数据帧速率在0到6之间时进入A区间判断流程,判断是否n_b_tx(C和A队列中数据帧发送个数)个数小于100且queue_b_depth(A队列中数据帧存放个数)个数小于等于300,若是,则将数据放入A队列队尾,若否,则继续判断queue_b_depth个数是否大于300,若是,则将数据放入A队列队尾,并发送A队列头部的一个数据帧,若否,则发送完A队列中的数据帧。 

如图4所示,混合模式下数据帧调度流程为: 

有数据帧发送时,首先检测数据帧的速率值,判断速率值是否>15,若是,则数据帧进入高速率区间C,具体处理流程如图1部分所示,若否,则继续判断速率值是否在6到15之间,若是,则数据帧进入第二低速率区间B,具体处理流程如图2部分所示,若否,则数据帧进入第一低速率区间A,具体处理流程如图3部分所示,最后还要判断定时器是否大于门限值,若是,则发送完A和B队列中的数据。 

本例通过自动识别当前发送数据帧的传输速率或者其标识,判定该数据帧的发送速率属于哪个速率区间,选择和决策对该数据帧的处理流程,其处理结果就是,将高速率数据帧直接发送,将中低速率数据帧存放在相应的缓冲队列等待发送,最后,利用调度算法控制数据帧的发送顺序,从而有效提高了混合模式下的802.11n用户服务质量。 

实施例2: 

在负载可能不均衡的情况下,本例采用从AP侧增加流量统计模块,用于分别统计各个应用终端缓冲队列中的数据包负载情况,并根据发送速率计算出每个业务终端所需发送时长: 

T=LOAD/RATE,其中LOAD为缓冲队列中数据包的比特数,RATE为该终端的发送速率。 

根据计算得到的时长对每个业务终端进行排序,为排序最高的0-1/3个终端的数据包直接发送,定义为发送队列A,1/3-2/3区间的终端数据包进入第一缓冲队列B,2/3-1区间的终端数据包进入第二缓冲队列C。从而实现按需的下行时隙数据包调度。 

对于发送时间长的终端按照一定比例进行数据发送,设定一个限度,比如发10个A队列的数据后,发一个队列B的数据,同理,发20个A队列的数据之后,发1个队列C的数 据,按照这个比例对数据进行发送。 

当有队列B、C的数据到来时,符合规定比例的,把它存到对应的队列尾,同时把队列头部的数据发出去,不符合的,我们把它存在队列尾,不发送数据。当队列的长度达到一定限度时,我们把队列中的数据一起全部发出去。 

同时也定义一个linux timer定时器用于在固定时间间隔内清空A和B区间队列中的数据。 

当检测到接入终端移动时,即终端发送时长变短,记录当前每个终端缓存数据的最大序列号X,如果及时发送区间A当前发送数据帧的序列号比X大,作为一个时间触发条件,将该终端所有缓存数据发送。 

具体的处理流程为: 

如图5所示,A区间队列的数据帧处理流程为,根据数据帧的发送时长判断是否为A区间队列,排序在0-1/3范围,若是,进入判断流程,首先判断数据帧是否满足case1,即C队列数据帧个数比B队列数据帧个数的比例小于30比1且C队列数据帧个数比A队列数据帧个数的比例小于100比1,若满足,则发送一个C队列数据帧,若不满足,继续判断是否满足case2,即C队列数据帧个数比B队列数据帧个数的比例小于30比1且C队列数据帧个数比A队列数据帧个数的比例大于100比1,若满足,则发送一个C队列和一个A队列头数据帧,若不满足,则继续判断是否满足case3,即C队列数据帧个数比B队列数据帧个数的比例大于30比1且C队列数据帧个数比A队列数据帧个数的比例小于100比1,若满足,则发送一个C队列和一个B队列头数据帧,若不满足,则继续判断是否满足case4,即C队列数据帧个数比B队列数据帧个数的比例大于30比1且C队列数据帧个数比A队列数据帧个数的比例大于100比1,若满足,则同时发送一个C队列、一个B队列和一个A队列数据帧。 

如图6所示,为第二缓冲队列C的数据帧处理流程,根据数据帧的发送时长判断是否为C区间队列的数据帧,排序在2/3-1范围,若是,则断是否A_c_tx(C队列相对于A队列的数据帧发送个数)个数小于100且queue_c_depth(C队列中数据帧存放个数)个数小于等于300,若是,则将数据帧放入C队列的队尾,若否,则继续判断queue_c_depth个数是否大于300,若是,则将数据放入C队列的队尾,并发送C队列头部的一个数据帧,若否,则发完C队列中的数据帧。 

如图7所示,为第一缓冲队列B的数据帧处理流程,根据数据帧的发送时长判断是否为B区间队列的数据帧,排序在1/3-2/3范围,若是,则断是否A_c_tx(C队列相对于A队列的数据帧发送个数)个数小于100且queue_c_depth(C队列中数据帧存放个数)个数小于等于300,若是,则将数据帧放入C队列的队尾,若否,则继续判断queue_b_depth(B队列中数据帧存放个数)个数是否大于300,若是,则将数据放入C队列的队尾,并发送C队列头部 的一个数据帧,若否,则发完C队列中的数据帧。 

如图8所示,本例混合模式下数据帧的调度流程为,数据帧发送时,首先检测数据帧的速率值,根据速率值计算得出接入端缓存数据发送时长,根据发送时长判断数据帧属于哪个区间队列,判断排序范围是否在0-1/3之间,若是,则在A区间队列,具体处理流程如图5部分所示,若否,则继续判断是否在1/3-2/3之间,若是,则数据帧进入第二缓存队列B,具体处理流程如图7部分所示,若否,则数据帧进入第一缓存队列A,具体处理流程如图6部分所示,最后还要判断定时器是否大于门限值,若是,则发送完B和C队列中的数据。 

本例通过计算数据帧需要发送的时长,将该数据帧的发送时间长度属于哪个区间,并选择和决策相应的数据帧的处理流程,处理结果就是,将时长短的数据帧直接发送,将时长相对长的数据帧存放在相应的缓冲队列等待发送,最后,利用调度算法控制数据帧的发送顺序,从而有效地提高了混合模式下的802.11n用户服务质量。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号