4 TDMA调度者

  TDMA调度者为Fit-TDMA的决策功能体,属于新开发功能模块,分调度员和被调度者2种角色,其中前者运行在AP等汇聚设备上,后者运行在CPE等接入类设备上;后者必须与前者配合才能工作,而前者可以无需后者独立运行。

  TDMA调度者适宜作为UMAC模块的的一个子功能,LMAC层通过sc的函数指针调用TDMA功能。这样实现可以简化难度、提高能效,同时也不破坏现有的驱动架构。

4.1  状态机

  TDMA调度功能需要保存各终端或自己的当前状态,不同状态侦听不同的事件,可以执行不同的行为,因此,需要引入FSM机制。具体的,AP侧的FSM描述如下:

  一共有3种状态:等待、活动和下线状态。等待状态的终端,可以别调度到活动状态,从而允许将报文发送到该终端;同时,活动状态的终端在不同事件后,可变更为等待状态或下线状态。处于下线状态的终端,不会被调度。下线状态主要用于LMAC层直接丢弃报文、以及TDMA调度模块无需频繁删除和生产终端节点。

  CPE端的状态机描述如下:

  同样地,CPE侧也包含3种状态:等待、活动和下线状态。显然地,只有处于活动状态,CPE才能向AP发送数据报文;在转换为离线状态后,LMAC层可以将预期发送次数超过阈值的数据报文丢弃掉,也可以将全部数据报文都直接丢弃。

4.2 核心数据结构

TDMA调度员和被调度者的核心数据结构是不区分的,具体描述如下:

  TDMA的核心就是发送调度,因此调度相关的逻辑结构是最核心的数据结构。在Fit TDMA中,调度链共有5级,其中1级为基础数据级,STA的信息均包含在此链上,为了提高增删效率,采用双向链结构;第2级到第5级链的节点均包含了指向基数数据的指针,采用单向链结构,因为针对此类链的变更操作不是特别频繁。调度时,针对每个调度链,均是从头调度到尾,然后在从更高一级的链头开始调度;在L5链调度完毕后,再转Sta链头。这样可实现:所有节点均能被调度到,且发送速率更快的节点,可以获得更多的调度机会。Hash表主要用于查找,查找功能用得非常多,而链表的查找效率低,所以增加HASH表来提升查找速率。LMAC在ath_txq_schedule中需要查询报文目的节点的状态、在数据报文发送成功后更新该节点的发送速率等,均用到了查询。

  关于定时器,AP端和CPE端是不同的,AP端只有一个主定时时间间隔,就是为所有的终端一次调度,均分配4ms时间片,超过此时间片后,定时操作函数会立即调度下一个终端;而CPE的定时时间间隔至少有2个,长时间和短时间。长时间用于等待状态,因为无法预知活动令牌指示何时到达、或者就是活动令牌指示会未收到但又收到了AP的数据报文,所以,在等待状态下,还需要定时来触发检测工作;短时间周期主要用于活动态,它的主要作用就是向AP发送返回令牌,同时让自己进入等待状态。

5 Fit TDMA效果

  在开放环境下,基于QCA9342  HT20模式,每终端跑4条流,启用Fit TDMA功能后,ping 包时延会由1ms增加到5ms左右,单台CPE或网卡的吞吐量依旧是93Mbps左右,上下行差距不到1M;2台终端时,吞吐量与1台终端相同;10台终端时,总吞吐量降低到90Mpbs;20台终端时,总吞吐量降低到88Mbps;32台终端时,总吞吐量降低到84Mbps左右。而如果关闭Fit TDMA功能后,32台终端的总吞吐量不超过75Mbps。因此,启用Fit TDMA在多用户场景下确实有明显地效果。

  进一步地,人工造异常,在10台终端模式下,让其中的2台终端摘去天线,并用金属板盖住,但同时又保证它能有1-2M的流量。此时,其它8台终端的流量还能各自维持在8.5M左右,不会越跑越慢;而一旦关闭Fit TDMA,则整体吞吐量会越来越慢,低速终端拖慢全局流量效果非常明显。

6 其它

  在ath_txq_schedule以及HASH查询中,每增加一条printk打印,ping包时延会增加2-3ms,故在调试完毕后,请立即关闭此类打印;ah_txq_schedule是带锁运行的,不要在类函数中调用其他带锁运行的函数,除非你能确认不会死锁;最好不要在现有发送流程中再次增加需要调度的报文。

  CPE在启用Fit TDMA后,未收到AP的活动令牌通知消息时,是不能向AP发送数据报文的。故最好遵循:1)AP侧将新节点插入到活动调度指针的后边,这样保证它会被立即调度,从而能加快DHCP过程;2)CPE侧在确认对端AP是支持Fit TDMA后,才是能TDMA。

  在安全性上,为了防止恶意第3方,AP的Fit TDMA支持信元应与AP和CPE的MAC地址相关,CPE在收到该信元后,基于AP和CPE的MAC地址,利用同样的算法,确认信元真实可靠,才能开启Fit TDMA。

