1 应用场景
  信道的不对称性和信道的高波动是移动环境中无线信道的两个显著特征。因此,当在车辆网络等移动环境中使用IEEE 802.11设备时,有一个能够处理这些问题的有效速率自适应方案至关重要。RAM采用基于接收机的方法来处理信道不对称性,并采用保守的信噪比预测算法来处理高信道波动。更重要的是,RAM允许接收器通过ACK传输速率的变化以创造性的方式传递反馈信息,这不需要更改设备固件,因此可以在设备驱动程序级别上实现。通过在室内静态和移动环境和室外车辆环境中的实验评价,以及基于从实验中收集到的信噪比轨迹的模拟研究,证明了RAM的有效性。

2 背景
  移动环境中的实用速率自适应主要涉及3个问题:静态统计问题、收发SNR不对称问题和SNR高波动问题。
2.1 静态统计
2.1.1 发送窗口
  发送窗口主要包括2种:时间窗口或报文窗口。
  发送窗口潜在问题:
  1、窗口时效性问题。即当前窗口统计过时数据,不是实时性数据。
  2、窗口大小(时间)问题。即窗口过大,很多数据已淘汰,不具有参考性,影响采样准确性;窗口过小,采样数据量不充分,影响算法准确度。
2.1.2 速率自适应
  速率自适应主要依据连续传输成功和失败报文数量。例如连续10个发送成功之后,增加发送速率;连续2个传输失败,降低发送速度。
  速率自适应潜在问题:
  1、增加速率采样方案过于保守,不利于速率快速恢复,无法充分利用网络带宽,不适应高带宽场景。
  2、降低速率采样方案过于激进,不利于带宽充分利用,无法充分利用网络带宽,不适应高传输场景。

2.2 SNR不对称性
  信道对称是现有自适应算法前提之一,例如CHARM和SGRA算法等。收发SNR不对称问题存在实际各个场景。
2.2.1 室内
  主要包括2种场景:静态实验和动态实验。

2.2.2 室外
  主要包括2种场景:静态实验和动态实验。

2.3 SNR波动性
2.3.1 实验数据

2.3.2 遗留问题
  移动场景下,SNR变化特点:
  1、受环境影响,变化具有瞬时性。
  2、暂时无好的算法处理SNR瞬时问题。

3 RAM算法
3.1 架构

3.2 原理
3.2.1 方案
3.2.1.1 基于接收机
  RAM是一种实用的基于接收机的方案和可以直接使用商用802.11设备实现。RAM以可控的方式改变ACK的传输速率指示下一帧的速率选择决定传输。
  802.11标准规定,ACK帧应在基本速率集中的最高速率传输,小于或等于它所承认的数据帧的传输速率。我们称这种ACK传输速率为默认的ACK速率。
  RAM利用ACK传输速率的变化隐式地传递反馈信息。具体地说,如果接收机想要通知发射机以与先前成功传输的帧相同的速率或以下一个更高的速率传输下一帧,那么它将分别以默认的高速率或低速率传输ACK帧。
3.2.1.2 基于信噪比
  RAM是基于信噪比的,而不是基于数据包统计数据的。信噪比是对信道条件的直接度量,即使当信道条件频繁波动,RAM也表现良好。
3.2.1.3 信噪比预测算法
  RAM采用了一种保守的信噪比预测算法来处理高信噪比波动。RAM试图尽可能准确地预测未来的信噪比值,而不高估它们。
3.2.1.4 自适应RTS
  RAM使用自适应RTS来处理隐藏的节点。在RAM中,我们提出了一种新的自适应RTS方法,它使用RTS窗口来调节RTS帧的使用。与现有速率适应方案中使用的其他自适应RTS方法相比,我们的方法设计基于对所有可能的传输结果的彻底检查,并及时更新RTS窗口。
3.2.2 方法
3.2.2.1 SNR预测
  一个简单的保守信噪比预测算法,保持了信噪比值的移动平均值和对平均信噪比值的偏差。
    Savg =(1−δ)·Savg + δ·Scurr,
    DEVavg =(1−ρ)·DEVavg + ρ·|Scurr−Savg |,
  预测下一帧的信噪比值为:
    Sest = Savg−η·DEVavg
  说明:δ = ρ = 0.1,η = 1。
  优点:
  1、参考TCP/IP协议Jacobson/Karels算法原理。
  2、解决Scurr不被感知问题,考虑Scurr方差。方差较小,Sest 接近Savg;方差较大,导致DEVavg 主导计算。
  缺点:
  1、无法区分传输失败类型。即在成功接收帧之前,每个不成功的传输尝试(如果有的话)都有两种可能的结果:帧被损坏或者帧完全丢失。
3.2.2.2 速率选择
  为了下一个帧传输选择适当的速率以最大限度地提高吞吐量,RAM维护一个吞吐量vs-(速率,信噪比)表。对于表中的每一对(速率= R,信噪比= S),我们使用G(R,S)来表示帧以速率R传输时的预期吞吐量,其在接收端的信噪比为S,可以计算为:
    G(R, S) = L(R, S) / T(R, S),
  根据预测的信噪比值(Sest),接收机查找表,并选择下一帧传输的速率如下:
    R = argmaxG(R, S)
  说明:L (R、S)和T (R、S)以速率R和信噪比为S成功接收的数据总量和帧总传输时间。
  优点:
  1、表项实时性好,即每个成功接收的数据帧上更新。
  2、查表法简单快捷。

  缺点:
  1、受表项数目限制,可选择性少。
  2、表项特点,不能很好体现真实情况。

