5.1.7 保护时隙(GTS)的分配和管理
保护时隙允许设备在超帧的某个时期独占信道。保护时隙的功能是可选的。
保护时隙只能由 PAN 协调器分配,且只能用于 PAN 协调器与该 PAN 网络的设备之间的通信。单个保护时隙可以包含一个或多个超帧时隙。如果超帧有足够的容量,协调器在同一时间最多可以分配 7 个保护时隙。
保护时隙应当先分配,后使用。PAN 协调器根据保护时隙请求和超帧中当前可用容量来分配保护时隙。保护时隙的分配原则是先请求先服务,所有的保护时隙应该连续的放置在超帧的结尾,并在竞争访问期之后。当不再需要保护时隙时, PAN 协调器和请求该保护时隙的设备可随时释放该保护时隙。被分配了保护时隙的设备也可在竞争访问期内工作。
设备在分配的保护时隙中传输数据帧时,必须使用短地址。
PAN 协调器负责保护时隙的管理。为了方便管理,PAN 协调器应当能够存储 7 个保护时隙的所有必要信息。这些必要信息包括保护时隙的起始时隙、长度、方向和所连接设备的地址。
保护时隙的方向,指的是拥有该保护时隙的设备的数据流向,包括发送和接收。因此,设备的地址和方向能唯一标识一个保护时隙。设备应当能存储每个被分配的保护时隙的起始时隙、长度和方向。如果设备被分配了一个接收保护时隙,它应当使其接收机在该保护时隙的整个时间段内都处于开启状态。相似地,如果设备被分配了一个发送保护时隙,协调器应当使其接收机在该保护时隙的整个时间段内都处于开启状态。如果设备在接收保护时隙期间接收到需要确认的数据帧,它应当像平常一样回送确认帧。相似地,设备应当在发送保护时隙期间内开启接收机以接收确认帧。
设备只有在跟踪信标时才能尝试去申请、使用保护时隙。参数 TrackBeacon 为 TRUE 的 MLME-SYNC.request 原语能指示设备的 MLME 去跟踪信标。如果设备与 PAN 协调器失去了同步,它所分配的所有保护时隙也都将被丢失。
5.1.7.1 竞争访问期(CAP)的维护
PAN 协调器为竞争访问期预留的时间应不少于 aMinCAPLength。如果该条件不能满足,它必须采取预防行为。为了维持保护时隙,协调器可以临时增加信标帧的长度。如果必须采取预防行为,具体的行为选择则由实现的方法决定。这些行为可能包括以下一个或多个:
—— 限制信标中待处理地址的数量
—— 在信标帧内不包含载荷字段
—— 释放一个或多个已分配的保护时隙
5.1.7.2 保护时隙(GTS)的分配
设备通过 MLME-GTS.request 原语(参考 6.2.1.6 节)请求分配一个新的保护时隙,并根据应用的需要设置保护时隙的特性。
为了请求分配一个新的保护时隙,MLME 将给 PAN 协调器发送保护时隙请求命令(参考 5.3.9 节)。请求命令的保护时隙特性字段中的特性类型子字段设置为 1(分配保护时隙),并根据所需的保护时隙特性设置其长度和方向子字段。
PAN 协调器接收到表示分配保护时隙的保护时隙请求命令后,它会根据竞争访问期的剩余长度和所请求的保护时隙需要的长度来判断当前超帧中是否还有足够的容量。如果已分配的保护时隙的数量还没有达到所允许 的保护时隙的最大数,且给当前请求分配保护时隙不会导致竞争访问期的长度小于 aMinCAPLength,协调器则认为超帧中还有足够的容量。只要有足够的可用带宽,PAN 协调器将按照先申请先服务的原则分配保护时隙。PAN 协调器应在 aGTSDescPersistenceTime 个超帧内作出分配保护时隙的决定。
设备接收到保护时隙请求命令的确认后,将继续跟踪信标,并(最多)等待 aGTSDescPersistenceTime 个超帧。如果设备在这段时间内接收到的超帧没有该设备的保护时隙描述符,其 MLME 将发送状态为 NO_DATA 的 MLME-GTS.confirm 原语(参考 6.2.6.3 节)给上层,表示保护时隙请求失败。
当 PAN 协调器确定有足够的容量满足保护时隙的请求时,将产生一个带有请求规范和请求设备短地址的保护时隙描述符。如果保护时隙分配成功,PAN 协调器将把保护时隙描述符中的起始时隙设置为保护时隙的起始超帧时隙,把保护时隙描述符中的长度设置为该保护时隙的长度。除此之外, PAN 协调器通过 MLME 发送带有已分配的保护时隙的特性的 MLME-GTS.indication 原语(参考 6.2.6.3 节)给上层,表示分配了新的保护时隙。如果没有足够的容量分配所要求的保护时隙,MLME 会将保护时隙描述符的起始时隙将设置为 0,长度将设置为目前支持的最大保护时隙长度。PAN 协调器将在其信标帧中包含此保护时隙描述符,并对信标帧的保护时隙规范子字段作相应的更新。 PAN 协调器还将更新信标帧的超帧规范字段 中的竞争访问期的最后一个时隙子字段,表明减少的竞争访问期能使用的最后一个超帧时隙。保护时隙描述符将在信标帧中保留 aGTSDescPersistenceTime 个超帧,此后,它将被自动删除。PAN 协调器可以把竞争访问期的持续时间降低至 aMinCAPLength 以下,以适应包含保护时隙描述符造成的信标帧长度的暂时增加。
接收到包含与设备 macShortAddress 相应的保护时隙描述符的信标帧后,设备将处理该描述符。设备的 MLME 将通过发送带有相应状态的 MLME-GTS.confirm 原语给上层,表示是否成功分配保护时隙。如果保护时隙描述符中的起始时隙大于 0,原语的状态为 SUCCESS;如果起始时隙等于 0 或者长度与所请求的长度不相等,原语的状态为 DENIED。
图 30 描述了设备请求分配保护时隙时的消息流程图。

