一种帧聚合算法的制作方法

文档序号:17695769发布日期:2019-05-17 21:30阅读:751来源:国知局
一种帧聚合算法的制作方法

本发明涉及一种帧聚合算法,属于无线网络通信技术领域。



背景技术:

随着无线网络技术的迅猛发展,人们对无线网络设备性能的要求也越来越高,为了提高无线网络设备的性能,ieee802.11标准先后经历了ieee802.11a、b、g、n、ac等标准,并且随着标准的不断修改,许多新的phy的功能不断引入以提高无线网络设备的性能,但是随着phy层数据速率的不断增加,其吞吐率的增长已经变得不明显,这是由mac层的帧间隔和前导码造成的开销导致的,如果无线网络设备要获取吞吐率的进一步提升,就必须提升mac层的效率,所以从ieee802.11n协议标准开始,引入了amsdu和ampdu的聚合机制。

ieee802.11ac标准中并没有规定如何设计amsdu和ampdu的聚合机制,本文主要是针对在ieee802.11ac协议标准中的amsdu和ampdu提出了一种新的聚合算法,该算法规定了一种基于动态速率选择的amsdu聚合的长度计算方法、明确了由于环境因素导致的降带宽情况下的处理,以及提出了一个完整的帧聚合实现算法。实验结果表明,该机制既能够通过提高mac层的效率来提高数据的吞吐率,又能在降带宽的情况下,保证数据的正确性和鲁棒性。



技术实现要素:

本发明的目的在于提供一种帧聚合算法,以解决现有技术中无线网络设备数据吞吐率不高;amsdu帧聚合效率低;在降带宽的情况下,数据传输的正确性和鲁棒性不高等缺陷。

为达到上述目的,本发明所采用的技术方案是:一种帧聚合算法,包括如下步骤:对所接收的msdu帧进行amsdu聚合,当达到amsdu可聚合最大长度时,结束amsdu聚合,生成amsdu帧;对amsdu帧进行ampdu聚合,当达到根据最大带宽计算的ampdu可聚合最大长度时,结束ampdu聚合,生成ampdu帧;将ampdu帧拆分成多个子ampdu帧,根据当前带宽进行子ampdu帧发送;其中子ampdu帧的长度为根据当前带宽计算的ampdu可聚合最大长度。

amsdu聚合的方法包括:若当前时刻存在正在聚合的amsdu帧,则将所接收的msdu帧聚合在amsdu帧的最后一个位置;若当前时刻不存在正在聚合amsdu帧,则将所接收的msdu帧聚合在amsdu帧的第一个位置。

采用自适应动态速率反馈算法计算amsdu可聚合最大长度,计算公式如下:

其中,lamsdu为amsdu可聚合最大长度,mcs为调制编码机制,即帧发送所选取的速率,nss为空间流数目,即帧发送所选取的空间流数目,1550bytes为以太网的最大传输单元。

进行ampdu聚合前,进行如下判别:若满足(ti-ti-1)<tduration,则进行ampdu聚合;否则,不进行ampdu聚合;其中:ti为第i个amsdu帧开始聚合的时间,ti-1为第i-1个amsdu帧开始聚合的时间,tduration为预设的聚合标准时间差。

聚合标准时间差tduration不大于500毫秒。

ampdu可聚合最大长度采用下述公式计算获取:

lampdu=f(bw,gi,nss)*txop

其中,lampdu为ampdu可聚合最大长度,txop为特定通信类别的有界时段,f(bw,gi,nss)为由bw,gi,nss计算出的ieee802.11ac标准的phy层速率;bw为带宽,gi为保护间隔,nss为空间流数目。

进行ampdu聚合时,还包括:根据不同带宽对应的ampdu可聚合最大长度,对ampdu帧进行标记,按照标记对ampdu帧进行拆分,以获取对应带宽下的子ampdu帧。

amsdu聚合的规则包括:发送端、接收端和服务类别是同一个。

与现有技术相比,本发明所达到的有益效果:

(1)本发明所述帧聚合算法能通过提高mac层的效率来提高数据的吞吐率;

(2)本发明所述帧聚合算法能在降带宽的情况下,保证数据的正确性和鲁棒性;

(3)本发明所述帧聚合算法能提高无线局域网的数据传输速率。

附图说明

图1是本发明实施例提供的一种帧聚合算法amsdu聚合算法流程图;

