发明内容
本发明提供一种A-mpdu报文的传输方法和设备,以提高系统的吞吐量。
为了达到上述目的,本发明提供一种聚合MAC层协议数据单元A-mpdu报文的传输方法,该方法包括以下步骤:
步骤A、利用丢包率信息选择第一档速率;
步骤B、顺序获取低于所述第一档速率的第i档速率,并计算所述第i档速率所能聚合的A-mpdu报文的最大字节数;其中,2<=i<=预设数值;
步骤C、比较所述最大字节数与指定聚合字节数门限;
当所述最大字节数不大于所述指定聚合字节数门限时,执行步骤D;
当所述最大字节数大于所述指定聚合字节数门限时,如果i不是所述预设数值,则执行步骤B;如果i是所述预设数值,则执行步骤E;
步骤D、利用第i-1档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文,并发送该聚合的A-mpdu报文;
步骤E、利用预设数值档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文,并发送该聚合的A-mpdu报文。
所述指定聚合字节数门限的获得方式,具体包括:利用各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数获得所述指定聚合字节数门限;其中,每个统计区间基于每个速率所能聚合的A-mpdu报文的最大字节数确定。
所述利用各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数获得所述指定聚合字节数门限,具体包括:
在指定定时器到时后,如果有统计区间内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数之比大于预设比例时,则确定所述统计区间对应的A-mpdu报文的最大字节数为所述指定聚合字节数门限;
如果指定定时器未到时,或者,在指定定时器到时后没有统计区间内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数之比大于预设比例,则确定所述指定聚合字节数门限为指定数值,所述指定数值小于预设数值档速率所能聚合的A-mpdu报文的最大字节数。
所述各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数的统计方式,具体包括:
在每次发送A-mpdu报文时,通过所述A-mpdu报文所聚合的字节数确定当前统计区间,将所述当前统计区间内发送A-mpdu报文的次数加1,并将所有统计区间内发送A-mpdu报文的次数加1。
在所述步骤A之后还包括:当所述第一档速率小于上一次的第一档速率时,则清零各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数,并保存所述第一档速率为上一次的第一档速率;
在所述指定定时器到时后,则清零各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数。
一种聚合MAC层协议数据单元A-mpdu报文的传输设备,该设备包括:
多档速率选择模块,用于利用丢包率信息选择第一档速率;顺序获取低于所述第一档速率的第i档速率,并计算所述第i档速率所能聚合的A-mpdu报文的最大字节数,其中,2<=i<=预设数值;以及,
比较所述最大字节数与指定聚合字节数门限;且当所述最大字节数大于所述指定聚合字节数门限时,如果i不是所述预设数值,则继续顺序获取低于所述第一档速率的第i档速率;
A-mpdu聚合模块,用于当所述最大字节数不大于所述指定聚合字节数门限时,利用第i-1档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文;当所述最大字节数大于所述指定聚合字节数门限时,如果i是所述预设数值,则利用预设数值档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文;
A-mpdu报文发送模块,用于发送该聚合的A-mpdu报文。
还包括:A-mpdu聚合统计分析模块,用于利用各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数获得所述指定聚合字节数门限;其中,每个统计区间基于每个速率所能聚合的A-mpdu报文的最大字节数确定。
所述A-mpdu聚合统计分析模块,具体用于在指定定时器到时后,如果有统计区间内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数之比大于预设比例时,则确定所述统计区间对应的A-mpdu报文的最大字节数为所述指定聚合字节数门限;
如果指定定时器未到时,或者,在指定定时器到时后没有统计区间内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数之比大于预设比例,则确定所述指定聚合字节数门限为指定数值,所述指定数值小于预设数值档速率所能聚合的A-mpdu报文的最大字节数。
所述A-mpdu聚合统计分析模块,进一步用于在每次发送A-mpdu报文时,通过所述A-mpdu报文所聚合的字节数确定当前统计区间,将所述当前统计区间内发送A-mpdu报文的次数加1,并将所有统计区间内发送A-mpdu报文的次数加1。
所述多档速率选择模块,还用于保存所述第一档速率为上一次的第一档速率;
所述A-mpdu聚合统计分析模块,还用于当所述第一档速率小于上一次的第一档速率时,则清零各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数;以及,
在所述指定定时器到时后,则清零各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数。
与现有技术相比,本发明至少具有以下优点:本发明中,通过动态选择速率档数,可以提高系统的吞吐量,并保证系统的可靠性;继而可以解决在高吞吐量环境下,由于过分保证可靠性导致的吞吐量过低的问题,且能够同时适应高吞吐量和高可靠性的不同环境。
具体实施方式
本发明提出了一种A-mpdu报文的传输方法,通过动态选择速率档数来提高系统的吞吐量,并保证系统的可靠性;且该方法用于在无线网络(如无线局域网)中对A-mpdu报文进行传输,如图2所示,该方法可包括以下步骤:
步骤201,利用丢包率信息选择第一档速率。例如,通过丢包率计算出各速率的吞吐量,并选择一个吞吐量最大的速率为第一档速率。
步骤202,顺序获取低于第一档速率的第i档速率,2<=i<=预设数值;其中,该预设数值为最大速率档数;例如,由于实际应用中通常使用四档速率,因此该预设数值可以为4。
在顺序获取低于第一档速率的第i档速率的过程中,如果上一次获得的是第一档速率,则第一次执行本步骤时为获得第二档速率;如果上一次获得的是第二档速率,则第二次执行本步骤时为获得第三档速率;以此类推。
需要注意的是,在第一档速率确定之后,即可以确定后续的第二档速率、第三档速率等;例如,速率从大到小依次为:130M、117M、104M、78M、52M、39M、26M、19.5M、13M、6.5M;则当第一档速率为117M时,第二档速率为104M,第三档速率为78M,以此类推。
步骤203,计算第i档速率所能聚合的A-mpdu报文的最大字节数。例如,可根据TXOP为4ms的限制计算出第i(如2、3、4等)档速率所能聚合的A-mpdu报文的最大字节数。
步骤204,判断该最大字节数是否不大于指定聚合字节数门限;如果该最大字节数不大于指定聚合字节数门限,则执行步骤205;如果该最大字节数大于指定聚合字节数门限,则执行步骤206。
步骤205,利用第i-1档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文,并发送该聚合的A-mpdu报文。例如,当前步骤202中获取的为第二档速率时,则利用第一档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文;又例如,当前步骤202中获取的为第三档速率时,则利用第二档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文。
需要注意的是,如果该最大字节数不大于指定聚合字节数门限,则本发明中需要放弃选择第i档到第预设数值档的速率,即可以将第i-1档速率所能聚合的A-mpdu报文的最大字节数作为聚合A-mpdu报文的上限,从而可以利用第i-1档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文。
步骤206,判断当前获取的第i档速率是否为第预设数值档速率;如果否,则执行步骤202,获取下一档速率(例如,当前步骤202中获取的为第二档速率时,则下一次执行步骤202时获取第三档速率);如果是,则执行步骤207。
步骤207,利用预设数值档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文,并发送该聚合的A-mpdu报文。例如当预设数值为4时,利用第四档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文。
本发明中,上述指定聚合字节数门限可基于系统的吞吐量确定,其中一种优选的获得指定聚合字节数门限的方式,可如图3所示,其包括以下步骤:
步骤301,在每次发送A-mpdu报文时,通过A-mpdu报文所聚合的字节数确定当前统计区间。
本发明中,为了统计是否是由于某个低速率导致所能聚合的A-mpdu报文的最大字节数有限,则对需要统计的字节数划分多个统计区间,且每个统计区间基于每个速率所能聚合的A-mpdu报文的最大字节数确定;具体的,每个统计区间由每个速率根据TXOP为4ms限制计算出的能聚合的A-mpdu报文的最大字节数确定;例如,统计区间为:最大字节数减掉一个长报文(如1500字节)-该最大字节数。如图4所示,为速率、该速率所能聚合的A-mpdu报文的最大字节数、以及由该最大字节数确定的统计区间的示意图。
以图4为例,则在每次发送A-mpdu报文时,可以直接通过A-mpdu报文所聚合的字节数来确定当前统计区间;例如,当A-mpdu报文所聚合的字节数为17750时,则通过查询图4可知统计区间为17720-19220。
步骤302,将当前统计区间内发送A-mpdu报文的次数加1,并将所有统计区间内发送A-mpdu报文的次数加1。
步骤303,判断指定定时器(可根据实际经验选择)是否到时;如果是,则执行步骤304,否则,继续计时,并执行步骤307。
步骤304,计算各统计区间内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数之比。
步骤305,判断是否有统计区间内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数之比大于预设比例(如80%);如果是,执行步骤306,否则,执行步骤307。
步骤306,确定该统计区间所对应的A-mpdu报文的最大字节数(如统计区间17720-19220对应的最大字节数为19220)为指定聚合字节数门限。
本发明中,可利用各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数获得指定聚合字节数门限;进一步的,在指定定时器到时后,通过分析各统计区间内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数,如果有统计区间内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数之比大于预设比例(如80%),则确定该统计区间对应的A-mpdu报文的最大字节数为指定聚合字节数门限。
例如,当在统计区间17720-19220内发送A-mpdu报文的次数为9次,且在所有统计区间内发送A-mpdu报文的次数为10次时,则统计区间17720-19220内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数之比大于80%,因此可以确定该指定聚合字节数门限为:统计区间17720-19220对应的最大字节数为19220。
需要说明的是,本发明中,在指定定时器到时后,还需要清零各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数,以重新开始计时,并重新统计各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数。
步骤307,确定指定聚合字节数门限为指定数值,该指定数值小于预设数值档速率所能聚合的A-mpdu报文的最大字节数。例如,当预设数值档速率为第四档速率时,则该指定数值只需要小于第四档速率所能聚合的A-mpdu报文的最大字节数即可;优选的,可以将该指定数值设置为0。
本发明中,在统计各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数的过程中,还需要考虑到环境因素的影响;因此在上述步骤201之后,还需要比较第一档速率以及上一次的第一档速率,并保存本次的第一档速率为上一次的第一档速率,为下一次比较进行准备。
当第一档速率小于上一次的第一档速率时,说明环境有所恶化导致丢包率增高,且导致选到的速率降低,此情况下需要清零各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数,以重新开始计时(即统计新环境下的情况),并重新统计各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数。
基于与上述方法同样的发明构思,本发明还提出了一种聚合MAC层协议数据单元A-mpdu报文的传输设备,如图5所示,该设备包括:mpdu缓存模块51、多档速率选择模块52、A-mpdu聚合模块53、A-mpdu报文发送模块54、A-mpdu发送反馈模块55、A-mpdu聚合统计分析模块56;其中:
多档速率选择模块52,用于利用丢包率信息(其是A-mpdu发送反馈模块55获得并反馈给多档速率选择模块52的)选择第一档速率;
顺序获取低于所述第一档速率的第i档速率,并计算所述第i档速率所能聚合的A-mpdu报文的最大字节数,其中,2<=i<=预设数值;以及,
比较所述最大字节数与指定聚合字节数门限;且当所述最大字节数大于所述指定聚合字节数门限时,如果i不是所述预设数值,则继续顺序获取低于所述第一档速率的第i档速率。
A-mpdu聚合模块53,用于当所述最大字节数不大于所述指定聚合字节数门限时,利用第i-1档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文;当所述最大字节数大于所述指定聚合字节数门限时,如果i是所述预设数值,则利用预设数值档速率所能聚合的A-mpdu报文的最大字节数来聚合A-mpdu报文;
其中,上述mpdu缓存模块51用于为需要发送的mpdu进行缓存,且所述A-mpdu聚合模块53需要从mpdu缓存模块51中获得mpdu来聚合A-mpdu报文。
A-mpdu报文发送模块54,用于发送该聚合的A-mpdu报文。
本发明中,该设备还包括:A-mpdu聚合统计分析模块56,用于利用各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数获得所述指定聚合字节数门限;其中,每个统计区间基于每个速率所能聚合的A-mpdu报文的最大字节数确定。
所述A-mpdu聚合统计分析模块56,具体用于在指定定时器到时后,如果有统计区间内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数之比大于预设比例时,则确定所述统计区间对应的A-mpdu报文的最大字节数为所述指定聚合字节数门限;
如果指定定时器未到时,或者,在指定定时器到时后没有统计区间内发送A-mpdu报文的次数与所有统计区间内发送A-mpdu报文的次数之比大于预设比例,则确定所述指定聚合字节数门限为指定数值,所述指定数值小于预设数值档速率所能聚合的A-mpdu报文的最大字节数。
所述A-mpdu聚合统计分析模块56,进一步用于在每次发送A-mpdu报文时,通过所述A-mpdu报文所聚合的字节数确定当前统计区间,将所述当前统计区间内发送A-mpdu报文的次数加1,并将所有统计区间内发送A-mpdu报文的次数加1。
本发明中,所述多档速率选择模块52,还用于保存所述第一档速率为上一次的第一档速率;
所述A-mpdu聚合统计分析模块56,还用于当所述第一档速率小于上一次的第一档速率时,则清零各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数;以及,在所述指定定时器到时后,则清零各统计区间内发送A-mpdu报文的次数以及所有统计区间内发送A-mpdu报文的次数。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。