省电模式

  • 省电模式:Power Saving Mode(PS),STA进入睡眠,即通过关闭收发器(transceiver)进入省电模式,节省电力。
  • STA在睡眠的期间还是可以继续发送数据的。
  • 当STA主动发送数据的时候,它会等待回复,这时接收器是处于打开的状态。
  • 不同状态,设备电源消耗状态如下:

Infrastructure BSS(基础型网络)电源管理

  • STA在进入睡眠前,会给AP发送一个特殊的帧,告诉AP要进入睡眠了,AP通过该帧来记录该STA进入睡眠。

单播帧

缓存单播帧
  • 当STA处于唤醒状态时,AP将帧传送至STA;当STA进入睡眠状态后,AP会将发送给该STA的帧缓存起来。
  • 当有帧被暂存时,Beacon帧的TIM 信息元素中与STA关联的位会被置为1。
  • 数据待传指示信息 (Traffic Indication Map,TIM):由2008个位元构成的虚拟位元对映表,每个位元均会映射到STA的连接识别码AID(Association ID),作为帧与目的地之间的逻辑链路;当特定AID相应的位元被置位,代表AP为该AID 所对映的STA暂存了单点传播帧。

获取单播帧
  • STA通过聆听Beacon 帧并检查TIM,来判定是否有自己的缓存帧。
  • 监听间隔(Listen Interval),表示STA休眠几个Beacon 周期后醒来接收经Beacon帧,然后查询TIM,确认是否有缓存的帧。
  • STA通过PS-Poll 控制帧,获取基站所暂存的帧。每个PS-Poll 帧只用于获取一个暂存帧。帧从暂存区被移除之前,必须得到STA的回应。
  • 如果缓存帧不止一个,Frame Control 字段的More Data位元就会设置为1。STA可根据此位发送额外的PS-Poll 要求给AP,直到More Data 位元变为0。
  • 工作站传送PS-Poll后,必须保持清醒,直到整个传输完成,或TIM中相应的位元已被清除。

单播缓存帧的获取流程
  1. 第一个Beacon间隔区间,只有STA 1 的缓存帧。STA 并无帧缓存,因此可以立即返回休眠状态。
  2. 第二个Beacon间隔区间,AP同时存在给STA 1及STA 2 的缓存帧,不过此时只有STA 1 唤醒监听TIM。
    STA 1 发出PS-Poll 帧并且收到缓存帧,接著STA 1 返回休眠状态。
  3. 第三个Beacon间隔区间,STA 1 与STA 2 皆处在休眠状态。
  4. 第四个Beacon间隔区间,STA 1 与STA 2 皆唤醒监听TIM,AP同时存在给STA 1 及STA 2 的缓存帧。
    在竞争窗口(contention window,CW)中,STA 1 先取得信道使用权,所以先发出PS-Poll,并且收到AP为它所缓存的帧。
    如果在帧传送之后,如果信道一直繁忙,那么STA 2 必须一直保持清醒,直到下一个TIM 到来。
  5. 如果AP此时用尽缓存空间,则会丢弃为STA 2 缓存的帧。
  6. 第五个Beacon帧的TIM 会显示并无缓存帧,此时STA 2 可以返回省电模式。

广播帧和组播帧

缓存广播和组播帧
  • 广播帧与组播帧是通过AID 0 加以储存;AP会将Beacon帧的TIM 的第一个位元设置为0,代表有广播或组播帧暂存。

  • 每经过若干个Beacon interval,AP就会传送一个特殊的TIM,称为数据待传指示传递信息(Delivery Traffic Indication Map,DTIM),一般为300ms。
    Beacon 帧中的TIM 元素包含了计数器,用于计算下一个DTIM 来临;AP每发送一个Beacon,DTIM将减少1,在DTIM 帧中,此计数器值为0。

  • STA睡眠期间,会不时唤醒,查看Beacon帧中的DTIM值。当STA发现其DTIM值变成0的时候,醒来时间会长一些,看看有没广播的数据。

  • 经暂存的广播与组播数据会在DTIM Beacon 之后加以传送。
    如有多个暂存帧,则会依序加以传送,Frame Control 字段中的More Data 位元被置位,用以指示是否尚有其他帧待传。

  • DTIM越高 - STA睡眠时间长,省电,实时性差。DTIM越低 - STA睡眠时间短,不省电,实时性高。

广播组播缓存帧的获取流程
  1. AP的DTIM interval被设为3,即每隔两个TIM 就会有一个DTIM。
  2. 每当发送DTIM 帧后,就会传送缓存的广播与组播帧,然后STA通过PS-Poll 帧获取单播帧。
  3. STA的监听间隔(Listen Interval),表示STA休眠几个Beacon 周期,监听间隔长可以节省电量,但也会消耗AP的缓存空间。
    假设STA 1 处于休眠模式,其监听间隔为3,每三个Beacon 周期,STA 1 就会醒来接收经缓存的广播与组播帧。
  4. 在第二个Beacon间隔区间,缓存区中只有广播与组播帧,这些帧在DTIM后会被传送到BSS。
  5. 在第五个Beacon间隔区间,STA 1 还有一个缓存的单播帧。STA 1等到缓存的广播/组播帧传送完毕后,再发送PS-Poll 信息。

IBSS (独立型网络)电源管理

  • 在IBSS网络中,STA使用数据待传指示通知信息(Announcement Traffic Indication Messages, ATIM) 和 特设数据待传指示信息(Ad hoc Traffic Indication Message),强迫其他STA保持清醒。
  • 在同一个IBSS 当中,所有STA都必须在Beacon 传送后的特定期间内监听ATIM 帧。
  • 如果某个STA为另一个STA缓存帧,它可以发送ATIM 来通知对方;没有收到ATIM 帧的STA可以进入省电模式。
  • 信标信息之后的一段时间窗口(time window)称为ATIM 期间(ATIM window);在ATIM 期间,任何工作站都不允许关闭其无线收发器。

