802.11a/g的发送过程与接收过程

802.11a/g:物理层头部

为了理解802.11a/g中的发送和接收过程,我们首先需要对其物理层的头部进行一定的理解。相比802.11b的物理层头部,802.11a/g较为复杂一些。在802.11a/g的物理层头部前面有三个部分,一个STF,一个LTF,还有一个SIGNAL,即短训练字段和长训练字段以及一些具体的设置,如下图(图参考自泰克的文档)

PS:这里需要指出的是在802.11a/g中,整个物理层头部都叫做preamble,与802.11b中的PLCP Preamble的概念不同,这里就对于PLCP和PMD子层有非常明确的分界,所以还需要注意一下。
其各个部分对应的功能如下:

在协议原版中,对这一块有更细致的描述,如下图(07版协议第600页)

在802.11a/g的物理层头部中,第一个部分为STF(Short Training Field),STF主要是由10个短的symbol组成(t1~t10),其每一个symbol是0.8us,其包含了很多个功能,其中t1-t7主要是包含Signal Detect,AGC,Diversity Selection,t8-t10主要是包含Coarse Freq,Offset Estimation,Timing Synchronize,其中部分内容我们不进行展开了,一般情况下,我们认为STF主要的两个功能是:

  • 帧同步【即判断有没有一个数据帧到达,从而寻找SFD(Start-of-Frame Delimiter)】
  • 粗频率同步,这里主要是针对频率偏移所做的一个同步的工作,同时也正好是对应后面的细频率同步的阶段(即LTF阶段)

我们在DCF的部分下,提到CCA中存在一种载波侦听CS的方式,其主要就是基于t1-t10这个部分的自相关或者互相关来完成的,如下图(参考Cambridge.Next Generation Wireless LANs.802.11n and 802.11ac):

横轴是采样点数,纵轴是幅度,这里并没做归一化,这里可以数出来一共有10个尖峰,和这里t1-t10的数量一致,一般识别到一个尖峰后,STA就认为信道里面是有数据帧正在被传输的,从而完成CS的检测。一般情况下,为了避免时延扩展的影响,这里采用自相关的效果会比互相关好一些。同时有关频率估计这一块,由于和本文主旨关联不大,所以不进行展开了。

第二个部分是LTF(Long Training Field),其主要功能是细频率同步和信道估计。从结构上而言,LTF一种是三个部分,1.GI,即保护间隔,用来防止ISI,即符号间干扰。2.两个独立的长训练symbol,T1以及T2。

SIGNAL部分在Preamble的最后一个部分,其结构如下

首先Rate是标识数据包的传输速率的,即采用什么调制方式,编码速率,一般协议中直接所述标识了MCS值(MCS对应不同的速率),这里一种4个bit,实际上可以标识为2^4,16个速率,实际上使用为8个。然后Length位是标识了数据包(具体payload)的长度,这里没有什么特殊的地方,与802.11b的前面不同,802.11b那里是传输数据包的时间,而802.11a/g的情况下是长度。tail位是有个时候为了做FEC的,具体与卷积编码有关,在802.11a/g中,数据包头部和payload是分开来编码的,所以在头部优一个tail部分,payload体中间也有一个tail部分。通常这个部分设置成逻辑“0”。最后是reserved和parity部分,通常情况下,parity是用来做偶数奇偶性校验的。由于这里parity只有1位,所以在噪声比较大的情况下,很容易发生误识别的问题。所以在这一些设计中,把reserved位当做parity的一个扩展。同时,在802.11a/n混合模式中(这里由于802.11n也可以定义在5G频段),这里也有使用reserved位来维护一个协议的后续兼容性,即采用reserved来表示这个是一个802.11n MF Frame(PS:MF即是mixed format)。其余的一些补充可以参考(有关802.11a/g物理头:Premble结构有关802.11a/g物理头:STF部分有关802.11a/g物理头:LTF部分有关802.11a/g物理头:SIGNAL部分),基于这些预备知识,我们下面描述802.11a/g的发送和接收过程。

802.11a/g:发送过程

总体结构上而言,802.11a/g和802.11b的发送过程基本变化不大,有些相同的部分我们会简化一些描述。

  1. 初始是Rx状态,若收到上层的PHY_TXSTART.req(TXVECTOR)信息,则PHY层转换到Tx Init状态,在802.11a/g的TXVECTOR和802.11b中基本一致。
  2. 当成功转移到Tx Init状态后,下一个状态是Gen. Pream.状态,这一步是用来产生preamble的,不过在该图中,这里主要是完成封装preamble中的STF和LTF两个字段的工作,即对应左图中的红色S1-S10部分,以及绿色pilot1-pilot2部分,由于这份资料较早,故直接采用了pilot这个说法,当前在802.11a/g中,pilot主要指的是用以信道估计的专用导频子载波,LTF也有这样的功能,主要一个是在传输前所使用,一个是在传输中所使用。这里同时PHY会向MAC层反馈PHY_TXSTART.confirm信息。
  3. 当转移到Encode SIGNAL状态后,这里是对preamble中的singal字段进行封装,其字段内容在之前我们已经提到过了,所以这里就不展开了,实际上和802.11b中的PLCP Header部分是一致的。
  4. 当接收到从MAC层发送过来的PHY_DATA.req之后,PHY转移到Encode Data状态,对数据进行发送,知道上层数据发送完毕,MAC层会传递来PHY_TXEND.req信息,从而PHY层会根据该信息转移至TxRx Switch状态对天线的工作机制进行转换。同时在传输过程中,任何一个状态也都有可能由于收到PHY_TXEND.req信息,而直接转移至TxRx Switch状态,这一点与802.11b中应该一致。若最终发送完成后,转移为Rx状态,并等待下一次传输。