一起来Fit TDMA over WiFi(3)的更多相关文章

  1. 一起来Fit TDMA over WiFi(1)

    1 概述 WiFI TDMA领域,2009年Sam  Leffler在<TDMA for Long Distance Wireless Networks>首次系统提出了TDMA技术方案,并 ...

  2. 一起来Fit TDMA over WiFi(2)

    3 收发流程分析与改进 收发流程分析涉及到具体代码,属于SDK驱动内容,不能完全公开,仅供参考,本系列文档中涉及到具体功能或代码时,请在自己的驱动代码中查找. QCA驱动从9.5开始,将原来的htc的 ...

  3. TDMA over WiFi

    0 引言 TDMA可以修正WiFi中DCF机制中连接速率不同终端间信道占用时间片公平性缺陷,从而提升整体WiFi网络的性能.著名的UBNT的网桥就用其独创的TDMA技术为其赢得了市场.以前是不同的公司 ...

  4. 【转】WiFi基础知识

    http://blog.csdn.net/myarrow/article/details/7930131 1. IE802.11简介 标准号 IEEE 802.11b IEEE 802.11a IEE ...

  5. 【转】家庭wifi覆盖指导

    网址:家庭wifi覆盖指导 私以为,目前民用 wifi 路由器市场已经完全走上了邪路.天线越来越大,发射功率越做越高.都敢冒着法律的风险使用大大超过 100mW 的发射功率了.且不论巨大的发射功率可能 ...

  6. WiFi基本知识

    转自:http://blog.csdn.net/myarrow/article/details/7930131 1. IE802.11简介 标准号 IEEE 802.11b IEEE 802.11a ...

  7. Wifi长距离传输

    本人从事Linux驱动开发.现在要实现两端之间wifi长距离(1km左右)传输视频数据(全向天线)的功能.目前用的平台是Atheros AR9342.我在网上查到一些资料是关于禁用802.11的CSM ...

  8. WiFi基本知识【转】

    转自:http://blog.csdn.net/myarrow/article/details/7930131 1. IE802.11简介 标准号 IEEE 802.11b IEEE 802.11a ...

  9. 深度点评五种常见WiFi搭建方案

    总结十年无线搭建经验,针对企业常见的五种办公室无线网络方案做个简要分析,各种方案有何优劣,又适用于那种类型的企业. 方案一:仅路由器或AP覆盖 简述:使用路由器或AP覆盖多个无线盲区,多个AP的部署实 ...

随机推荐

  1. java关于for循环。

    众所周知,JAVA中for循环的基本格式为: for(初始化表达式:布尔表达式:循环后更新表达式){循环体} 举个例子来说可以写成 (1)for (int x=1;x<10;x++){ Syst ...

  2. 自主学习之RxSwift(一) -----Driver

    对于RxSwift,我也是初学者,此系列来记录我学习RxSwift的历程! (一) 想必关于Drive大家一定在RxSwift的Demo中看到过,也一定有些不解,抱着一起学习的态度,来了解一下Driv ...

  3. 微信支付get_brand_wcpay_request:fail

    最近做了微信支付功能,和后端一起踩坑中,微信一直报错:get_brand_wcpay_request:fail 出现该问题的原因: 1.生成的sign签名有问题 2.支付授权目录配置有问题 在经过仔细 ...

  4. python 面向对象之继承与派生

    一:初识继承 1,什么是继承? 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在python中,新建的类 ...

  5. nyoj 移位密码

    移位密码 时间限制:1000 ms  |  内存限制:65535 KB 难度:0   描述 移位密码是最简单的一类代替密码,具体算法就是将字母表的字母右移k个位置(k<26),并对字母表长度作模 ...

  6. JS 实现MVC的写法

    案例:当select 下拉选择框值变化时,显示其值(不是文本) 常规写法 <h3>JavaScript no MVC</h3>  <div>   <selec ...

  7. tomca配置文件自动还原问题的解决 server.xml content.xml 等

    当我们在处理中文乱码或是配置数据源时,我们要修改Tomcat下的server.xml和content.xml文件. 但是当我们修改完后重启Tomcat服务器时发现xml文件又被还原了,修改无效果. 为 ...

  8. hadoop2.6.0实践:A01 问题处理 DEPRECATED: Use of this script to execute hdfs command is deprecated.

    [hadoop@hadoop-master data]$ hadoop dfs -ls /DEPRECATED: Use of this script to execute hdfs command ...

  9. SpringBoot(四):banner的控制

    banner在springboot中是一个支持可配(banner的样式,banner的颜色,banner的内容).是否显示. 1)banner显示内容配置: 默认springboot如果在src/re ...

  10. 00-翻译IdentityServer4的目的

    强迫自己阅读英文文档 加深IdentityServer4的概念认识