一种有效利用无线带宽的方法与流程

文档序号:16786562发布日期:2019-02-01 19:26阅读:144来源:国知局
一种有效利用无线带宽的方法与流程
本申请涉及无线通信领域,具体的,涉及一种有效利用无线带宽的方法,通过调整不同速率报文到同一基线上,并引入双层令牌桶算法,使不同速率的终端拥有合适的发包机会,充分使用带宽容量,使无线带宽容量有效使用率最大化。
背景技术
:随着无线网络技术的发展,802.11的无线协议不断的向高版本升级,使得在市面上存在着不同版本的无线路由设备。具体而言:新一代802.11无线协议11AC已于2012年发布,其速率高达1.3Gbps,各无线路由器厂家已经开始推出支持11AC的产品。但目前市面上还存在大量的老设备,其不支持11AC协议,甚至不支持11N协议,只支持11G协议、11B协议等。有些低版本的无线路由设备不能支持高版本的无线设备,并且由于无线环境的复杂性,无线设备之间很少能以最大速率传送数据,实际速率差异很大。而在相同的时间内,那些低速率的终端的发送的报文数会远小于高速率的终端。具体而言,参见图1,示出了现有技术中无线用户发送调度的流程图,对待发送报文放入发送队列,每终端用户一个队列,队列组成链表,在调度时,取链表头队列,从队列取报文进行发送,发送后队列添加到链表尾部。但是,当前的调度算法不对终端用户进行分类,每次发送一个终端用户的数据,在有低速率用户存在的情况,由于其报文传输速率慢,会大量占用发送时间,拉低系统吞吐量,造成无线带宽有效使用率低。这种情况一方面影响了整个无线设备下的终端用户(尤其是高速率用户)体验,另一方面也影响了整个无线设备的系统吞吐率,降低了无线带宽有效使用率。因此,如何能够充分考虑不同速率对发送的影响,使高速率有较高的发送机会,低速率有较低的发送机会,降低低速率终端对总体吞吐量的影响,使带宽容量得到充分利用成为现有技术亟需解决的技术问题。技术实现要素:本发明的目的在于提出一种有效利用无线带宽的方法,设置了两个总令牌桶和各个用户分别的令牌桶,充分考虑不同速率对发送的影响,通过换算,将低速率报文映射到高速率情况下,使其可以在同一速率下进行调度,保证公平性。一种用于无线收发设备的有效利用无线带宽的方法,将所述无线收发设备的待发送报文放入发送队列,每用户一个队列,队列组成链表,同时针对所有发送队列设置总令牌桶,针对每个用户队列分别设置相应的用户队列令牌桶,其特征在于,包括如下步骤:令牌产生步骤:根据无线设备的最大速率Rmax和管理帧的开销,计算该无线设备每秒所需要总令牌数T,以及平均到每个用户的令牌数t=T/n,n表示用户数,并将令牌分配到总令牌桶和每个用户队列令牌桶;待发送报文令牌数估算步骤:遍历所述链表,利用实际发送速率,对不同用户实际发送报文所需要的令牌数进行估算;调度步骤,包括:第一调度步骤:遍历用户发送的所述链表,对于要发包的用户,通过对发送报文需要的令牌数与其拥有的令牌数进行比较,找到第一个满足发送报文令牌数小于其拥有的令牌数的用户,如果找到,则进入到报文发送步骤,如果没找到,则待等待令牌数得到补充后,进入到待发送报文令牌数估算步骤,重新进行调度;报文发送步骤:发送报文,并根据用户在发包时的传送的次数以及每次对应的速率,并计算该用户实际消耗的令牌数,并将该报文对应用户拥有的令牌数和总令牌数减去实际消耗的令牌数。进一步的,在第一调度步骤中没有找到合适的用户后,进入到待发送报文令牌数估算步骤之前,还具有第二调度步骤:再次遍历用户发送的所述链表,对于要发包的用户,比较其发送报文需要的令牌数与总令牌数,找到第一个满足发送报文令牌数小于总令牌数的用户,进入报文发送步骤,若没有找到满足条件的用户,则进入待发送报文令牌数估算步骤,等待令牌数得到补充后,重新开始调度。进一步的,在令牌产生步骤中,无线收发设备的最大带宽使用比例为Pmax,1s内需要的总令牌数为T=(Rmax*Pmax)/8,若每间隔Sms补充一次令牌,则每次总令牌桶补充令牌数为(T*S)/1000个,每次用户令牌桶补充令牌数为(T*S)/(1000*n)个。进一步的,在待发送报文令牌数估算步骤中,估算所需的令牌数为:(len*Rmax)/R,其中len为报文长度,R为发送速率。进一步的,在调度步骤中,用户被选择为发送后,该用户会被移出链表,并加入到链表的尾部,下次遍历时从链表的头部开始。进一步的,在报文发送步骤中,所消耗的令牌数为:(len*Rmax*C1)/R1+……+(len*Rmax*Ci)/Ri+……+(len*Rmax*Cn)/Rn,其中,Ri表示用户传输的速率,Ci表示在Ri速率下重传的次数,i表示用户传输的速率的档位,1≤i≤n。本发明将报文发送速率与调度联系起来,引入令牌桶算法,设置了总令牌桶和各自用户令牌桶,各自用户令牌桶保证每个用户均有发包的机会,总令牌桶保证能够对不同用户之间的令牌进行借用,在保证每个终端都有发包机会的基础上,降低低速率用户的影响,使无线带宽得到充分的使用,使带宽的共享和独占达到平衡。附图说明图1是现有技术中无线用户发送调度的流程图;图2是根据本发明具体实施例的有效利用无线带宽的方法。具体实施方式下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。参见图2,示出了根据本发明具体实施例的用于无线收发设备的有效利用无线带宽的方法,包括:令牌产生;待发送报文令牌数估算;队列调度;和报文发送的四个步骤。该方法将所述无线收发设备的待发送报文放入发送队列,每用户一个队列,队列组成链表,同时针对所有发送队列设置总令牌桶,针对每个用户队列分别设置相应的用户队列令牌桶;具体为:令牌产生步骤S110:根据无线设备的最大速率Rmax,管理帧的开销,计算该无线设备每秒所需要总令牌数T,以及平均到每个用户的令牌数t=T/n,n表示用户数;例如,对于一台无线设备,其最大速率有其工作模式确定,11G模式为54Mbps,11NGHT40为300Mbps,最大速率记为Rmax,由于beacon帧等管理帧的开销,最大带宽使用比例为Pmax,1s内需要的总令牌数为T=(Rmax*Pmax)/8,示例性的,Pmax可达到70%,1s内需要的总令牌数为T=(Rmax*70%)/8,其中速率最大值单位为bit。若有n个用户,则每个用户1s内需要的令牌数为t=T/n。若每间隔Sms补充一次令牌,则每次总令牌桶补充令牌数为(T*S)/1000个。每次用户令牌桶补充令牌数为(T*S)/(1000*n)个。在上述公式中,令牌总数的单位是秒(s),是1秒内令牌总的个数,而添加令牌间隔的单位是毫秒(ms),1秒等于1000毫秒,所以除于1000。其中,总令牌桶和用户令牌桶是两个不同的令牌桶,每个用户令牌桶用于保证公平性,保证每个用户都有发包的机会,总令牌桶用于最大化的使用带宽。每个用户的每用户队列令牌桶的个数是相等的,所有用户的每用户队列令牌桶个数相加等于总令牌桶个数。待发送报文令牌数估算步骤S120:遍历链表,利用实际发送速率,对不同用户实际发送报文所需要的令牌数进行估算。例如,对于以最大速率Rmax发送的报文,其所需的令牌数应为报文的长度len。而对于使用其他速率R发送的报文,应将其进行换算,调整到同一水平,这样比较才有意义,换算后所需的令牌数为:(len*Rmax)/R。通过换算,可知对于相同大小的报文,发送速率越小,需要的令牌数越多,则在消耗相同令牌数的情况下,高速率用户可以发送更多的数据。实际使用中,报文发送的速率可以由速率选择模块确定。调度步骤S130:第一调度步骤S131:遍历用户发送链表,对于要发包的用户,通过对发送报文需要的令牌数与其拥有的令牌数进行比较,找到第一个满足发送报文令牌数小于其拥有的令牌数的用户,如果找到,则进入到报文发送步骤S140,如果没找到,则待等待令牌数得到补充后,进入到待发送报文令牌数估算步骤S120,重新进行调度;在该步骤中,发送所需令牌数小于所拥有的用户的,表示发送的速度快,且之前该用户消耗的令牌数少,或此次需要的令牌数少进一步的,在第一调度步骤S131中没有找到合适的用户后,进入到待发送报文令牌数估算步骤S120前,还具有第二调度步骤S132:再次遍历用户发送链表,对于要发包的用户,比较其发送报文需要的令牌数与总令牌数,找到第一个满足发送报文令牌数小于总令牌数的用户,进入报文发送步骤,若没有找到满足条件的用户,则进入待发送报文令牌数估算步骤,等待令牌数得到补充后,重新开始调度。第一调度是查找没有超过每用户令牌桶令牌个数限制的用户,即优先选择发包少的用户发包,保证公平性,比如,有a、b两个用户,a用户一直发包,很快超过每用户令牌桶个数限制,这时若b有报文要发送,由于其未超过每用户令牌桶个数限制,第一调度步骤遍历时就会得到用户b满足条件可以发包。第二调度是用总令牌桶令牌个数进行比较,借用其他用户的令牌是为了充分的利用带宽。还以a、b两个用户举例,若a用户一直发包,b用户不发包,在a用户耗光其令牌后,若没有第二调度步骤,a将不能发包,此时b用户是可以发包,但其没有报文可发,即分给b用户的带宽浪费了,引入第二调度步骤后,由于总令牌桶还有令牌,a用户可以继续发包,直到耗光总令牌桶令牌为止。即,在加入总令牌桶后,有流量的用户可以借用其他用户的令牌继续发送数据,最大化使用带宽。通过两个调度步骤,第一调度步骤保证每个用户都可得到公平的发包机会,第二调度步骤保证发包的用户可以借用不发包用户的发包机会,充分利用无线带宽。在调度步骤中,用户被选择为发送后,该用户会被移出链表,并加入到链表的尾部,下次遍历时从链表的头部开始。报文发送步骤S140:发送报文,并根据用户在发包时的传送的次数以及每次对应的速率,并计算该用户实际消耗的令牌数,并将该报文对应用户拥有的令牌数和总令牌数减去实际消耗的令牌数。为了保证报文发送的成功率,当前主流无线芯片支持多档速率发送,即对一个报文,芯片最多能用四档速率发送,并对每档速率设置一个最大发送次数。所以,报文发送后,其可能以不同的速率经过了几次重传后才被对端收到或丢弃,在这种情况下,之前计算的消耗的令牌数就不准确了,需要重新计算。具体而言,用户传输的速率为Ri,在Ri速率下重传的次数为Ci,i表示用户传输的速率的档位,1≤i≤n。具体消耗的令牌数为:(len*Rmax*C1)/R1+……+(len*Rmax*Ci)/Ri+……+(len*Rmax*Cn)/Rn。即,假设一个报文使用速率R1、R2分别进行了C1、C2次重传才被接收到,则其消耗的令牌数为:(len*Rmax*C1)/R1+(len*Rmax*C2)/R2。实施例1:目前有3个用户,用户A、B和C。当前无线工作模式为11A,其支持的速率为:6、9、12、18、24、36、48、54,单位为Mb/s。由4.2节可知,1秒内总令牌数:(54×1000×1000)/8=6750000(计算方便,1Mb=1000Kb,1kb=1000b)。每10毫秒添加一次令牌,总令牌每次添加个数:(6750000×10)/1000=67500。3个用户令牌平分,每个用户每10毫秒添加的令牌数:67500/3=22500.假设用户A一直使用54Mb/s速率发包,用户B一直使用18Mb/s速率发包,用户C一直使用9Mb/s发包,则由4.3节可知,发送一个1000bytes的报文消耗的令牌数如下:用户用户A用户B用户C令牌数100030006000可知,在各用户具有相同令牌数的情况下,高速率的用户将可发送更多的报文。调度流程如下:初始状态如下,报文大小统一为1000bytes。第一次调度发送后:第二次调度发送后多次调度之后,会出现如下情况,此时,用户B和C有令牌但没有报文,用户A有报文要发送但令牌数不足,在只有1.4节调度步骤一的情况下,由于条件不满足,将无法发送报文,只能等待令牌桶被填充之后才能再次发送,在引入1.4节调度步骤二后,用户可借用总令牌桶令牌,继续发包再次调度发送后若此时用户B和C有新的报文要发送,情况如下,由第一调度步骤可保证,用户B和C的数据将会优先得到发送。因此,本发明通过速率对对数据进行调整,使调度可以在同一基线上进行。通过双层令牌通算法,使带宽的共享和独占达到平衡。降低低速率用户对无线宽带吞吐量的影响,使无线宽带得到充分的使用,使高速率无线设备达到其应有的性能。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属
技术领域
的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1