802.11a/g:接收过程

在802.11a/g的接收过程中,基本结构和802.11b的类似,细节存在一些区别。

  1. 在Rx状态下,首先节点还是通过ED和CS的方式判断信道是否空闲,以及有没有对应的数据帧在信道中进行传输。如果CS检测到的话,那么可能就存在一个数据帧,那么需要再次通过FD来确定是不是一个数据帧,我们前面提到过,在802.11a/g中都是以相关的方式检测的,而不像802.11b中是采用SFD的方法检测帧起始部分的,所以在FD检测的时候,会不断的循环检测,知道找到最后一个跳变的位置(即last peak located),那么才检测到一个帧起始。若CS检测失败的话,与802.11b相同,其会根据能量检测判断信道是否空闲,只有信道空闲时,才会转移为ED模式。在Rx状态下,当信道busy时,PHY会向MAC通过PHY_CCA.ind反馈busy,当转移回ED状态时,PHY会向MAC反馈idle。
  2. 当FD识别到数据帧起始之后,转移入PMD Est.状态,这个状态貌似不是一个参数,且Est.应该是establish的意思,这里原始协议中没有直接采用过这个词组,而是在句子里面大致这样说过。在PMD Est.状态之后,通过传递PMD_DATA.ind参数,PHY开始处理SINGAL字段,其首先对其进行奇偶校验,这里没有采用802.11b中的CRC的方式,也许是为了简化一些。当解析成功后,提取解调数据所需要的MCS值,数据包大小等相关信息用以对上层数据包进行解析。若奇偶校验失败,则停止这一轮的传输,等待信道空闲后重新开始。
  3. 当成功解析到了SIGNAL字段之后,PHY层会对其数据字段的传输速率是否匹配进行判断,如果该速率是支持的话,那么转移至DATA Decode状态。若数据速率不支持的话,那么意味着无法解调,这里由于STA已经通过SIGNAL字段知道的数据包的大小以及传输速率,所以能够计算出数据包传输所需要花费的时间,从而就没有转移至RSSI Monitor状态,而是转移至Wait Frame End状态,等待对方释放信道,类似NAV的工作模式,等待计时为0时,转移回ED状态。
  4. 如果SINGAL字段解析成功,且速率匹配的话,那么就正常接收数据包,并反馈给MAC层PHY_RXSTART.ind信息,最终当数据接收完毕之后,反馈给上层PHY_RXEND.ind信息,然后回到初始状态。

原文:转载自:Wi-Fi研习者

802.11协议精读7:802.11a/g的发送过程与接收过程 - 知乎 (zhihu.com) 

### 802.11n 协议基础知识 #### 基本概念 IEEE 802.11n 是一种无线局域网(WLAN)标准,旨在显著提升数据传输速率和覆盖范围。该标准由 IEEE Task Group n (TGn) 制定,目标是通过改进物理层(PHY)和媒体访问控制层(MAC),实现更高的吞吐量和支持多输入多输出(MIMO)技术[^2]。 #### 工作原理 802.11n 的核心技术依赖于 MIMO 和正交频分复用(OFDM)。以下是其主要工作机制: - **MIMO 技术**:利用多个天线发送接收信号,从而增加链路容量并减少干扰。这种技术允许多条独立的数据流在同一频率上传输,极大地提高了带宽利用率[^4]。 - **OFDM 调制**:将信道划分为若干子载波,每个子载波承载一部分数据。这种方法可以有效对抗多径效应,并提高频谱效率[^3]。 - **高级调制方案**:802.11n 支持更高阶的 QAM(如 64-QAM 或 256-QAM),这使得每单位时间内的比特数更多,进而提升了整体传输速度。 #### 技术特点 1. **高吞吐量**:相比之前的 WLAN 标准(如 802.11a/b/g),802.11n 可以达到高达 600 Mbps 的理论最大传输速率(在四根空间流的情况下)。这一性能得益于更高效的编码方式和更大的带宽支持。 2. **向后兼容性**:为了确保现有设备能够无缝迁移到新网络环境,802.11n 设计了兼容模式,允许旧版客户端(如 802.11a/b/g 用户)接入新型 AP(接入点)[^1]。 3. **增强型 MAC 层功能**:引入帧聚合技术和块确认机制,减少了开销并加快了数据交换过程。这些特性有助于降低延迟并改善实时应用的表现,比如 VoIP 或视频会议服务。 4. **双频操作能力**:支持 2.4 GHz 和 5 GHz 频段的同时运行,提供了更多的可用频道选项,降低了拥塞风险。 ```python def calculate_max_throughput(num_streams, channel_width, modulation_scheme='64-QAM'): """ 计算给定条件下802.11n的最大理论吞吐量 参数: num_streams (int): 空间流数量 channel_width (float): 通道宽度(MHz) modulation_scheme (str): 调制方式,默认为'64-QAM' 返回: float: 最大理论吞吐量(Mbps) """ base_rate = { 'BPSK': 6, 'QPSK': 12, '16-QAM': 24, '64-QAM': 54, '256-QAM': 108 } coding_efficiency = {'64-QAM': 5/6} # 示例取值 max_phy_rate_per_stream = base_rate.get(modulation_scheme, 54) * \ (channel_width / 20) * list(coding_efficiency.values())[0] total_max_throughput = max_phy_rate_per_stream * num_streams return round(total_max_throughput) # 示例计算四个空间流下使用64-QAM调制时的最大吞吐量 print(f"Max Throughput with 4 streams and 64-QAM: {calculate_max_throughput(4, 40)} Mbps") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值