本文主要是介绍802.11 DCF PCF HCF,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 协调功能
如“《802.11 无线网络》MAC访问模式与时机”所述。无线介质的访问,是由协调功能所管控。
以太网之类的 CSMA/CA 访问,是由分布式协调功能( distributed coordination function,简称 DCF)所管控。
如果需要用到无竞争服务,则可通过构建于 DCF 之上的点协调功能( point coordination function,简称 PCF)来管控。
在各取所需的 DCF 与精确控制的 PCF 之间,也可以采用介于两种极端之间采取中庸之道的混合协调功能( hybrid coordination function,简称 HCF)。
- DCF(分散式协调功能)
DCF 是标准 CSMA/CA 访问机制的基础。和以太网一样,在传送数据之前,它会先检查无线链路是否处于清空状态。为了避免冲突发生,当某个传送者占据信道时,工作站会随机为每个帧选定一段退避(back off)时间。在某些情况之下, DCF 可以利用 CTS/RTS 清空技术,进一步减少碰撞发生的可能性。
- PCF(点协调功能)
点协调功能提供的是无竞争服务。 称为点协调者的特殊工作站可以确保不必通过竞争即可使用媒介。点协调者位于接入点,因此只有基础型网络才会使用 PCF。为了赋予比标准竞争式还高的优先性,PCF 允许工作站经过一段较短的时间即可传送帧。
- HCF(混和式协调功能)
有些应用需要比尽力传递更高一级的服务质量(Quality of Service,QoS),却又不需要用到 PCF 那么严格的时机控制。 HCF允许工作站维护多组服务队列,针对需要更高服务质量的应用,则提供更多的无线媒介访问机会。
HCF 尚未完全标准化,不过最终将成为 802.11e 标准的一部分。
2. 帧间间隔
前文提到“PCF 允许工作站经过一段较短的时间即可传送帧”,那这段较短的时间是如何定义的呢?
- 短帧间间隔( Short interframe space ,简称 SIFS)
SIFS 用于高优先级的传输场合,例如 RTS/CTS 以及肯定确认帧。经过一段 SIFS(时间),即可进行高优先级的传输。一旦高优先级传输开始,媒介即处于忙碌状态,因此相较于必须等待较长时间才能传输的帧, SIFS 消失后即可进行传输的帧优先级较高。
- PCF帧间间隔( PCF interframe space ,简称 PIFS)
PIFS 主要被 PCF 使用在无竞争操作中,有时被误解为优先级帧间间隔(priority interframe space)。在无竞争时期,有数据传输的工作站可以等待 PISF 期间过后再加以传送,其优先程度高于任何竞争式传输。
- DCF帧间间隔( DCF interframe space ,简称 DIFS)
DIFS 是竞争式服务中最短的媒介闲置时间。如果介质闲置时间长于 DIFS,工作站可以立即对媒介进行访问。
- 扩展帧间间隔( Extended interframe space ,简称 EIFS)
图 3-6 并没有表明 EIFS,因为 EIFS 并非固定的时间间隔。只有在帧传输出现错误时才会用到 EIFS。
那这个SIFS DIFS PIFS这几个帧间间隔,分别用在什么传输场景中呢?以下我的简单总结:
SIFS用于一个原子操作内的各个帧之间的等待时间间隔;
DIFS用于上一个原子操作的结束的一段等待时间间隔,这段时间结束后,各个站点开始进行竞争媒介的访问权;
AP接管无线媒介后,会根据轮询列表分别询问与之关联的工作站是否有数据要传输。
单个原子操作内的帧间间隔时间仍然采用SIFS, AP轮询到下一个工作站如果经过PIFS的时间还没有应答则向下一个工作站去轮询。
这几个的帧间间隔时间,可以参考这篇blog:802.11协议帧间间隔-SIFS,DIFS,PIFS,EIFS - 摇风清影 - 博客园。
DIFS = SIFS + (2 * Slot time)
PIFS = SIFS + Slot time
EIFS = Transmission time of Ack frame at lowest basic rate + SIFS + DIFS
标准 | Slot time(us) | SIFS(us) | DIFS(us) | PIFS(us) |
---|---|---|---|---|
IEEE 802.11a | 9 | 16 | 34 | 25 |
IEEE 802.11b | 20 | 10 | 50 | 30 |
IEEE 802.11g | 9 or 20 | 10 | 28 or 50 | 19 or 30 |
这篇关于802.11 DCF PCF HCF的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!