5.1.7.3 保护时隙(GTS)的使用
当非 PAN 协调器的设备的 MAC 子层收到了 MCPS-DATA.request 原语(参考 6.3.1 节),且其参数 TxOptions 指明的是使用发送保护时隙时,设备将确认它是否拥有有效的保护时隙。如果 MAC 子层找到了有效的保护时隙,它将在该保护时隙期间(其起始时隙到起始时隙+长度之间的这段时间)发送数据。此时,只要请求任务能够在该保护时隙结束之前完成,MAC 子层将立即发送 MPDU,而无需使用 CSMA/CA 机制。如果请求任务不能在当前的保护时隙结束之前完成,则 MAC 子层需要把发送推迟到下一个超帧中所指定的保护时隙。
如果设备有任何接收保护时隙,其 MAC 子层将确保接收机在保护时隙启动之前和保护时隙期间都处于接收状态,起始时隙和长度决定保护时隙的持续时间段。
当 PAN 协调器的 MAC 子层收到了 MCPS-DATA.request 原语(参考 6.3.1 节),且其参数 TxOptions 指明的是使用发送保护时隙时,协调器将确定它是否有一个与请求目标地址设备相应的有效接收保护时隙。如果发现有效保护时隙,PAN 协调器将推迟发送到接收保护时隙开始。 在这种情况下,带有请求使用保护时隙传输信息的设备的地址不会被加入信标帧待处理地址列表中(参考 5.1.5 节)。只要请求任务能够在该保护时隙结束之前完成,MAC 子层将立即发送 MPDU,而无需使用 CSMA/CA 机制。如果请求任务不能在当前的保护时隙结束之前完成,则 MAC 子层需要把发送延时直到下一个超帧中所指定的保护时隙。
对于所有已分配的发送保护时隙(相对于设备),PAN 协调器的 MAC 子层应确保接收机在保护时隙启动之前和保护时隙期间都处于接收状态。
在保护时隙中开始发送数据之前,每一个设备都将确保数据发送、确认(如果需要) 和帧间间隔(与数据帧的大小相当)能够在保护时隙结束之前完成。
如果设备在超帧开始时丢失了信标,将不能使用保护时隙,只有正确的接收到了后续的信标后才能使用。如果由于丢失信标而造成失去同步,设备将认为其所有的保护时隙都被释放了。
5.1.7.4 保护时隙(GTS)的释放
设备通过 MLME-GTS.request 原语(参考 6.2.6.1 节)请求释放已存在的保护时隙,在原语中使用所希望释放的保护时隙的特性。此后,设备将不能再使用所释放的保护时隙,并将其存储的特性进行复位。
为了请求释放已存在的保护时隙,MLME 将向 PAN 协调器发送保护时隙请求命令,请求命令的保护时隙特性字段中的特性类型子字段设置为 0(即释放保护时隙),并根据所释放的保护时隙特性设置其长度和方向字段。设备收到保护时隙请求命令的确认之后,MLME 将发送 MLME-GTS.confirm 原语(参考 6.2.6.2 节)来通知上层,原语参数的状态为 SUCCESS,并且参数保护时隙 Characteristics 的特性类型子字段设置为 0(译注:这里翻译得还有点问题,待改正)。如果保护时隙请求命令没有被 PAN 协调器接收到,设备将按照 5.1.7.6 节的步骤判断是否已经停止使用保护时隙。
PAN 协调器接收到保护时隙特性字段中的特性类型子字段设置为 0(释放保护时隙)的保护时隙请求命令后,将尝试释放保护时隙。如果保护时隙请求命令中所包含的保护时隙特性与已知的保护时隙的特性不匹配,PAN 协调器将忽略该请求。如果保护时隙请求命令中所包含的保护时隙特性与已知的保护时隙的特性匹配,PAN 协调器的 MLME 将释放掉所使用的保护时隙,并把此变化通知上层。 MLME 通过发送 MLME-GTS.indication 原语(参考 6.2.6.3 节)来通知上层,原语的保护时隙特性参数保护时隙Characteristics 包含所释放的保护时隙的特性,特性类型子字段设置为 0。PAN 协调器还需要更新信标帧中超帧规范字段中的竞争访问时期的最后一个时隙子字段的值,指示增加的后竞争访问期所能利用的最后一个超帧时隙。不需要再信标帧中增加一个描述符来描述保护时隙的释放。
来自上层的释放请求、保护时隙持续时间结束(参考 5.1.7.6 节)、维护最小的竞争访问期持续时间 aMinCAPLength(参考 5.1.7.1 节) 都能引起协调器释放保护时隙。
PAN 协调器的上层可以通过 MLME-GTS.request 原语来启动释放保护时隙的过程,原语中保护时隙特性字段设置为释放保护时隙、长度和方向设置为待释放的保护时隙的相应特性。MLME 接着会通过 MLME-GTS.confirm 原语做出响应,原语的状态设置为 SUCCES、原语的参数保护时隙特性的特性类型子字段设为 0。
当由于保护时隙的持续时间结束,或者由于维护竞争访问期而导致 PAN 协调器释放保护时隙时,协调器的 MLME 将通过 MLME-GTS.indication 原语通知上层,原语中的参数保护时隙特性包含待释放的保护时隙的特性、特性类型子字段为 0。
无论在那种情况下,只要释放是由 PAN 协调器发起的,协调器都会释放保护时隙,并为该时隙生成一个起始时隙设为 0 描述符,然后将其添加到信标帧中。描述符将在保留在信标帧中并持续 aGTSDescPersistenceTime 个超帧。由于包含了保护时隙描述符,PAN 协调器可以临时将竞争访问期的时间减至 aMinCAPLength 以下,以适应信标帧的长度。
如果设备接收到信标帧,且信标帧中包含与设备的 macShortAddress 相对应的保护时隙描述符,且该描述符的起始时隙等于 0,设备将立即停止使用保护时隙。设备的 MLME 将使用原语 MLME-GTS.indication 通知上层,原语中的参数保护时隙特性包含所释放的保护时隙的特性,且特性类型字段为 0。
图 31 描述了由设备引发的释放保护时隙的消息流程图。

