CN102843775B - 调度方法、装置及网络设备 - Google Patents
调度方法、装置及网络设备 Download PDFInfo
- Publication number
- CN102843775B CN102843775B CN201210335465.3A CN201210335465A CN102843775B CN 102843775 B CN102843775 B CN 102843775B CN 201210335465 A CN201210335465 A CN 201210335465A CN 102843775 B CN102843775 B CN 102843775B
- Authority
- CN
- China
- Prior art keywords
- sta
- dispatching cycle
- bandwidth
- current dispatching
- current
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种调度方法、装置及网络设备。方法包括:AP根据第一STA的类型,获取当前调度周期的上一调度周期内的调度信息;AP根据调度信息确定第一STA在当前调度周期内的初始带宽,并根据当前调度周期内接入AP的STA的总个数对第一STA在当前调度周期内的初始带宽进行调整,获取第一STA在当前调度周期内的可用带宽;AP根据第一STA在当前调度周期内的可用带宽,设置第一STA对应的令牌桶在当前调度周期内的令牌数目,并使用第一STA对应的令牌桶在当前调度周期内的令牌数目,对第一STA对应的报文进行收发处理。本发明技术方案提高了WLAN中设备使用WLAN资源的公平性。
Description
技术领域
本发明涉及通信技术,尤其涉及一种调度方法、装置及网络设备。
背景技术
无线局域网(Wireless Local Area Network,简称为WLAN)的部署越来越广泛,其中应用最广泛的是IEEE 802.11系列的标准。802.11标准的WLAN采用的是带冲突避免的载波监听多路访问(Carrier Sense Multiple Access withCollision Avoidance,简称为CSMA/CA)机制,这种机制提供了一种半双工的无线链路,一个时间段内只能有一个设备在该链路上发送数据,而共享同一链路的其他设备在同一时间段内只能从链路上接收数据,否则会造成链路上的无线信号被破坏,从而导致传输失败。为了保证上面这种信号独占的实现,802.11标准引入了三种媒体访问模式:分布式协调功能(Distributedcoordination function,简称为DCF)、点协调功能(Point coordination function,简称为PCF)以及混合协调功能(Hybrid coordination function,简称为HCF)。目前应用最广泛的是DCF模式,DCF模式要求站点(Station,简称为STA)或者接入点(Access Point,简称为AP)在发送数据之前要先检测无线链路是否空闲,如果链路处于忙碌状态,则STA或者AP必须延迟发送数据,避免干扰和破坏无线链路上的信号。在DCF模式下,STA或者AP采用指数退避算法来避免碰撞的发生,即避免两个或两个以上的设备同时往无线链路中发送数据。DCF模式从概率统计上来讲对每个WLAN中的设备(STA或者AP)是公平的,即每个设备都能公平的获得无线链路的使用权。
然而,由于WLAN是一种允许多种数据传输速率和多种物理传输技术在同一个传播介质上使用的网络技术,使得DCF这种概率上的公平在实际应用中经常无法得到保证。这里的多种速率是指同一个WLAN设备,在WLAN中传输数据的速率会随着时间不断变化,这里的多种物理传输技术是指同一个WLAN中存在不同标准的STA。为了解决WLAN应用的公平性,现有技术提出一种空口限速方案。该方法主要是通过流量监管或者流量整形来限制一个方向上的流量的速率,使得这个方向的数据源设备调整数据发送速率以适应AP所分配的带宽,从而达到限制发往空口的数据流量的目的来实现WLAN资源使用的时间公平性。但是,该方案实现比较简单,例如没有考虑随着STA的数量的增加而导致的空口环境的恶化等情况,因此其所能达到的时间公平效果并不理想。
发明内容
本发明提供一种调度方法、装置及网络设备,用以提高WLAN中设备使用WLAN资源的公平性。
本发明第一方面提供一种调度方法,包括:
无线接入点AP根据第一站点STA的类型,获取当前调度周期的上一调度周期内的调度信息,所述调度信息包括下行发送速率,或者所述调度信息包括所述下行发送速率和报文总个数,所述下行发送速率是所述AP向所述第一STA发送下行报文的速率,所述报文总个数为所述AP发送给所述第一STA的下行报文的个数和所述第一STA发送给所述AP的上行报文的个数之和;
所述AP根据所述调度信息确定所述第一STA在当前调度周期内的初始带宽,并根据当前调度周期内接入所述AP的STA的总个数对所述第一STA在当前调度周期内的初始带宽进行调整,获取所述第一STA在当前调度周期内的可用带宽;
所述AP根据所述第一STA在当前调度周期内的可用带宽,设置所述第一STA对应的令牌桶在当前调度周期内的令牌数目,并使用所述第一STA对应的令牌桶在当前调度周期内的令牌数目,对所述第一STA对应的报文进行收发处理。
本发明第二方面提供一种调度装置,设置在无线接入点AP中,所述装置包括:
信息获取模块,用于根据第一站点STA的类型,获取当前调度周期的上一调度周期内的调度信息,所述调度信息包括下行发送速率,或者所述调度信息包括所述下行发送速率和报文总个数,所述下行发送速率是所述AP向所述第一STA发送下行报文的速率,所述报文总个数为所述AP发送给所述第一STA的下行报文的个数和所述第一STA发送给所述AP的上行报文的个数之和;
带宽获取模块,用于根据所述调度信息确定所述第一STA在当前调度周期内的初始带宽,并根据当前调度周期内接入所述AP的STA的总个数对所述第一STA在当前调度周期内的初始带宽进行调整,获取所述第一STA在当前调度周期内的可用带宽;
令牌设置模块,用于根据所述第一STA在当前调度周期内的可用带宽,设置所述第一STA对应的令牌桶在当前调度周期内的令牌数目;
调度处理模块,用于使用所述第一STA对应的令牌桶在当前调度周期内的令牌数目,对所述第一STA对应的报文进行收发处理。
本发明第三方面提供一种网络设备,包括本发明提供的任一调度装置。
本发明提供的调度方法、装置及网络设备,考虑STA的类型,获取与STA的类型相适应的上一调度周期内的调度信息,进而根据获取的调度信息确定STA在当前调度周期内的初始带宽,然后考虑当前调度周期内接入AP的STA的总数对带宽有效性的影响,利用当前调度周期内接入AP的STA的总数对确定出的STA在当前调度周期内的初始带宽进行调整,获取STA在当前调度周期内的可用带宽,然后基于调整后获取的可用带宽设置STA对应的令牌桶在当前调度周期内的令牌数目,根据该令牌数目对STA对应的报文进行收发处理,由于充分考了STA的类型以及当前接入AP的STA的数目等对带宽有效性的影响,使得所设置的令牌桶的令牌数更加准确,提高了WLAN的无线链路使用的公平性。
附图说明
图1为本发明一实施例提供的调度方法的流程图;
图2为本发明一实施例提供的AP根据第一STA在当前调度周期内的可用带宽,设置第一STA对应的令牌桶在当前调度周期内的令牌数目的实施方式的流程图;
图3为本发明一实施例提供的状态机的状态转换示意图;
图4为本发明一实施例提供的步骤202的可选实施方式的流程图;
图5为本发明另一实施例提供的调度方法的流程图;
图6为本发明一实施例提供的调度装置的结构示意图;
图7为本发明另一实施例提供的调度装置的结构示意图。
具体实施方式
在WLAN中,一组可以相互通信的站点(Station,简称为STA)可构成基本服务集(Basic Service Set,简称为BSS),较为常用的是基础架构型BSS(英文为infrastructure BSS)。在基础架构型BSS中,无线网络由一个AP和多个STA组成,所有的数据报文的转发都要经过AP。该基础架构型BSS可以作为本发明以下各实施例的一种应用场景,但不限于此,凡是经过AP进行数据转发的WLAN场景都适用于本发明以下各实施例。
图1为本发明一实施例提供的调度方法的流程图。如图1所示,本实施例的方法包括:
步骤101、AP根据第一STA的类型,获取当前调度周期的上一调度周期内的调度信息,该调度信息包括下行发送速率,或者包括下行发送速率和报文总个数。
在本实施例中,第一STA可以是当前调度周期内接入AP的STA中的任意一个STA。本实施例以第一STA为例,即以当前调度周期内接入AP的所有STA中的一个为例进行说明,对当前调度周期内接入AP的每个STA的调度过程均与对第一STA的调度过程相同。
在本实施例中,调度周期的长度可变,是由一个预设的时间t和接入AP的STA的数量决定的,例如可以设置调度周期T=t×STA_NUM,但不限于此。其中,t为预设在每个调度周期内分配给STA使用无线链路的理想时间,其单位可以是微秒、毫秒或秒等。STA_NUM为接入AP的STA的数量。
在本实施例中,下行发送速率是指AP向第一STA发送下行报文的速率。其中,AP可以统计其向STA发送下行报文的速率,并将统计结果记录在本地,因此,AP可以从本地直接获取上述下行发送速率。该下行发送速率的单位一般为比特每秒(bps),可选的,为了便于使用,在使用时可以将该下行发送速率除以8,转换成以字节每秒为单位。
在本实施例中,报文总个数为AP发送给第一STA的下行报文的个数和STA发送给AP的上行报文的个数之和。其中,在每个调度周期内,AP都会记录其发送给STA的下行报文的个数,也会记录其接收到的STA发送的上行报文的个数,因此,AP可以获取到上一调度周期内的报文总个数。
在本实施例中,第一STA的类型是根据第一STA所遵从的802.11标准(即根据所使用的物理技术)进行区分的,例如称802.11n标准下的STA为高吞吐(High Throughput,简称为HT)站点,而802.11a、802.11b和802.11g标准下的STA称为非HT(non-HT)站点,但不限于此。对于不同类型的STA,计算其在当前调度周期内的初始带宽所需的调度信息可能会有所不同,故本实施例根据第一STA的类型获取相应的调度信息,与统一获取全部调度信息的方案相比,有利于减少AP获取调度信息的负担,一定程度上可以提高调度效率。
另外,不同类型的STA的传输能力并不相同,例如802.11g的STA的传输速率范围是1到54Mbps,而802.11n最高可达600Mbps。即使不同类型的STA的传输速率相同,其有效吞吐率也是不同的,例如,同样以54Mbps的传输速率发送报文,802.11n标准的STA的吞吐率就能比802.11g标准的STA的吞吐率高。这种传输速率和物理技术的不同使得不同类型的STA在传输同样长度的报文时会占用不同长度的无线链路资源,即占据无线链路资源的时长不同,这就造成了无法公平使用无线链路资源的问题。为了解决该问题,本实施例中,充分考虑STA的类型,根据STA的类型进行带宽资源的分配,使得不同类型的STA尽量做到公平使用无线链路资源。其中,每个STA在调度周期内都会分配到一定时间t1,并在分配的时间t1内使用无线链路资源,如果将该STA的发送速率r乘以时间t1,就可以获知该STA在时间t1内以速率r发送了多少字节的数据,基于这点,可以将STA对无线链路资源的使用从时间转换为字节数(即带宽),这种转换不仅方便在流量整形阶段的计算,而且能够提高流量整形过程的效率。基于此,在本发明各实施例中,对STA来说,无线链路资源主要体现为带宽资源。而对无线链路资源使用的公平性主要体现为占用带宽资源的时长是否合理。
步骤102、AP根据上述调度信息确定第一STA在当前调度周期内的初始带宽,并根据当前调度周期内接入AP的STA的总个数对第一STA在当前调度周期内的初始带宽进行调整,获取第一STA在当前调度周期内的可用带宽。
在获取到对计算第一STA在当前调度周期内的初始带宽有影响的上一调度周期内的调度信息后,AP根据获取的上一调度周期的调度信息确定第一STA在当前调度周期内的初始带宽。具体的,如果上一调度周期内的调度信息仅包括下行发送速率,则AP根据上一调度周期内的下行发送速率确定第一STA在当前调度周期内的初始带宽;如果上一调度周期内的调度信息同时包括下行发送速率和报文总个数,则AP同时根据上一调度周期内的下行发送速率和报文总个数确定第一STA在当前调度周期内的初始带宽。
在确定第一STA在当前调度周期内的初始带宽之后,AP进一步根据当前调度周期内接入AP的STA的总个数对第一STA在当前调度周期内的初始带宽进行调整,获取第一STA在当前调度周期内的可用带宽。由于随着接入AP的STA的数量的增加会导致的空口环境的恶化等,这会影响整个WLAN的总吞吐量的变化,进而会影响每个STA占用带宽的有效性,即对体现无线链路资源使用的公平性会产生不利影响,基于此,本实施例的AP通过上述操作充分考虑当前调度周期内接入AP的STA的数量对每个STA的带宽有效性的影响,并基于该影响对每个STA的初始带宽进行调整获得考虑了接入AP的STA数量的影响这一因素的可用带宽,有利于促进无线链路资源使用的公平性。在WLAN下,实际的带宽吞吐率是不可能达到理论吞吐率的。例如如果受到环境干扰导致了丢包从而影响了实际的吞吐率。又例如,当STA数量增加时,由于他们共享同一个无线链路资源,会造成资源冲突,会加剧无线链路上的错帧率和丢包率等,因此实际吞吐率会进一步降低。由此可见,最终的实际吞吐率其实只能达到理论吞吐率的一定比例,这个比例就是本发明各实施例所说的带宽有效性。
步骤103、AP根据第一STA在当前调度周期内的可用带宽,设置第一STA对应的令牌桶在当前调度周期内的令牌数目,并使用第一STA对应的令牌桶在当前调度周期内的令牌数目,对第一STA对应的报文进行收发处理。
在确定出第一STA在当前调度周期内的可用带宽之后,AP根据第一STA在当前调度周期内的可用带宽,设置第一STA对应的令牌桶在当前调度周期内的令牌数目,然后根据该令牌数目对第一STA在当前调度周期内进行调度,即对第一STA对应的报文进行收发处理。
在本实施例中,AP为每个STA分配了一个令牌桶和一个报文缓冲队列,令牌桶中存放了令牌,令牌可以是长度的表示也可以是其他的表示。令牌桶一般会设定一个容量以及更新速度,令牌桶中的令牌以预设定的更新速度进行添加,但是令牌桶中的令牌数量不能超过其容量。在本实施例中,令牌桶会按照调度周期进行更新,即每个调度周期更新一次令牌桶中令牌的数目。报文缓冲队列一般也会设定一个上限,该报文缓冲队列用于存储从AP发送给STA的下行报文。每当有下行报文到达需要发送给STA时,AP先检查报文缓冲队列是否已经满了,如果没满,则将刚到达的下行报文加入到报文缓冲队列的尾部,如果满了则丢弃这个下行报文。然后,AP从报文缓冲队列中取出一个下行报文,再检查令牌桶中的令牌是否足够发送这个下行报文,如果不够就把报文放回报文缓冲队列的头部,如果足够就发送该下行报文,并且从令牌桶中扣除相应数量的令牌。AP通过上述过程可以实现限速等功能。
较为优选的,可以通过设置第一STA在当前调度周期内的可用带宽的单位,使得可以将第一STA在当前调度周期内的可用带宽直接设置为当前调度周期内STA对应的令牌桶中令牌的数量,用于对STA对应的报文进行收发处理。
由上述可见,在本实施例中,AP考虑STA的类型,获取与STA的类型相适应的上一调度周期内的调度信息,进而根据获取的调度信息确定STA在当前调度周期内的初始带宽,然后考虑当前调度周期内接入AP的STA的总数对带宽有效性的影响,利用当前调度周期内接入AP的STA的总数对确定出的STA在当前调度周期内的初始带宽进行调整,获取STA在当前调度周期内的可用带宽,然后基于调整后获取的可用带宽设置STA对应的令牌桶在当前调度周期内的令牌数目,根据该令牌数目对STA对应的报文进行收发处理,由于充分考了STA的类型以及当前接入AP的STA的数目等对带宽有效性的影响,使得所设置的令牌桶的令牌数更加准确,提高了WLAN的无线链路使用的公平性。
在一可选实施方式中,以第一STA的类型为HT站点(即802.11n标准的STA)或非HT站点(除802.11n标准之外的,例如802.11a、802.11b和802.11g标准的STA)为例,则AP根据第一STA的类型,获取当前调度周期的上一调度周期内的调度信息的可选实施方式包括:
如果第一STA为HT站点,AP获取当前调度周期的上一调度周期内的下行发送速率作为上述调度信息。即在该情况下,上一调度周期内的调度信息包括当前调度周期的上一调度周期内的下行发送速率;
如果第一STA为非HT站点,AP获取当前调度周期的上一调度周期内下行发送速率和报文总个数作为上述调度信息。即在该情况下,上一调度周期内的调度信息包括当前调度周期的上一调度周期内的下行发送速率和报文总个数。
基于上述,AP根据上述调度信息确定第一STA在当前调度周期内的初始带宽的可选实施方式包括:
如果第一STA为HT站点,则AP根据公式(1),确定第一STA在当前调度周期内的初始带宽;
如果第一STA为非HT站点,则AP根据公式(2),确定第一STA在当前调度周期内的初始带宽。
leftlen_og'=t×rate×α(1)
leftlen_orig'=(t-162×data_cnt)×rate-28×data_cnt(2)
其中,leftlen_orig'为第一STA在当前调度周期内的初始带宽;t为预设的在每个调度周期内分配给STA使用无线链路的理想时间,也就是说,t是个预设值,并且每个STA在每个调度周期内使用无线线路的理想时间均相同。α为表征当前调度周期内带宽有效性的系数,该α可以根据实际应用情况进行设置。rate为当前调度周期的上一调度周期内的下行发送速率。data_cnt为当前调度周期的上一调度周期内的报文总个数。
对于上述公式(2),其原理是:在最好情况下,一个non-HT站点每发送一个数据帧就对应着ACK帧,这两个帧各需要20微秒的前导码(前导码包括短训练字段、长训练字段和信令字段);AP或STA发送上述帧之前需要等待分布式协调功能(Distributed Coordination Function,简称为DCF)帧间间隔(Inter-Frame Space,简称为IFS)(即DIFS)(DIFS通常为34微秒)时长;然后进行随机回退,在不采用服务质量(Quality of Service,简称为QoS)的情况下,最小回退窗口CWmin的值是15个时隙,平均值是8个时隙,每个时隙是9微秒,所以平均的随机回退时长是72微秒;AP或STA接收数据帧之后需要等待短帧间间隔(Short IFS,简称为SIFS)时长后发送一个ACK帧,SIFS的长度是16微秒。因此,每发送一个帧需要的固定时长开销为20×2+34+8×9+16=162微秒。另外,802.11的数据帧和ACK帧都带有2个字节的服务字段,并且802.11数据帧比802.3的数据帧的头部长度多10个字节,ACK帧的长度为14字节,这些一共是28个字节,也就是说每发送一个数据帧,就需要额外传送28个字节的其他数据。因此,AP在考虑了802.11协议固定开销后会得到公式(2)的计算方法。在此说明,公式(2)中的“162×data_cnt”的单位为时间单位,例如秒,而rate的单位为速率单位,例如字节每秒,故(t-162×data_cnt)×rate的单位为字节,而28×data_cnt的单位为字节。
进一步,上述公式(1)和公式(2)仅考虑了STA类型以及STA类型对应的802.11协议固定开销对占用带宽的影响,接下来,AP进一步考虑当前调度周期内接入AP的STA的数量对STA占用带宽的影响。则AP根据当前调度周期内接入AP的STA的总个数对第一STA在当前调度周期内的初始带宽进行调整,获取第一STA在当前调度周期内的可用带宽的一种可选实施方式包括:
如果当前调度周期内接入AP的STA的总个数大于等于预设第一个数门限且小于等于预设第二个数门限,则AP根据公式(3),获取第一STA在当前调度周期内的可用带宽;
如果当前调度周期内接入AP的STA的总个数大于第二个数门限,则AP根据公式(4),获取第一STA在当前调度周期内的可用带宽。
leftlen_orig=leftlen_org'×(100%-(STA_NUM-1)×β)(3)
leftlen_orig=leftlen_orig'×λ(4)
其中,leftlen_orig为第一STA在当前调度周期内的可用带宽;STA_NUM为当前调度周期内接入AP的STA的总个数;β为表征每增加一个STA对带宽有效性的影响的系数;λ为表征当前调度周期内接入AP的STA的总个数对带宽有效性的影响的系数。其中,在接入AP的STA的总个数较少(即接入AP的STA的总个数在第一个数门限和第二个数门限之间)时,每接入一个STA对每个STA的带宽有效性的影响较明显,故考虑每接入一个STA对带宽有效性的影响。在接入AP的STA的总个数较多(即接入AP的STA的总个数大于第二个数门限)时,每接入一个STA对每个STA的带宽有效性的影响较明显,故不需要考虑每接入一个STA对带宽有效性的影响,可以直接考虑接入AP的STA的总个数对带宽有效性的影响。
上述第一个数门限和第二个数门限可以根据实际应用需求而定,例如可以设置第一个数门限为0,而设置第二个数门限为50,但不限于此,例如还可以设置第一个数文件为5,第二个数门限为70等等。
由于一个AP可能关联着多个STA,STA的数量越多,空口上发生碰撞的概率也就越大,WLAN的整体吞吐率也就越小,而本实施例通过在上述公式中引入表征接入AP的STA的总个数对第一STA在当前调度周期内占用的带宽的有效性的影响的系统,对第一STA在当前调度周期内的可用带宽施加了基于接入AP的STA总个数的惩罚值,有利于减少空口发生碰撞的概率,由于充分考虑了接入AP的STA的个数的多少对WLAN总吞吐量的变化的影响,使得所设置的令牌桶的令牌数更加准确,提高了WLAN的无线链路使用的公平性。
在此说明,上述区分STA类型的方式并不限于此,例如还可以按照支持802.11e和不支持802.11e的标准对STA进行划分,例如802.11e标准的STA划分为一类,其他标准的STA划分为另一类。再者,除了将STA划分为两类之外,还可以将STA划分为三种类型。根据划分的类型的不同,获取的上一调度周期内的调度信息可以不相同,再者根据获取的上一调度周期内的调度信息计算每个类型下的STA在当前调度周期内的初始带宽的方式也会有所不同,但根据上述公式(1)和公式(2)的原理可知,主要是根据STA所遵从的802.11协议中固定开销来计算的,所以本领域技术人员可以推知其他划分方式下计算STA在当前调度周期内的初始带宽的方法。同理,基于划分的STA的类型的不同,根据当前调度周期内接入AP的STA的总个数调整STA在当前调度周期内的初始带宽的方式也会有所不同,但核心思想是引入表征当前调度周期内接入AP的STA的个数的不同对有带宽的有效性的影响的系数,充分考虑当前调度周期内接入AP的STA的个数的不同对有带宽的有效性的影响。
其中,AP使用第一STA对应的令牌桶在当前调度周期内的令牌数目,对第一STA对应的报文进行收发处理的一种可选实施方式包括:
如果AP接收到第一STA发送的上行报文,AP判断第一STA对应的令牌桶中是否有足够用于转发该上行报文所需的令牌,如果第一STA对应的令牌桶中有足够的令牌,则扣除与上行报文长度对应个数的令牌,将上行报文转发出去,如果第一STA对应的令牌桶中没有足够的令牌,则将第一STA对应的令牌桶中令牌的数目设置为0,然后将上行报文转发出去。可选的,在令牌桶中的令牌足够时,扣除的令牌的数量与上行报文长度相同。
在本实施例中,不仅考虑由AP发送给STA的下行报文,同时还考虑由STA发送给AP的上行报文。这里对于上行报文不进行流量整形,只是扣除相应的令牌数,原因是因为在DCF模式下,AP无法对STA发送给AP的上行报文进行控制,因此当AP成功接收到一个来自STA的上行报文时,无线链路资源已经被使用掉了,此时如果丢弃这个上行报文,就间接浪费了无线链路资源,所以仅进行相应个数的令牌的扣除,以考虑上行报文对STA所占无线链路资源的影响,而不进行流量整形以提高无线链路资源的利用率。
AP使用第一STA对应的令牌桶在当前调度周期内的令牌数目,对第一STA在当前调度周期内的报文进行收发处理还包括:AP对AP发送给STA的下行报文进行流量整形处理。该实施过程包括:如果AP向第一STA发送下行报文,AP判断第一STA对应的报文缓冲队列中是否存在报文,如果第一STA对应的报文缓冲队列中存在报文,说明第一STA已经用完了第一STA对应的令牌桶中的令牌,故AP判断第一STA对应的报文缓冲队列是否已满,如果第一STA对应的报文缓冲队列已满,AP将下行报文丢弃,如果第一STA对应的报文缓冲队列未满,AP将下行报文加入第一STA对应的报文缓冲队列中(具体是加入到第一STA对应的报文缓冲队列的尾部),如果第一STA对应的报文缓冲队列中不存在报文,说明第一STA还未用完第一STA对应的令牌桶中的令牌,则AP判断第一STA对应的令牌桶中是否有足够用于发送该下行报文所需的令牌,如果第一STA对应的令牌桶中有足够的令牌,则扣除与该下行报文的长度对应个数的令牌,将该下行报文发送给第一STA,如果第一STA对应的令牌桶中没有足够的令牌,将该下行报文加入第一STA对应的报文缓冲队列中,以在下一个调度周期进行发送。可选的,在令牌桶中的令牌足够时,扣除的令牌的数量与该下行报文的长度相同。
AP使用第一STA对应的令牌桶在当前调度周期内的令牌数目,对第一STA在当前调度周期内的报文进行收发处理还包括:AP对第一STA对应的报文缓冲队列中的报文进行转发处理的过程。第一STA对应的缓冲队列中的报文是当前调度周期的上一调度周期内被缓冲下来的下行报文。该处理过程包括:AP检查第一STA对应的报文缓冲队列中是否存在报文,如果第一STA对应的报文缓冲队列中不存在报文,则检查是否所有STA对应的报文缓冲队列中都不存在报文(即对所有STA都处理过了),如果还有存在报文的报文缓冲队列,则AP继续对还存在报文的报文缓冲队列中的报文进行转发处理,如果所有STA对应的报文缓冲队列中都不存在报文,则结束缓冲报文处理操作;如果第一STA对应的报文缓冲队列中存在报文,则从该第一STA对应的报文缓冲队列的头部取出一个下行报文,检查第一STA对应的令牌桶中的令牌是否足够发送这个下行报文的令牌,如果有足够的令牌则发送这个下行报文并且从令牌桶中扣除相应个数的令牌,可选的,在令牌桶中的令牌足够时,扣除的令牌个数与被发送的下行报文的长度相同;如果没有足够的令牌则将下行报文重新放回第一STA对应的报文缓冲队列的头部,并去检查是否所有STA对应的报文缓冲队列中都不存在报文(即对所有STA都处理过了),如果还有存在报文的报文缓冲队列,则AP继续对还存在报文的报文缓冲队列中的报文进行转发处理,如果所有STA对应的报文缓冲队列中都不存在报文,则结束缓冲报文处理操作。
在此说明,上述AP处理接收到STA发送的上行报文的过程,AP处理发送给STA的下行报文的过程,以及AP处理上一调度周期缓冲的下行报文的过程可以同时存在,也可以仅存在其中一个或任意两个的组合。对于同时存在上述三个过程中的两个或三个的情况,所存在的情况之间没有严格的先后顺序,视实际应用情况而定。较为优选的,如果需要处理上一调度周期缓冲的下行报文,则该过程可以为优先处理过程。
由上述可见,在本实施方式中,AP通过考虑STA发送给AP的上行报文对无线链路资源的占用,与现有技术中仅考虑AP向STA发送下行报文的下行方向对无线链路资源的占用的方法相比,有利于提高各STA占用无线链路资源的公平性;另外,AP通过充分采用流量整形的方式向STA发送下行报文,能够使STA的流更平稳。
其中,AP根据第一STA在当前调度周期内的可用带宽,设置第一STA对应的令牌桶在当前调度周期内的令牌数目的实施方式除了直接将第一STA在当前调度周期内的可用带宽设置为第一STA对应的令牌桶在当前调度周期内的令牌数目之外,还可以以下可选实施方式,如图2所示,该实施方式包括:
步骤201、AP根据第一STA在当前调度周期之前至少一个调度周期内的状态,预测第一STA在当前调度周期内的实际所需带宽,该第一STA在每个调度周期内的状态为空闲状态、半忙碌状态或忙碌状态;
步骤202、AP根据第一STA在当前调度周期内的实际所需带宽和第一STA在当前调度周期内的可用带宽,确定第一STA在当前调度周期内的最终带宽;
步骤203、AP根据第一STA在当前调度周期内的最终带宽,设置第一STA对应的令牌桶在当前调度周期内的令牌数目。
在此说明,步骤201和步骤202实际上是根据第一STA在当前调度周期之前至少一个调度周期内的状态,对第一STA在当前调度周期内进行流量预测。流量预测是对每个STA在当前调度周期内实际需要使用的带宽进行预测。之所以要使用流量预测,是因为在时间公平的原则下,在每个调度周期内,每个STA都被预先分配了固定的时长,但是并非每个STA都需要实际占用这么长时间的无线链路,如果不进行流量预测并预先调整好每个STA实际所需的带宽,那么就会造成空口无线链路资源的浪费。
在本实施方式中,AP为每个STA设定了一个状态机,流量预测的过程本质就是这一状态机的状态迁移的过程,流量预测最终会为每个STA输出一个预测值,表示该STA在当前调度周期内的实际所需带宽。在本实施例中,假设该状态机包括三个状态,空闲(free)状态、半忙碌(half-busy)状态和忙碌(busy)状态,但不限于此。无论该状态机包括几个状态,其转换原理可以基于本实施方式提供的包括三个状态的状态机来实现。在包括三个状态的状态机中,预先为空闲状态和忙碌状态设置了一个带宽值,例如空闲状态对应的为第一带宽,半忙碌状态对应的为第二带宽,第一带宽和第二带宽为预设的常数值,为在相应状态时分配给STA的带宽。其中,第二带宽大于第一带宽。
在本实施例中,上述空闲状态、半忙碌状态和忙碌状态主要根据第一STA在各调度周期内使用的带宽以及第一STA的报文缓冲队列中是否存在报文等信息进行判断。基于此,在初始(即第一STA在第一个调度周期开始)时,第一STA是处于空闲状态、半忙碌状态还是忙碌状态可以根据第一STA当前使用的带宽以及第一STA的报文缓冲队列中是否存在报文来确定。例如,如果第一STA在第一个调度周期开始时使用的带宽小于空闲状态对应的第一带宽,且其报文缓冲队列中没有报文,则可以确定第一STA在第一个调度周期内的状态为空闲状态;如果第一STA在第一个调度周期开始时使用的带宽小于空闲状态对应的第一带宽,但其报文缓冲队列中有报文,可以确定第一STA在第一个调度周期内的状态为半忙碌状态;如果第一STA在第一个调度周期开始时使用的带宽大于空闲状态对应的第一带宽,且其报文缓冲队列中有报文,可以确定第一STA在第一个调度周期内的状态为忙碌状态。上述仅为确定初始状态的一种实施方式,并不限于此。初始状态的确定对整个状态机的影响并不是很大,所以可以采用各种方式,例如可以直接确定第一STA在第一个调度周期内的状态为空闲状态,或者直接确定第一STA在第一个调度周期内的状态为半忙碌状态,还可以直接确定第一STA在第一个调度周期内的状态为忙碌状态等等。
基于上述包括三个状态的状态机,步骤201的一种可选实施方式包括:
当第一STA在当前调度周期的上一调度周期内的状态为空闲状态时,如果第一STA在当前调度周期的上一调度周期内用完了空闲状态对应的第一带宽,且在当前调度周期内第一STA对应的报文缓冲队列中存在报文,则AP确定第一STA在当前调度周期内的状态为半忙碌状态,并设置第一STA在当前调度周期内的实际所需带宽为半忙碌状态对应的第二带宽;
当第一STA在当前调度周期的上一调度周期内的状态为空闲状态时,如果第一STA在当前调度周期的上一调度周期内未用完空闲状态对应的第一带宽,或者如果在当前调度周期内第一STA对应的报文缓冲队列中不存在报文,则AP确定第一STA在当前调度周期内的状态为空闲状态,并设置第一STA在当前调度周期内的实际所需带宽为空闲状态对应的第一带宽。
基于上述包括三个状态的状态机,步骤201的另一种可选实施方式包括:
当第一STA在当前调度周期的上一调度周期内的状态为半忙碌状态时,如果第一STA已经在连续第一个数的调度周期内为半忙碌状态,且在每个处于半忙碌状态的调度周期内均未用完空闲状态对应的第一带宽,则AP确定第一STA在当前调度周期内的状态为空闲状态,并设置第一STA在当前调度周期内的实际所需带宽为空闲状态对应的第一带宽;在该过程中,给出了第一STA从半忙碌状态转换为空闲状态的条件。在该过程中,第一个数可以是预先设定的,即要求第一STA在连续几个调度周期内都为半忙碌状态,具体是在连续几个调度周期内均为半忙碌状态不做限定,可以根据实际应用需求稳定。
当第一STA在当前调度周期的上一调度周期内的状态为半忙碌状态时,如果第一STA在当前调度周期的上一调度周期内用完了半忙碌状态对应的第二带宽,且在当前调度周期内第一STA对应的报文缓冲队列中存在报文,则AP确定第一STA在当前调度周期内的状态为忙碌状态,并设置第一STA在当前调度周期内的实际所需带宽为第一STA在当前调度周期内的可用带宽;在该过程中,给出了第一STA从半忙碌状态转换为忙碌状态的条件。
当第一STA在当前调度周期的上一调度周期内的状态为半忙碌状态时,如果第一STA未在当前调度周期的上一调度周期内用完半忙碌状态对应的第二带宽,或者如果第一STA未在连续第一个数的调度周期内均为半忙碌状态,或者如果第一STA在连续的第一个数据的调度周期内均为半忙碌状态,但在每个处于半忙碌状态的调度周期内均用完了空闲状态对应的第一带宽,则AP确定第一STA在当前调度周期内的状态为半忙碌状态,并设置第一STA在当前调度周期内的实际所需带宽为半忙碌状态对应的第二带宽。在该过程中,给出了第一STA保持半忙碌状态不变的条件,也就是同时不满足转换为空闲和忙碌状态的条件。
基于上述包括三个状态的状态机,步骤201的又一种可选实施方式包括:
当第一STA在当前调度周期的上一调度周期内的状态为忙碌状态时,如果第一STA已经在连续第二个数的调度周期内为忙碌状态,且在每个处于忙碌状态的调度周期内均未用完半忙碌状态对应的第二带宽,则AP确定第一STA在当前调度周期内的状态为半忙碌状态,并设置第一STA在当前调度周期内的实际所需带宽为半忙碌状态对应的第二带宽,并设置所存储的第三个数的调度周期内记录的数据长度均为半忙碌状态对应的第二带宽。在该过程中,给出了第一STA从忙碌状态转换为半忙碌状态的条件。
在上述过程中,第二个数可以是预先设定的,即要求第一STA在连续几个调度周期内都为忙碌状态,具体是在连续几个调度周期内均为忙碌状态不做限定,可以根据实际应用需求确定另外,在本实施方式中,AP会存储连续几个数据长度,这些数据长度是在调度周期内记录的,数据长度是对应调度周期内由AP发送给STA的所有下行报文的长度之和。这里所存储的数据长度的个数越多,对于预测第一STA在当前调度周期内的实际所需带宽越有利,具体存储几个数据长度可以根据实际应用需求而定,对此不做限定,即第三个数的值可以根据实际应用需求适应性设置,在此说明一下,这里的第三个数是对数据长度的个数进行限定的,而不是对调度周期进行的个数限定。
一种较为优选的实施方式为:AP存储距离当前调度周期最近的几个数据长度,例如可以是距离当前调度周期最近的连续8个数据长度,但不限于此。其中,这8个距离当前调度周期最近的数据长度对应8个调度周期,但是所对应的这8个调度周期不一定是距离当前调度周期最近的8个调度周期,原因是可能存在某些调度周期不进行数据长度的记录。可选的,这8个数据长度可以使用8个元素的数组进行存储。
当第一STA在当前调度周期的上一调度周期内的状态为忙碌状态时,如果第一STA在当前调度周期的上一调度周期内用完了半忙碌状态对应的第二带宽,则AP用当前调度周期的上一调度周期内的数据长度替换所存储的第三个数的调度周期内记录的数据长度中最早一个数据长度,并设置第一STA在当前调度周期内的实际所需带宽为所存储的第三个数的调度周期内记录的数据长度的平均值,如果第一STA在当前调度周期的上一调度周期内未用完半忙碌状态对应的第二带宽,且第一STA连续处于忙碌状态的调度周期的个数未达到所述第二个数,则AP直接设置第一STA在当前调度周期内的实际所需带宽为所存储的第三个数的调度周期内记录的数据长度的平均值。在该过程中,给出了第一STA保持忙碌状态的条件,该条件可以是第一STA在当前调度周期的上一调度周期内用完了半忙碌状态对应的第二带宽,或者第一STA在当前调度周期的上一调度周期内未用完半忙碌状态对应的第二带宽,但第一STA连续处于忙碌状态的调度周期的个数未达到所述第二个数。
在此说明,上述步骤201的三种实施方式结合起来全面介绍了本实施例提供的状态机中各状态之间的相互转换过程,具体如图3所示。但是,上述实施方式给出的各状态之间相互转换的条件仅为一种实施方式,并不限于此,本领域技术人员根据上述实施方式,可以结合实际应用需求轻易得出其他的转换条件。
基于上述实施方式,步骤202的一种可选实施方式如图4所示,包括:
步骤2021、AP判断第一STA在当前调度周期内的可用带宽是否大于第一STA在当前调度周期内的实际所需带宽与预设的预留带宽最小值的和,如果判断结果为是,即第一STA在当前调度周期内的可用带宽大于第一STA在当前调度周期内的实际所需带宽与预设的预留带宽最小值的和,则执行步骤2022;如果判断结果为否,即第一STA在当前调度周期内的可用带宽小于或等于第一STA在当前调度周期内的实际所需带宽与预设预留带宽最小值的和,则执行步骤2023。
其中,预留带宽最小值是预先设定的,其中为每个STA都预留了最小带宽。
步骤2022,AP设置第一STA在当前调度周期内的未使用带宽为第一STA在当前调度周期内的可用带宽与第一STA在当前调度周期内的实际所需带宽的差,并设置第一STA在当前调度周期内的临时带宽为第一STA在当前调度周期内的实际所需带宽与预设的预留带宽最小值的和,并继续执行步骤2024。
步骤2023、AP设置第一STA在当前调度周期内的未使用带宽为0,并设置第一STA在当前调度周期内的临时带宽为第一STA在当前调度周期内的可用带宽,并继续执行步骤2024。
步骤2024、AP根据公式(5),确定第一STA在当前调度周期内的空闲时长,并继续执行步骤2025。
步骤2025、AP根据公式(6),确定平均空闲时长。
步骤2026,AP判断平均空闲时长是否大于0,如果判断结果为是,即平均空闲时长大于0,则执行步骤2027;如果判断结果为否,即平均空闲时长小于或等于0,则执行步骤2028。
步骤2027、AP设置第一STA在当前调度周期内的最终带宽为第一STA在当前调度周期内的临时带宽。
步骤2028、AP根据公式(7),设置第一STA在当前调度周期内的最终带宽。
其中,share_time为第一STA在当前调度周期内的空闲时长;unused_len为第一STA在当前调度周期内的未使用带宽;leftlen_orig为第一STA在当前调度周期内的可用带宽;t为预设在每个调度周期内分配给STA使用无线链路的理想时间;share_time_unit为平均空闲时长;STA_NUM为当前调度周期内接入AP的STA的总个数;SHARE_STA_NUM为当前调度周期内接入AP的STA中在当前调度周期内的空闲时长大于0的STA的个数;share_time_sum为所有当前调度周期内大于0的空闲时长的和;leftlen为第一STA在当前调度周期内的最终带宽;leftlen′为第一STA在当前调度周期内的临时带宽。
由上述可见,本实施方式通过计算出每个STA的空闲时长,当空闲时长大于0时,这个STA的空闲时长可以共享给其他的STA使用,于是计算所有大于0的空闲时长的和,进而获取平均空闲时长,然后根据平均空闲时长重新分配每个STA占用带宽资源,由于在该重新分配过程中考虑了各个空闲时长大于0的STA的空闲时长,避免了无线链路资源的浪费,在提高无线链路使用公平性的基础上提高了无线链路资源的利用率。
基于上述各实施例和实施方式,一种较为优选的调度方法如图5所示,该方法包括:
步骤501、AP根据第一STA的类型,获取当前调度周期的上一调度周期内的调度信息,所述调度信息包括下行发送速率,或者所述调度信息包括所述下行发送速率和报文总个数。
步骤502、AP根据所述调度信息确定所述第一STA在当前调度周期内的初始带宽。
步骤503、AP根据当前调度周期内接入所述AP的STA的总个数对所述第一STA在当前调度周期内的初始带宽进行调整,获取所述第一STA在当前调度周期内的可用带宽。
步骤504、AP根据所述第一STA在当前调度周期之前至少一个调度周期内的状态,预测所述第一STA在当前调度周期内的实际所需带宽。
步骤505、AP根据所述第一STA在当前调度周期内的实际所需带宽和所述第一STA在当前调度周期内的可用带宽,确定所述第一STA在当前调度周期内的最终带宽。
步骤506、AP根据所述第一STA在当前调度周期内的最终带宽,设置所述第一STA对应的令牌桶在当前调度周期内的令牌数目。
步骤507、AP根据第一STA对应的令牌桶在当前调度周期内的令牌数目,对接收到的第一STA发送的上行报文和AP发送给第一STA的下行报文进行转发处理。
上述各步骤的详细描述可参见前述实施例或实施方式的描述,在此不再赘述。
在本实施例提供的调度方法中,不需要对STA作出任何更改,AP通过区分STA的类型充分考了不同类型的STA的传输能力,使得令牌桶的令牌数计算更准确,通过考虑接入AP的STA的总个数对WLAN总吞吐量的变化的影响,引入影响带宽有效性的系数,使得令牌桶的令牌数计算更准确,极大地提高了各STA使用无线链路资源的公平性,进一步采用流量预测和带宽调整的方法,避免无线链路资源的浪费,对下行报文采用流量整形的方式进行处理,使得STA的流量更加平稳。
在应用本发明上述实施例的过程中,会涉及到上述过程中的一些参数的设定,下面举一组较优的参数作为例子来说明,但不限于此。
假设本举例中接入AP的STA的总个数是5个,则STA NUM=5;t=2000us:表示每个STA在每个调度周期内占用无线链路的时长均为2000微秒,则调度周期T为10000微秒,即10毫秒。
计算STA在当前调度周期内的可用带宽过程中的三个系数可以为:α=0.7,β=0.012,λ=0.2
状态机转换过程中,空闲状态对应的第一带宽leftlen_min=128字节:即判定STA为free状态的阈值是128字节的流量。半忙碌状态对应的第二带宽leftlen_halfbusy=1500字节:即判定STA为half-busy状态的阈值是1500字节的流量。第一个数thrd1=10:即STA从half-busy状态转换到free状态的周期阈值是10个调度周期。第二个数thrd2=50:STA从busy状态转换到half-busy状态的周期阈值是50个调度周期。
进行带宽调整过程中的预留带宽最小值CONST_BYTES=128:即STA的预留带宽最小值为128字节,一般来说这个值要和leftlen_min的值一样。
在上述参数的设定下,本发明各实施例的AP的一个调度周期为10毫秒。STA从free状态迁移到half-busy状态需要在上一调度周期内有超过128字节的流量,即used_bytes>128,而从half-busy状态迁移到free状态,至少需要经过10个调度周期。STA从half-busy状态迁移到busy状态需要在上一调度周期内有超过1500字节的流量,即used_bytes>1500,而从busy状态迁移到half-busy状态,至少需要50个调度周期。
另一个参数rate是一个实时变化的参数,AP可以采取定时采样的方式获取最近的实时值来使用,获取到的rate值代入初始带宽计算过程的公式即可,例如一个802.11n的STA的采样速率为65Mbps,那么代入公式(1)计算得:leftlen_orig'=(65/8)×2000×0.7=11375。各实施例中的其他步骤的计算只需要将相应的值代入相应公式中即可,不再赘述。
以上各实施例仅为本发明的可选实施例,本发明的保护范围并不限于上述实施例。例如,现在的WLAN部署,都会让一个AP服务多个WLAN,在这种情况下,可能会要求设定所有WLAN之间占用无线链路的时间比。例如,AP为wlan1和wlan2服务,要求wlan1和wlan2占用无线链路的时间比为1:2。本发明上述各实施例可以利用相同原理进行扩展,先按照时间比例划分WLAN占用无线链路的时长,再把每个WLAN占用时长按照本发明上述实施例提供的方法分配给本WLAN内的STA。基于同样的原理,通过对本发明各实施例进行扩展也可以为STA之间设定时长比例,让某些STA占用更大的带宽。
图6为本发明一实施例提供的调度装置的结构示意图。本实施例的调度装置可以设置在AP中实现,但不限于此。例如,本实施例的调度装置还可以独立于AP,但与AP连接。如图6所示,本实施例的装置包括:信息获取模块61、带宽获取模块62、令牌设置模块63和调度处理模块64。
其中,信息获取模块61,用于根据第一STA的类型,获取当前调度周期的上一调度周期内的调度信息,该调度信息包括下行发送速率,或者该调度信息包括下行发送速率和报文总个数,所述下行发送速率是AP向第一STA发送下行报文的速率,报文总个数为AP发送给第一STA的下行报文的个数和第一STA发送给AP的上行报文的个数之和。
带宽获取模块62,与信息获取模块61连接,用于根据信息获取模块61获取的调度信息确定第一STA在当前调度周期内的初始带宽,并根据当前调度周期内接入AP的STA的总个数对第一STA在当前调度周期内的初始带宽进行调整,获取第一STA在当前调度周期内的可用带宽。
令牌设置模块63,与带宽获取模块62连接,用于根据带宽获取模块62获取的第一STA在当前调度周期内的可用带宽,设置第一STA对应的令牌桶在当前调度周期内的令牌数目。
调度处理模块64,与令牌设置模块63连接,用于使用令牌设置模块63设置的第一STA对应的令牌桶在当前调度周期内的令牌数目,对第一STA对应的报文进行收发处理。
在本实施例的一可选实施方式中,可以根据是否支持802.11n标准将STA划分为HT站点和非HT站点。则信息获取模块61具体可用于在第一STA为HT站点时,获取当前调度周期的上一调度周期内的下行发送速率作为上述调度信息,或者在第一STA为非HT站点时,获取当前调度周期的上一调度周期内下行发送速率和报文总个数作为上述调度信息。
基于上述,带宽获取模块62的一种实现结构如图7所示,包括:第一带宽获取子模块621和第二带宽获取子模块622。
第一带宽获取子模块621,与信息获取模块61连接,用于在第一STA为HT站点时,根据公式(1)确定第一STA在当前调度周期内的初始带宽,或者在第一STA为非HT站点,根据公式(2)确定第一STA在当前调度周期内的初始带宽。关于公式(1)和公式(2)可参见上述方法实施例的描述,在此不再赘述。
第二带宽获取子模块622,与第一带宽获取子模块621连接,用于根据当前调度周期内接入AP的STA的总个数对第一带宽获取子模块621确定出的第一STA在当前调度周期内的初始带宽进行调整,获取第一STA在当前调度周期内的可用带宽。第二带宽获取子模块622还与令牌设置模块63连接,用于向令牌设置模块63提供第一STA在当前调度周期内的可用带宽。
可选的,第二带宽获取子模块622具体可用于在当前调度周期内接入AP的STA的总个数大于等于预设第一个数门限且小于等于预设第二个数门限时,根据公式(3)获取第一STA在当前调度周期内的可用带宽,或者在当前调度周期内接入AP的STA的总个数大于第二个数门限时,根据公式(4)获取第一STA在当前调度周期内的可用带宽。关于公式(3)和公式(4)可参见上述方法实施例的描述,在此不再赘述。
基于上述各实施方式,调度处理模块64具体可用于在AP接收到第一STA发送的上行报文时,判断第一STA对应的令牌桶中是否有足够用于转发该上行报文所需的令牌,如果第一STA对应的令牌桶中有足够的令牌,则扣除与该上行报文长度对应个数的令牌,将该上行报文转发出去,如果该第一STA对应的令牌桶中没有足够的令牌,则将该第一STA对应的令牌桶中令牌的数目设置为0,然后将该上行报文转发出去。
调度处理模块64具体还可以用于在AP向第一STA发送下行报文时,判断第一STA对应的报文缓冲队列中是否存在报文,如果第一STA对应的报文缓冲队列中存在报文,判断第一STA对应的报文缓冲队列是否已满,如果第一STA对应的报文缓冲队列已满,将该下行报文丢弃,如果第一STA对应的报文缓冲队列未满,将该下行报文加入第一STA对应的报文缓冲队列中,如果该第一STA对应的报文缓冲队列中不存在报文,判断第一STA对应的令牌桶中是否有足够用于发送该下行报文所需的令牌,如果该第一STA对应的令牌桶中有足够的令牌,则扣除与该下行报文的长度对应个数的令牌,将该下行报文发送给第一STA,如果第一STA对应的令牌桶中没有足够的令牌,将该下行报文加入第一STA对应的报文缓冲队列中,以在下一个调度周期进行发送。
基于上述各实施方式,本实施例的令牌配置模块63的一种实现结构如图7所示,包括:预测子模块631、确定子模块632和设置子模块633。
预测子模块631,用于根据第一STA在当前调度周期之前至少一个调度周期内的状态,预测第一STA在当前调度周期内的实际所需带宽,其中,第一STA在每个调度周期内的状态为空闲状态、半忙碌状态或忙碌状态。
确定子模块632,与第二带宽获取子模块622和预测子模块631连接,用于根据预测子模块631预测的第一STA在当前调度周期内的实际所需带宽和第二带宽获取子模块622获取的第一STA在当前调度周期内的可用带宽,确定第一STA在当前调度周期内的最终带宽。
设置子模块633,与确定子模块632连接,用于根据确定子模块632确定的第一STA在当前调度周期内的最终带宽,设置第一STA对应的令牌桶在当前调度周期内的令牌数目。
在第一STA在当前调度周期的上一调度周期内的状态为所述空闲状态的条件下:
预测子模块631具体可用于在第一STA在当前调度周期的上一调度周期内用完了空闲状态对应的第一带宽,且在当前调度周期内第一STA对应的报文缓冲队列中存在报文时,确定第一STA在当前调度周期内的状态为半忙碌状态,并设置第一STA在当前调度周期内的实际所需带宽为半忙碌状态对应的第二带宽,其中,所述半忙碌状态对应的第二带宽大于所述空闲状态对应的第一带宽。或者
预测子模块631具体可用于在第一STA在当前调度周期的上一调度周期内未用完空闲状态对应的第一带宽时,或者在当前调度周期内第一STA对应的报文缓冲队列中不存在报文时,确定第一STA在当前调度周期内的状态为空闲状态,并设置第一STA在当前调度周期内的实际所需带宽为空闲状态对应的第一带宽。
在第一STA在当前调度周期的上一调度周期内的状态为半忙碌状态的条件下:
预测子模块631具体可用于在第一STA已经在连续第一个数的调度周期内为半忙碌状态,且在每个处于半忙碌状态的调度周期内均未用完空闲状态对应的第一带宽时,确定第一STA在当前调度周期内的状态为空闲状态,并设置第一STA在当前调度周期内的实际所需带宽为空闲状态对应的第一带宽。或者
预测子模块631具体可用于在第一STA在当前调度周期的上一调度周期内用完了半忙碌状态对应的第二带宽,且在当前调度周期内第一STA对应的报文缓冲队列中存在报文时,确定第一STA在当前调度周期内的状态为忙碌状态,并设置第一STA在当前调度周期内的实际所需带宽为第一STA在当前调度周期内的可用带宽,其中,半忙碌状态对应的第二带宽大于空闲状态对应的第一带宽。或者
预测子模块631具体可用于在第一STA未在当前调度周期的上一调度周期内用完半忙碌状态对应的第二带宽时,或者在第一STA未在连续第一个数的调度周期内均为半忙碌状态时,或者在第一STA在连续的第一个数的调度周期内均为半忙碌状态,但在每个处于半忙碌状态的调度周期内均用完空闲状态对应的第一带宽时,确定第一STA在当前调度周期内的状态为半忙碌状态,并设置第一STA在当前调度周期内的实际所需带宽为半忙碌状态对应的第二带宽。
在第一STA在当前调度周期的上一调度周期内的状态为忙碌状态的条件下:
预测子模块631具体可用于在第一STA已经在连续第二个数的调度周期内为忙碌状态,且在每个处于忙碌状态的调度周期内均未用完半忙碌状态对应的第二带宽时,确定第一STA在当前调度周期内的状态为半忙碌状态,并设置第一STA在当前调度周期内的实际所需带宽为半忙碌状态对应的第二带宽,并设置所存储的第三个数的调度周期内记录的数据长度均为半忙碌状态对应的第二带宽。或者
预测子模块631具体可用于在第一STA在当前调度周期的上一调度周期内用完了半忙碌状态对应的第二带宽时,用当前调度周期的上一调度周期内的数据长度替换所存储的第三个数的调度周期内记录的数据长度中最早一个数据长度,并设置第一STA在当前调度周期内的实际所需带宽为所存储的第三个数的调度周期内记录的数据长度的平均值,或者用于在第一STA在当前调度周期的上一调度周期内未用完半忙碌状态对应的第二带宽时,直接设置第一STA在当前调度周期内的实际所需带宽为所存储的第三个数的调度周期内记录的数据长度的平均值。
基于上述,确定子模块632的一种实现结构可以包括:设置单元、计算单元和确定单元。
设置单元,与第二带宽获取子模块622和预测子模块631连接,用于在第一STA在当前调度周期内的可用带宽大于第一STA在当前调度周期内的实际所需带宽与预设的预留带宽最小值的和时,设置第一STA在当前调度周期内的未使用带宽为第一STA在当前调度周期内的可用带宽与第一STA在当前调度周期内的实际所需带宽的差,并设置第一STA在当前调度周期内的临时带宽为第一STA在当前调度周期内的实际所需带宽与预设的预留带宽最小值的和,或者在第一STA在当前调度周期内的可用带宽小于或等于第一STA在当前调度周期内的实际所需带宽与预设预留带宽最小值的和时,设置第一STA在当前调度周期内的未使用带宽为0,并设置第一STA在当前调度周期内的临时带宽为第一STA在当前调度周期内的可用带宽。可选的,设置单元可以将第一STA在当前调度周期内的可用带宽与第一STA在当前调度周期内的实际所需带宽与预设的预留带宽最小值的和进行比较,以确定两者之间的大小关系。
计算单元,与设置单元连接,用于根据公式(5)确定第一STA在当前调度周期内的空闲时长,并根据公式(6)确定平均空闲时长。
确定单元,与计算单元连接,用于在计算单元计算出的平均空闲时长大于0时,设置第一STA在当前调度周期内的最终带宽为第一STA在当前调度周期内的临时带宽,或者在计算单元计算出的平均空闲时长等于0,根据公式(7)设置第一STA在当前调度周期内的最终带宽。
关于公式(5)、公式(6)和公式(7)可参见上述方法实施例的描述,在此不再赘述。
本实施例提供的调度装置的各功能模块、子模块或单元可用于执行上述方法实施例提供的调度方法的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的调度装置,考虑STA的类型,获取与STA的类型相适应的上一调度周期内的调度信息,进而根据获取的调度信息确定STA在当前调度周期内的初始带宽,然后考虑当前调度周期内接入AP的STA的总数对带宽有效性的影响,利用当前调度周期内接入AP的STA的总数对确定出的STA在当前调度周期内的初始带宽进行调整,获取STA在当前调度周期内的可用带宽,然后基于调整后获取的可用带宽设置STA对应的令牌桶在当前调度周期内的令牌数目,根据该令牌数目对STA对应的报文进行收发处理,由于充分考了STA的类型以及当前接入AP的STA的数目等对带宽有效性的影响,使得所设置的令牌桶的令牌数更加准确,提高了WLAN的无线链路使用的公平性。
本发明一实施例提供一种网络设备,包括调度装置。该调度装置可以是本发明上述实施例提供的调度装置,其工作原理和实现结构可参见上述相应实施例的描述,在此不再赘述。
本实施例的网络设备可以是WLAN中具有调度功能的设备,例如AP,但不限于AP。
本实施例的网络设备包括上述实施例提供的调度装置,同样可用于执行本发明实施例提供的调度方法,同样由于充分考了STA的类型以及当前接入AP的STA的数目等对带宽有效性的影响,使得所设置的令牌桶的令牌数更加准确,提高了WLAN的无线链路使用的公平性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (13)
1.一种调度方法,其特征在于,包括:
无线接入点AP根据第一站点STA的类型,获取当前调度周期的上一调度周期内的调度信息,所述调度信息包括下行发送速率,或者所述调度信息包括所述下行发送速率和报文总个数,所述下行发送速率是所述AP向所述第一STA发送下行报文的速率,所述报文总个数为所述AP发送给所述第一STA的下行报文的个数和所述第一STA发送给所述AP的上行报文的个数之和;
所述AP根据所述调度信息确定所述第一STA在当前调度周期内的初始带宽,并根据当前调度周期内接入所述AP的STA的总个数对所述第一STA在当前调度周期内的初始带宽进行调整,获取所述第一STA在当前调度周期内的可用带宽;
所述AP根据所述第一STA在当前调度周期内的可用带宽,设置所述第一STA对应的令牌桶在当前调度周期内的令牌数目,并使用所述第一STA对应的令牌桶在当前调度周期内的令牌数目,对所述第一STA对应的报文进行收发处理;
所述AP根据第一STA的类型,获取当前调度周期的上一调度周期内的调度信息包括:
如果所述第一STA为高吞吐HT站点,所述AP获取当前调度周期的上一调度周期内的下行发送速率作为所述调度信息;
如果所述第一STA为非HT站点,所述AP获取当前调度周期的上一调度周期内下行发送速率和报文总个数作为所述调度信息;
所述AP根据所述调度信息确定所述第一STA在当前调度周期内的初始带宽包括:
如果所述第一STA为HT站点,所述AP根据公式leftlen_orig'=t×rate×α,确定所述第一STA在当前调度周期内的初始带宽;
如果所述第一STA为非HT站点,所述AP根据公式leftlen_orig'=(t-162×data_cnt)×rate-28×data_cnt,确定所述第一STA在当前调度周期内的初始带宽;
其中,leftlen_orig'为所述第一STA在当前调度周期内的初始带宽;
t为预设的在每个调度周期内分配给STA使用无线链路的理想时间;
α为表征当前调度周期内带宽有效性的系数;
rate为当前调度周期的上一调度周期内的下行发送速率;
data_cnt为当前调度周期的上一调度周期内的报文总个数;
所述AP根据当前调度周期内接入所述AP的STA的总个数对所述第一STA在当前调度周期内的初始带宽进行调整,获取所述第一STA在当前调度周期内的可用带宽包括:
如果当前调度周期内接入所述AP的STA的总个数大于等于预设第一个数门限且小于等于预设第二个数门限,所述AP根据公式leftlen_orig=leftlen_orig'×(100%-(STA_NUM-1)×β),获取所述第一STA在当前调度周期内的可用带宽;
如果当前调度周期内接入所述AP的STA的总个数大于所述第二个数门限,所述AP根据公式leftlen_orig=leftlen_orig'×λ,获取所述第一STA在当前调度周期内的可用带宽;
其中,leftlen_orig为所述第一STA在当前调度周期内的可用带宽;
STA_NUM为当前调度周期内接入所述AP的STA的总个数;
β为表征每增加一个STA对带宽有效性的影响的系数;
λ为表征当前调度周期内接入所述AP的STA的总个数对带宽有效性的影响的系数。
2.根据权利要求1所述的调度方法,其特征在于,所述AP使用所述第一STA对应的令牌桶在当前调度周期内的令牌数目,对所述第一STA对应的报文进行收发处理包括:
如果所述AP接收到所述第一STA发送的上行报文,所述AP判断所述第一STA对应的令牌桶中是否有足够用于转发所述上行报文所需的令牌,如果所述第一STA对应的令牌桶中有足够的令牌,则扣除与所述上行报文长度对应个数的令牌,将所述上行报文转发出去,如果所述第一STA对应的令牌桶中没有足够的令牌,则将所述第一STA对应的令牌桶中令牌的数目设置为0,然后将所述上行报文转发出去。
3.根据权利要求1所述的调度方法,其特征在于,所述AP使用所述第一STA对应的令牌桶在当前调度周期内的令牌数目,对所述第一STA在当前调度周期内的报文进行收发处理包括:
如果所述AP向所述第一STA发送下行报文,所述AP判断所述第一STA对应的报文缓冲队列中是否存在报文,如果所述第一STA对应的报文缓冲队列中存在报文,所述AP判断所述第一STA对应的报文缓冲队列是否已满,如果所述第一STA对应的报文缓冲队列已满,所述AP将所述下行报文丢弃,如果所述第一STA对应的报文缓冲队列未满,所述AP将所述下行报文加入所述第一STA对应的报文缓冲队列中,如果所述第一STA对应的报文缓冲队列中不存在报文,所述AP判断所述第一STA对应的令牌桶中是否有足够用于发送所述下行报文所需的令牌,如果所述第一STA对应的令牌桶中有足够的令牌,则扣除与所述下行报文的长度对应个数的令牌,将所述下行报文发送给所述第一STA,如果所述第一STA对应的令牌桶中没有足够的令牌,将所述下行报文加入所述第一STA对应的报文缓冲队列中,以在下一个调度周期进行发送。
4.根据权利要求1所述的调度方法,其特征在于,所述AP根据所述第一STA在当前调度周期内的可用带宽,设置所述第一STA对应的令牌桶在当前调度周期内的令牌数目包括:
所述AP根据所述第一STA在当前调度周期之前至少一个调度周期内的状态,预测所述第一STA在当前调度周期内的实际所需带宽,所述第一STA在每个调度周期内的状态为空闲状态、半忙碌状态或忙碌状态;
所述AP根据所述第一STA在当前调度周期内的实际所需带宽和所述第一STA在当前调度周期内的可用带宽,确定所述第一STA在当前调度周期内的最终带宽;
所述AP根据所述第一STA在当前调度周期内的最终带宽,设置所述第一STA对应的令牌桶在当前调度周期内的令牌数目。
5.根据权利要求4所述的调度方法,其特征在于,
当所述第一STA在当前调度周期的上一调度周期内的状态为所述空闲状态时,所述AP根据所述第一STA在当前调度周期之前至少一个调度周期内的状态,预测所述第一STA在当前调度周期内的实际所需带宽包括:
如果所述第一STA在当前调度周期的上一调度周期内用完了所述空闲状态对应的第一带宽,且在当前调度周期内所述第一STA对应的报文缓冲队列中存在报文,所述AP确定所述第一STA在当前调度周期内的状态为所述半忙碌状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述半忙碌状态对应的第二带宽;其中,所述半忙碌状态对应的第二带宽大于所述空闲状态对应的第一带宽;
如果所述第一STA在当前调度周期的上一调度周期内未用完所述空闲状态对应的第一带宽,或者如果在当前调度周期内所述第一STA对应的报文缓冲队列中不存在报文,所述AP确定所述第一STA在当前调度周期内的状态为所述空闲状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述空闲状态对应的第一带宽;当所述第一STA在当前调度周期的上一调度周期内的状态为所述半忙碌状态时,所述AP根据所述第一STA在当前调度周期之前至少一个调度周期内的状态,预测所述第一STA在当前调度周期内的实际所需带宽包括:
如果所述第一STA已经在连续第一个数的调度周期内为所述半忙碌状态,且在每个处于所述半忙碌状态的调度周期内均未用完所述空闲状态对应的第一带宽,所述AP确定所述第一STA在当前调度周期内的状态为所述空闲状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述空闲状态对应的第一带宽;
如果所述第一STA在当前调度周期的上一调度周期内用完了所述半忙碌状态对应的第二带宽,且在当前调度周期内所述第一STA对应的报文缓冲队列中存在报文,所述AP确定所述第一STA在当前调度周期内的状态为所述忙碌状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述第一STA在当前调度周期内的可用带宽;其中,所述半忙碌状态对应的第二带宽大于所述空闲状态对应的第一带宽;
如果所述第一STA未在当前调度周期的上一调度周期内用完所述半忙碌状态对应的第二带宽,或者如果所述第一STA未在连续第一个数的调度周期内均为所述半忙碌状态,或者如果所述第一STA在连续的第一个数的调度周期内均为所述半忙碌状态,但在每个处于所述半忙碌状态的调度周期内均用完所述空闲状态对应的第一带宽,所述AP确定所述第一STA在当前调度周期内的状态为所述半忙碌状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述半忙碌状态对应的第二带宽;
当所述第一STA在当前调度周期的上一调度周期内的状态为所述忙碌状态时,所述AP根据所述第一STA在当前调度周期之前至少一个调度周期内的状态,预测所述第一STA在当前调度周期内的实际所需带宽包括:
如果所述第一STA已经在连续第二个数的调度周期内为所述忙碌状态,且在每个处于所述忙碌状态的调度周期内均未用完所述半忙碌状态对应的第二带宽,所述AP确定所述第一STA在当前调度周期内的状态为所述半忙碌状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述半忙碌状态对应的第二带宽,并设置所存储的第三个数的调度周期内记录的数据长度均为所述半忙碌状态对应的第二带宽;
如果所述第一STA在当前调度周期的上一调度周期内用完了所述半忙碌状态对应的第二带宽,所述AP用当前调度周期的上一调度周期内的数据长度替换所存储的第三个数的调度周期内记录的数据长度中最早一个数据长度,并设置所述第一STA在当前调度周期内的实际所需带宽为所存储的第三个数的调度周期内记录的数据长度的平均值,如果第一STA在当前调度周期的上一调度周期内未用完所述半忙碌状态对应的第二带宽,且所述第一STA连续处于所述忙碌状态的调度周期的个数未达到所述第二个数,所述AP直接设置所述第一STA在当前调度周期内的实际所需带宽为所存储的第三个数的调度周期内记录的数据长度的平均值。
6.根据权利要求4所述的调度方法,其特征在于,所述AP根据所述第一STA在当前调度周期内的实际所需带宽和所述第一STA在当前调度周期内的可用带宽,确定所述第一STA在当前调度周期内的最终带宽包括:
如果所述第一STA在当前调度周期内的可用带宽大于所述第一STA在当前调度周期内的实际所需带宽与预设的预留带宽最小值的和,所述AP设置所述第一STA在当前调度周期内的未使用带宽为所述第一STA在当前调度周期内的可用带宽与所述第一STA在当前调度周期内的实际所需带宽的差,并设置所述第一STA在当前调度周期内的临时带宽为所述第一STA在当前调度周期内的实际所需带宽与预设的预留带宽最小值的和;
如果所述第一STA在当前调度周期内的可用带宽小于或等于所述第一STA在当前调度周期内的实际所需带宽与预设预留带宽最小值的和,所述AP设置所述第一STA在当前调度周期内的未使用带宽为0,并设置所述第一STA在当前调度周期内的临时带宽为所述第一STA在当前调度周期内的可用带宽;
所述AP根据公式确定所述第一STA在当前调度周期内的空闲时长;
所述AP根据公式 确定平均空闲时长;
如果所述平均空闲时长大于0,所述AP设置所述第一STA在当前调度周期内的最终带宽为所述第一STA在当前调度周期内的临时带宽;
如果所述平均空闲时长等于0,所述AP根据公式设置所述第一STA在当前调度周期内的最终带宽;
其中,share_time为所述第一STA在当前调度周期内的空闲时长;
unused_len为所述第一STA在当前调度周期内的未使用带宽;
leftlen_orig为所述第一STA在当前调度周期内的可用带宽;
t为预设的在每个调度周期内分配给STA使用无线链路的理想时间;
share_time_unit为所述平均空闲时长;
STA_NUM为当前调度周期内接入所述AP的STA的总个数;
SHARE_STA_NUM为当前调度周期内接入所述AP的STA中在当前调度周期内的空闲时长大于0的STA的个数;
share_time_sum为所有当前调度周期内大于0的空闲时长的和;
leftlen为所述第一STA在当前调度周期内的最终带宽;
leftlen'为所述第一STA在当前调度周期内的临时带宽。
7.一种调度装置,其特征在于,设置在无线接入点AP中,所述调度装置包括:
信息获取模块,用于根据第一站点STA的类型,获取当前调度周期的上一调度周期内的调度信息,所述调度信息包括下行发送速率,或者所述调度信息包括所述下行发送速率和报文总个数,所述下行发送速率是所述AP向所述第一STA发送下行报文的速率,所述报文总个数为所述AP发送给所述第一STA的下行报文的个数和所述第一STA发送给所述AP的上行报文的个数之和;
带宽获取模块,用于根据所述调度信息确定所述第一STA在当前调度周期内的初始带宽,并根据当前调度周期内接入所述AP的STA的总个数对所述第一STA在当前调度周期内的初始带宽进行调整,获取所述第一STA在当前调度周期内的可用带宽;
令牌设置模块,用于根据所述第一STA在当前调度周期内的可用带宽,设置所述第一STA对应的令牌桶在当前调度周期内的令牌数目;
调度处理模块,用于使用所述第一STA对应的令牌桶在当前调度周期内的令牌数目,对所述第一STA对应的报文进行收发处理;
所述信息获取模块具体用于在所述第一STA为高吞吐HT站点时,获取当前调度周期的上一调度周期内的下行发送速率作为所述调度信息,或者在所述第一STA为非HT站点时,获取当前调度周期的上一调度周期内下行发送速率和报文总个数作为所述调度信息;
所述带宽获取模块包括:
第一带宽获取子模块,用于在所述第一STA为HT站点时,根据公式leftlen_orig'=t×rate×α,确定所述第一STA在当前调度周期内的初始带宽,或者在所述第一STA为非HT站点,根据公式leftlen_orig'=(t-162×data_cnt)×rate-28×data_cnt,确定所述第一STA在当前调度周期内的初始带宽;
第二带宽获取子模块,用于根据当前调度周期内接入所述AP的STA的总个数对所述第一STA在当前调度周期内的初始带宽进行调整,获取所述第一STA在当前调度周期内的可用带宽;
其中,leftlen_orig'为所述第一STA在当前调度周期内的初始带宽;
t为预设的在每个调度周期内分配给STA使用无线链路的理想时间;
α为表征当前调度周期内带宽有效性的系数;
rate为当前调度周期的上一调度周期内的下行发送速率;
data_cnt为当前调度周期的上一调度周期内的报文总个数;
所述第二带宽获取子模块具体用于在当前调度周期内接入所述AP的STA的总个数大于等于预设第一个数门限且小于等于预设第二个数门限时,根据公式leftlen_orig=leftlen_orig'×(100%-(STA_NUM-1)×β),获取所述第一STA在当前调度周期内的可用带宽,或者在当前调度周期内接入所述AP的STA的总个数大于所述第二个数门限时,根据公式leftlen_orig=leftlen_orig'×λ,获取所述第一STA在当前调度周期内的可用带宽;
其中,leftlen_orig为所述第一STA在当前调度周期内的可用带宽;
STA_NUM为当前调度周期内接入所述AP的STA的总个数;
β为表征每增加一个STA对带宽有效性的影响的系数;
λ为表征当前调度周期内接入所述AP的STA的总个数对带宽有效性的影响的系数。
8.根据权利要求7所述的调度装置,其特征在于,所述调度处理模块具体用于在所述AP接收到所述第一STA发送的上行报文时,判断所述第一STA对应的令牌桶中是否有足够用于转发所述上行报文所需的令牌,如果所述第一STA对应的令牌桶中有足够的令牌,则扣除与所述上行报文长度对应个数的令牌,将所述上行报文转发出去,如果所述第一STA对应的令牌桶中没有足够的令牌,则将所述第一STA对应的令牌桶中令牌的数目设置为0,然后将所述上行报文转发出去。
9.根据权利要求7所述的调度装置,其特征在于,所述调度处理模块具体还用于在所述AP向所述第一STA发送下行报文时,判断所述第一STA对应的报文缓冲队列中是否存在报文,如果所述第一STA对应的报文缓冲队列中存在报文,判断所述第一STA对应的报文缓冲队列是否已满,如果所述第一STA对应的报文缓冲队列已满,将所述下行报文丢弃,如果所述第一STA对应的报文缓冲队列未满,将所述下行报文加入所述第一STA对应的报文缓冲队列中,如果所述第一STA对应的报文缓冲队列中不存在报文,判断所述第一STA对应的令牌桶中是否有足够用于发送所述下行报文所需的令牌,如果所述第一STA对应的令牌桶中有足够的令牌,则扣除与所述下行报文的长度对应个数的令牌,将所述下行报文发送给所述第一STA,如果所述第一STA对应的令牌桶中没有足够的令牌,将所述下行报文加入所述第一STA对应的报文缓冲队列中,以在下一个调度周期进行发送。
10.根据权利要求7所述的调度装置,其特征在于,所述令牌配置模块包括:
预测子模块,用于根据所述第一STA在当前调度周期之前至少一个调度周期内的状态,预测所述第一STA在当前调度周期内的实际所需带宽,所述第一STA在每个调度周期内的状态为空闲状态、半忙碌状态或忙碌状态;
确定子模块,用于根据所述第一STA在当前调度周期内的实际所需带宽和所述第一STA在当前调度周期内的可用带宽,确定所述第一STA在当前调度周期内的最终带宽;
设置子模块,用于根据所述第一STA在当前调度周期内的最终带宽,设置所述第一STA对应的令牌桶在当前调度周期内的令牌数目。
11.根据权利要求10所述的调度装置,其特征在于,
当所述第一STA在当前调度周期的上一调度周期内的状态为所述空闲状态时,所述预测子模块具体用于在所述第一STA在当前调度周期的上一调度周期内用完了所述空闲状态对应的第一带宽,且在当前调度周期内所述第一STA对应的报文缓冲队列中存在报文时,确定所述第一STA在当前调度周期内的状态为所述半忙碌状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述半忙碌状态对应的第二带宽,其中,所述半忙碌状态对应的第二带宽大于所述空闲状态对应的第一带宽;或者,所述预测子模块具体用于在所述第一STA在当前调度周期的上一调度周期内未用完所述空闲状态对应的第一带宽时,或者在当前调度周期内所述第一STA对应的报文缓冲队列中不存在报文时,确定所述第一STA在当前调度周期内的状态为所述空闲状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述空闲状态对应的第一带宽;
当所述第一STA在当前调度周期的上一调度周期内的状态为所述半忙碌状态时,所述预测子模块具体用于在所述第一STA已经在连续第一个数的调度周期内为所述半忙碌状态,且在每个处于所述半忙碌状态的调度周期内均未用完所述空闲状态对应的第一带宽时,确定所述第一STA在当前调度周期内的状态为所述空闲状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述空闲状态对应的第一带宽;或者,所述预测子模块具体用于在所述第一STA在当前调度周期的上一调度周期内用完了所述半忙碌状态对应的第二带宽,且在当前调度周期内所述第一STA对应的报文缓冲队列中存在报文时,确定所述第一STA在当前调度周期内的状态为所述忙碌状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述第一STA在当前调度周期内的可用带宽,其中,所述半忙碌状态对应的第二带宽大于所述空闲状态对应的第一带宽;或者,所述预测子模块具体用于在所述第一STA未在当前调度周期的上一调度周期内用完所述半忙碌状态对应的第二带宽时,或者在所述第一STA未在连续第一个数的调度周期内均为所述半忙碌状态时,或者在所述第一STA在连续的第一个数的调度周期内均为所述半忙碌状态,但在每个处于所述半忙碌状态的调度周期内均用完所述空闲状态对应的第一带宽时,确定所述第一STA在当前调度周期内的状态为所述半忙碌状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述半忙碌状态对应的第二带宽;
当所述第一STA在当前调度周期的上一调度周期内的状态为所述忙碌状态时,所述预测子模块具体用于在所述第一STA已经在连续第二个数的调度周期内为所述忙碌状态,且在每个处于所述忙碌状态的调度周期内均未用完所述半忙碌状态对应的第二带宽时,确定所述第一STA在当前调度周期内的状态为所述半忙碌状态,并设置所述第一STA在当前调度周期内的实际所需带宽为所述半忙碌状态对应的第二带宽,并设置所存储的第三个数的调度周期内记录的数据长度均为所述半忙碌状态对应的第二带宽;或者,所述预测子模块具体用于在所述第一STA在当前调度周期的上一调度周期内用完了所述半忙碌状态对应的第二带宽时,用当前调度周期的上一调度周期内的数据长度替换所存储的第三个数的调度周期内记录的数据长度中最早一个数据长度,并设置所述第一STA在当前调度周期内的实际所需带宽为所存储的第三个数的调度周期内记录的数据长度的平均值,或者用于在第一STA在当前调度周期的上一调度周期内未用完所述半忙碌状态对应的第二带宽,且所述第一STA连续处于所述忙碌状态的调度周期的个数未达到所述第二个数时,直接设置所述第一STA在当前调度周期内的实际所需带宽为所存储的第三个数的调度周期内记录的数据长度的平均值。
12.根据权利要求10所述的调度装置,其特征在于,所述确定子模块包括:
设置单元,用于在所述第一STA在当前调度周期内的可用带宽大于所述第一STA在当前调度周期内的实际所需带宽与预设的预留带宽最小值的和时,设置所述第一STA在当前调度周期内的未使用带宽为所述第一STA在当前调度周期内的可用带宽与所述第一STA在当前调度周期内的实际所需带宽的差,并设置所述第一STA在当前调度周期内的临时带宽为所述第一STA在当前调度周期内的实际所需带宽与预设的预留带宽最小值的和,或者在所述第一STA在当前调度周期内的可用带宽小于或等于所述第一STA在当前调度周期内的实际所需带宽与预设预留带宽最小值的和时,设置所述第一STA在当前调度周期内的未使用带宽为0,并设置所述第一STA在当前调度周期内的临时带宽为所述第一STA在当前调度周期内的可用带宽;
计算单元,用于根据公式确定所述第一STA在当前调度周期内的空闲时长,并根据公式 确定平均空闲时长;
确定单元,用于在所述平均空闲时长大于0时,设置所述第一STA在当前调度周期内的最终带宽为所述第一STA在当前调度周期内的临时带宽,或者在所述平均空闲时长等于0,根据公式设置所述第一STA在当前调度周期内的最终带宽;
其中,share_time为所述第一STA在当前调度周期内的空闲时长;
unused_len为所述第一STA在当前调度周期内的未使用带宽;
leftlen_orig为所述第一STA在当前调度周期内的可用带宽;
t为预设的在每个调度周期内分配给STA使用无线链路的理想时间;
share_time_unit为所述平均空闲时长;
STA_NUM为当前调度周期内接入所述AP的STA的总个数;
SHARE_STA_NUM为当前调度周期内接入所述AP的STA中在当前调度周期内的空闲时长大于0的STA的个数;
share_time_sum为所有当前调度周期内大于0的空闲时长的和;
leftlen为所述第一STA在当前调度周期内的最终带宽;
leftlen'为所述第一STA在当前调度周期内的临时带宽。
13.一种网络设备,其特征在于,包括:权利要求7-12任一项所述的调度装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210335465.3A CN102843775B (zh) | 2012-09-11 | 2012-09-11 | 调度方法、装置及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210335465.3A CN102843775B (zh) | 2012-09-11 | 2012-09-11 | 调度方法、装置及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102843775A CN102843775A (zh) | 2012-12-26 |
CN102843775B true CN102843775B (zh) | 2015-04-22 |
Family
ID=47370765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210335465.3A Active CN102843775B (zh) | 2012-09-11 | 2012-09-11 | 调度方法、装置及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102843775B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827542A (zh) * | 2016-04-01 | 2016-08-03 | 锐捷网络股份有限公司 | 一种无线局域网中报文转发的方法和装置 |
CN107493241B (zh) * | 2016-06-13 | 2022-04-12 | 中兴通讯股份有限公司 | 一种令牌分配方法和装置 |
CN111510394B (zh) * | 2019-01-31 | 2022-04-12 | 华为技术有限公司 | 一种报文调度方法、相关设备及计算机存储介质 |
CN113938258A (zh) * | 2020-06-29 | 2022-01-14 | 中兴通讯股份有限公司 | 数据传输方法、装置以及计算机存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101366247A (zh) * | 2006-01-10 | 2009-02-11 | 高通股份有限公司 | 用于在无线通信网络中调度的方法和设备 |
CN102640542A (zh) * | 2009-09-21 | 2012-08-15 | 三星电子株式会社 | 在无线多带网络中通过协同唤醒来节能的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7463642B2 (en) * | 2004-04-07 | 2008-12-09 | Cisco Technology, Inc. | Multiple receiver aggregation |
-
2012
- 2012-09-11 CN CN201210335465.3A patent/CN102843775B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101366247A (zh) * | 2006-01-10 | 2009-02-11 | 高通股份有限公司 | 用于在无线通信网络中调度的方法和设备 |
CN102640542A (zh) * | 2009-09-21 | 2012-08-15 | 三星电子株式会社 | 在无线多带网络中通过协同唤醒来节能的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102843775A (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100592715C (zh) | 无线通信装置和无线通信方法 | |
Sheu et al. | A bandwidth allocation/sharing/extension protocol for multimedia over IEEE 802.11 ad hoc wireless LANs | |
US9521584B2 (en) | Method and apparatus for managing data flow through a mesh network | |
KR100681854B1 (ko) | 다중 무선 근거리 통신망의 배치에 관한 분배구조 | |
US7808941B2 (en) | Dynamic adaptation for wireless communications with enhanced quality of service | |
JP4480563B2 (ja) | 無線LAN基地局装置のQoS制御方法 | |
EP1451947A2 (en) | Method and system for optimally serving stations on wireless lans using a controlled contention/resource reservation protocol of the ieee 802.11e standard | |
Cheng et al. | Adopting IEEE 802.11 MAC for industrial delay-sensitive wireless control and monitoring applications: A survey | |
CN102843775B (zh) | 调度方法、装置及网络设备 | |
Pal et al. | MAC layer protocols for real-time traffic in ad-hoc wireless networks | |
CN100429899C (zh) | 一种用于时分正交频分多址系统中的随机接入方法 | |
Tuysuz et al. | A beacon-based collision-free channel access scheme for IEEE 802.11 WLANs | |
JP2020141384A (ja) | 無線通信システム及び無線通信方法 | |
Kuo et al. | A CSMA-based MAC protocol for WLANs with automatic synchronization capability to provide hard quality of service guarantees | |
Bai et al. | Hybrid services qos enhancement by joint traffic and access management in unsaturated IEEE 802.11 ax network | |
Ahn et al. | Soft reservation multiple access with priority assignment (SRMA/PA): A distributed MAC protocol for QoS-guaranteed integrated services in mobile ad-hoc networks | |
CN108966360A (zh) | 非授权频段上LTE系统和WiFi系统共存时的数据传输方法 | |
KR100853695B1 (ko) | 다중 큐 기반의 무선 랜 장치 | |
KR20130104426A (ko) | 다중 사용자 혼성 매체 접근 제어 기반의 무선 자원 관리 방법 | |
Fan et al. | Admission control for variable bit rate traffic using variable service interval in IEEE 802.11 e WLANs | |
Oliveira et al. | Maximum-throughput access control in wireless LANs through max-weight-inspired policies | |
Zhou et al. | Maximum weight packet scheduling scheme with retransmission in multi-hop wireless networks | |
Uemura et al. | TCP-Aware OFDMA Transmission Based on Traffic Intensity in Downlink and Uplink Directions in IEEE 802.11 ax Wireless LANs | |
Xia et al. | Hybrid Channel Access Towards Real-Time Applications in Healthcare | |
Tantra et al. | Out-of-band signaling scheme for high speed wireless LANs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
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. |
|
CP01 | Change in the name or title of a patent holder |