802.11 mac primitive服务类型

文章详细阐述了802.11MAC层对LLC层提供的三种服务:MA-UNITDATA.request(发送数据),MA-UNITDATA.indication(接收数据通知)和MA-UNITDATA-STATUS.indication(发送状态通知)。重点讨论了与服务质量(QoS)相关的参数如priority和serviceclass,以及它们在数据传输过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

802.11 mac service服务类型

MAC服务定义

mac层对上层LLC提供的服务

MAC服务分类

MA-UNITDATA.request:LLC层发送数据
MA-UNITDATA.indication:通知LLC层接收数据
MA-UNITDATA-STATUS.indication:通知LLC层MAC层状态

(1)MA-UNITDATA.request服务
request用于发送数据,其定义如下所示。

MA-UNITDATA.request(
source address // 指定本次数据发送端的MAC地址
destination address // 指定接收端的MAC地址。可以是组播或广播地址
routing information // 路由信息。对于802.11来说,该值为null(表示该值没有作用)
data // MSDU,即上层需要发送的数据。对802.11来说,其大小不能超过2304字节
priority // priority和service class的解释见下文
service class
)
request原语中,除priority和service class参数外,其他都很容易理解。而priority和serviceclass参数与QoS有关系。

priority的取值为0~15的整数。对于非QoS相关的操作,其取值为Contention和ContentionFree。802.11中,QoS设置了不同的用户优先级(User Priority,UP)。显然,UP高的数据将优先得到发送。Priority参数和QoS中的其他参数一起决定发送数据的优先级。
service class的取值也针对是否为QoS而有所不同。对于非QoS,取值可为ReorderableGroupAddressed或StrictlyOdered。这两个都和数据发送时是否重排(reorder)发送次序有关。非QoS情况下,STA发送数据时并不会主动去调整发送次序。而QoS情况下,很明显那些UP较高的数据见得到优先处理。但对于组播数据,发送者可以设置service class为ReorderableGroupAddressed进行次序调整。
对request原语来说,当LLC需要发送数据时,就会调用request。MAC层需要检查参数是否正确。如果不正确,将通过其他原语通知LLC层,否则将启动数据发送流程。

(2)MA-UNITDATA.indication服务
下面来看MAC层收到数据后用于通知LLC层的原语indication,其定义如下。

MA-UNITDATA.indication(
source address // 代表数据源MAC地址。其值取值MAC帧中的SA(关于MAC帧格式详情见后文)
destination address // 代表目标MAC地址,取自MAC帧中的DA,可以是组播地址
routing information // 值为null
data // MAC帧数据
reception status // 表示接收状态,例如成功或失败。对802.11来说,该状态永远返回success
// MAC层会丢弃那些错误的数据包
priority // 和request的取值略有不同,此处略过
service class
)
802.11中,indication只有在MAC层收到格式完整、安全校验无误及没有其他错误的数据包时才会被调用以通知LLC层。

(3)MA-UNITDATA-STATUS.indication服务
STATUS.indication用于向LLC层返回对应request原语的处理情况。其原型如下。

MA-UNITDATA-STATUS.indication(
// source和destination address和对应request的前两个参数一样
source address
destination address
transmission status // 返回request的处理情况,详情见下文
provided priority // 只有status返回成功,该参数才有意义。其值和调用request发送数据时的值一致
provided service class // 只有status返回成功,该参数才有意义
)
indication最关键的一个参数是transmission status,可以是以下值。

Successful:代表对应request发送数据成功。
Undeliverable:数据无法发送。其原因有数据超长(excessive data length)、在request时指定了routing information(non-null source routing)、不支持的priority和service class、没有BSS(no BSS available)、没有key进行加密(cannot encrypt with anull key)等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值