图2是本发明实施例提供的一种适用于无线网络数据传输的帧聚合算法流程图。

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

如图1、图2所示,一种帧聚合算法,包括如下步骤:对所接收的msdu帧按照发送端、接收端和服务类别是否为同一个进行amsdu聚合,并且聚合的长度由动态速率选择选取的速率来决定。

在amsdu聚合的算法中,分两种情况处理。一种情况为目前存在正在聚合的amsdu帧,在这种情况下,需要将由协议栈新下发的msdu帧聚合在amsdu帧的尾部;另一种情况为目前不存在正在聚合的amsdu帧,在这种情况下,需要新创建一个新的amsdu帧,并把由协议栈新下发的msdu帧放在amsdu的第一个位置。两种情况的结束条件都为达到amsdu可以聚合的最大长度。其理论依据为选择发送速率比较大的情况下,数据吞吐率会比较大,能够支撑的amsdu聚合的长度的能力也相应会提高,所以amsdu可以聚合的最大长度与数据的发送速率是强相关的,因此可以通过提高mac层的效率来提高数据的吞吐率。本实施例获取amsdu可以聚合的最大长度是以动态速率选择算法选择的速率作为依据计算出来的,其中,本实施例选择的动态速率选择算法是自适应动态速率反馈算法(adaptiveautoratefeedback,aarf[11,12])算法。则amsdu可以聚合的最大长度,计算公式如下:

其中,lamsdu为amsdu能够聚合的最大长度;mcs为调制编码机制(modulationandcodingscheme,mcs),即帧发送所选取的速率;nss为空间流数目(numberofspatialstreams,nss),即帧发送所选取的空间流数目;1550bytes为以太网的mtu值,即最大传输单元。

amsdu帧聚合完成后,进行ampdu聚合。为了保证ampdu数据帧的完整性,必须保证ampdu帧在未结束聚合之前不能发送。在这种情况下,如果发送的帧与帧之间的时间间隔比较长,那么势必会产生由于等待聚合而导致的信道带宽的浪费。针对该问题,本实施例引入了帧聚合定时器,即当两帧发送时间间隔满足一定的时间差则聚合;否则,不聚合。具体步骤为:

a、第i个amsdu帧进入ampdu聚合模块,记录当前时间ti;

b、如果(ti-ti-1)<tduration,则满足两帧聚合的时间差条件,可以聚合;否则,不满足且不聚合;

其中,ti为第i帧amsdu进入ampdu聚合模块的时间;ti-1为第i-1帧amsdu进入ampdu聚合模块的时间;tduration为满足聚合的时间差标准,本实施例采用500毫秒。

ampdu聚合帧的长度是由空间流数目(numberofspatialstreams,nss)、带宽(bandwidth,bw)、保护间隔(guardinterval,gi)和特定通信类别的有界时段(transmitopportunity,txop)计算出来的。其计算公式如下:

lampdu=f(bw,gi,nss)*txop

其中,lampdu为ampdu聚合的最大长度,txop为特定通信类别的有界时段,f(bw,gi,nss)为由bw,gi,nss计算出的ieee802.11ac标准的phy层速率,即端口物理层速率。

ampdu聚合结束后进入数据发送阶段,如果在发送的过程中,由于无线网络环境的不稳定性,导致出现降带宽的情况,例如由原来的160m的带宽,降到80m,甚至降到20m,在这种情况下,继续按照计算出的最大长度发送数据就会出现丢包,针对该问题,本发明提出了一种降带宽情况的解决方法,有效的降低丢包率。其算法的基本步骤如下所示:

a、根据f(bw,gi,nss)公式分别计算20m,40m,80m和160m带宽下的速率,并且用一维数组存储;

b、ampdu聚合的时候,按照最大带宽计算的长度聚合ampdu,并在20m,40m,80m和160m带宽对应长度的帧处统一做标记;

c、当系统出现降带宽,则记录当前的带宽,并且将已经按照最大带宽聚合的ampdu拆分成当前使用带宽对应长度的子ampdu块,重新发送数据。

将ampdu帧拆分成多个子ampdu帧,根据当前带宽进行子ampdu帧发送;其中子ampdu帧的长度为根据当前带宽计算的ampdu可聚合最大长度。保证了数据的正确性和鲁棒性进而提高了无线局域网的数据传输速率。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1