图 32 描述了由 PAN 协调器引发的释放保护时隙的消息流程图。

5.1.7.5 保护时隙(GTS)的重新分配
保护时隙的释放可能导致超帧的碎片化。例如,图 33 描述了已分配保护时隙的超帧的三个阶段。在阶段 1,三个保护时隙的起始时隙依次是 14、10 和 8。如果保护时隙 2 被释放(阶段 2),超帧中将产生一个空隙,而在该空隙中什么也没做。为了解决这个问题,即填充该空隙,保护时隙 3 将向后移动,这将引起竞争访问期的增加(阶段 3)。

PAN 协调器应当移除所有由于释放保护时隙产生的空隙,以使竞争访问期的时间达到最大化。
如果保护时隙是由 PAN 协调器释放的,协调器应当在其信标中添加一个保护时隙描述符,表示该保护时隙被释放了。如果保护时隙是由设备释放的,PAN 协调器不需要在信标中添加保护时隙描述符。对于每个设备,如果其已分配的保护时隙的起始时隙小于正在被释放的保护时隙的起始时隙,PAN 协调器都将使用新的起始时隙更新该设备的保护时隙,并在信标中添加对应的保护时隙描述符。计算新的保护时隙时,必须确保该保护时隙与免竞争期的结尾之间(如果该保护时隙在免竞争期的尾部)或者下一个保护时隙之间没有空隙。
如果在同一时刻有多个重新分配请求,PAN 协调器可以分阶段执行重新分配的过程。PAN 协调器应当将每个保护时隙描述符在其信标中保留 aGTSDescPersistenceTime 个超帧。
如果设备接收到信标帧,且信标帧中包含与设备的 macShortAddress 相对应的保护时隙描述符,且该描述符的方向和长度与它所分配的某个保护时隙一致,它将根据保护时隙描述符调整起始时隙,并立即使用。
如果 PAN 协调器需要在信标中包括保护时隙描述符,它可以临时将竞争访问期的时间减至 aMinCAPLength 以下,以适应信标帧的长度。经过 aGTSDescPersistenceTime 个超帧以后,PAN 协调器将保护时隙描述符从信标中移除。
5.1.7.6 保护时隙(GTS)的期限
PAN 协调器的 MLME 可以使用如下规则检查设备什么时候停止了使用保护时隙:
—— 对于发送保护时隙,如果 PAN 协调器在至少每 2 x n 个超帧的保护时隙中都没有接收到来自设备的数据帧时,它将认为设备已经停止使用保护时隙了。
—— 对于接收保护时隙,如果 PAN 协调器在至少每 2 x n 个超帧内都没有接收到来自设备的确认帧,它将认为设备已经停止使用保护时隙了。如果在保护时隙内发送的数据帧不需要确认, PAN 协调器的 MLME 则没有办法检测设备是否停止使用保护时隙了。不过,PAN 协调器有能力在任何时间释放保护时隙。
其中 n 的定义如下:
n = 2(8-macBeaconOrder), 0 ≤ macBeaconOrder ≤ 8
n = 1, 9 ≤ macBeaconOrder ≤ 14