CN104022843B - 基于长距离无线网络的自适应数据传输速率调整方法 - Google Patents
基于长距离无线网络的自适应数据传输速率调整方法 Download PDFInfo
- Publication number
- CN104022843B CN104022843B CN201410128453.2A CN201410128453A CN104022843B CN 104022843 B CN104022843 B CN 104022843B CN 201410128453 A CN201410128453 A CN 201410128453A CN 104022843 B CN104022843 B CN 104022843B
- Authority
- CN
- China
- Prior art keywords
- rate
- speed
- rssi
- frame aggregation
- frame
- 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.)
- Expired - Fee Related
Links
Abstract
本发明公开了一种基于长距离无线网络的自适应数据传输速率调整算法,以接收信号强度(RSSI)为依据进行速率选择,快速锁定几个有可能达到最佳吞吐率的MCS,并把这几个MCS的集合称为一个速率集,之后在这个速率集内部进行探测,即可迅速定位到最佳速率。
Description
技术领域
本发明涉及长距离无线网络技术领域,特别是涉及一种长距离无线网络的数据传输速率自适应调整算法。
背景技术
基于IEEE 802.11的长距离无线mesh网络(LDmesh)由多个长距离无线链路组成,相邻节点间距离可以达到几十甚至上百公里。无需额外的频带费用,可以在极端恶劣的野外环境下使用。LDmesh网络具有成本低、带宽高、覆盖广、易于部署和维护等特点,性价比高,特别适合选做偏远地区的网络接入方案。这一方面国内的研究才刚刚起步[1]。
IEEE 802.11n标准的引入,给LDmesh网络性能带来质的飞跃。IEEE 802.11n在物理层通过信道绑定、多输入多输出(MIMO)等技术提高数据的传输速率,而且在802.11a正交频分复用(OFDM)的基础上增加了子载波数量,在MAC层通过帧聚合和块确认提高传输效率,使得理论最高数据速率达到600Mbps,相对于802.11a/b/g的54Mbps吞吐率上限有显著的提升,这给LDmesh网络的上层应用提供高速的物理层数据速率支持[2]。
当前的长距离无线网络主要采用时分复用多路访问(TDMA)的接入方式,即有多个节点,(以A和B两个节点为例)要相互传输数据时,把时间片等分为两份,一半的时间用来从A向B发送数据,另一半的时间用来从B向A发送数据,这种方法的主要问题就是,网络上双向传输的数据并不是近似相等的,例如下载文件这样的过程,几乎在很长时间内都是单向数据,因此,有一半左右的时间信道是空闲的,因此,在这种极端情况下,链路利用率仅仅为50%,而且,使用TDMA时时钟同步问题是一个较难解决的问题。
当前的近距离无线网络主要采用载波侦听多路访问/冲突避免(CSMA/CA)的机制,在这种机制下,每个节点发送数据之前,先侦听信道一个固定的时长,如果信道空闲,达到侦听时间后,则进行随机退避,退避时间的计算方法为:在(0,cwmin)之间选取一个随机数x,x乘以slottime即为退避时间,如果在acktimeout的时间内没有收到ACK,则认为丢包,需要进行重传,步骤与第一次发送时相同,只是退避时间的因子x变成了(0,min(cwmin*2,cwmax))之间的随机数,每次重传都把竞争窗口的大小翻一倍,因此也叫做指数级退避。
长距离无线网络很少使用CSMA/CA的原因是,由于距离太长,保持原有slottime的情况下,侦听和退避的作用会变得很低,从而增大了碰撞的几率,而且,由于传输时间变长,一个数据包即使正确传输,也不可能在acktimeout时间内返回ACK,从而使发送方认为丢包。但是由于前文描述的TDMA存在的链路利用率低的问题,可以通过增长slottime和acktimeout来使得CSMA/CA能够在长距离链路上使用,而且取得比TDMA更高的信道利用率和吞吐率。
为了使物理层数据传输速率得到最好的利用,在MAC层需要进行数据传输速率的选择,由此出现了一系列的数据传输速率调整算法,主要以接收方返回的回馈信息为依据进行选择,如SampleRate对速率进行探测取样,来选取最佳速率[3],Atheros网卡驱动中自带的两个算法原理类似,Ath9k算法把所有的可用速率进行排序,根据信道状况,即ACK的反馈信息向上或者向下探测,直到不如当前速率时停止探测,事实证明,Ath9k的排序方式是不合理的,例如,40MHz,使用短保护间隔(SGI),当前接收端的接收信号强度(RSSI)约为25的情况下的三个速率MCS11(MCS,Modulation and Coding Scheme,调制编码方案)、MCS7和MCS12,Ath9k按照速率值进行排序MCS11(120Mbps)<MCS7(150Mbps)<MCS12(180Mbps),如果只考虑这三个速率且当前在使用MCS11,投递率高于90%,要向高速率进行探测,发现MCS7的投递率不足20%,说明高速率性能不好,即停止探测,而实际上,此时MCS12的投递率也高于90%,它的性能是这三个速率中最好的,却因为MCS7排在了前面而没有探测的机会。Minstrel算法间隔一定时间随机选择速率探测,并根据ACK信息比较选择,这就带来不必要的探测开销,尤其是对于低MCS来说,同样以40MHz、SGI为例,本专利实验中的实验环境中常用的调制编码方案是MCS12,而MCS12的比特率是MCS0的十多倍,而且,根据驱动的调整策略,低MCS的聚合程度也低,进一步拉低了速率。MiRA考虑了空间流数的影响,对速率重新进行排序,在单/双流模式内和模式间进行折线型探测[4],缺点在于受信道波动的影响,会发生剧烈的抖动,比如某聚合帧可能因为偶然的MAC层头部错误导致整帧丢失,或出现偶然的高丢包现象,从下一聚合帧开始依旧几乎没有丢包,那么就不应该换用低速率,而MiRA就会认为信道状况变差而触发向低MCS的探测和切换,直到下一次因探测超时而重新探测时,才能探测回到高速率,这也就造成了MiRA速率变化曲线中较大的波动。
当前的速率调整算法主要是针对室内的场景,若把这个算法直接放到室外的环境上,远远没有固定速率时的吞吐率高,因此,现有的速率调整算法不能很好地适用于长距离链路,而且在长距离链路上,传输延时大,即大量的时间用于传输和等待ACK,因此链路利用率很低。
在发明本专利之前,进行了大量的实验,包括测量了在晴天、大雾、小雨等各种天气条件下,固定MCS(MCS0-15)、帧聚合长度上限(FA=1,2,4,6,……,30,32)、带宽(20/40MHz)、是否开启载波侦听及随机退避这1088种参数组合的性能,以及Ath9k、Minstrel两种速率调整算法的效果。
根据各种调制编码方案的投递率、吞吐率变化,以及开启载波侦听时与禁用载波侦听时吞吐率的差值,分析发现,在RSSI固定的情况下,哪些MCS可以正常工作,哪些MCS投递率接近于0,有一个基本不变的规律,而在802.11n标准中提到,各种调制编码方案的投递率的理论值与信噪比(SNR)有相似的变化规律,而不同调制编码方案从投递率开始上升,到投递率趋于100%对应的RSSI窗口是不同的。在室内由于选择性衰落和多径效应等原因,无法呈现这样的变化规律,实验中在户外使用变化发送功率的方法改变接收端的接收信号强度(RSSI),多次重复测量,进行了大量充足的投递率(PDR)与信噪比(SNR)变化规律的测量,得到如图7所示的结果,根据图中所示的规律,SNR可以作为选择速率的标准,并且,可以由此制定供速率选择使用的速率表。
在此之前,也有许多致力于提高无线网络性能提高的专利,其中,以改进物理层编码及传输机制的方式来解决该问题的为主,例如针对编码解码上的不足,如较低的信号干扰噪声比(SINR)会限制码多分址(CDMA)的工作的问题,美国朗讯科技公司在2006年提出用格式化信号的混合方法在高数据速率无线系统中传输数据,通过把数据部分则交给OFDMA传输来替代CDMA传输,提高了抗干扰能力[6]。针对发射功率有限导致高速率无线传输可靠性不高的问题,浙江大学在2008年提出基于网络编码的分布式MIMO技术,适用于多个信源和信宿节点的场景,利用MIMO的机制大幅提高无线网络的容量和可靠性[7]。除此之外,也有少量的专利在数据链路层通过速率调整来提高长距离无线网络的性能,有代表性的是通过信源发送测试数据,由信宿节点根据误码率决定采用哪一种调制方式(QPSK、16QAM、64QAM或128QAM中的一种)并反馈给信源,信源根据反馈信息调整调制方式[8]。但这只是局限于几种调制方式的选择,802.11n的提出,使得物理层的数据率得到的空前的飞跃,而MAC层的速率调整机制由于选择太多、环境变化等因素难以用现有的方案充分发挥物理层的优势。
参考文献
[1]赵增华,王楠,窦志斌,张连芳,舒炎泰.基于IEEE 802.11的长距离无线mesh网络.计算机学报,2012年6期.
[2]IEEE 802.11n.Standard for Wireless LAN Medium Access Control(MAC)and Physical Layer(PHY)Specifications Amendment 5:Enhancements for HigherThroughput[S].2009.
[3]Bicket J C.Bit-rate selection in wireless networks[D].Massachusetts Institute of Technology,2005.
[4]Pefkianakis I,Hu Y,Wong S H Y,et al.MIMO rate adaptation in802.11n wireless networks[A].In:Proceedings ofthe sixteenth annualinternational conference on Mobile computing and networking[C].ACM:2010.257—268.
[5]张松.基于IEEE 802.11n的长距离无线链路性能实验研究[D].天津:天津大学,2012.
[6]潘特利斯·莫诺吉尔迪斯,美国朗迅科技公司.用于分组数据的高速率无线通信方法[P].中国:CN1832375,2006-09-13.
[7]谢磊,王政,陈惠芳,赵民建,王匡,浙江大学.基于网络编码的分布式MIMO传输方法[P].中国:CN101309127,2008-11-19.
[8]林志华.一种远距离无线传输方法[P].中国:CN101459968,2009-06-17.
发明内容
为了克服上述现有技术存在的问题,本发明提出了新的适应于长距离无线链路的自适应速率调整算法RainbowRate,旨在提出了一种新的适用于长距离链路的速率调整方法,重新设定802.11标准中规定的参数,提高网络性能,提高吞吐率。
本发明提出的一种基于长距离无线网络的自适应数据传输速率调整方法,该方法包括以下步骤:
步骤101:对需调整的长距离无线网络中的站点进行扫描,若收到其他站点的信标帧,则根据配置来初始化速率表;
步骤102:发送端根据是否支持40MHz带宽和当前的RSSI决定当前应使用的速率集,获取当前选定的速率集中应该使用的速率和帧聚合长度上限;
步骤103:根据已发包数量决定是否要触发探测,默认设定的发包数量是有12.5%的数据包用于探测,包括向高速率、低速率、更高帧聚合长度上限以及更低帧聚合长度上限的探测;
步骤104:如果进行探测,则依据探测策略选择本次探测使用的速率与帧聚合长度上限;
步骤105:如果不进行探测,则选取本速率集、当前使用的速率以及当前使用的帧聚合长度上限;
步骤106:将上述步骤104和步骤105所选取的速率集、速率号、帧聚合长度上限信息存入缓存;
步骤(107):等待返回ACK或ACK超时,若收到ACK或接收到接收方反馈,则得到RSSI,并存入缓存;
步骤108:将本次发送聚合帧的实际聚合长度,其中包括被正确接收的子帧数与丢失的子帧数,存入缓存;
步骤109:当一个帧发送完成后,更新状态:首先更新系统RSSI,收到接收端反馈的RSSI,若接收端未反馈则从发送方底层获取ACK帧的RSSI,如果之前的RSSI与本次获取的RSSI差值超过3,则表明信道发生剧烈变化或者是获取的第一个RSSI,此时直接更新系统记录的RSSI的值,即根据公式(1)进行赋值:
current.rssi=this.rssi (1)
否则根据公式(2)更新系统RSSI值:
从数据包的control buffer域里面得到速率信息,根据从底层得到的聚合帧的子帧数和收到ACK的帧的个数,更新相应发送速率、对应的被正确接收的子帧数和聚合帧中未被正确接收的子帧数的值,用以计算该速率的投递率,计算投递率如公式(3):
其中,nframe_ok为聚合帧中被正确接收的子帧数;nframe_bad为聚合帧中未被正确接收的子帧数;
然后根据当前的速率去速率表查表得到该速率的理论速率ratekbps,然后乘以这个投递率,得到一个理想的吞吐率,所谓理想是指,该吞吐率忽略了所有的侦听信道、退避,以及等待ACK的时间,即发送方无竞争地源源不断地发送数据包的情况下所得到的吞吐率,计算方法如公式(5)所示:
tp=pdr×ratekbps (5)
步骤110:如果一个探测周期结束,则比较各探测参数对应的吞吐率,计算当前的最佳速率;根据最佳速率选择策略调整当前使用的速率参数,则流程结束。
所述步骤104的探测策略,具体包括以下处理:
根据已发包数判断,如果应该向更高速率进行探测,则判断该速率集是否存在更高速率,更高速率是否被设置为disable,如果被设置为disable了,是否已经超过了disable的时间,如果存在非disable或已经disable超时的更高速率,则使用更高速率,以更高速率默认的帧聚合长度上限进行发包;
如果应该向更低速率进行探测,则判断当前速率的need_probe域是否为true,如果为true,则使用更低速率以及更低速率默认的帧聚合长度上限进行探测,如果为false,则仍使用当前速率而不是更低速率发送数据包;
如果应该向更低帧聚合长度上限上进行探测且当前帧聚合长度上限值大于1,此时若当前速率的need_probe域为true,则将帧聚合长度上限的值减1,如果need_probe域为false,则仍使用原来的帧聚合长度上限;
如果应该向更高帧聚合长度上限上进行探测且当前帧聚合长度上限值小于帧聚合长度上限,则将帧聚合长度上限的值加1;
存储重传次数、当前速率集号、当前速率号以及当前帧聚合长度上限的值。
所述步骤109中,比较包括当前速率/帧聚合长度上限RF、较高速率R+、较低速率R-、较高帧聚合长度上限F+、较低帧聚合长度上限F-在内的这五种参数下的投递率pdr和理论吞吐率tp的吞吐率,找到更佳参数组合后更新当前使用的MCS、帧聚合长度上限,具体选择策略流程包括:
如果当前速率的投递率小于20%,将当前速率禁用,设置开始禁用的时间;所谓禁用,是指在一定时间内不会再向该速率进行探测;
如果探测的最佳速率是较大的速率且该速率的投递率大于20%,则将当前发送速率设置为这个更大的速率,否则,将这个较大速率禁用,设置开始禁用的时间;
如果最佳速率是在更小的速率参数,或者在不同的帧聚合长度上限时取得的,则修改当前的发送速率或帧聚合长度上限;
如果最佳速率的投递率小于20%且current.rssi的值小于28,说明是这个地方的SNR-PDR窗口与测量结果微有不同,将current.rssi的值降低2,如果最大吞吐的投递率小于20%,但是current.rssi的值大于等于28,且当前速率集中还有更小速率,则切换更小速率为当前发送速率;
如果当前最大吞吐率的速率的投递率超过90%,则在一个探测周期内,该速率不向更差的参数上探测;
重置各结构体的nframe.ok和nframe.bad。
与现有技术相比,本发明所采用的RainbowRate的平均吞吐率高于其它算法,相应的,平均丢包率低于其它算法;并且,通过设定RSSI窗口进行速率集选这种选择方法与Ath9k、Minstrel、MiRA等算法相比开销很小,快速准确。
附图说明
图1为本发明的基于802.11n长距离无线网络的自适应数据传输速率调整算法流程示意图;
图2为更新当前速率的策略流程示意图;
图3为探测策略流程示意图;
图4为本发明实施例的Rocket Dish定向天线示意图;
图5为本发明实施例的实验链路选择示意图,白色线为链路示意图;
图6为本发明实施例的试验床拓扑图;
图7为本发明有益效果验证的RSSI=26时4种RA算法UDP性能比较示意图;
图8为本发明有益效果验证的4种RA算法UDP变功率性能比较示意图;
图9为本发明有益效果验证的4种RA算法TCP性能比较示意图;
图10为本发明有益效果验证的4种RA算法TCP变功率性能比较示意图;
图11为本发明FDR-RSSI关系曲线示意图;
图11(c)所示的40MHz下MCS0-7的这八种速率来看,当前RSSI=20dBm时,显而易见,MCS4是最佳的,此时MCS5-7的投递率基本为0,而MCS0-4的投递率都已经接近100%,所以比特率最高的MCS4就是最佳速率,考虑到这个Transition窗口会有浮动,以及单双流、不同带宽,根据RSSI会得到几个候选速率,然后根据探测选出最佳速率。
具体实施方式
下面将结合附图对本发明实施方式作进一步地详细描述。
本发明使用CSMA/CA而不是TDMA(时分复用多路访问)作为长距离无线链路的信道接入方案。
根据接收端RSSI的值,选出此时投递率高于某阈值,即有可能成为最佳速率的几个速率,构成当前RSSI对应的速率集,在当前速率集内,使用探测的方案获得最佳速率。速率确定的同时,探测决定帧聚合长度上限的最佳取值。
根据长距离无线链路的特征,通过减小退避时竞争窗口的大小,进一步提高无线链路的传输性能。
正由于802.11n将物理层的数据速率提升到了600Mbps(实验所用设备所支持的上限是300Mbps),而MAC层目前的速率调整方案却不能很好地利用;本专利提出一种全新的适用于长距离链路的速率调整算法RainbowRate来提高802.11n的吞吐率。
在RainbowRate算法中需要克服以下的问题:1)、若用过高数据传输速率探测会导致高丢包和重传,而若用过低传输速率探测会降低吞吐率,因此,怎样能在不进行随机探测的情况下根据链路状况快速找到最佳数据传输速率;2)、由于长距离网络存在的传播延时和退避开销,怎样减少重传以在高比特率和低丢包率之间寻求一个平衡点。
在存在多种数据传输速率的网络中,尤其是在长距离链路上,重传会严重降低吞吐率,而接收信号强度(RSSI)与不同速率的投递率(PDR)却有一个固定的关系,换言之,RSSI可以很好地反映链路状况,而RSSI的值是很容易获取的,各种速率的投递率也就是可预测的。因此,RainbowRate以RSSI为依据进行速率选择,快速锁定几个有可能达到最佳吞吐率的MCS,并把这几个MCS的集合称为一个速率集,之后在这个速率集内部进行探测,即可迅速定位到最佳速率。这种选择方法与Ath9k、Minstrel、MiRA等算法相比开销很小,快速准确。该RainbowRate算法包括以下步骤:
一、通过设定RSSI窗口进行速率集选择
1、RSSI做为估算MCS投递率的理论与实验依据
使用intel网卡做接收端,利用intel网卡驱动中的csitool工具,可以获取到长距离链路的CSI信息,该数据证明,在长距离链路上,各个子载波上的RSSI的值大致相同,波动很小,而且在户外长距离链路上,多径效果不明显,因此,RSSI的值可以作为一个有效的RSSI值来评价各个调制编码方案(MCS)的丢包率等信息。
实验数据表明,每一种调制编码方案(MCS)可使用时的RSSI都有一个固定的范围(会有轻微的波动),即,每种MCS从完全不能正确传输,到投递率开始上升,这个转折点对应的RSSI,还有投递率接近100%时的RSSI值基本固定(把这两个RSSI之间的范围称为该MCS的变化窗口),而且,在单流或双流模式内,当带宽固定时,各个MCS的变化窗口只有很小的重叠,当MCSn的投递率刚刚达到90%时,MCSn+1的投递率一般还小于10%,所以,如果带宽和单双流模式确定,当RSSI确定时,使用哪一个MCS最好,就可以直接做出判断,考虑带宽和单双流时,也只有少数的几个MCS有可能成为最佳的MCS,把这些候选速率按照速率大小排序,构成速率集,这时候,可以用探测的方法来决定速率集中哪一个MCS是最优的。这就是本专利所提出的的速率调整算法RainbowRate的基本原理。
2、算法运行过程描述如图1所示
步骤101:进行扫描,若收到其他站点的信标(Beacon)帧,表示当前一个新的站点(station)与自己相连,此时根据配置(主要是根据20MHz还是40MHz频率)来初始化速率表,此步骤的主要选择应用场景在5GHz的频段上,由于干扰小,信道数量多且相互正交;并且之后以及包括实测的时候都主要考虑40MHz带宽的场景,对于20MHz的场景也是适用的。5GHz频段和40MHz带宽只是实验使用的一种组合,并没有必然的联系,只是5GHz大量的正交信道为信道绑定提供了更好的环境;
步骤102:发送时,首先根据是否支持40MHz带宽和当前的RSSI决定当前应使用的速率集,获取当前选定的速率集中应该使用的速率和聚合帧长度上限;
步骤103:根据已发包数量决定是否要触发探测,默认设定的发包数量是有12.5%的数据包用于探测,包括向高速率、低速率、更高聚合帧上限以及更低帧聚合上限的探测;
步骤104:如果进行探测,则依据探测策略选择本次探测使用的速率与帧聚合上限;
步骤105:如果不进行探测,则选取本速率集、当前使用的速率以及当前使用的帧聚合上限;
步骤106:将上述步骤104和步骤105所选取的速率集、速率号、帧聚合上限信息存入缓存;
步骤107:等待返回ACK或ACK超时,若收到ACK或接收到接收方反馈,则得到RSSI,并存入缓存;
步骤108:以及,本次发送的聚合帧的实际聚合长度,其中包括被正确接收的子帧数与丢失的子帧数,并存入缓存;
步骤109:当一个帧发送完成(收到ACK或达到重传次数上限)后,更新状态:首先更新系统RSSI,收到接收端反馈的RSSI(若接收端未反馈则从发送方底层获取ACK帧的RSSI),如果之前的RSSI与本次获取的RSSI差值超过3,则表明信道发生剧烈变化或者是获取的第一个RSSI,此时直接更新系统记录的RSSI的值,即根据公式(1)进行赋值:
current.rssi=this.rssi (1)
否则根据公式(2)更新系统RSSI值:
即本次发送的聚合帧的实际聚合长度,其中被正确接收的子帧数与丢失的子帧数;从数据包的control buffer域里面得到速率信息(发送这个包是使用的哪个速率集的哪个速率,以及使用的帧聚合上限的值),根据从底层得到的聚合帧的子帧数和收到ACK的帧的个数,更新相应发送速率、相应聚合帧长度的nframe.ok(聚合帧中被正确接收的子帧数)和nframe.badn(聚合帧中未被正确接收的子帧数)的值,用以计算该速率的投递率,计算投递率如公式(3):
需要说明的是,在实际的代码实现中,因为驱动中对浮点类型并不能很好地支持,因此使用过程中放大为原pdr的100倍,使用的公式是式(4)。
然后根据当前的速率去速率表查表得到该速率的理论速率,然后乘以这个投递率,得到一个理想的吞吐率,所谓理想是指,该吞吐率忽略了所有的侦听信道、退避,以及等待ACK的时间,即发送方无竞争地源源不断地发送数据包的情况下所得到的吞吐率,计算方法如公式(5)所示:
tp=pdr×ratekbps (5)
比较上述五种参数下的吞吐率,找到更佳参数组合后更新当前使用的MCS、帧聚合长度上限等参数,具体选择策略流程如图2所示:
根据当前速率/帧聚合长度上限RF、较高速率R+、较低速率R-、较高帧聚合长度上限F+、较低帧聚合长度上限F-这五种参数的投递率pdr和理论吞吐率tp;
2-1)如果当前速率的投递率小于20%,将当前速率禁用,设置开始禁用的时间。所谓禁用,是指在一定时间内不会再向该速率进行探测;
2-2)如果探测的最佳速率是较大的速率且该速率的投递率大于20%,则将当前发送速率设置为这个更大的速率,否则,将这个较大速率禁用,设置开始禁用的时间;
2-3)如果最佳速率是在更小的速率参数,或者在不同的帧聚合上限时取得的,则修改当前的发送速率或帧聚合长度上限。
2-4)如果最佳速率的投递率小于20%且current.rssi的值小于28,说明可能是这个地方的SNR-PDR窗口与我们的测量结果微有不同,将current.rssi的值降低2(或其它的值),如果最大吞吐的投递率小于20%,但是current.rssi的值大于等于28,且当前速率集中还有更小速率,则切换更小速率为当前发送速率。
2-5)如果当前最大吞吐率的速率的投递率超过90%,则在一个探测周期内,该速率不向更差的参数上探测。
2-6)重置各结构体的nframe.ok和nframe.badn。
通过修改竞争窗口的大小提高吞吐率。
无线网络中采用指数级退避,而在802.11n的标准中,使用带权值的接入方式,普通数据包、音频包、视频包在接入时退避的窗口大小是不同的,对于普通数据帧来说,退避窗口的最小值是15,最大值为1024,即在第一次发送时,随机在0-15之间选择一个数字x,退避x个slottime后发送,如果发生冲突,则随机在0-31之间随机选择数字x并退避,这种策略可以使802.11协议在竞争节点较多的无线网络环境中表现良好。
但是在长距离无线网络中,尤其是802.11n协议使用5GHz的信道,信道数很多且都是正交信道,没有干扰,多数情况下为两个节点竞争信道,没有必要用一个非常大的退避窗口来减少冲突的发生,而且,为了使CSMA在长距离链路上可以较好地使用,增大了slottime的值,如果仍然使用默认的退避窗口,则会带来非常大的、没有必要的退避开销,因此,本算法中,减小了退避窗口的范围,将(cwmin,cwmax)=(15,1024)减小到(cwmin,cwmax)=(7,15)。
步骤110:如果一个探测周期结束,则比较各探测参数对应的吞吐率,计算当前的最佳速率;根据最佳速率,同速率集中更大速率(如果存在),同速率集中更小速率(如果存在),同速率更大的帧聚合长度,同速率更小的帧聚合长度这五种参数对应的nframe.ok和nframe.bad,本发明的基于802.11n长距离无线网络的自适应数据传输速率调整算法流程结束。
步骤104中的探测策略如图3所示,包括:
3-1)根据已发包数判断,如果应该向更高速率进行探测,则判断该速率集是否存在更高速率,更高速率是否被设置为disable,如果被设置为disable了,是否已经超过了disable的时间,如果存在非disable或已经disable超时的更高速率(此时将该速率的disable域设置为false),则使用更高速率,以更高速率默认的帧聚合长度上限进行发包;
3-2)如果应该向更低速率进行探测,则判断当前速率的need_probe域是否为true(该域为false说明当前速率足够好,不需要向低参数探测),如果为true,则使用更低速率以及更低速率默认的帧聚合长度上限进行探测,如果为false,则仍使用当前速率而不是更低速率发送数据包;
3-3)如果应该向更低帧聚合长度上限上进行探测且当前帧聚合长度上限值大于1,此时若当前速率的need_probe域为true,则将帧聚合上限的值减1,如果need_probe域为false,则仍使用原来的帧聚合长度上限;
3-4)如果应该向更高帧聚合长度上限上进行探测且当前帧聚合长度上限值小于32(帧聚合长度上限),则将帧聚合上限的值加1;
3-5)数据帧发送完成之后如何确定这个数据帧使用的发送参数,前文中已经提到,在驱动中每个数据包对应于一个sk_buff结构体,其中有一个48字节的cb域,即为control buffer,这个域是供每一层暂存私有数据,数据帧被传给另一层时,另一层不必关心是否需要保存前一层在该域存储的内容,因此该域的数据很可能会被覆盖。经过分析与尝试,我在该域中找到了几个在与底层交互时不会被覆盖的字节,并用这几个字节来存储重传次数、当前速率集号、当前速率号以及当前帧聚合长度上限的值。
通过修改竞争窗口的大小可提高吞吐率。无线网络中采用指数级退避,而在802.11n的标准中,使用带权值的接入方式,普通数据包、音频包、视频包在接入时退避的窗口大小是不同的,对于普通数据帧来说,退避窗口的最小值是15,最大值为1024,即在第一次发送时,随机在0-15之间选择一个数字x,退避x个slottime后发送,如果发生冲突,则随机在0-31之间随机选择数字x并退避,这种策略可以使802.11协议在竞争节点较多的无线网络环境中表现良好。
但是在长距离无线网络中,尤其是802.11n协议使用5GHz的信道,信道数很多且都是正交信道,没有干扰,多数情况下为两个节点竞争信道,没有必要用一个非常大的退避窗口来减少冲突的发生,而且,为了使CSMA在长距离链路上可以较好地使用,增大了slottime的值,如果仍然使用默认的退避窗口,则会带来非常大的、没有必要的退避开销,因此,本算法中,减小了退避窗口的范围,将(cwmin,cwmax)=(15,1024)减小到(cwmin,cwmax)=(7,15)。
以下为具体实施例:
在高处布署无线网络节点,平台为Ubiquiti RouterStation Pro,使用的网卡是Atheros 9001系统产品SR71-A,在Openwrt系统上加载Ath9k网卡驱动,该配置下,可以支持最多两个空间流,理论最大速率为300Mbps。
如图5,两个节点之间没有遮挡,在Openwrt系统上加载ath9k驱动,设置网络配置为adhoc模式,开启STBC和CCK,选择36以上信道(5GHz频段),40MHz带宽。使用本文所述的速率调整算法。
实验链路选择,选在节点之间无高大建筑或山丘遮挡的平原地带,以图5为例,天津理工大学至天津大学仁爱学院,相距近20公里,中间全部是平原或低于5层的低矮建筑,高增益定向天线可以直接相对。
实验拓扑结构是由多个节点构建的无线Mesh网络,每个节点通过安装多个定向天线与不同节点相连,并通过设置为不同的信道号使得各个链路之间互不干扰,拓扑图如图8所示。
有益效果验证:
实验评估过程中,选取多条链路,选取5GHz的频段,40MHz带宽,36信道(与40信道绑定),Rocket Dish 2×2的高增益定向天线,将本发明的速率调整算法RainbowRate,与Atheros驱动自带的速率调整算法Ath9k和minstrel,以及MiRA算法相比较。实验表明,RainbowRate的平均吞吐率高于其它算法,相应的,平均丢包率低于其它算法。
以平均RSSI=14dBm时为例,RainbowRate的UDP性能(吞吐率)高出Ath9k算法134%,高出Minstrel算法107%,高出MiRA算法27%,表1为各个链路状况下丢包率的比较:
表1、不同SNR下4种RA算法丢包率比较
SNR(dB) | Ath9k | MiRA | Minstrel | RainbowRate |
14 | 8.15% | 55.58% | 4.2% | 0.21% |
17 | 27.6% | 12.4% | 2.35% | 0.33% |
22 | 8.93% | 1.57% | 1.14% | 0.16% |
26 | 11.8% | 2.36% | 3.69% | 0.71% |
29 | 7.7% | 2S.5% | 6.57% | 0.12% |
平均RSSI为26时,四个算法的UDP在两分钟内吞吐率变化的比较如表1,可以看到RainbowRate很稳定且一直处于较高速率,其它算法或是不稳定,或是速率值较低。
实验中还通过改变天线的发送功率,模拟了信道状况变化的场景,并观察速率调整算法在信道发生变化时的适应性,效果如图8所示,可以看到RainbowRate非常稳定,而且在信道变化时迅速变化且保持稳定:
链路的UDP性能主要使用pktgen来测量,当使用TCP时,RainbowRate同样优于其它三个算法,当平均RSSI为18、21、25、28时的吞吐率比较如图9所示。
TCP下各个算法在信道变化时性能变化如图10所示。
速率调整的方案优于当前的主要算法,在算法确定的情况下,如前文所述,适当地减小退避窗口可以进一步提高性能,默认的最小窗口为15,竞争窗口最大值是1023。实验中,指定了几组竞争窗口的值,其性能如表2所示。
表2、RainbowRate竞争窗口的影响
CW size | (1,7) | (7,15) | (15,31) | (15,1023) |
TCP(Mbps) | 61.84 | 61.29 | 59.17 | 45.95 |
UDP(Mbps) | 136.43 | 127.83 | 116.52 | 122.62 |
Claims (3)
1.一种基于长距离无线网络的自适应数据传输速率调整方法,其特征在于,该方法包括以下步骤:
步骤(101):对需调整的长距离无线网络中的站点进行扫描,若收到其他站点的信标帧,则根据配置来初始化速率表;
步骤(102):发送端根据是否支持40MHz带宽和当前的RSSI决定当前应使用的速率集,获取当前选定的速率集中应该使用的速率和帧聚合长度上限;
步骤(103):根据已发包数量决定是否要触发探测,默认设定的发包数量是有12.5%的数据包用于探测,包括向高速率、低速率、更高帧聚合长度上限以及更低帧聚合长度上限的探测;
步骤(104):如果进行探测,则依据探测策略选择本次探测使用的速率与帧聚合长度上限;
步骤(105):如果不进行探测,则选取本速率集、当前使用的速率以及当前使用的帧聚合长度上限;
步骤(106):将上述步骤(104)和步骤(105)所选取的速率集、速率号、帧聚合长度上限信息存入缓存;
步骤(107):等待返回ACK或ACK超时,若收到ACK或接收到接收方反馈,则得到RSSI,并存入缓存;
步骤(108):将本次发送聚合帧的实际聚合长度,其中包括被正确接收的子帧数与丢失的子帧数,存入缓存;
步骤(109):当一个帧发送完成后,更新状态:首先更新系统RSSI,收到接收端反馈的RSSI,若接收端未反馈则从发送方底层获取ACK帧的RSSI,如果之前的RSSI与本次获取的RSSI差值超过3,则表明信道发生剧烈变化或者是获取的第一个RSSI,此时直接更新系统记录的RSSI的值,即根据公式(1)进行赋值:
current.rssi=this.rssi (1)
否则根据公式(2)更新系统RSSI值:
<mrow>
<mi>c</mi>
<mi>u</mi>
<mi>r</mi>
<mi>r</mi>
<mi>e</mi>
<mi>n</mi>
<mi>t</mi>
<mo>.</mo>
<mi>r</mi>
<mi>s</mi>
<mi>s</mi>
<mi>i</mi>
<mo>=</mo>
<mfrac>
<mn>7</mn>
<mn>8</mn>
</mfrac>
<mi>c</mi>
<mi>u</mi>
<mi>r</mi>
<mi>r</mi>
<mi>e</mi>
<mi>n</mi>
<mi>t</mi>
<mo>.</mo>
<mi>r</mi>
<mi>s</mi>
<mi>s</mi>
<mi>i</mi>
<mo>+</mo>
<mfrac>
<mn>1</mn>
<mn>8</mn>
</mfrac>
<mi>t</mi>
<mi>h</mi>
<mi>i</mi>
<mi>s</mi>
<mo>.</mo>
<mi>r</mi>
<mi>s</mi>
<mi>s</mi>
<mi>i</mi>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
从数据包的control buffer域里面得到速率信息,根据从底层得到的聚合帧的子帧数和收到ACK的帧的个数,更新相应发送速率、对应的被正确接收的子帧数和聚合帧中未被正确接收的子帧数的值,用以计算该速率的投递率,计算投递率如公式(3):
<mrow>
<mi>p</mi>
<mi>d</mi>
<mi>r</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>n</mi>
<mi>f</mi>
<mi>r</mi>
<mi>a</mi>
<mi>m</mi>
<mi>e</mi>
<mo>.</mo>
<mi>o</mi>
<mi>k</mi>
</mrow>
<mrow>
<mi>n</mi>
<mi>f</mi>
<mi>r</mi>
<mi>a</mi>
<mi>m</mi>
<mi>e</mi>
<mo>.</mo>
<mi>o</mi>
<mi>k</mi>
<mo>+</mo>
<mi>n</mi>
<mi>f</mi>
<mi>r</mi>
<mi>a</mi>
<mi>m</mi>
<mi>e</mi>
<mo>.</mo>
<mi>b</mi>
<mi>a</mi>
<mi>d</mi>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,nframe.ok为聚合帧中被正确接收的子帧数;nframe.bad为聚合帧中未被正确接收的子帧数;
然后根据当前的速率去速率表查表得到该速率的理论速率ratekbps,然后乘以这个投递率,得到一个理想的吞吐率,所谓理想是指,该吞吐率忽略了所有的侦听信道、退避,以及等待ACK的时间,即发送方无竞争地源源不断地发送数据包的情况下所得到的吞吐率,计算方法如公式(5)所示:
tp=pdr×ratekbps (5)
步骤(110):如果一个探测周期结束,则比较各探测参数对应的吞吐率,计算当前的最佳速率;根据最佳速率选择策略调整当前使用的速率参数,则流程结束。
2.如权利要求1所述的基于长距离无线网络的自适应数据传输速率调整方法,其特征在于,所述步骤(104)的探测策略,具体包括以下处理:
根据已发包数判断,如果应该向更高速率进行探测,则判断该速率集是否存在更高速率,更高速率是否被设置为disable,如果被设置为disable了,是否已经超过了disable的时间,如果存在非disable或已经disable超时的更高速率,则使用更高速率,以更高速率默认的帧聚合长度上限进行发包;
如果应该向更低速率进行探测,则判断当前速率的need_probe域是否为true,如果为true,则使用更低速率以及更低速率默认的帧聚合长度上限进行探测,如果为false,则仍使用当前速率而不是更低速率发送数据包;
如果应该向更低帧聚合长度上限上进行探测且当前帧聚合长度上限值大于1,此时若当前速率的need_probe域为true,则将帧聚合长度上限的值减1,如果need_probe域为false,则仍使用原来的帧聚合长度上限;
如果应该向更高帧聚合长度上限上进行探测且当前帧聚合长度上限值小于帧聚合长度上限,则将帧聚合长度上限的值加1;
存储重传次数、当前速率集、当前速率号以及当前帧聚合长度上限的值。
3.如权利要求1所述的基于长距离无线网络的自适应数据传输速率调整方法,其特征在于,所述步骤(109)中,比较包括当前速率/帧聚合长度上限RF、较高速率R+、较低速率R-、较高帧聚合长度上限F+、较低帧聚合长度上限F-在内的这五种参数下的投递率pdr和理论吞吐率tp的吞吐率,找到更佳参数组合后更新当前使用的MCS、帧聚合长度上限,具体选择策略流程包括:
如果当前速率的投递率小于20%,将当前速率禁用,设置开始禁用的时间;所谓禁用,是指在一定时间内不会再向该速率进行探测;
如果探测的最佳速率是较大的速率且该速率的投递率大于20%,则将当前发送速率设置为这个更大的速率,否则,将这个较大速率禁用,设置开始禁用的时间;
如果最佳速率是在更小的速率参数,或者在不同的帧聚合长度上限时取得的,则修改当前的发送速率或帧聚合长度上限;
如果最佳速率的投递率小于20%且current.rssi的值小于28,说明是这个地方的SNR-PDR窗口与测量结果微有不同,将current.rssi的值降低2,如果最大吞吐的投递率小于20%,但是current.rssi的值大于等于28,且当前速率集中还有更小速率,则切换更小速率为当前发送速率;
如果当前最大吞吐率的速率的投递率超过90%,则在一个探测周期内,该速率不向更差的参数上探测;
重置各结构体的nframe.ok和nframe.bad。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410128453.2A CN104022843B (zh) | 2014-04-01 | 2014-04-01 | 基于长距离无线网络的自适应数据传输速率调整方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410128453.2A CN104022843B (zh) | 2014-04-01 | 2014-04-01 | 基于长距离无线网络的自适应数据传输速率调整方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104022843A CN104022843A (zh) | 2014-09-03 |
CN104022843B true CN104022843B (zh) | 2018-01-05 |
Family
ID=51439433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410128453.2A Expired - Fee Related CN104022843B (zh) | 2014-04-01 | 2014-04-01 | 基于长距离无线网络的自适应数据传输速率调整方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104022843B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104284375B (zh) * | 2014-10-21 | 2017-12-22 | 广州市香港科大霍英东研究院 | 一种无线网络速率自适应调节的方法 |
CN104378743A (zh) * | 2014-12-05 | 2015-02-25 | 哈尔滨工业大学 | Td-lte脱网下群组组播通信方法 |
US9860084B2 (en) * | 2015-07-29 | 2018-01-02 | Qualcomm Incorporated | Techniques for managing sounding intervals of a wireless communications device |
CN105933968B (zh) * | 2016-04-11 | 2019-12-03 | 珠海全志科技股份有限公司 | 一种无线通讯设备发射功率的自适应方法及其装置 |
CN106385303A (zh) * | 2016-08-30 | 2017-02-08 | 中兴长天信息技术(南昌)有限公司 | 一种用于物联网的lora无线传输系统信息速率自适应调整方法 |
CN106817199A (zh) * | 2017-01-23 | 2017-06-09 | 湖南基石通信技术有限公司 | 一种基于信噪比自平滑的自适应速率方法 |
CN107070599B (zh) * | 2017-04-06 | 2019-11-15 | 中国人民解放军理工大学 | 一种长距离链路变速率选择重传方法 |
CN107231202B (zh) * | 2017-06-28 | 2023-05-16 | 苏州欧普照明有限公司 | 一种LoRa工作模式的切换方法、装置及系统 |
CN108111572B (zh) * | 2017-11-16 | 2021-01-01 | 中国石油天然气集团公司 | 一种数据传输系统及方法 |
CN109905327B (zh) * | 2017-12-11 | 2021-05-07 | 网宿科技股份有限公司 | 一种无线网络数据传输方法、发送端及接收端 |
CN108199892B (zh) * | 2018-01-12 | 2019-11-26 | 电子科技大学 | 基于神经网络的LoRa终端最大发送速率动态预测方法 |
CN108540965B (zh) * | 2018-03-01 | 2021-04-13 | 北京中油瑞飞信息技术有限责任公司 | 基于LoRa技术的物联网通信方法、装置及存储介质 |
CN108650040B (zh) * | 2018-04-26 | 2021-07-30 | 深圳市盛路物联通讯技术有限公司 | 一种射频信号的调整方法及系统 |
CN109462860B (zh) * | 2018-10-26 | 2021-11-12 | 普联技术有限公司 | 吞吐量优化方法、装置、电子设备及计算机可读存储介质 |
CN109561356B (zh) * | 2018-11-08 | 2020-12-18 | 北京达佳互联信息技术有限公司 | 数据发送方法、数据发送装置、电子设备和计算机可读存储介质 |
CN111416688B (zh) * | 2019-01-04 | 2023-06-16 | 阿里巴巴集团控股有限公司 | 控制报文重传的方法、装置、通信设备及系统 |
CN109889237B (zh) * | 2019-03-06 | 2021-03-26 | 常熟市泓博通讯技术股份有限公司 | 基于多天线控制以选择调变编码机制的方法及终端装置 |
CN111262631B (zh) * | 2020-01-17 | 2021-04-06 | 烽火通信科技股份有限公司 | 一种管理信息的处理方法、光模块、onu及其应用系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150501A (zh) * | 2007-10-31 | 2008-03-26 | 广州市新邮通信设备有限公司 | 无线宽带接入网中网络速率自适应调整方法 |
CN101925134A (zh) * | 2010-09-21 | 2010-12-22 | 中南民族大学 | 一种高吞吐量的WLAN Mesh网络速率选择方法 |
US7864678B1 (en) * | 2003-08-12 | 2011-01-04 | Marvell International Ltd. | Rate adaptation in wireless systems |
CN101977097A (zh) * | 2010-11-18 | 2011-02-16 | 天津大学 | 远距离WiFi链路的自适应速率和功率联合调整方法 |
CN102223202A (zh) * | 2010-04-16 | 2011-10-19 | 北京大学 | 无线广播数据包丢失原因检测及速率自适应方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8233434B2 (en) * | 2009-05-01 | 2012-07-31 | Clearwire Ip Holdings Llc | System and method for adaptive control of an averaging parameter for PCINR and RSSI |
-
2014
- 2014-04-01 CN CN201410128453.2A patent/CN104022843B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7864678B1 (en) * | 2003-08-12 | 2011-01-04 | Marvell International Ltd. | Rate adaptation in wireless systems |
CN101150501A (zh) * | 2007-10-31 | 2008-03-26 | 广州市新邮通信设备有限公司 | 无线宽带接入网中网络速率自适应调整方法 |
CN102223202A (zh) * | 2010-04-16 | 2011-10-19 | 北京大学 | 无线广播数据包丢失原因检测及速率自适应方法及系统 |
CN101925134A (zh) * | 2010-09-21 | 2010-12-22 | 中南民族大学 | 一种高吞吐量的WLAN Mesh网络速率选择方法 |
CN101977097A (zh) * | 2010-11-18 | 2011-02-16 | 天津大学 | 远距离WiFi链路的自适应速率和功率联合调整方法 |
Non-Patent Citations (1)
Title |
---|
基于IEEE802.11的长距离无线Mesh网络;赵增华等;《计算机学报》;20120630;第35卷(第6期);第1209-1222页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104022843A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104022843B (zh) | 基于长距离无线网络的自适应数据传输速率调整方法 | |
Nguyen et al. | A practical approach to rate adaptation for multi-antenna systems | |
US8072957B2 (en) | System and method for incorporating dynamic orthogonal frequency-division multiplexing into wireless network protocols | |
CN107078846A (zh) | 无线连接的速率适配算法 | |
Wang et al. | Resource allocation considerations for multi-carrier LTE-Advanced systems operating in backward compatible mode | |
Ravindranath et al. | Performance Evaluation of IEEE 802.11 ac and 802.11 n using NS3 | |
US9571257B2 (en) | System and method for wireless channel assessment | |
CN107104769A (zh) | 用于节点执行信道聚合的方法和网络节点 | |
WO2013138130A1 (en) | Carrier aggregation scheduling based on traffic characteristics and cell characteristics | |
US9730094B2 (en) | Bursty-interference-aware interference management | |
CN103634861B (zh) | 一种小区切换的判断方法及基站 | |
CN109756301A (zh) | 无线通信传输带宽和调制方式的选择方法 | |
US11876635B2 (en) | Selective processing of multicast and broadcast retransmissions | |
Du et al. | SAMU: Design and implementation of selectivity-aware MU-MIMO for wideband WiFi | |
Iosif et al. | Performance analysis of Downlink LTE using system level simulator | |
Lee et al. | BeaconRider: Opportunistic sharing of beacon air-time in densely deployed WLANs | |
Tran et al. | Optimized scheduling algorithm for LTE downlink system | |
Louvros et al. | A semi-analytical macroscopic MAC layer model for LTE uplink | |
Liu et al. | Cooperative MAC for rate adaptive randomized distributed space-time coding | |
CN109076536A (zh) | 用户终端以及无线通信方法 | |
Chang et al. | Adaptive packet scheduling and radio RB allocation for LTE-A toward 5G relaying communications | |
CN106508112B (zh) | 多模式多速率的认知无线电系统中的自适应参数选择方法 | |
Kurniawan et al. | Machine learning-based channel-type identification for IEEE 802.11 ac link adaptation | |
Filin et al. | QoS-guaranteed cross-layer adaptive transmission algorithms with selective ARQ for the IEEE 802.16 OFDMA system | |
Soundararajan et al. | An efficient HARQ retransmission algorithm in OFDMA based wireless networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180105 Termination date: 20210401 |