面向实时WiFi的基于信道统计信息的速率自适应方法与流程

文档序号:12967390阅读:993来源:国知局
本发明涉及无线通信传输技术,尤其涉及一种在tdma链路调度的实时数据传输的基础上,基于信道信息统计的速率自适应方法,采用tdma实时链路调度,根据具体应用和不同的信道条件快速获得最佳发送速率,提高无线链路的吞吐量。
背景技术
::无线网络技术已因其移动性的巨大优势,更容易部署以及减少维护和配置成本。但是现有的csma/ca机制,不确定的延迟不能够提供实时可靠的数据包交付,而且多数情况下信道条件处在不停的动态变化。如何提供可预测的数据包交互,缩小请求的延时,并且及时的调整数据发送速率来减少对系统性能的影响,根本的问题是链路调度不可控和无线信道遭受不受控制的干扰,由于流动性,干扰和来自隐藏站的争夺,导致吞吐量的性能比较差。如何根据具体应用,控制链路调度和感知信道条件快速获得发送速率成为研究的焦点。tdma链路调度为每个站分配固定的请求和响应时间,速率适应(ra)是802.11设备基础资源的管理问题,它的目标是在不同的环境下优化无线链路吞吐量。默认的内核minstrel采用csma/ca,在干扰较少,信道条件较好或者信道条件变化缓慢的情况下能够拥有最佳的表现,在信道条件快速变化的时候的表现却极具降低,本发明基于这些缺陷,对默认的链路调度和速率适应方法进行了改进。高速无线网络要求一个有效控制机制优化实时的链路调度和基于时变信道条件的速率选择。在一些文献中,有一些ra算法专为最近的标准而设计。但是,其中许多实施和测试仅使用网络模拟器ns-2进行测试。此外,目前这些提出的ra算法没有在实践中使用现有设备驱动,因为他们需要修改ieee802.11标准。技术实现要素:本发明的目的在于针对现在的研究热点——一种在实时数据传输的基础上,如何快速获得适合信道质量的发送速率、减少探测时间、提高无线链路的吞吐量,提出一种在tdma链路调度的实时数据传输的基础上,基于信道信息统计的速率自适应方法。本发明的目的是通过以下技术方案来实现的:一种面向实时wifi的基于信道统计信息的速率自适应方法,包括以下步骤:第一步:关闭csma/ca;第二步:在ath9k中构建tdma链路调度组件,分别为用于触发链路调度的定时器模块、用于对接入的站安排调度顺序的链路调度模块、用于管理接入的站的信道接入控制模块。进入第三步;第三步:构建链路调度超帧,为每个站分配上行和下行链路调度,在每次调度轮循的开始,在第一个时隙ap发送信标帧,用于全局时间同步;前三步作为tdma链路调度,下面开始发送数据包速率的选择;第四步:初始化二维速率探测表。对速率的管理通过速率组来实现,mcs_group是一个根据mcs(调制与编码策略)组成的长度为8的数组;rate_group是一个长度为8的数组,按配置顺序分别是:组号空间流数是否支持sgi20mhz/40mhz01否2012否2021是2032是2041否4052否4061是4072是40这样,就组成了二维速率探测表rateprobetable[mcs_group][rate_group];当需要探测的时候,从rateprobetable选择需要探测的速率;第五步:如果本次发送不需要接收ack,为了确保数据包尽可能被对方接收,那么直接用传统速率来发送,不给它分配mcs速率;否则执行第六步;第六步:初始化参数。调用minstrel_ht_rate_init函数,对各个速率的参数初始化,参数包括吞吐率、投递率、吞吐率与投递率的加权平均;将所有速率的参数均初始化为0;第七步:探测频率。发送方有两种状态,发送状态和探测状态;通过定时器触发探测事件,probe_interval为探测间隔,timeevent为触发探测的计时器,探测间隔计时器减少到0时,执行第八步;第八步:探测速率的选择。在探测阶段,发送方设置两个连续的探测序列进入probe状态,第一个序列被用于探测当前使用的空间流,其中数据的10%是在与max_tp_rate同一个mcs组的两个相邻速率发送的。因此多速率重试序列r1=up_probe()、r2=max_tp_rate、r3=down_probe();第二序列中的探测是基于目前使用的流的数量,10%的数据包在另一个窗口被发送在其他候选的速率;如果发送方只有一个空间流,向右进行高速率探测,调用的函数是right_probe()和right_down_probe();否则,对于其它情况向左进行低速率探测,调用的函数是left_probe()和left_up_probe();在探测期间,max_tp_rate保持在多速率重试序列中。在这两个探针序列之后,发送者返回tx(发送)状态。每个速率发送完后调用minstrel_ht_update_caps()函数,对速率参数进行更新,对所有探测的五个速率的表现(吞吐率与投递率的加权平均)进行评估,得到最佳速率在二维速率探测表中的索引sample_idx;然后执行第十步;第九步:发送完后更新速率状态。聚合帧发送完之后,根据收到的ack确认帧调用minstrel_ht_rate_status函数,来计算mrr(多速率重传)中每个速率发送的次数ci和最终发送成功的速率的sample_idx;针对每个mrr速率,发送后调用minstrel_ht_update_caps更新每个速率的吞吐率、投递率、吞吐率与投递率的加权平均;第十步:发送速率的选择。在第六步获得成功发送速率的sample_idx,用这个速率与当前吞吐率最高的速率max_tp_rate进行比较,如果sample_idx速率大于max_tp_rate,sample_idx速率就会成为当前新的吞吐率最高的速率max_tp_rate,也就是当前的发送速率,否则max_tp_rate不变;然后执行第七步到第十步。本发明的有益效果是:本发明设计了一种在tdma链路调度的实时数据传输的基础上,基于信道信息统计的wlan速率自适应方法。这是在实时数据传输的基础上,随着无线信道条件的变化的自调整和快速响应。它是一个开环ra的算法,不需要来自接收器的任何显式反馈,而仅监视二进制ack(隐式反馈)。每个站的调度都有固定的时间,在快速变化的信道条件下,能够快速的探测到合适的发送速率,从而减少探测时间,提高了网络的吞吐量(或延迟)性能。附图说明图1:tdma链路调度模块;图2:本发明速率调节示意图;图3:不同的探测方向;图4:发送方的传输状态;图5:两种速率适应算法性能上的比较;图6:网络拓扑实验模型;具体实施方式为了让本发明的上述和其他目的、特征和优点更加明显,下文将作进一步详细的说明。如图1所示,tdma链路调度组件主要有三大模块,信道接入控制模块用于接入的站,通过hostapd来释放wifi信号,isc-dhcp-server对接入的站分配ip地址;站连接成功后,信道接入控制模块就会构建新的超帧;链路调度模块是控制对超帧中的站的调度顺序,调度完毕后在进行一次新的循环;定时器模块用于触发每个时隙的开始;一个超帧有很多时隙组成,在每一次轮询的开始,第一个时隙为ap发送信标帧,用于全局时间上的同步,如表1所示。表1有7个时隙例子的一个超帧如图2所示,对速率的管理通过速率组来实现,mcs_group是一个根据mcs(调制与编码策略)组成的长度为8的数组;rate_group是一个长度为8的数组,按配置顺序分别是:组号空间流数是否支持sgi20mhz/40mhz01否2012否2021是2032是2041否4052否4061是4072是40这样,就组成了二维速率探测表rateprobetable[mcs_group][rate_group];当需要探测的时候,从rateprobetable选择需要探测的速率。在目标站点不存在,或者本次发送不需要等待ack的时候,为了确保数据包尽可能被对方正确接收,那么会直接用传统速率来发送,不给它分配mcs(调制与编码策略)速率。本实施例算法采用‘s’型的速率调节方式,如图2,通过不断地在子集间和子集内来回切换搜索,选择出最佳的发送速率以获得吞吐量性能的最大化,当无线信道状况发生变化时,首先选择在同一个速率子集内进行向上/向下搜索,直到取得该区间内吞吐率性能的最大值;然后选择向右/向左切换到不同的速率子集进行搜索,判断是否存在更高吞吐率性能的发送速率;如图3所示,速率选择由get_rate()功能控制,它决定了新的发送数据包的速率ri及其相应的重试次数ci。采用长期统计和短期统计相结合的方式,长期统计根据一段时间内对数据帧的发送状态的统计来决定当前发送速率维持的时间及其如何对速率的更换和探测,短期统计采用多速率重试机制。在每一轮的开始,发送方是处于tx状态并以max_tp_rate发送数据。同时,发送方观察当前速率的传输结果。一段时间后,发送者设置两个连续的探测序列进入probe状态,但是max_tp_rate没有改变。同样地,它一直在观察候选速率中探测结果。第一个序列被用于探测当前使用的空间流,其中数据的10%是在长期速率的两个相邻速率发送的。因此多速率重试系列,r1=up_probe(),r2=max_tp_rate而r3=down_probe()。第二序列中的探测是基于目前使用的流的数量,10%的数据包在另一个窗口被发送在其他候选的速率;如果发送方只有一个空间流,向右进行高速率探测,调用的函数是right_probe()和right_down_probe();否则,对于其它情况向左进行低速率探测,调用的函数是left_probe()和left_up_probe();每个速率发送完后调用minstrel_ht_update_caps()函数,对速率参数进行更新,对所有探测的五个速率的表现(吞吐率与投递率的加权平均)进行评估,得到最佳速率在二维速率探测表中的索引sample_idx;长期传输速率调整后,下一个探测时间probe_interval设置为默认周期60ms。下一个探测期的触发是根据当前的信道特性的动态变化。发送方在minstrel_ht_update_caps()中更新统计传输信息。帧传输后,返回的硬件描述符中的状是成功或重试,用于决定下一个探测什么时候将被触发。注意传输成功的状态并不一定意味着第一次尝试是成功的,可能几次重试后成功传送。该重试状态表示尝试失败。如图4所示,本实施例中,发送方有两种状态,即tx状态和probe状态。在每一轮中,发送方周期性地移动在这两种状态之间以及不断地更新相关统计。发送方调整长期mcs,两个时期的统计重置,这意味着开始一个新的回合。如图5所示,本实施例在有无线干扰的实验室进行了性能验证,基于不同的信道条件,把本发明与内核默认的minstrel算法进行了性能上的比较。在实验中使用以下设置和参数。我们使用intelcorei3的cpu和内核版本为3.11.0-15的ubuntu12.04操作系统,我们部署一个ap在带有英特尔酷睿i32320mcpu的笔记本电脑上,其它4个ubuntu系统的笔记本作为站。每个节点配备atheros无线网卡,如图6所示。本发明不仅局限于上述具体实施方式,本领域一般技术人员根据本发明公开的内容,可以采用其它多种具体实施方案实施本发明。因此,凡是采用本发明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1