WiFi(Wireless Fidelity)基础(四)

news2024/12/23 13:09:21

目录
一、基本介绍(Introduction)
二、进化发展(Evolution)
三、PHY帧((PHY Frame )
四、MAC帧(MAC Frame )
五、协议(Protocol)
六、安全(Security)
七、802.11ac标准
八、802.11ad标准
九、802.11ax (WiFi 6)标准
十、WiFi直接连接(WiFi Direct)
十一、测试(Testing)
十二、WiFi射频测量(WiFi RF Meas.)

https://www.sharetechnote.com/

四、MAC帧(MAC Frame )
正如你可能从我发布的其他技术中注意到的那样,我学习通信技术的方式总是一样的。研究和理解帧结构的细节,然后了解这些帧是如何在通信过程(协议protocol)的每个步骤中交换的。

PHY/MAC Frame
PLCP (Physical Layer Convergence Protocol) Structure
MAC Header Structure
Frame Control Field Structure
Duration ID Field Structure
Sequence Control Field Structure
Example 1 > MAC Header / Beacon Frame
RTS Frame
CTS Frame
ACK Frame
Example 1 > MAC Header / ACK Frame
Beacon Frame
Example 1 > MAC Header / Beacon Frame
Trigger Frame
Example : MU-RTS

1、WLAN框架概述(Overview)

以下是WLAN帧的一些要点(bullelt)。(随着我了解的越来越多,列表会越来越长)

WLAN不使用802.3以太网帧(Ethernet frames)
有三种不同类型的WLAN帧,分别称为控制帧、管理帧和数据帧。
最大帧大小为2346字节,并且它们通常(typically)以1516字节进行分段(fragment)。
前置码(Preamble)总是以1Mbps发送。

2、PHY/MAC帧

这是移动设备和接入点之间正在交换的帧。整个框架的结构如下所示。

绿色显示的“网络数据(Network Data)”是最终传输到有线主干(wired backbone)的部分,所有其他部分(PHY、DataLink、Packet Trailer)用于移动客户端和接入点之间的通信。物理层(PHY)和“数据链路(Data Link)”部分将是WLAN框架的主要主题。
在这里插入图片描述

3、PLCP(Physical Layer Convergence Protocol/物理层汇聚协议)结构

现在让我们来看看PLCP的细节。PLCP是在PHY层添加的一种报头(header)。它由两个主要部分组成:序言(preamble)和报头( Header),如下所示。
在这里插入图片描述
PLCP的第一部分用于“同步(Synchronization)”。这是一个由交替(alternation)0和1的80位组成的部分。

下一部分(portion)是SFD(Start Frame Delimiter/起始帧分隔符)。这是一种指示(indicate)物理帧开始的标签(tag),是一个特定确定的16位序列sequence(0000110010111101)。

4、MAC报头结构

MAC报头将是帧(frame)的最复杂的结构。MAC报头中包含(contain)的最重要的信息如下:

帧的类型是什么?
帧的源地址和目标地址(source and destination address)是什么?

<帧控制字段结构(Frame Control Field Structure )>
在这里插入图片描述
您可以看到分配给Address的四个不同位置(location)。分配给哪个地址字段(address field)的地址类型由“to DS”和“From DS”字段(field)决定。DS字段和Address字段之间的映射(mapping)指定如下。
在这里插入图片描述
无论帧中的内容如何(Regardless of the contents in the frame),MAC报头的结构都是相同的。那么我们(无线局域网设备)如何知道帧中包含什么样的信息(数据)呢?”“类型”和“子类型”字段(Type and Sub Type field)确定框架的特征(characteristics)。

类型字段(2位)确定帧所承载内容的主要特征,“子类型”定义信息的细节。

内容的“类型”/“子类型”和特征映射(map)如下表(table)所示。此表主要适用于802.11a、b、g,并且在最近的规范(例如802.11ac、802.11ad)中有一些更改(添加additions)。关于最近规范(specification)中的更改,我不会在此表中列出,我将在处理802.11ac或802.11ad的单独页面中列出这些更改。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
< 持续时间ID字段结构(Duration ID Field Structure) >
持续时间字段(duration field)中的值具有不同的含义meaning(解释interpretation),这取决于MSB(Most Significant Bits/最高有效位)处的一个或两个位,如下所示。
在这里插入图片描述
<序列控制字段结构 (Sequence Control Field Structure) >

当数据包(packet)从更高层进入MAC层时,在“序列号”字段分配一个序列号(sequence number)。如果传入的数据包对于单个MAC帧来说太大,则将其拆分(split)为多个片段(fragment)。在这种情况下(In this case),会在“片段编号”字段( ‘Fragment No’ field)中指定片段编号。当一个数据包进入多个MAC帧时,这些分段帧在“序列号”字段(‘Sequence Number’ field)中获得相同的值,在“片段编号(Fragment No)”字段获得不同的值。

802.11可以传输(transmit)最大2304字节的更高层分组。考虑到WEP开销(overhead)和8字节LLC报头(header),最大(maximum)MAC帧大小应该是2296字节。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、RTS Frame
在这里插入图片描述
持续时间(Duration):以微秒( microsecond)为单位的时间。这是“数据/管理帧+CTS+ACK+3 SIFS”所需的时间
RA:接收地址(Reciever Address)
TA:发送地址(Transmitter Address)
在这里插入图片描述
6、CTS Frame
在这里插入图片描述
持续时间(Duration):以微秒( microsecond)为单位的时间。
RA:接收地址(Reciever Address)
TA:发送地址(Transmitter Address)
在这里插入图片描述
7、ACK Frame
在这里插入图片描述
Example 1 > MAC Header / ACK Frame

持续时间(Duration):以微秒( microsecond)为单位的时间。
RA:接收地址(Reciever Address)
TA:发送地址(Transmitter Address)
在这里插入图片描述
8、信标帧(Beacon Frame)
在这里插入图片描述
信标帧(Beacon Body)的内容是一个巨大的结构,所以我为信标(Beacon)及其内容创建了一个单独的页面。

9、触发帧(Trigger Frame)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Reference

Packets never lie: An in-depth overview of 802.11 frames
802.11ac Analysis Webinar

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/503331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

功能测试常用的测试用例大全

登录、添加、删除、查询模块是我们经常遇到的&#xff0c;这些模块的测试点该如何考虑 1)登录 ① 用户名和密码都符合要求(格式上的要求) ② 用户名和密码都不符合要求(格式上的要求) ③ 用户名符合要求&#xff0c;密码不符合要求(格式上的要求) ④ 密码符合要求&#xff0c;…

1_1torch学习

一、torch基础知识 1、torch安装 pytorch cuda版本下载地址&#xff1a;https://download.pytorch.org/whl/torch_stable.html 其中先看官网安装torch需要的cuda版本&#xff0c;之后安装cuda版本&#xff0c;之后采用pip 下载对应的torch的gpu版本whl来进行安装。使用pip安装…

Linux内核中的链表(list_head)使用分析

【摘要】本文分析了linux内核中的list_head数据结构的底层实现及其相关的各种调用源码&#xff0c;有助于理解内核中链表对象的使用。 二、内核中的队列/链表对象 在内核中存在4种不同类型的列表数据结构&#xff1a; singly-linked listssingly-linked tail queuesdoubly-lin…

SSM框架学习-bean生命周期理解

Spring启动&#xff0c;查找并加载需要被Spring管理的Bean&#xff0c;进行Bean的实例化&#xff08;反射机制&#xff09;&#xff1b;利用依赖注入完成 Bean 中所有属性值的配置注入&#xff1b; 第一类Aware接口&#xff1a; 如果 Bean 实现了 BeanNameAware 接口的话&#…

Yolov8改进---注意力机制:CoTAttention,效果秒杀CBAM、SE

1.CoTAttention 论文:https://arxiv.org/pdf/2107.12292.pdf CoTAttention网络是一种用于多模态场景下的视觉问答(Visual Question Answering,VQA)任务的神经网络模型。它是在经典的注意力机制(Attention Mechanism)上进行了改进,能够自适应地对不同的视觉和语言输入进…

day28_mysql

今日内容 零、 复习昨日 一、函数[了解,会用] 二、事务[重点,理解,面试] 三、索引[重点,理解,面试] 四、存储引擎 五、数据库范式 六、其他 零、 复习昨日 见晨考 一、函数 字符串函数数学函数日期函数日期-字符串转换函数流程函数 1.1 字符串函数 函数解释CHARSET(str)返回字…

一个简单的watch以及ESModule导入和解构的区别

背景 最近写了个很有意思的方法&#xff0c;感觉还蛮不错的就分享一下。起先是我在写calss组件的时候遇到一个问题&#xff0c;我需要监听一个导入的值&#xff0c;导入的值最开始是undefined&#xff0c;经过异步操作以后会得到一个新的值&#xff0c;而我需要在这个class组件…

[echarts] legend icon 自定义的几种方式

echarts 官方配置项 地址 一、默认 图例项的 icon circle, rect, roundRect, triangle, diamond, pin, arrow, none legend: {top: 5%,left: center,itemWidth: 20,itemHeight: 20,data: [{icon: circle, name: 搜索引擎},{icon: rect, name: 直接访问},{icon: roundRect, n…

分布式系统---MapReduce实现(Go语言)

一、说明 本次实验是基于MIT-6.824的课程&#xff0c;详情请参见官网主页下载源代码 二、MapReduce原理 2.1 经典的分布式模型 MapReduce是经典的分布式模型。通过Map函数和Reduce函数实现。 分布式计算&#xff0c;就是利用多台机器&#xff0c;完成一个任务。关于分布式…

算法第一天力扣---2651. 计算列车到站时间

1.题目要求&#xff1a; 给你一个正整数 arrivalTime 表示列车正点到站的时间&#xff08;单位&#xff1a;小时&#xff09;&#xff0c;另给你一个正整数 delayedTime 表示列车延误的小时数。 返回列车实际到站的时间。 注意&#xff0c;该问题中的时间采用 24 小时制。 示…

让ChatGPT猜你喜欢——ChatGPT后面的推荐系统

Chat GPT的大热&#xff0c;让人们的视线又一次聚焦于“人工智能”领域。通过与用户持续对话的形式&#xff0c;更加丰富的数据会不断滚动“雪球”&#xff0c;让Chat GPT的回答变得越来越智能&#xff0c;越来越接近用户最想要的答案。ChatGPT能否颠覆当下的推荐系统范式&…

第三章 灰度变换与空间滤波

第三章 灰度变换与空间滤波 3.1背景知识 ​ 空间域指图像平面本身。变换域的图像处理首先把一幅图像变换到变换域&#xff0c;在变换域中进行处理&#xff0c;然后通过反变换把处理结果返回到空间域。空间域处理主要分为灰度变换与空间滤波。 3.1.1 灰度变换和空间滤波基础 …

cmcc_simplerop

1,三连 2&#xff0c;IDA分析 溢出点&#xff1a; 偏移&#xff1a;0x144(错误) 这里动态重新测试了一下偏移&#xff1a; 正确偏移&#xff1a;0x20 3&#xff0c;找ROP 思路&#xff1a; 1、找系统调用号 2、ROPgadget找寄存器 3、写入/bin/sh ROPgadget --binary simpler…

7-2使用Redis构建任务队列

目录 7-2使用Redis构建任务队列 第1关&#xff1a;先进先出任务队列 1、rpush/lpush命令&#xff1a;rpush(name,values[values…]) 2、blpop&#xff1a;blpop(keys, timeout)和 lpop/rpop&#xff1a;lpop(name) 删并返回删除值 3、lpushx/rpushx&#xff1a;lpushx(name…

使用CKKS全同态求近似倒数(近似乘法逆元)

求倒数的算法 两个数互为倒数&#xff0c;是说这两个数乘起来等1.比如a和b互为倒数&#xff0c;那么ab1. 5的倒数是0.2&#xff0c;我们可以很简单的求出来&#xff0c;但是如何在密文域中求一个数的倒数呢&#xff1f; 文章《An investigation of complex operations with …

C#自适应布局

注意事项&#xff1a;不要在Form1中添加任何布局&#xff0c;页面背景不设置图片 步骤&#xff1a; 1、在项目中添加AutoWindowsSize.cs类&#xff0c;内容如下&#xff1a; using System; using System.Collections.Generic; using System.ComponentModel; using System.Da…

2.2 掌握 NumPy 矩阵与通用函数

2.2 掌握 NumPy 矩阵与通用函数 2.2.1 创建NumPy矩阵创建NumPy矩阵矩阵的运算矩阵的属性 2.2.2 掌握ufunc函数1、常用的ufunc函数运算2、ufunc函数的广播机制 2.2.1 创建NumPy矩阵 创建NumPy矩阵 1、使用mat函数创建矩阵&#xff1a; matr1 np.mat(“1 2 3;4 5 6;7 8 9”) 2…

casbin轻量级的基于配置的授权框架

简介 Casbin是一个强大的、高效的开源访问控制框架&#xff0c;其权限管理机制支持多种访问控制模型。 Casbin提供了一个执行者 根据提供给执行者的策略和模型文件验证传入的请求。再根据对应的配置授权策略&#xff0c;验证请求判断释放那些行动。 在 Casbin 中, 访问控制模…

由于找不到vcomp140.dll无法继续执行代码,解决方法全攻略

如何解决找不到vcomp140.dll错误&#xff1f;在使用某些软件或者游戏的时候&#xff0c;你可能会遇到下面的错误提示&#xff1a;“由于找不到vcomp140.dll&#xff0c;无法继续执行代码”。这个错误提示通常表示你的电脑缺少一个或多个DLL文件&#xff0c;而这些文件是软件和游…

「字节跳动测试开发面经」一二三面+hr面+超级全资料+复习资料

​ 说在前面&#xff0c;面试时最好不要虚报工资。本来字节跳动是很想去的&#xff0c;几轮面试也通过了&#xff0c;最后没offer&#xff0c;自己只想到几个原因&#xff1a; 1、虚报工资&#xff0c;比实际高30%&#xff1b; 2、有更好的人选&#xff0c;这个可能性不大&am…