1609.4标准所提供的服务是用来管理信道协调和MAC服务数据单元(MSDU)的传送,指定了数据层面和管理层面的功能。
其中,178号信道为控制信道,负责传送紧急安全信息和控制信息等,其余6个信道为服务信道。
1) 信道协调
MAC子层协调信道间隔,因此能在适当的时候适当的RF信道传送数据包。
2) 信道路由
MAC子层处理进出层的数据。本规范包括从LLC到指定的信道的数据包路由,和WAVE传输设置参数(例如发射功率)。
3) 用户优先级(看EDCA部分)
4) 数据帧要点
WAVE支持更高层的数据格式包括IEEE1609.3的指定WSMP和IPv6数据包,WSMP协议可传输WSMs消息和WSA消息;WSMP的数据帧可以在SCH和CCH上传输,含IP数据报的数据帧只允许在服务信道SCH传输。
1) 多信道同步
MLME利用本地或接收到的信息提供了同步功能,能够在WAVE通信中修正信道间隔,MLME能够产生、检测接收定时广播(TA)帧分发系统定时信息。
2) 信道接入
MLME能够控制接入指定的信道完成来自WME的通信请求。
3) 管理帧要点
定时广播帧TA用于发布时间同步信息,TA帧可以在任何信道上传输。
单信道设备:同步时间周期和控制信道周期、服务信道周期组成如下:
这些时间周期的参数都在MIB中,分别是CchInterval and SchInterval,它们的默认参数值分别为50ms,而sync的长度100ms。
守护周期(Guard interval)是为了弥补各节点之间不能精确地同步切换信道而设置的。守护周期的长度是同步延迟和最大信道切换时间之和,同步延迟是可容忍的最大时钟偏移量,而最大信道切换时间是可容忍的节点在同步的多信道之间切换的最大时间。
守护周期中不允许数据传输。守护周期开始时,MAC层在前一周期信道中的传输活动都暂停,在守护周期结束时,面向此周期的信道的接入活动开始或者继续之前被暂停的活动。sync tolerance 的值和MaxChSwitchTime的值都默认2ms。
为了防止多个节点在守护周期结束后,同时接入某一信道时并发通信产生冲突,在守护周期中宣布媒介忙,守护周期结束后,需要执行一个随机退避时间,但这不能完全避免冲突,若相邻设备选择了一样的退避时间长度,冲突还会产生。
关于避免在预设的守护周期的传输。一个最大的完整MSDU(2312字节)最大的传输时间约为6.5ms,在信道间隔的末尾刚传输的MPDU会在守护周期开始前停止,则数据包一定会发送失败,标准提供一种方法避免失败。在MSDU转移到物理层前,MAC层向PHY层发送原语PLME-TXTIME.request,PHY返回一个含有所需传送时间的参数的原语PLME-TXTIME.confirm。若该时长超过剩余信道间隔时间,MSDU应该在MAC层排队直到出现合适信道。
数据帧部分
下图是802.11a从LLC层需要发送数据帧的流程
在1609.4中规定的数据发送流程与其有以下几点差别:
在1609.4中扩展了MA-UNITDATAX.request,UNITDATA.request请求传输IP数据包,MA-UNITDATAX.request请求传输WSMP数据包。
MAC层通过request中数据字段上的子网接入协议(SNAP)头内的 Ethertype类型来判断要传输的是IP数据还是WSMP数据。
1609.4中对WAVE的MAC层的接入点原语作了部分修改,在802.11原语的基础上加入相应参数,即原语MA-UNITDATAX.request,该原语的参数添加了信道标识符、数据速率、发送功率级别以及发送WAVE短消息时的到期时间。在ExpiryTime生存周期结束还未被发送的将不会发送。仅对request 做出修改,confirm部分不变
WSM信道、发射功率、数据传输速率在每一个消息的基础上由更高层次设置,由MA-UNITDATAX.request传到MAC层,MAC层通过PHY-TXSTART.request的TXVECTOR值控制PHY的数据传输速率和功率水平。
IP数据报,发射功率、数据传输速率储存在MIB属性值TransmitterProfileTable中,也可以理解为在MA-UNITDATAX.request请求中不包含此参数。
如果在当前的信道间隔的时间内未完成一个MPDU的传输,传输通过MAC发送的PHY-TXEND.request终止传输,这可通过PLME-TXTIME.request解决。
WSMP数据:当MA-UNITDATAX.request的WSMP数据从LLC传到MAC,MAC根据信道标识符和优先权数据包分配到适当的序列中。如果信道标识符不指向一个有效的信道,数据将不被排队。如果信道不对应MLME指定的机制提供访问的信道,则这个信道是无效的。
IP数据:发射机的配置文件先需要通过MLMEX-REGISTERTXPROFILE.request在MIB属性TransmitterProfileTable登记。MAC层将其分配到对应的SCH和优先级的适当序列。
在1609.4中规定的数据接收流程总结:
当MAC接收到MPDU,提取MSDU,传递给LLC。不管帧是否包含WSM还是IPv6数据包,都使用MA-UNITDATA。如果PHY是在接收数据帧过程中信道切换发生,则会造成中断,PHY会发送PHY-RXEND.indication通知(RXERROR= CarrierLost)MAC子层,这指定在IEEE802.11,MAC丢弃不完整的帧,视为接收失败。
管理帧部分:
旧版的管理帧主要有TA帧和VSA帧。TA帧同于定时同步;VSA帧隶属Action frame,携带(WAVE Service Advertisement)WSA报文,WSA报文包含了服务提供站点提供的服务信息、信道信息等,比如用于节点间的信道协商,节点之间通过 VSA 帧的传播约定将要在哪个信道上进行数据传播。
现在标准为了统一,把WSA也用WSMP格式发送。
切换信道时,一般是MLME发送携带dot11CurrentFrequency的 PLME-SET.request 原语,在现有信道与新信道的信道起始频率不同的情况下,MLME需要继续发送PLME-SET.request,其中参数设置添加dot11ChannelStartingFactor 或者dot11PhyOFDMChannelWidth。
收到MLMEX-SCHSTART.request请求,MLME提供到指定信道的访问机制。
在每个CCH信道间隔的开始,MLME发送一个PLME-SET.request。其中参数带有dot11CurrentFrequency,为CCH的信道号码,该参数的值从MIB属性ChannelSetTable中获得。
在每个SCH信道间隔的开始,MLME发送一个PLME-SET.request。其中参数带有dot11CurrentFrequency,为SCH的channel number,该参数的值从MLMEX-SCHSTART.request获得
在接收到MLMEX-SCHSTART.request请求后,无需等待下一个SCH周期,直接接入服务信道。
当收到的MLMEX-SCHSTART.request中参数ImmediateAccessset 为true,服务信道接入机制为直接接入。MLME立刻向物理层发出请求 the PLME-SET.request。其中参数带有dot11CurrentFrequency,为SCH的channel number,该参数的值从MLMEX-SCHSTART.request获得
服务信道扩展接入允许接入SCH进行通信,无需CCH访问的停顿。
当收到一个扩展访问的MLMEX-SCHSTART.request 时,其中的参数ExtendedAccessgreater值大于0 ,MLME将提供请求的服务信道号码的接入。
MLME发送一个PLME-SET.request ,其dot11CurrentFrequency的值设为信道号码,在扩展访问信道间隔内(ExtendedAccesschannel intervals),除非有一个新的MLMEXSCHSTART.request 或MLMEX-SCHEND.request,MLME不会再发送任何的PLME-SET.request。扩展访问信道间隔之后,MLME返回连续或交替服务信道访问。
当收到一个MLMEX-SCHEND.request,MLME应停止请求的对应信道号码信道的访问。MLME发送一个PLME-SET.request,其dot11CurrentFrequency设置为MIB特征ChannelSetTable确定的CCH。如果MLME单方面释放一个SCH(例如,由于不同步),它将发送一个MLMEX-SCHEND.indication说明理由。释放行为发生在CCH间隔边界在标准不做规范。
802.11中的时间同步主要通过信标帧beacon frame 以及探测应答帧 probe response frame来进行。每个站点都维护着一个本地TSF计时器。TSF计时器是64比特的计时器,以1MHZ的频率工作,并且使用收到的其他STA的信息更新。此同步机制可以将一个BSS内的TFS定时器的同步维持在4微秒内,再加上1Mb/s或者更高速率的PHY的最大PHY传播时延。
时间戳字段TimeStamp/Beacon Interval简介
beacon frame以及probe response frame中都含有字段TimeStamp,帧中的时间戳值等于 发送节点将TimeStamp的第一比特发送到PHY层的时刻TSF定时器的数值 + 通过MAC-PHY到达PHY与无线媒介接口 的时延。
Beacon Interval参数由MIB的dot11BeaconPeriod属性值设置。其中dot11BeaconPeriod 是一整数,单位是TU,—个TU是1024 microseconds,也即1ms,默认的Beacon Interval是100 TUs,也就是0.1s。
TTBT概念
target beacon transmission time目标信标帧传输时间,理解为一系列时刻。时刻0就是一个TTBT。TTBT时刻的间隔长度精确地等于Beacon Interval,画图。
BSS网络的定时同步
发:AP是定时主时钟且执行TSF,可独立初始化其TSF计时器,AP每隔Beacon Interval,在TTBT时刻准备把信标帧beacon帧发往BSS内的STA,信标帧的传送机制与其他帧无异,根据基本媒介接入机制延迟实际发送时间。
收:当BSS内的STA接收到信标帧,其BSSID等于AP的MAC地址,则表明其为合法帧,可以使用帧内信息。beacon frame body中有时间戳字段TimeStamp,首先,修改收到的TimeStamp,添加接收方STA接收信标帧在PHY层的时延,再加上从MAC/PHY接口接收该TimeStamp首位到最后结束的时间,BSS中无条件修改与修改后TimeStamp不同的本地时钟。注意,BSS内的STA采用统一的Beacon Interval,该参数包含在信标帧中。
IBSS网络的定时同步
发:IBSS中的信标帧的生成是分布式的,Beacon Interval也包含在信标帧和探测应答帧中。STA加入IBSS时,要采用该IBSS的Beacon Interval。每个STA都维护一个自己的TSF定时器。每当定时器的值表明到达TTBT时刻,STA采取以下行为:
1、挂起任何未发送的非信标帧的退避计时器
2、取随机延时,退避,该延时均匀分布在0-2倍的aCWmin*aSlotTime之间
3、在退避结束前接收到其他STA的信标帧,那么取消余下随机延时与即将发送的退避计时器,之前挂起的退避计时器resume。
4、在退避结束未接收到其他STA的信标帧,STA发送该信标帧。
收:当BSS内的STA接收到信标帧/探测应答帧,其BSSID等于该IBSS的BSSID,则接受该帧。同样,修改收到的TimeStamp,添加接收方STA接收信标帧在PHY层的时延,再加上从MAC/PHY接口接收该TimeStamp首位到最后结束的时间,IBSS中,若修改后的TimeStamp晚于本地定时,则采用这个接收到的定时。
WAVE中采用UTC(世界协调时间)估值作为共同的时间基准。当执行同步时,MLME通过执行UTC时间的估计和标准偏差的估计来同步UTC时间。这就完成了信道间隔内的传输同步。标准偏差定义为瞬时估计误差概率密度的平方根。包括UTC时间估计中的任何偏差的影响。
UTC可从许多外部时钟源获得,包括全球定位系统(GPS)、站点接收的Timing Advertisement 帧等。MLME使用UTC估计确定信道间隔时间。以下主要介绍以TA帧的广播信息元素(Timing Advertisement element)作为输入估计UTC时间的方法。
1) The Timestamp field 值等于发送该帧时发送方的TFS时间,其值不再作为于共同的时间基准
2) The Timing Capabilities subfield 在WAVE模式下取值为1,表明发送方使用外部时间源,取值0时表示没有外部绝对标准时钟源。
3) The Time Value subfield值是时间戳和UTC之间的差值估计。其值加上TimeStamp即为接收方STA的估计UTC时间。
4) The Time Error subfield 给出Time Value误差的标准差the standard deviation of the error in the Time Value.
TA帧同步机制
当STA接收到一个TA帧,则MLME收到原语MLME-TIMING_ADVERTISEMENT. Indication,该原语的规范在1609.4中没有提及,该原语向MAC传递接收节点的local time以及TA帧中的主要信息,local time即接收到timestamp第一位时的本地TSF定时值。当前本地TSF定时器的值可以通过MLME-GETTSFTIME原语访问。
定时广播帧的接收方可使用定时广播帧的传输时间戳字段、时间值、和时间错误、以及本地TSF时间,以此确定UTC时间和本地时间店的本地TSF时间之间的关系。
具体如何利用TA信息估计UTC时间?资料:UTC估计时间是时间戳和时间值的和。理解:本地UTC等于所发送TA帧提取的 timestamp+ The Time Value,本地UTC与本地TSF值可得出本STA要发送的TA帧的The Time Value。
SyncTolerance/ 2的值用来确定WAVE装置是否同步到UTC,如果三倍的The Time Error小于Synctolerance/ 2,则规定WAVE设备能同步到UTC。即,同步条件:
The Time Error * 3 < SyncTolerance/ 2