集中式协调功能 (PCF)
IEEE 802.11 除了提供上节所描述 DCF 方法来传送异步frame外,也提供了另一个方法来支持「免竞争」的服务,以传送具时限性的frame。此方法称为「集中协调式功能」(Point Coordination Function,简称PCF)。PCF运作的特色是在一个具有协调者 (Point Coordinator) 的BSS中,所有工作站都能接收在PCF控制下所传送的所有frame。至于工作站有无能力回复由协调者所传送的免竞争轮询 (Contention Free Poll, CF-Poll) 则属于一种选项。有能力回复免竞争轮询的工作站称为可轮询(CF-Pollable) 工作站。无能力回复免竞争轮询的工作站称为非轮询(Non CF-Pollable) 工作站。可轮询工作站可以要求加入协调者的轮询名单中。每次被轮询到时可以传送一笔frame。非轮询工作站则在免竞争周期中不能传送frame,只能在收到frame时回送一个回复frame。可轮询工作站所传送的frame的目的地工作站可以是任何工作站(协调者,可轮询工作站,或非轮询工作站)。此frame也可顺便携带一回复 (ACK) 讯息,用以回复前一笔由协调者传送来的frame。如果此frame本身没有收到回复讯息,则此工作站不可以立刻进行重送的程序,必须等到下一次被询问时,或等到进入竞争周期时才能重送此frame。如果可轮询工作站所传送的frame的目的地工作站是一个非轮询工作站,则此非轮询工作站必须依照 DCF 的方式在一个 SIFS 间隔时回送一个回复frame。在 PCF 周期中,协调者与被轮询者在传送frame时都不使用 RTS/CTS 控制frame。协调者在免竞争周期内重送frame时并不像DCF所采用的后退方法 (backoff)。它等到该目的地工作站再次成为轮询名单中的首位时才重送此frame。也可以在免竞争周期内等到一个 PIFS 的空档时重送此frame。
免竞争周期之结构与时序
在免竞争周期 (Contention Free Period, CFP) 内,frame的传送由 PCF 控制,而在竞争周期(Contention Period, CP) 内,frame的传送则由DCF 所控制。免竞争周期与竞争周期应该轮流出现,如图13-31 所示。免竞争周期起始于一个由协调者所传送而携带 DTIM 组件的 Beacon frame,终止于由协调者所传送的 CF-End frame或 CF-End+ACK frame。
图13-31 免竞争周期/竞争周期 交替出现
协调者依照系统之免竞争再现率 (Contention-Free Repetition Rate, CFPRate) 产生免竞争周期。免竞争出现率是以包含几个DTIM 间隔来定义。协调者必须利用Beacon frame中的 CF Parameter Set 组件中的 CFPPeriod 字段将此值传送给所有属于同一个 BSS 的工作站知道。免竞争周期的长度由协调者决定,其最大值由MAC MIB中的aCFPMaxDuration 对象所定义。免竞争周期的最大长度或实际长度不一定要是 Beacon 间隔的整数倍。如果免竞争周期的长度大于 Beacon 间隔,则协调者在免竞争周期间会于适当的时机送出 Beaconframe。这些Beacon frame (包括第一个Beacon frame )所携带的 CF Parameter Set 组件中的 CFPDurRemaining 字段值 (记录此免竞争周期之最大剩余时间,单位为毫秒 ms)都不等于零。在竞争周期间所传送的 Beacon frame的 CFPDurRemaining 字段值则都应该等于零。图13-32 所示为这些参数间的关系范例。图中 CFPRate 等于两个 DTIM 期间,也就每经过两个 DTIM 期间,就必须开始启动一个免竞争周期。图中一个 DTIM 期间等于三个 Beacon 期间。也就是一个超级frame的长度等于六个 Beacon 期间。协调者在此期间将传送六个 Beacon frame,其中第一个 Beacon及第四个 Beacon frame将携带 DTIM 组件。图中免竞争周期大约是2.5 个 Beacon 期间。
图13-32 Beacon 间隔与免竞争周期范例
协调者可以根据其必须处理的交通量及轮询工作站数量而提早或及时终止免竞争周期。由于原定传送 Beacon frame的时间 (Target Beacon Transmission Time, 简称 TBTT) 可能恰巧有其它frame正在传送(媒介忙碌中),因此传送 Beacon frame的时间可能会被延后(必须等该frame传送结束且完成回复工作后)。这使得此免竞争周期必须被迫缩短,缩短的时间就是 Beacon frame被延后传送的时间,如图13-33 所示。此最大的延迟时间发生在该frame是一笔MSDUframe且其长度大于aRTSThreshold 临界值及 aFragmentationThreshold 临界值。此时最多会包含一个 RTS frame,一个 CTS frame,若干 Fragment frame,而且每一个 Fragment frame后面都跟着一个 ACK frame。连续两个frame间则有一个SIFS 时间间隔。如果 Beacon frame真的发生被延后传送的情形,则在免竞争周期开始的第一个Beacon frame上之CFPDurRemaining 应该要仔细计算,以保证此免竞争周期可以在 TBTT + aCFPMaxDuration 之前结束。
图13-33 延迟传送之 Beacon frame与缩短之免竞争周期范例
PCF 运作程序
在免竞争周期中工作站传送frame的方式是依照一种称为「轮询」(polling)的方法上,并且由 BSS 中AP内部的协调者来控制。协调者在免竞争周期的开始就取得传输媒介的使用控制权,并且在免竞争周期中以等待较短的frame间隔 (PIFS < DIFS) 方式来维持传输媒介的控制权。所有在 BBS中的工作站 (协调者除外) 于免竞争周期开始时都将其 NAV 值设为免竞争最大周期 (CFPMaxDuration)。这样可以避免因工作站未被轮询到却传送frame所造成的问题。
在免竞争周期中frame的回复方式依该笔frame的目的地工作站性质分为三种:(1) 接收该笔frame的工作站是协调者。此时协调者可在传送下一笔frame及轮询给别的工作站时顺带回复此frame:Data+CF-Poll+CF-ACK, 或在传送轮询给别的工作站时顺带回复此frame: CF-Poll+CF-ACK。(2) 接收该笔frame的工作站刚好也是被协调者轮询的工作站。该工作站若有frame要传送则可在传送frame时顺带回复此frame:Data+CF-ACK。若无frame要传送则专程回复此frame: CF-ACK。(3) 接收该笔frame的工作站不是刚好被轮询的工作站(包括未轮询工作站及非轮询工作站)。此时该工作站应该以 DCF ACK 的方式回复此frame:等待一个 SIFS 间隔候传送一个回复frame。
在免竞争周期开始前,协调者应该先侦测传输媒介,并且在媒介空档时间达一个 PIFS 时传送一个Beacon frame启动此免竞争周期。此 Beacon frame中带有CF Parameter Set 组件及 DTIM 组件。之后协调者必须等待至少一个SIFS间隔后传送下列四种frame的一种:Data frame,CF-Poll frame, Data+CF-Poll frame, 或 CF-End frame。如果免竞争周期是空的(协调者没有资料要送给工作站,也没有轮询名单),则 Beacon frame后应立即跟上一个 CF-End frame。
在免竞争周期中处理NAV的方法主要是考虑到网络上可能存在重迭但彼此协调的BSS。前面已说过,所有在 BBS中的工作站 (协调者除外) 于免竞争周期开始时都将其 NAV 值设为免竞争最大周期 (CFPMaxDuration)。之后每次收到一个 Beacon frame,就根据其上的CFPDurRemaining 值来修正 NAV 值。这包括由其它重迭BBS 的协调者所送来的 Beacon frame。在 NAV 值不等于零之前工作站是不会主动传送frame的,这样可以避免工作站在免竞争周期间取得媒介的控制权。尤其是当免竞争周期横跨许多个媒介占用周期(medium-occupancy intervals,如采用跳频实体层之 dwell 周期)时,这个方法更是重要。此方法同时也有降低隐藏工作站 (hidden stations) 在免竞争周期中因侦测媒介空档达DIFS 时间而传送frame的可能性。这种传输可能破坏一笔正在传送中的frame。协调者在免竞争周期终止时会传送一个CF-End frame或 CF-End+ACK frame。工作站如果收到此类frame,无论是由哪一个 BSS 收到,都应该将其 NAV 值设为零,并且开始进入竞争周期。
当工作站加入一个含有协调者且正运作中的BSS时,必须先设定其NAV值,不能立刻传送frame。方法是利用接收到的任何 Beacon frame或 Probe Response frame中的 CFDurRemaining 值。
PCF传输程序
PCF传送frame的次序通常是先由协调者送给工作站,然后由工作站送给协调者,如此重复交替进行。至于工作站传送frame的先后顺序则由协调者来控制。图13-34 为免竞争周期中frame传送的典型范例。
图13-34 免竞争周期中frame传送范例
工作站如果配置跳频式实体层 (FH PHY), 则每次取得频道使用权时,有效期只有一个dwell time boundary。因此工作站如果要传送frame,则必须在dwell time boundary之前传送完成,并且收到对应之回复frame。被轮询的工作站如果预期不能在dwell time boundary之前完成此事,则应该延迟传送至下一次机会,并且传送一个 ACK frame或 CF-ACK frame。如果dwell time boundary已经非常逼近,使得工作站连传送一个 ACK frame或 CF-ACK frame都无法及时完成时,则协调者就不应该轮询该工作站。也就是说,协调者轮询某工作站时,一定保证该工作站至少有足够的时间传送一个 ACK frame或 CF-ACK frame。
PCF 传送frame的运作模式可以分为两种:(1) 当协调者是传送工作站或接收工作站时, (2) 当协调者不是传送工作站也不是接收工作站时。以下说明此两种模式的运作情形。
首先是当协调者是传送工作站或接收工作站时。协调者传送给可轮询工作站的frame可以是下列七种的任何一种:
Data frame: 使用时机是当协调者欲传送 Data frame给某一工作站,而该接收工作站不是被轮询的工作站,而且协调者手上无尚未回复的frame。
Data+CF-ACK frame : 使用时机是当协调者欲传送 Data frame给某一工作站,而该接收工作站不是被轮询的工作站,而且协调者手上有一笔 SIFS 时间以前从可轮询工作站收到但尚未回复的frame。
Data+CF-Poll frame : 使用时机是当协调者欲传送 Data frame给某一工作站,而该接收工作站正好是下一个被轮询的工作站,而且协调者手上无尚未回复的frame。
Data+CF-ACK+CF-Poll frame : 使用时机是当协调者欲传送 Data frame给某一工作站,而该接收工作站正好是下一个被轮询的工作站,而且协调者手上有一笔 SIFS 时间以前从可轮询工作站收到但尚未回复的frame。
CF-Poll frame : 使用时机是当协调者并无 Data frame给某一工作站,但该工作站正好是下一个被轮询的工作站,而且协调者手上无尚未回复的frame。
CF-ACK+CF-Poll frame : 使用时机是当协调者并无 Data frame给某一工作站,但该工作站正好是下一个被轮询的工作站,而且协调者手上有一笔 SIFS 时间以前从可轮询工作站收到但尚未回复的frame。
CF-ACK frame : 使用时机是当协调者并无 Data frame给某一工作站,也不轮询工作站。不过协调者手上有一笔 SIFS 时间以前从可轮询工作站收到但尚未回复的frame。(例如协调者下一个欲传送的frame是属于管理类的frame,如Beaconframe,则是使用此CF-ACK frame的适当时机)。
协调者也可以在免竞争周期内传送Data frame或管理frame给非轮询工作站 (non-CF-Pollable) 及非省电工作站 (non-Power Save)。这些工作站则应该在一个 SIFS 间隔后回送一个 ACK frame。协调者当然也可以在免竞争周期内传送广播frame或群播frame。因为启动免竞争周期的Beacon frame带有DTIM组件,如果某些已连结的工作站处于省电模式,则这些欲广播或群拨给省电模式工作站的frame应该在此Beacon frame后立刻传送。
可轮询工作站只要收到任何由协调者送来而且设定 CF-Poll 的frame,就可以在一个 SIFS 间隔后传送一个 Data frame。如果工作站刚好没有frame要送,则传送一个Null frame。如果携带 CF-Poll 的frame需要回复,则可传送一个 Data+CF-ACK frame (或 Null+CF-ACK frame)。如图13-35 所示,U1 frame同时也携带前一个 D1 frame的回复讯息,而 D2 frame则携带 U1 frame的回复讯息。
在免竞争周期中,协调者传送frame的时间间隔是 SIFS, 除非原定 SIFS 间隔后应该出现的frame没有出现。此时协调者在继续等待至一个 PIFS 间隔后,立刻送出下一个frame。这样协调者就不会因为某些回复或响应frame的流失而丧失主控权。如果协调者等待时间过久(大于 DIFS),则某些刚加入的非轮询工作站可能在侦测媒介空档期达 DIFS 时开始传送frame,造成混乱。如图13-35 所示,D3 frame除了携带前一
个U2 frame的回复讯息外,也携带CF-Poll轮询某工作站,但该工作站没有任何反应(也许已当机)。协调者在继续等待至一个 PIFS 间隔后,立刻送出下一个 D4 frame。
当协调者无frame可传送且轮询名单空白时,或 CFPDurRemaining 时间等于零时,可以送出一个 CF-End frame终止此免竞争周期。如果之前尚有frame须回复,则可传送 CF-End+ACK frame。所有收到 CF-End frame或 CF-End+ACK frame的工作站都应该将其 NAV 值设为零,并且开始进入竞争周期。如图13-35 所示,协调者送出一个 CF-End frame后(如果U4frame须回复,则应该是 CF-End+ACK frame),所有工作站将其 NAV 值设为零。由于此时 CFPDurRemaining 时间尚不等于零 (CFP < CF-Max-Duration),此免竞争周期的终止应该是属于协调者无frame可传送且轮询名单为空白的情况。 |