发明名称 基于长距离无线网络的自适应数据传输速率调整算法
摘要 本发明公开了一种基于长距离无线网络的自适应数据传输速率调整算法,以接收信号强度(RSSI)为依据进行速率选择,快速锁定几个有可能达到最佳吞吐率的MCS,并把这几个MCS的集合称为一个速率集,之后在这个速率集内部进行探测,即可迅速定位到最佳速率。
申请公布号 CN104022843A 申请公布日期 2014.09.03
申请号 CN201410128453.2 申请日期 2014.04.01
申请人 天津大学 发明人 赵增华;张富城;郭少平
分类号 H04L1/00(2006.01)I 主分类号 H04L1/00(2006.01)I
代理机构 天津市北洋有限责任专利代理事务所 12201 代理人 李素兰
主权项 一种基于长距离无线网络的自适应数据传输速率调整算法,其特征在于,该方法包括以下步骤:步骤(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值:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>current</mi><mo>.</mo><mi>rssi</mi><mo>=</mo><mfrac><mn>7</mn><mn>8</mn></mfrac><mi>current</mi><mo>.</mo><mi>rssi</mi><mo>+</mo><mfrac><mn>1</mn><mn>8</mn></mfrac><mi>this</mi><mo>.</mo><mi>rssi</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000485711160000021.GIF" wi="1035" he="129" /></maths>从数据包的controlbuffer域里面得到速率信息,根据从底层得到的聚合帧的子帧数和收到ACK的帧的个数,更新相应发送速率、对应的被正确接收的子帧数和聚合帧中未被正确接收的子帧数的值,用以计算该速率的投递率,计算投递率如公式(3):<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>pdr</mi><mo>=</mo><mfrac><mrow><mi>nframe</mi><mo>.</mo><mi>ok</mi></mrow><mrow><mi>nframe</mi><mo>.</mo><mi>ok</mi><mo>+</mo><mi>nframe</mi><mo>.</mo><mi>bad</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000485711160000022.GIF" wi="855" he="139" /></maths>然后根据当前的速率去速率表查表得到该速率的理论速率,然后乘以这个投递率,得到一个理想的吞吐率,所谓理想是指,该吞吐率忽略了所有的侦听信道、退避,以及等待ACK的时间,即发送方无竞争地源源不断地发送数据包的情况下所得到的吞吐率,计算方法如公式(5)所示:tp=pdr×ratekbps (5)步骤(110):如果一个探测周期结束,则比较各探测参数对应的吞吐率,计算当前的最佳速率;根据最佳速率,同速率集中更大速率(如果存在),同速率集中更小速率(如果存在),同速率更大的帧聚合长度,同速率更小的帧聚合长度这五种参数对应的nframe_ok和nframe_bad。
地址 300072 天津市南开区卫津路72号