80211之MAC层的工作模式

MAC层主要分为两种工作模式——DCF和PCF

DCF(Distributed Coordination Function ):分布式工作模式

PCF(Point Coordination Function):点协调工作模式

二者的关系如图:

在802.11的MAC层协议结构中,PCF是基于DCF之上的协议,同样的还包含EDCA和HCCA两种模式,后两种主要是为了QOS进行设计的,由于PCF是以DCF作为基础扩展的,所以PCF与DCF是可以兼容工作的。在PCF模式中,两者的兼容实际上是基于一种交替工作的机制,即PCF和DCF各占据一段时间,交替进行工作。该交替周期即是CFP重复周期(CFP repetition interval),在该周期内,包含CFP和CP两个部分,如下图:

无竞争时间(CFP):Contention-Free Period,即CFP时间是为了PCF工作所设定的一段时间。该时间是利用虚拟载波监听(NAV)的机制进行保护的,该NAV是由Beacon帧进行设置,并由CF-END帧用来终止。

竞争时间(CP):Contention Period,该CP时间是用来给DCF工作的一段时间,在该周期内,协议按照DCF的模式进行工作。

这里我们还需要更细一些说明该CFP时间设置的原理。在之前描述DCF模式中,我们基本已经描述了NAV的工作机制,其主要是利用无线数据帧MAC头部中的Duration字段进行设置。在CFP准备启动的时刻,AP首先利用beacon帧设置NAV时间至CFPMaxDuration,其具体设置方案如下:

利用数据帧的MAC头部中的Duration字段,设置CFPMaxDuration。标准的Duartion字段共有16个字节[0:15],其中倒数2个字节,即[14:15]是标志位,且其存放方式应该是属于小端模式的,即后面的是高位,前面的是低位。如果是CFP设置NAV时,对应第14位置0,第15位置1,其余各位都是0。故解析出来,那么NAV的时间即设置为2^15=32768 microsecond。其对应结构如下图:

除了利用MAC头部的Duration字段,在CFP对应的beacon帧中,还有一个CF Parameter Set字段。利用该字段中的CFP MaxDuration,也同样设置该参数。在802.11中设置两次CFPMaxDuration参数的原因在于,是在于避免无法识别CF Parameter Set字段的节点,只要其能识别标准MAC头部的Duration字段,那么其也会被置为NAV状态,从而无法争夺信道的使用权。

由于这里NAV是被设置为最大时间,所以NAV的技术与之前我们描述在DCF的RTS/CTS模式下存在差别。在DCF中的RTS/CTS模式下,NAV是通过倒数置0,从而释放信道。在PCF模式中,NAV的释放是通过CF-END帧,按照笔者记忆中,中间传递的各个帧中也会重复将NAV置为最大,只有在最后的CF-END中,才会将duration字段写成0,从而结束NAV时间,换言之,NAV时间的设定是可以被覆盖的。CF-END的帧结构如下:

如上图,CF-END是一个广播帧,其类型是控制帧,子类型是CF-END,而且Duration部分设置为0,其余该帧内没有什么特殊的地方了。

通过以上的机制,PCF能够很好的与DCF进行兼容。在下面的内容中,我们开始解释PCF具体的工作模式。

PCF工作模式

在这一段中,我们叙述PCF的具体工作模式。PCF的主要思想为:”AP充当中心协调控制器(PC)的角色,根据其内部的轮询表(polling list)依次轮询与之连接的节点(CF-Pollable STA),看其是否有数据待传。在CFP时间内,节点由于NAV机制,故无法主动竞争信道。故除非基站轮询节点,要求其反馈数据,节点不可以主动进行传输动作。“

在上述描述中,已经包含了,在PCF中的两个新的角色:

PC(point coordinator):即点协调器,一般情况下,都是由AP做点控制器。

CF-Pollable STA:支持PCF机制的节点。

在PC身上,我们还会引入轮询表(polling list)的概念。在PCF中,PC按照轮询表的顺序,按照升序,依次对节点进行轮询。在免竞争期间,除非基站以轮询帧提出要求,否则工作站不得进行传输数据。轮询具体会采用CF-POLL帧来执行,节点接收到CF-POLL之后,向PC反馈数据。在标准的PCF中,一次CF-POLL只会反馈一个数据帧。只有在启用APSD(Automatic Power Save Delivery)的设计下,才会使用其他的请求方式(Trigger Frame),才会一次请求,反馈多个数据帧,不过这里由于我们没有讨论节能方面的内容,故不展开讨论。

并且在PCF中,还会引入多种新的帧结构,比如前面叙述中出现的CF-END,在PCF中还存在其余的各种帧如下:

仅PC发送:Data+CF-Poll、Data+CF-ACK+CF-Poll、CF-Poll 和CF-ACK+CF-Poll

PC与CF-Pollable STA发送:Data、Data+CF-ACK、Null和CF-ACK

接下来,我们还是假设讨论与DCF同样的拓扑,并且在该PCF讨论中,我们同时关注上下行流:

由于PCF不同种帧类型其功能会有一些不同,为了说明清楚,我们选取几个典型的工作流程,进行具体的示例说明,其余的一些工作流程可以类比得出。

CF-Poll -> Data -> CF-ACK工作流程

首先AP发送Beacon,利用其中的duration参数,将所有节点设置成NAV状态。该情况是AP中不存在sta的缓存数据,故AP直接向sta发送CF-Poll帧作为轮询,然后sta上传data数据给AP,最后AP返回给sta一个CF-ACK帧代表轮询的结束。

DATA+CF-Poll -> Data+CF-ACK -> CF-ACK工作流程

首先AP发送Beacon,利用其中的duration参数,将所有节点设置成NAV状态。该情况是AP中存在sta的缓存数据,故AP将自己的DATA以及CF-Poll同时发送,让sta在接收数据后,可以上传数据。sta发送DATA+CF-ACK给AP,其意在首先确认之前AP发送的下行数据,再反馈自身的数据给AP。最后AP反馈CF-ACK给节点,从而结束一次传输轮询。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值