RAM算法原理的更多相关文章

  1. MySQL索引背后的数据结构及算法原理【转】

    本文来自:张洋的MySQL索引背后的数据结构及算法原理 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持 ...

  2. MySQL 索引背后的数据结构及算法原理

    本文转载自http://blog.jobbole.com/24006/ 摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引 ...

  3. MySQL索引背后的数据结构及算法原理 (转)

    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...

  4. MySQL(二)索引背后的数据结构及算法原理

    本文转载自CodingLabs,原文链接 MySQL索引背后的数据结构及算法原理 目录 摘要 一.数据结构及算法基础 1. 索引的本质 2. B-Tree和B+Tree 3. 为什么使用B-Tree( ...

  5. CodingLabs - MySQL索引背后的数据结构及算法原理

    原文:CodingLabs - MySQL索引背后的数据结构及算法原理 首页 | 标签 | 关于我 | +订阅 | 微博 MySQL索引背后的数据结构及算法原理 作者 张洋 | 发布于 2011-10 ...

  6. Bagging与随机森林算法原理小结

    在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ...

  7. RSA算法原理

    一直以来对linux中的ssh认证.SSL.TLS这些安全认证似懂非懂的.看到阮一峰博客中对RSA算法的原理做了非常详细的解释,看完之后茅塞顿开,关于RSA的相关文章如下 RSA算法原理(一) RSA ...

  8. LruCache算法原理及实现

    LruCache算法原理及实现 LruCache算法原理 LRU为Least Recently Used的缩写,意思也就是近期最少使用算法.LruCache将LinkedHashMap的顺序设置为LR ...

  9. OpenGL学习进程(13)第十课:基本图形的底层实现及算法原理

        本节介绍OpenGL中绘制直线.圆.椭圆,多边形的算法原理.     (1)绘制任意方向(任意斜率)的直线: 1)中点画线法: 中点画线法的算法原理不做介绍,但这里用到最基本的画0<=k ...

  10. 支持向量机原理(四)SMO算法原理

    支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五) ...

随机推荐

  1. SpringBoot 自动装配原理

    早期的Spring项目需要添加需要配置繁琐的xml,比如MVC.事务.数据库连接等繁琐的配置.Spring Boot的出现就无需这些繁琐的配置,因为Spring Boot基于约定大于配置的理念,在项目 ...

  2. 最长不下降子序列(线段树优化dp)

    最长不下降子序列 题目大意: 给定一个长度为 N 的整数序列:A\(_{1}\),A\(_{2}\),⋅⋅⋅,A\(_{N}\). 现在你有一次机会,将其中连续的 K 个数修改成任意一个相同值. 请你 ...

  3. django-environ学习

    官方说明:https://django-environ.readthedocs.io/en/latest/index.html install pip install django-environ q ...

  4. Oracle生成awr报告操作步骤介绍

    AWR全称Automatic Workload Repository,自动负载信息库,是Oracle 10g版本后推出的一种性能收集和分析工具,提供了一个时间段内整个系统的报表数据.通过AWR报告,可 ...

  5. elasticsearch聚合之bucket terms聚合

    目录 1. 背景 2. 前置条件 2.1 创建索引 2.2 准备数据 3. 各种聚合 3.1 统计人数最多的2个省 3.1.1 dsl 3.1.2 运行结果 3.2 统计人数最少的2个省 3.2.1 ...

  6. i春秋破译

    点开题目就是一段密文 TW5650Y - 0TS UZ50S S0V LZW UZ50WKW 9505KL4G 1X WVMUSL510 S001M0UWV 910VSG S0 WFLW0K510 1 ...

  7. 软件开发目录规范、python常用内置模块

    编程思想的转变 1.面条版阶段 所有的代码全部堆叠在一起.可以看成是直接将所有的数据放在C盘        视频.音频.文本.图片 2.函数版阶段 根据功能的不同封装不同的函数.可以看成是将C盘下的数 ...

  8. 红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础数据类型(data types)EP02

    Ruby是强类型动态语言,即Ruby中一旦某一个对象被定义类型,如果不通过强制转换操作,那么它永远就是该数据类型,并且只有在Ruby解释器运行时才会检测对象数据类型,它的一切皆为对象(包括 nil 值 ...

  9. LFU 的设计与实现

    LFU 的设计与实现 作者:Grey 原文地址: 博客园:LFU 的设计与实现 CSDN:LFU 的设计与实现 题目描述 LFU(least frequently used).即最不经常使用页置换算法 ...

  10. 【Java技术专题】「原理专题」深入分析Java中finalize方法的作用和底层原理

    finalize方法是什么 finalize方法是Object的protected方法,Object的子类们可以覆盖该方法以实现资源清理工作,GC在首次回收对象之前调用该方法. finalize方法与 ...