PS模式下的数据收发
2014-11-06 17:01
211 查看
本文转载至:/article/8526294.html
工作在 PS 模式下的 STA 一般会尽量保持在 Doze 状态,只在必要的时候转换到 Awake 状态。在 Doze 状态的 STA 无法侦听信道,这导致 PS 模式下 STA 收发数据的方式跟 Active 模式下有所不同,特别是接收数据的方式大相径庭。
发往 PS 模式的 STA 的数据会在 AP 处缓存,在 AP 周期性地广播的 Beacon 帧中包含一个数据指示表 TIM(Traffic Indication Map),TIM 指明当前所有有数据在 AP 处缓存的 STA。处在 Doze 状态的 STA 并不知道何时有数据被缓存,因此 STA 必须周期性的接收来自 AP 的 Beacon 以确定本身是否有数据被缓存。AP 广播 Beacon 的周期为 Beacon-Interval,STA 接收
Beacon 的周期为 Listen-Interval,STA 可以自由选择 Beacon-Interval 的整数倍作为自己的 Listen-Interval。STA 每隔 Listen-Interval 接收 Beacon 并解码其中的 TIM,如果 TIM 指示没有数据缓存,STA 就可以立刻转入Doze 状态,如果 TIM 指示其有数据缓存,STA 就要向 AP 发一个竞争控制包 Poll,AP 在收到 Poll 后就可以向该 Poll 的源 STA 发送一个为它缓存的数据包。如果有多个处于 PS
模式的 STA 在收到同一个 Beacon之后都要接收数据,那么这些 STA 发送 Poll 的机制同发送数据一样,也遵循 CSMA/CA。
在有 STA 处在 PS 模式的 WLAN 里,除了发向特定 PS 模式 STA 的单播(Unicast)数据包外,那些广播(Broadcast)和组播(Multicast)数据包某些时候也需要在AP 缓存。AP 每隔 DTIM-Interval 时间在Beacon帧中包含 DTIM(Delivery TIM)指示信息,以指示其后有广播或组播数据发送。那些希望接收广播和组播数据的STA 则要每隔 DTIM-Interval 转为 Awake 接收
Beacon,并在有广播或组播数据时接收,而那些对能量消耗极敏感的STA 可以选择不接收DTIM。
无论TIM 还是 DTIM 都只能指示一个数据包被 STA 接收,而不能标明每个 STA 有几个包被AP 缓存。为了解决这个问题,AP 在向 STA 发送数据包时用帧头控制比特More-Data 标明是否仍有数据缓存在 AP 处。处于 PS 模式的 STA 在接收数据时根据 More-Data 比特决定是否继续保持Awake;若 More-Data=0,则 STA 立刻可以转入 Doze,若 More-Data=1,则 STA 则要继续保持 Awake,竞争发送
Poll 或接收其余的广播(或组播)包,直到收到下一个 Beacon 为止。STA 从 PS 模式转换到Active 模式,AP 将尽快将为其缓存的数据包送给该 STA。综上,缓存、竞争收包的机制可以使处于 PS 模式的 STA 不会丢失数据包。
PS 模式下的 STA 在发送数据包的时候同 Active 模式下没有区别,只是在需要发送之前转为 Awake 状态,发送成功后随时可以转为 Doze 状态。但是由于虚载波侦听机制的要求,STA 在发送前必须确定其他 STA 不在发送数据,而刚从 Doze 状态转化到 Awake 状态的 STA 因为过去一段时间没有侦听信道中的 MAC 帧,其 NAV 不准确,因此,在发送数据前,STA 必须侦听信道,等到收到发自其他 STA 的 MAC 帧,正确设置了自己的
NAV 之后,才可以开始采用正常的 CSMA/CA 机制发送数据。当然如果刚 Awake 的STA 侦听了足够长时间后仍没有收到任何MAC帧,也可以开始发送。
工作在 PS 模式下的 STA 一般会尽量保持在 Doze 状态,只在必要的时候转换到 Awake 状态。在 Doze 状态的 STA 无法侦听信道,这导致 PS 模式下 STA 收发数据的方式跟 Active 模式下有所不同,特别是接收数据的方式大相径庭。
发往 PS 模式的 STA 的数据会在 AP 处缓存,在 AP 周期性地广播的 Beacon 帧中包含一个数据指示表 TIM(Traffic Indication Map),TIM 指明当前所有有数据在 AP 处缓存的 STA。处在 Doze 状态的 STA 并不知道何时有数据被缓存,因此 STA 必须周期性的接收来自 AP 的 Beacon 以确定本身是否有数据被缓存。AP 广播 Beacon 的周期为 Beacon-Interval,STA 接收
Beacon 的周期为 Listen-Interval,STA 可以自由选择 Beacon-Interval 的整数倍作为自己的 Listen-Interval。STA 每隔 Listen-Interval 接收 Beacon 并解码其中的 TIM,如果 TIM 指示没有数据缓存,STA 就可以立刻转入Doze 状态,如果 TIM 指示其有数据缓存,STA 就要向 AP 发一个竞争控制包 Poll,AP 在收到 Poll 后就可以向该 Poll 的源 STA 发送一个为它缓存的数据包。如果有多个处于 PS
模式的 STA 在收到同一个 Beacon之后都要接收数据,那么这些 STA 发送 Poll 的机制同发送数据一样,也遵循 CSMA/CA。
在有 STA 处在 PS 模式的 WLAN 里,除了发向特定 PS 模式 STA 的单播(Unicast)数据包外,那些广播(Broadcast)和组播(Multicast)数据包某些时候也需要在AP 缓存。AP 每隔 DTIM-Interval 时间在Beacon帧中包含 DTIM(Delivery TIM)指示信息,以指示其后有广播或组播数据发送。那些希望接收广播和组播数据的STA 则要每隔 DTIM-Interval 转为 Awake 接收
Beacon,并在有广播或组播数据时接收,而那些对能量消耗极敏感的STA 可以选择不接收DTIM。
无论TIM 还是 DTIM 都只能指示一个数据包被 STA 接收,而不能标明每个 STA 有几个包被AP 缓存。为了解决这个问题,AP 在向 STA 发送数据包时用帧头控制比特More-Data 标明是否仍有数据缓存在 AP 处。处于 PS 模式的 STA 在接收数据时根据 More-Data 比特决定是否继续保持Awake;若 More-Data=0,则 STA 立刻可以转入 Doze,若 More-Data=1,则 STA 则要继续保持 Awake,竞争发送
Poll 或接收其余的广播(或组播)包,直到收到下一个 Beacon 为止。STA 从 PS 模式转换到Active 模式,AP 将尽快将为其缓存的数据包送给该 STA。综上,缓存、竞争收包的机制可以使处于 PS 模式的 STA 不会丢失数据包。
PS 模式下的 STA 在发送数据包的时候同 Active 模式下没有区别,只是在需要发送之前转为 Awake 状态,发送成功后随时可以转为 Doze 状态。但是由于虚载波侦听机制的要求,STA 在发送前必须确定其他 STA 不在发送数据,而刚从 Doze 状态转化到 Awake 状态的 STA 因为过去一段时间没有侦听信道中的 MAC 帧,其 NAV 不准确,因此,在发送数据前,STA 必须侦听信道,等到收到发自其他 STA 的 MAC 帧,正确设置了自己的
NAV 之后,才可以开始采用正常的 CSMA/CA 机制发送数据。当然如果刚 Awake 的STA 侦听了足够长时间后仍没有收到任何MAC帧,也可以开始发送。
相关文章推荐
- WIFI power save 模式下的数据收发
- AM335X平台下的mcspi源代码详解---中断模式下的初始化、收发数据
- 用select模式收发处理数据(跨平台)
- epoll学习笔记(ET模式下事件触发原理和数据收发存在的问题)
- 【STM32 IIC详解】stm32 IIC从机模式(中断方式收发数据)
- OpenLayers 之 地图图层数据来源(ol.source)详解,ps图层混合模式详解
- WIFI power save 模式下的数据收发
- SSDP协议下STA模式和softAP模式间切换时遇到的数据收发问题
- bcb中TServerSocket 多线程阻塞模式收发数据
- WIFI power save 模式下的数据收发
- WIFI power save 模式下的数据收发
- JSP设计模式基础:View Helper模式——学习如何使用View Helper模式使得Model数据适应表现层的需要(2)
- 关于数据访问模式(六)—— 资源管理模式的重要性
- 关于数据访问模式(三)—— Data Accessor模式
- [ZT]水晶报表数据填充(一种推模式,两种拉模式)类库
- [开发总结]系统架构及数据模型----OpenGL模式显示及临时显示篇(二)
- DNN的数据访问方式——合理运用模式,提高数据访问的灵活性(有修正)
- JSP设计模式基础:View Helper模式——学习如何使用View Helper模式使得Model数据适应表现层的需要(1)
- 关于数据访问模式(四)—— Active Domain Object模式
- 关于数据访问模式(八)—— Resource Pool模式