802.11无线权威指南读书笔记(4)802.11成帧细节

2023-12-04 05:59

本文主要是介绍802.11无线权威指南读书笔记(4)802.11成帧细节,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据帧(data frame)

负责用户数据的传递,位于帧主体(frame body)中。

数据帧基本结构

在这里插入图片描述
下面是数据帧的各种分类方式,我们主要看基于竞争的服务,就只有2种,如下图。
在这里插入图片描述

Frame Control(控制帧)

各字段含义之前有写过,需要注意ToDS和FromDS,根据这2bit来判断数据方向。
Duration(持续时间)
用Duration来记载NAV的值。遵循以西4项规范
1.无竞争周期Duration必须为32768,适用于无竞争周期任何数据帧
2.目的地址为组播、广播的帧,Duration为0,因为不需要确认
3.对于Frame Control中More Fragment(更多片段)位为0的数据帧Duration只需设置为SIFS+ACK的长度,因为这是最后一段,没必要在继续锁定信道。
4.对于Frame Control中More Fragment(更多片段)位为1的数据帧Duration需设置为下一片段所需时间+3*SIFS+2*ACK的长度,因为这是不是最后一段,需要继续锁定信道。
在这里插入图片描述
在这里插入图片描述

ToDS与FromDS

下面是ToDS与FromDS这2bit决定Address字段代表意义
在这里插入图片描述

ToDS=0,FromDS=0

这种帧用于IBSS(独立基本服务集),那种没有接入点的网络
在这里插入图片描述

ToDS=1,FromDS=0,来自AP的帧

在这里插入图片描述
在这里插入图片描述

ToDS=0,FromDS=1,传送至AP的帧

在这里插入图片描述
在这里插入图片描述

ToDS=1,FromDS=1,从AP到AP

在这里插入图片描述
在这里插入图片描述

数据帧类型
Data

在基于竞争的周期访问这种帧用于传递用户数据

Null

这种帧由MAC头和FCS组成,工作站用Null帧通知接入点进入省电状态,同时Frame Control的Power Management位置1
在这里插入图片描述

控制帧

控制帧用于协助数据帧传递,管理无线媒介访问以及提供MAC层可靠性。

控制帧的Frame Control

所有控制帧使用相同的Frame Control,如下
在这里插入图片描述

RTS(请求发送)

RTS用于获得媒介控制权。
在这里插入图片描述
在这里插入图片描述

CTS(清除发送)

CTS用于回复RTS,在802.11g中,用来避免干扰较旧的工作站。
在这里插入图片描述
在这里插入图片描述

ACK(确认)

用于帧的确认,对于最终ACK帧的持续时间直接设置为0
在这里插入图片描述
在这里插入图片描述

PS-Poll(省电-轮询)

工作站从省电模式苏醒后,需要向AP发生PS-Poll帧来取AP缓存帧,其中AID作用为AP标识不同的工作站
在这里插入图片描述

管理帧

管理帧用于无线网络的建立,比如认证、关联等。

管理帧结构

所有管理帧MAC头一样,管理帧用帧主体中的固定字段(fixed field,长度固定的字段)信息元素(information element,长度不固定的数据块)与其他系统交换信息。
在这里插入图片描述

长度固定的管理帧组件

这种组件长度与次序固定,所以不需要字段标头界定

Authentication Algorithm Number 字段

Authentication Algorithm Number(身份认证算法编号)位占用两个字节,表示关联之前,802.11层认证使用的认证类型,目前2种
在这里插入图片描述

Authentication Transaction Sequence Number字段

认证过程有好几个步骤,此字段用来标号认证步骤,1~65535之间。

Beacon interval字段

占2个字节,标识Beacon的发生时间间隔,单位是1024us。

Capability information字段

占2个字节,Capability information(性能信息)字段,用来告知设备具备何种性能,工作站通过这些位判断自己能否支持该BSS所有的功能,未实现性能通告的工作站无法加入该BSS
在这里插入图片描述

  • ESS/IBSS(扩展服务集/独立基本服务集)
    此2位互斥,标识此网络是ESS还是IBSS
  • Privacy(保密性)
    设为1,标识需要使用WEP/WPA加密,否则不需要
  • short Preamble(短前导码)
    802.11b增加此字段为了支持高速直接序列扩频物理层(high-rate DSSS),为1,支持短前导码,否则不支持。
  • PBCC(封包二进制回旋码)
    802.11b增加此字段为了支持高速直接序列扩频物理层(high-rate DSSS),为1,支持封包二进制回旋码调制机制,否则不支持。
  • Channel Agility(机动信道转换)
    802.11b增加此字段为了支持高速直接序列扩频物理层(high-rate DSSS),为1,支持机动信道转换选项,否则不支持。
  • Short Slot Time(802.11g)
    为1,代表使用802.11g所支持的较短时隙
  • DSSS-OFDM(802.11g)
    为1,代表使用802.11g的DSSS-OFDM帧构造选项
Current AP Address字段

6个字节,STA用词字段表明当前要关联的AP的MAC地址。

Listen interval字段

2字节,以Beacon interval为单位计算STA会多长时间想AP取缓存帧

Association ID字段

2字节,1~2007可用

Timestamp字段

8字节,时间戳

Reason Code 字段

2字节,当对方不适合加入网络,STA会发出Disassociation(取消关联)或Deauthentication(解除身份验证)帧作为响应,包含原因代码。