Wi-Fi 电源管理相关推荐

  1. 关闭linux服务器电源,linux关闭ACPI电源管理模块

    一.运行环境 # cat /etc/redhat-release CentOS release 6.2 (Final) # uname -a Linux web-server- 2.6.-.el6.x ...

  2. linux pcie热插拔驱动_Linux安装TLP-高级电源管理工具

    唉,最近有了一个新问题.系统版本Ubuntu 18.04,笔记本,一旦断开电源,电脑就会卡住.试过的方法: 更新了固件 sudo apt update sudo apt upgrade -y 管了几天 ...

  3. 时钟,复位和电源管理

    文章目录 一.电源管理和复位 二.时钟 1.时钟的分类和特性 2.时钟图 杨桃32学习笔记,本文图片文字皆为转述 一.电源管理和复位 (1)8MHZ的振荡器给arm内核提供,40khz给RTC使用也就 ...

  4. Freescale 基于IMX536处理器的Dialog DA9053电源管理参考设计

    Freescale 基于IMX536处理器的Dialog DA9053电源管理参考设计 ----------墨翟科技(上海)有限公司编撰 在2012年飞思卡尔技术论坛中国站的展示区,Dialog公司推 ...

  5. android电源驱动程序,[转]Android虚拟电源管理驱动

    Android系统如果没有电源管理相关的驱动程序,在启动时将会提示如下错误: I/SystemServer(   50): Starting Battery Service. E/BatterySer ...

  6. IC基础知识(4)电源管理简介:稳压器IC

    文章目录 写在前面 正文 线性与开关 线性稳压器 开关稳压器 其他类型的功率IC 结论 写在前面 原文链接:Introduction to Power Management: Voltage Regu ...

  7. FPGA内部电源管理详解

    做了这么长时间的FPGA的设计,也看了很多这方面的书籍资料,不管是编程还是调试,一直都只在关心有没有实现功能,没有去深入理解FFPGA的内部结构,接下来这几篇文章将着重分析FPGA设计的各个部分细节. ...

  8. 服务器电源管理(Power Management States)

    目录 文章目录 目录 EIST(智能降频技术) 硬件 固件 操作系统 EIST(智能降频技术) EIST 能够根据不同的 OS(操作系统)工作量自动调节 CPU 的电压和频率,以减少耗电量和发热量.它 ...

  9. 组策略之(5)-------电源管理设置

    现在都是倡导绿色节能,我们做IT的也不能落后啊,哈哈. 好多职员不在座位上,或者休息时,甚至下班后都不会关闭显示器,这样是很浪费的哦,所以我们要在电源管理进行设置,今天就通过组策略进行电源管理设置. ...

  10. android 电源管理 关闭屏幕,Android之PowerManager电源管理

    翻译来源PowerManager 这个类让你拥有控制设备状态的权利. 使用这个api类会很明显地影响设备电量的使用时长.除非你确实需要PowerManager.WakeLock否则不要轻易使用它们,并 ...

最新文章

  1. 十八岁华裔天才携手「量子计算先驱」再次颠覆量子计算
  2. c++ double free or corruption (!prev)
  3. 怎样获取网站的域名_深入挖掘同行,厉害的人是怎样做的?
  4. 开源在线机器学习Online Learning/Incremental Learning库-creme介绍
  5. python和access哪个实用_access和python学哪个
  6. Metabase在linux二次开发编译环境搭建(之一---下载文件)
  7. Python数据分析处理库——Pandas
  8. Atitit 理解参数 目录 1. 参数 1 1.1. 意义 1 1.2. 形式参数 实际参数 1 1.3. 默认参数 vs 必须参数 2 1.4. 位置参数,那么这个命名关键字参数 2 1.5. I
  9. 啊哈算法---快速排序(C语言)
  10. 吉林大学超星学习通05
  11. 三星S4 GT-I9500 Google服务包及刷机教程
  12. matlab图片插值数据_Matlab中的插值函数
  13. CodeSmith模板
  14. 2021年UI设计风格新风向新趋势,赶紧收藏!
  15. 分享一款在线转换工具,轻松将PDF转换成JPG格式
  16. js自执行函数前加个分号是什么意思?
  17. ASP.NET Core 在 IIS 上的进程内 (InProcess) 托管
  18. Graph Stacked Hourglass Networks for 3D Human Pose Estimation
  19. Windows10下安装Gromacs2020
  20. STM32CUBEIDE配置FreeRTOS

热门文章

  1. bzoj - 1002 【Kirchhoff矩阵】
  2. 一种汽车巡航控制的分层控制算法——裴晓飞
  3. 计算机wps怎么排名,计算机wps和ms哪个简单?计算机一级office考试技巧有什么?...
  4. 多线程批量读取Excel 2007行数据
  5. excel两个表格数据对比_Excel表格技巧—如何让两个Excel表格同时显示
  6. 【idea】【springboot】【jar】导出jar运行后报错java.lang.ClassNotFoundException 及springboot在idea导出jar包的正确方法
  7. 利用PCA(主成分分析法)实现鸢尾花数据集的分类
  8. access课程均不及格_ACCESS教材与上机题目汇总
  9. 【C++】小猫钓鱼纸牌游戏--C++实现
  10. catia 数控加工仿真 界面属性设置