便宜虚拟主机做网站备份,品牌设计公司50强,网站建设 合优企业,物业管理系统802.11ax是WiFi 6标准#xff0c;其引入了一些新的特性和技术来提升无线网络的性能#xff0c;其中包括帧聚合和帧分片。以下是它们的详细处理流程#xff1a;
1. 帧聚合
帧聚合是一种提高传输效率的技术#xff0c;它允许多个数据帧被聚合到一起#xff0c;然后作为一个… 802.11ax是WiFi 6标准其引入了一些新的特性和技术来提升无线网络的性能其中包括帧聚合和帧分片。以下是它们的详细处理流程
1. 帧聚合
帧聚合是一种提高传输效率的技术它允许多个数据帧被聚合到一起然后作为一个单独的数据包进行传输。在802.11ax中主要使用了两种类型的帧聚合
空间流聚合在此类型中AP可以将多个客户端设备的数据帧聚合到一起然后通过相同的空间流spatial stream进行传输。这样可以提高单个AP与多个客户端设备之间的传输效率。
多用户聚合在此类型中AP可以将多个用户的数据帧聚合到一起然后通过不同的空间流进行传输。每个用户的数据帧被单独处理以避免碰撞和重传。这样可以提高AP与多个用户之间的总传输效率。 2. 帧分片
帧分片是一种将大尺寸数据帧分割成更小片段的技术。在802.11ax中帧分片主要用于支持长距离传输和高吞吐量。以下是帧分片的处理流程
数据切分在发送端首先将大尺寸的数据帧切分成多个小尺寸的片段。每个片段都包含必要的元数据如数据类型、序列号等以便接收端可以正确地重新组合原始数据帧。
逐片段传输然后每个小尺寸的片段被单独封装成一个数据包并通过无线介质进行传输。每个数据包都使用相同的空间流进行传输。
接收端重组在接收端根据元数据重新组合这些片段恢复出原始的数据帧。如果某个片段在传输过程中丢失或损坏可以通过重传机制进行修复。
通过帧聚合和帧分片技术802.11ax能够显著提高无线网络的传输效率和可靠性。这些技术有助于支持高吞吐量和低延迟的应用场景如在线游戏、高清视频流等。 本文接下来主要介绍的是数据在发送端分片和在接收端重组的细节。
WiFi-6的STA应遵循ieee802.11-2020协议中规定的帧分片处理流程但某些特殊情况除外。动态帧分片在聚合数据以适应受约束的PPDU持续时间方面提供了进一步的灵活性。
ieee802.11-2020协议定义了生成均匀片段化MSDU或MMPDU的程序其中每个片段的长度相同但最后一个片段除外。根据HT立即块确认协议这些帧分片并不包括在A-MPDU中。
WiFi-6的STA可以协商使用不同级别的动态分段
级别1支持一个非A-MPDU的动态片段不支持不包含S-MPDU的A-MPDU中的动态片段。
级别2支持不包含S-MPDU的A-MPDU中的动态片段但需满足以下条件条件一A-MPDU中任何给定MSDU或A-MSDU的不超过一个动态片段该动态片段是在块确认协议下发送的。 条件二不超过一个MPDU它是A-MPDU中MMPDU的动态片段。
级别3支持不包含S-MPDU的A-MPDU中的动态片段但需满足以下条件条件一A-MPDU中任何给定MSDU或A-MSDU的不超过四个动态片段这些动态片段是根据块确认协议发送的。 条件二不超过一个MPDU它是A-MPDU中MMPDU的动态片段。 需要注意的是在2级或3级中运行的HE STA也支持发送和接收1级动态片段。在级别2下可能有多个数据帧是动态片段但它们具有不同的序列号和状态。 这里定义了生成非均匀分片的MSDU、A-MSDU或MMPDU的程序其中每个分片的长度不一定相同。第一片段的长度应大于或等于接收方STA发送的HE Capabilities元素中的HE Capability Information字段中的minimum fragment size子字段中指示的最小片段大小。如果MSDU、A-MSDU或MMPDU的长度小于最小片段大小则MSDU、A-MSDU或MMPDU不应被分段。用动态分片生成的碎片被称为动态分片。
这些过程允许在级别1、级别2和级别3中包括作为非A-MPDU的一个动态片段并且允许在级别2和级别3中包含一个或多个MPDU的A-MPDU内包括一个或更多个动态片段。
HE STA遵循协议定义的用于生成这些片段的规则以及用于对接收到的动态片段进行碎片整理的规则。在协议中HE STA遵循其发送的HE能力元素中的HE MAC能力信息字段中的动态分段支持子字段中指示的分段级别除非在块确认建立过程期间交换的ADDBA请求和ADDBA响应帧中包括ADDBA扩展元素。在这种情况下HE STA遵循其在块ack设置过程期间接收的ADDBA响应帧中的ADDBA扩展元素中指示的分段级别。
HE STA应将ADDBA请求或ADDBA响应帧中的ADDBA扩展元素中的HE分段操作子字段如果存在设置为小于或等于其发送的HE能力元素中的动态分段支持子字段的值。
HE STA应将ADDBA响应帧中的ADDBA扩展元素如果存在中的HE分段操作子字段设置为小于或等于接收到的ADDBA请求帧中的DDBA扩展元素中的HE分片操作子字段如果存在的话的值。 下面是动态帧分片的相关细节
对于级别1和级别2的动态分段以下内容适用
第一发送一个或多个动态片段的始发STA应针对每个片段请求来自接收方STA的即时响应。
第二发起方STA应按照10.4中定义的顺序发送片段。
对于3级动态分段并非所有动态分段都需要立即响应并且不需要按顺序发送动态分段。如果接收方发送的HE Capabilities元素中的A-MSDU Fragmentation Support子字段为1则HE STA可以发送A-MSDU的动态片段。
发起方STA不应同时向同一接收方STA发送大于Nmax的多个未决MSDU和A-MSDU如果支持的话的动态片段其中MSDU和A-MSDU的Nmax如果支持是基于接收方STA传输的HE Capabilities元素中的Maximum number of Fragmented MSDU/a-MSDU子字段来计算的。术语未决是指包含MSDU、A-MSDU或MMPDU的全部或部分的MPDU对于该MPDU传输已经开始并且MSDU、A-MSDU或MMPDU的递送尚未完成即尚未接收到对最终片段的确认并且由于重传、生存期或某些其他原因MSDU、A-MSDU或MMADU尚未被丢弃。
注意未完成MMPDU的动态片段不计入针对Nmax限制的检查中。
如果先前发送的MSDU、A-MSDU或MMPDU的所有动态片段在接收STA处已明确失败则发起方STA可重新发送完整MSDU、A-MSDU或MMPDU。如果先前发送的MSDU、A-MSDU或MMPDU的片段中的一个或多个在接收STA处明确失败则始发STA可以重新发送失败的片段关于术语明确失败的定义参见下一段。重传片段的帧体长度和内容应与最初传输的片段相同并且在该STA的MSDU、A-MSDU或MMPDU的使用寿命内应保持固定除非帧未加密在最初传输片段之前的所有片段都已接收并且初始发送的片段之后的所有片段要么已经明确失败要么还没有被发送。在这种情况下重新发送的片段的帧体长度和内容可能与最初发送的片段不同。
如果发起方STA接收到包含以下内容的即时响应则片段在接收STA处明确是失败的
1、有效的第一个MPDU不是Ack帧、压缩的块确认帧或多STA块确认帧其所有先前的EOF前MPDU定界符都被接收。
2、不包含BA信息字段且TID等于分段的BA信息字段的多STA块确认帧。
3、压缩的块确认帧或多STA块确认帧其中包含BA信息字段其TID等于分段的TID但不确认收到分段。
发起方STA不得向接收方STA发送未在A-MPDU中携带的MPDU或携带不满足上述条件的动态片段的A-MPDU。 级别1的动态帧分片
如果从接收方STA接收的HE Capabilities元素的HE MAC Capabilities Information字段中的 Dynamic Fragmentation Support 子字段为 1、2 或 3则发起方 STA 可以使用级别 1 动态分段向接收方STA传输MSDU、A-MSDU如果接收方支持或MMPDU非A-MPDU或 MMPDU的一个动态分段该MMPDU是非A-MPDU并且未根据块确认协议发送到接收方 STA。
发起方 STA 可以使用 1 级动态分段根据块确认协议将分段的 MSDU 或 A-MSDU如果受接收方支持传输到接收方 STA前提是满足以下条件从接收方 STA 接收的 HE Capabilities 元素中的 Dynamic Fragmentation Support 子字段为 1、2 或 3;对于与 MSDU 或 AMSDU 的 TID 关联的块确认协议如果从接收方 STA 接收的 ADDBA 响应帧中存在 ADDBA 扩展元素则 HE 分段操作子字段为 1。 级别2的动态帧分片
如果满足以下条件之一发起方STA可以根据块确认协议将分段的MSDU或A-MSDU如果接收方支持传输到使用级别2动态分段的接收方STA
条件1从接收方STA接收的HE Capabilities元素中的Dynamic Fragmentation Support子字段为2;对于与MSDU或AMSDU的TID关联的块确认协议如果从接收方STA接收的ADDBA响应帧中存在ADDBA扩展元素则HE分段操作子字段为2。
条件2从接收方STA接收的HE Capabilities元素中的Dynamic Fragmentation Support子字段为3;对于与MSDU或A-MSDU的TID关联的块确认协议ADDBA Extension元素存在并且从接收方STA接收的ADDBA响应帧中的HE Fragmentation Operation子字段为2。 发起方STA可以向接收方STA传输以下内容
1、MSDU、A-MSDU如果收件人支持或MMPDU的一个动态分段该分段是使用1级动态分段的非A-MPDU。
2、每个MSDU或A-MSDU最多有一个MSDU或A-MSDU如果接收方支持的动态分段在A-MPDU中最多有一个MMPDU的动态分段其中AMPDU包含至少一个使用2级动态分段的动态分段MSDU或A-MSDU的动态片段应根据块确认协议发送。 级别3的动态帧分片
只要满足以下条件发起方STA可以根据块确认协议或分段MMPDU使用级别3动态分段将分段的MSDU或A-MSDU如果接收方支持传输到接收方STA
条件1从接收方STA接收的HE Capabilities元素中的Dynamic Fragmentation Support 子字段为3。
条件2对于与MSDU或A-MSDU的TID关联的块确认协议如果从接收方STA接收的 ADDBA响应帧中存在ADDBA扩展元素则HE分段操作子字段为3。 另外级别3分段允许在同一A-MPDU中包含的MSDU或A-MSDU的多个分段减少片段的传输延迟。 发起方 STA 可以向接收方 STA 传输以下内容
1、MSDU、A-MSDU如果收件人支持或 MMPDU 的一个动态分段该分段是使用 1 级动态分段的非 A-MPDU。发起方 STA 应遵循协议定义的生成 S-MPDU 的规则。
2、每个MSDU或A-MSDU最多有四个MSDU或A-MSDU的动态片段如果接收方支持A-MPDU中最多有一个MMPDU的动态片段其中AMPDU包含至少一个使用3级动态分段的动态片段;MSDU或A-MSDU的动态片段应根据块确认协议发送。
2.1、发起方 STA 应将每个 MPDU 的 Fragment Number 子字段设置为小于 4 的值。
2.2、发起方 STA 应遵循协议定义的生成 A-MPDU 的规则但 A-MPDU 应包含序列号子字段范围不超过 BL/4 的 MPDU其中 BL 是对应于传输片段的 TID 的压缩 BlockAck 或多 STA BlockAck 帧的 Block Ack 位图字段的长度。 下面是动态帧聚合的相关细节
如果HE STA不支持动态分段则应将它传输的HE Capabilities元素的HE MAC Capabilities Information字段中的Dynamic Fragmentation Support子字段设置为0。否则HE STA应按如下方式设置 Dynamic Fragmentation Support 子字段
如果STA支持级别1的动态帧分片的过程接收动态分段则设置为1、2 或 3。
如果STA支持级别2的动态帧分片的过程接收动态分段则设置为2 或 3。
如果STA支持级别3的动态帧分片的过程接收动态分段则设置为3。 如果HE STA支持接收动态分段则应将dot11HEDynamicFragmentationLevel设置为其传输的HE Capabilities元素中Dynamic Fragmentation Support子字段的值。
如果分片是在 级别1、级别2或者级别3分片方式下发送的则该分片属于动态分片。
动态帧聚合整理应遵循协议中定义的规则但以下情况除外
1、接收方STA应支持同时接收多个未完成的MSDU和A-MSDU的动态分段当支持来自等于Nmax的同一发送STA时其中MSDU和A-MSDU如果支持的Nmax 是从STA传输的HE功能元素中的分段MSDU/A-MSDU指数子字段获得的。术语“未完成”是指包含全部或部分MSDU或A-MSDU的MPDU其传输已开始但MSDU或AMSDU的交付尚未完成即尚未收到对最终片段的确认并且MSDU、A-MSDU或MMPDU未因重试而被丢弃 寿命或其他原因。接收方STA应支持从发送STA并发接收一个未完成的MMPDU的动态片段。
2、接收方STA可能受10.5中定义的每个MSDU、A-MSDU和MMPDU的接收计时器规则的约束。
具有 dot11AMSDUFragmentationOptionImplemented true的STA应将HE Capabilities 元素中的A-MSDU Fragmentation Support子字段设置为1。否则STA应将HE Capabilities元素中的A-MSDU Fragmentation Support子字段设置为0。 级别1的动态帧聚合
在接收到非A-MPDU或携带动态分段的A-MPDU时接收方STA会使用Ack帧或多STA BlockAck帧进行响应如果接收到的分段包含在请求立即响应的MPDU中。接收方STA应遵循协议中定义的规则用于为作为MPDU或在S-MPDU或启用ACK的单TID A-MPDU 中携带的请求动态片段生成Ack帧用于生成包含对请求S-MPDU 的确认的规则该请求包含对携带一个动态分段并在HE TB PPDU中携带的请求S-MPDU的确认启用ACK的单TID A-MPDU或启用ACK的多TID A-MPDU。 级别2的动态帧聚合
在接收到作为动态分段的非A-MPDU或携带一个或多个动态分段的A-MPDU时接收方STA使用以下帧之一进行响应
如果接收到的片段是非A-MPDU或包含在A-MPDU中并请求立即响应则为Ack帧或多 STA BlockAck帧。接收方STA应遵循协议中定义的规则为请求动态分段生成Ack帧该动态分段是MPDU或在S-MPDU或启用了确认的单TID A-MPDU中传输以及上面定义的规则用于生成多STA BlockAck帧该帧包含对HE TB PPDU中携带的请求S-MPDU的确认启用ACK的单TID A-MPDU或启用ACK的多TID A-MPDU。
如果接收到的MSDU或A-MSDU如果有每个MSDU或A-MSDU最多一个片段的片段包含在包含请求立即响应的MPDU的A-MPDU中则为压缩BlockAck帧或多STA BlockAck 帧。接收方STA应遵循协议中定义的生成BlockAck帧的规则和生成Multi-STA BlockAck帧的规则但STA应该如下处理
处理1将压缩 BlockAck 帧或多 STA BlockAck 帧的 Block Ack Starting Sequence Control 子字段中的Fragment Number子字段的LSB设置为0该子字段对应于根据块确认协议发送的已接收分段的TID。
处理2将Block Ack Bitmap字段的每个位设置为1该字段对应于根据请求A-MPDU不是S-MPDU中包含的块确认协议发送的已接收片段的 Sequence Number 子字段和 TID子字段。
STA应更新仅当MSDU或 A-MSDU 成功重建时才收到分段的MSDU或A-MSDU的相应块确认记录。否则STA 不应更新该MSDU或A-MSDU的块确认记录。 注意接收方STA设置与MPDU的序列号和TID子字段对应的Block Ack位图字段的位该子字段不是协议中定义的片段。 如果接收方STA从发起方STA接收到该TID的BlockAckReq帧则接收方STA应丢弃在TID的HT即时块确认会话期间接收的任何不完整MSDU或A-MSDU片段如果这些片段的序列号字段值小于BlockAckReq帧的起始序列号字段的值或者序列号小于WinStartB。两个值的比较按照协议中所述的圆模4096进行。 级别3的动态帧聚合
在接收到作为动态分段的非A-MPDU或携带一个或多个动态分段的A-MPDU时接收方STA使用以下帧之一进行响应
如果接收到的片段是非A-MPDU或包含在请求立即响应的A-MPDU中则为Ack帧或多 STA BlockAck帧。接收方STA应遵循协议中定义的规则为请求动态分段生成 Ack帧该动态分段是MPDU或在S-MPDU或启用了ack的单TID A-MPDU 中传输以及协议中定义的规则用于生成多STA BlockAck帧该帧包含对HE TB PPDU中携带的请求S-MPDU的确认启用ACK的单TID A-MPDU或启用ACK的多TID A-MPDU。
如果与 TID 对应的 MSDU 或 A-MSDU如果有的接收片段每个 MSDU 或 AMSDU 的一个或多个片段包含在 A-MPDU 中则压缩 BlockAck 帧或多 STA BlockAck 帧其中至少一个接收到的 MPDU 的片段编号字段对应于与接收的片段相同的 TID 具有非零值该字段请求立即响应。接收方STA应遵循协议中生成BlockAck帧的规则和生成Multi-STA BlockAck帧的规则但STA应该如下处理
处理1将压缩 BlockAck 帧或多 STA BlockAck 帧的 Block Ack Starting Sequence Control 子字段中的 Fragment Number 子字段的 LSB 设置为 1该子字段对应于根据块确认协议发送的已接收分段的 TID。
处理2将 Block Ack 位图字段位置 B 的每个位设置为 1该字段对应于根据块确认协议发送的接收片段否则应将其设置为 0B 计算为 B 4 × SN – SSN FN其中对序列号的操作执行模 4096。SN 是 MPDU 的 Sequence Number 子字段的值其中包含指示其接收状态的片段。SSN 是 BlockAck 帧的 Block Ack Starting Sequence Control 子字段的 Starting Sequence Number 子字段的值。FN 是 Fragment Number 子字段中的值。 压缩 BlockAck 帧或多 STA BlockAck 帧如果接收到的 MSDU 或 A-MSDU如果有的片段对应于 TID每个 MSDU 或 AMSDU 的一个或多个片段包含在 A-MPDU 中其中所有接收的 MPDU 的片段编号字段对应于与接收的片段相同的 TID则请求立即响应。接收方STA应遵循协议中生成BlockAck帧的规则和生成Multi-STA BlockAck帧的规则但STA应该如下处理
处理1将压缩 BlockAck 帧或多 STA BlockAck 帧的 Block Ack Starting Sequence Control 子字段中的 Fragment Number 子字段的 LSB 设置为 0该子字段对应于根据块确认协议发送的已接收分段的 TID。
处理2将 Block Ack Bitmap 字段的每个位设置为 1该字段对应于根据非 S-MPDU 请求的 A-MPDU 中包含的块确认协议发送的接收片段的序列号子字段和 TID 子字段。
STA 应更新仅当 MSDU 或 A-MSDU 成功重建时才收到分段的 MSDU 或 A-MSDU 的相应块确认记录。否则STA 不应更新该 MSDU 或 A-MSDU 的块确认记录。
注意接收方 STA 设置与 MPDU 的序列号和 TID 子字段对应的 Block Ack 位图字段的位该子字段不是协议中定义的片段。
如果接收方 STA 从发起方 STA 接收到该 TID 的 BlockAckReq 帧并且该分段的序列号字段值小于 BlockAckReq 帧的起始序列号字段值或者序列号小于 WinStartB则接收方 STA 应丢弃在 TID 的 HT 即时块确认会话期间接收的任何不完整 MSDU 或 A-MSDU 片段。两个值的比较按照协议中所述的4096进行。
以上只是我个人的一些理解具体还是要以标准一些的规定为主。