Status Code 字段

2字节,标识某项操作成功或者失败

管理帧的信息元素

管理帧的信息元素是边长组件,由1个Element ID(元素标识符)、一个Length(长度)以及不定长字段组成。如下所示
在这里插入图片描述
这里太多,不在列举,参考书P105

管理帧的类型
Beacon帧

Beacon帧是用于声明某个网络的存在,要加入该网络的必须参数,在基础结构型网络中,AP负责传送Beacon帧,下面是Beacon帧的结构,不一定所有字段都会使用到。
在这里插入图片描述

Probe Request帧

STA会用Probe Request(探测请求)帧主动扫描附件有哪些802.11网络,格式如下,SSID和Supported Rates字段必须,如果是兼容任何网络的SSID则使用broadcast SSID(广播形式的服务及标识符)。
在这里插入图片描述

Probe Response帧

如果Probe Request帧所探测的网络与之兼容,则该网络会以Probe Response帧响应。如下
在这里插入图片描述

Disassociation帧与Deauthentication帧

Disassociation(取消关联)帧用来终结一段关联关系,而Deauthentication(接触身份验证)帧用来终结一段认证关系,均包含Reason Code(原因代码)。
在这里插入图片描述

Association Request(关联请求)帧

Capability Information(性能信息)位用来指出移动工作站所欲加入的网络类型。在接受连接要求之前,基站会验证 Capability Information、 SSID 以及(Extended)Supported Rated等位是否符合网络参数。此外,基站也会记录工作站所使用的 Listen Interval(聆听间隔;即移动工作站每隔多久聆听一次 Beacon 帧,以监视 TIM 信息)。
在这里插入图片描述

Reassociation Request(重关联请求)帧

当在不同基本服务区域之间游走的STA若要再次加入分布式系统或者STA暂时离开接入点所覆盖范围,之后重新加入时也必须重新关联。
association Request与 Reassociation Request之间的差别在于,后者包含移动工作站目前所连接之基站的地址(Current AP Address)。拥有这项信息可让新旧基站彼此联系,以及交接连接数据。交接项目包括先前连接之基站所暂存的帧。
在这里插入图片描述

Association Response 与 Reassociation Response帧

分别用于回应Association Request 与 Reassociation Request帧,区别只是Frame Control字段的subtype字段而已,响应过程中会给STA分配一个AID(关联标识符)
在这里插入图片描述

Authentication帧

802.11早期使用共享密钥和Authentication帧进行身份验证,到了802.11i有新的身份验证算法,且与共享密钥身份验证不兼容,所以Authentication Algorithm Number(身份认证演算法编号)位用于选择演算法。Authentication Transaction Seq.No用于记录认证郭晨中每个帧序号,应为整个过程可能包含好几个步骤,这与算法有关,Status Code与Challenge Text因验证算法而异。
在这里插入图片描述

帧传送、身份验证与关联状态

工作站STA有如下3种状态
1.初始状态,未经认证且未关联
2.已经认证且尚未关联
3.已经认证且已经关联
如下图
在这里插入图片描述
上图把帧划分成了3种等级,在状态 1 可以传递第 1 级帧;在状态 2 可以传递第 1 与 2 级帧;在状态 3 则可以传递第 1、 2 与第3级帧。

第1级帧

第 1 级帧可以在任何状态中传递,它让 802.11 的工作站得以进行基本作业。 在 IBSS 当中,控制帧主要用来依循 CSMA/CA 规则,以及传送帧。工作站也会使用第 1 级帧来寻找基础结构型网络,并与之进行身份认证。表 4-11 列出了属于第 1 级的各种帧。
在这里插入图片描述
在这里插入图片描述

第2级帧

工作站只有在经过身份认证之后才能够发送第 2 级帧,而且第 2 级帧只能使用于状态 2与状态 3。第 2 级帧主要用来管理关联。关联或重新连接成功后,工作站就会进入状态 3;如果连接失败,则工作站依然处于状态 2。工作站收到未经认证的作站所传来的第 2 级帧时,就会应答一个 Deauthentication(解除身份认证)帧,将对方推回状态 1。表 4-12 列出了所有的第 2 级帧。
在这里插入图片描述

第3级帧

第 3 级帧的使用时机是在工作站认证成功并与AP关联之后。一旦工作站进入状态 3,就标识连接上AP。在状态 3,工作站还可以利用PS-Poll 帧享受AP所提供的省电服务。表4-13列出了不同类型的第 3 级帧。
如果收到的帧来自一个已经验证但尚未关联的工作站,AP就会响应Disassociation(解除关联)帧,迫使工作站回到状态 2。如果发出帧的工作站尚未经过认证,则AP会响应Deauthentication(解除认证)帧,迫使工作站回到状态 1。
在这里插入图片描述

这篇关于802.11无线权威指南读书笔记(4)802.11成帧细节的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/452383

相关文章

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

JavaScript错误处理避坑指南

《JavaScript错误处理避坑指南》JavaScript错误处理是编程过程中不可避免的部分,它涉及到识别、捕获和响应代码运行时可能出现的问题,本文将详细给大家介绍一下JavaScript错误处理的... 目录一、错误类型:三大“杀手”与应对策略1. 语法错误(SyntaxError)2. 运行时错误(R

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详