Wlan——STA上线流程与802.11MAC帧讲解

目录

802.11MAC帧基本概念

802.11帧结构

802.11MAC帧的分类

管理帧

控制帧

数据帧

STA接入无线网络流程

信号扫描—管理帧

链路认证—管理帧

用户关联—管理帧

用户上线


802.11MAC帧基本概念

802.11协议在802家族中的角色位置

其中802.3标准属于以太网的一种帧格式(以太网还有一种帧格式为以太网帧)

而802.11标准为无线网卡发出的数据帧格式

802.11和802.3的LLC层都是一致的,只是对应的MAC层不一致

802.11物理层协议与MAC层协议的介绍

Wlan——802.11协议物理层关键技术和CSMA/CD机制的介绍_静下心来敲木鱼的博客-CSDN博客

数据链路层中,802.3标准使用CSMA/CD来协调不同设备对有线介质的竞争访问;802.11标准使用CSMA/CA来比实现无线的冲突避免

802.11帧结构

Frame Control 帧控制字段

Protocol

帧使用的MAC版本,只有一个802.11;编号为0

Type、Sub Type

一起确定帧类型(标识数据帧是控制帧、数据帧、管理帧)

具体帧类型后续讲解

To DS 、Frome DS

表示帧是否来自或去往一个分布式系统(DS—可以理解为就是AP)

TO为1表示此帧发往AP;Frome为1表示从AP发来的帧

More Frag

判断是否有更多的分片(0 表示是最后一个)

Retry

重传帧,表示帧是否重传

Pwr Mamt

表示SRA发完当前帧之后要进入的模式(也可以理解为省电开关是否开启);

1表示终端即将进入省电状态,0表示终端进入活动状态

More Data

表示AP上是否有缓存报文需要传递给省电状态的终端

Protected Frame

判断当前帧是否加密的(1 表示加密)

Order

表示帧是否按照顺序传输

Duration ID

实现CSMA/CA的网络分配矢量机制

表示STA占用多长时间的链路,避免冲突

Address

表示MAC地址;有4个Address字段,根据To/From DS不同的Address字段代表不同的意思

有线的MAC地址只有源目MAC地址,而无线有多个MAC地址(主要是多了无线信号的MAC地址,也就是BSSID) 

Seq Control

用于丢弃重复帧和重组分片

QoS Control

只存在于数据帧中,用来实现基于802.11e标准的Wlan QoS功能

Frame Body

帧主体,负责传输上层的有线在和,也成为数据字段

FEC

帧校验,用于检查接收帧的完整性


802.11MAC帧的分类

帧分类

802.11MAC帧主要分为管理帧、数据帧、控制帧

如果要抓取网卡发送的管理、控制帧,需要开启网卡的监听模式

管理帧

管理帧的主要作用

用于终端加入或退出无线网络,包含二层信息字段和信息元素

802.11MAC管理帧类型

控制帧

控制帧的主要作用

协助数据帧的交付,为其提供可靠性;只包含报文头部信息,没有帧主体

例如清除信道、请求信道、对单播帧的确认的操作都是通过控制帧完成的

802.11MAC控制帧类型

Wlan——802.11协议物理层关键技术和CSMA/CD机制的介绍_静下心来敲木鱼的博客-CSDN博客

ACK

ACK只对单播帧做回应,不回应组播帧和广播帧

数据帧

数据帧的作用

传输用户数据

如何调整终端的传输速率

可以在AC/胖AP上配置PowerLocal参数影响数据帧的传输速率

控制帧的传输速率为基本速率

数据帧的传输速率为协商速率(传输的实际速率一般为此数据的2/3)


STA接入无线网络流程

STA接入网络的流程主要有

1、STA关联无线信号(扫描、链路认证、关联)

2、对STA进行接入认证(WPA/WPA2-PSK、WPA/WPA2-802.1x、WEP认证)

3、通过加密算法对后续的数据报文进行加密(WEP、TKIP、CCMP算法)

4、STA通过DHCP获取地址,进行上网

5、STA进行认证下线

6、STA解除信号关联

其中STA关联无线信号通过管理帧来完成

用户的信号扫描请求是和AP进行交互的

用户的链路认证和关联对于瘦AP来说是STA和AC交互的,通过将STA的数据封装到CAPWAP隧道传输,不会重传(无论是本地转发还是隧道转发,都会通过CAPWAP隧道封装)

因此关联失败的情况需要考虑CAPWAP隧道的数据端口5247是否放通

后续的流程的关于STA和AP的报文都封装在802.11MAC数据帧中,并且使用802.11MAC控制帧来预约信道,避免数据发送冲突(具体交互流程如下)

Wlan安全——认证与加密方式(WPA/WPA2)_静下心来敲木鱼的博客-CSDN博客

Wlan安全——STA如何通过802.1x接入网络_静下心来敲木鱼的博客-CSDN博客

后续的接入认证根据认证方式不同,认证的报文交互也不一样

信号扫描—管理帧

用户无线信号的扫描—通过AP发送的Beach或者STA发送的Probe Request实现

信号扫描为广播帧

被动扫描(Beacon)

AP主动定期发送Beacon(默认100ms),终端通过被动接收Beacon帧来发现无线信号(包含AP的SSID、BSSID、速率等信息)

Beacon在AP所支持的信道上都会发送;并且传播范围为AP无线覆盖范围

终端收到后不需要回复,直接发送链路认证请求

主动扫描(Probe)

终端主动发起探测请求(Probe Request),AP收到后回复探测响应(Probe Response)

AP回应的报文携带信号的SSID、BSSID等信息

Probe在STA所支持的信道上都会发送请求

扫描帧的一些关键字段

Capability

表示是哪种无线类型(802.11n、802.11ac等)

无线用户发现信号都会有对应的信号强度

Data Rate

此无线信号的基本速率(存在于Beacon和Probe Response帧)

报文帧中的基本速率要保证终端和AP可以互相识别到

此速率越低所传输距离越远

Signal dBm

信号强度

如何调整AP的信号强度

可以在AC/胖AP上配置Coverage参数来影响AP发射信号的强度

Coverage影响的就是扫描帧(Beacon和Probe Response)的Signal dBm字段

STA就是通过接收到的beacon 和 prob response等管理帧中包含的Signal dBm字段来了解信号的强度

链路认证—管理帧

STA链路认证主要有开放系统认证、WEP共享密钥认证;此认证的作用是用来证明设备是无线设备

一般链路认证为开放系统认证,然后通过接入认证对设备进行认证(Web认证、PSK认证、802.1x等);接入认证成功后终端获取IP地址访问网络

用户关联—管理帧

终端发送关联请求(Association Request)和AP协商参数, 参数协商成功AP发送关联响应报文(Assocation Response)

用户上线

用户认证成功后会接入无线网络,然后在AP/AC会有相应的日志信息

通过常见的日志信息判断终端关联不上是否存在认证关联阶段的问题

如果用户上线失败,可以通过常见的日志信息和或者AC上的Wlan diag信息来查看用户上线失败原因

常见日志属性

Code 8或者 Code3的日志代表STA下线(解认证或解关联)

查看日志信息

锐捷设备

logging on 开启日志

show logging 查看常见日志信息

show wlan diag  AC上查看wlan diag信息(记录用户的上下线信息)

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

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

相关文章

HPE服务器常见报错信息以及解决方案

General controller issues 常规控制器问题 Controllers are no longer redundant 控制器不再冗余 HPE Dynamic Smart Array B140i drives are not found when RAID mode is disabled 禁用 RAID 模式时找不到 HPE 动态智能阵列 B140i 驱动器 Data located on drives accessed i…

React前端开发架构:构建现代响应式用户界面

在当今的Web应用开发中,React已经成为最受欢迎的前端框架之一。它的出色性能、灵活性和组件化开发模式,使得它成为构建现代响应式用户界面的理想选择。在这篇文章中,我们将探讨React前端开发架构的核心概念和最佳实践,以帮助您构建…

[Machine Learning] 损失函数和优化过程

文章目录 机器学习算法的目的是找到一个假设来拟合数据。这通过一个优化过程来实现,该过程从预定义的 hypothesis class(假设类)中选择一个假设来最小化目标函数。具体地说,我们想找到 arg min ⁡ h ∈ H 1 n ∑ i 1 n ℓ ( X i…

Revit 3D高效处理:cad exchanger sdk 3.21 Crack

3D 格式概述:Revit Revit 已成为寻求高效、准确的建筑信息建模的专业人士的首选解决方案。在这篇引人入胜的功能概述中了解 Revit 的特性和影响。 什么是Revit? Autodesk Revit 是一款流行的 CAD 软件,重点关注 BIM,被建筑师、工…

Oracle DG复制中断:RMAN-03015和RMAN-06094

Oracle DG复制中断:RMAN-03015和RMAN-06094 背景与错误信息主库备份数据文件备库恢复数据文件DG Broker创建DG更新备库数据文件名解决归档日志不传输 ⭐️DB_UNIQUE_NAME 主库:ORCLDB_0备库:ORCLDB_1 背景与错误信息 通过RMAN DUPLICATE搭建…

uniapp scroll-view横向滚动无效,scroll-view子元素flex布局不生效

要素排查: 1.scroll-x属性需要开启,官方类型是Boolean,实际字符串也行。 2scroll-view标签需要给予一个固定宽度,可以是百分百也可以是固定宽度或者100vw。 3.子元素需要设置display: inline-block(行内块元素&#x…

时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | MATLAB实现SO-CNN-BiL…

ffmpeg从摄像头获取视频流

使用FFmpeg获取本地摄像头设备 ffmpeg -list_devices true -f dshow -i dummy ffmpeg -f dshow -i video"e2eSoft iVCam" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -rtsp_transport tcp -f rtsp rtsp://127.0.0.1/test ffmpeg -f dshow -i video&qu…

如何让智能搜索引擎更灵活、更高效?

随着互联网的发展和普及,搜索引擎已经成为人们获取信息、解决问题的主要工具之一。 然而,传统的搜索引擎在面对大数据时,往往存在着搜索效率低下、搜索结果精准度不够等问题。 为了解决这些问题,越来越多的企业开始采用智能搜索技…

Python Pandas 处理Excel数据 制图

目录 1、饼状图 2、条形统计图 1、饼状图 import pandas as pd import matplotlib.pyplot as plt import numpy as np #from matplotlib.ticker import MaxNLocator # 解决中文乱码 plt.rcParams[font.sans-serif][SimHei] plt.rcParams[font.sans-serif]Microsoft YaHei …

Git学习笔记

Git学习笔记 文章目录 Git学习笔记一、版本控制二、Linux基础命令三、Git的环境配置四、Git的基本理论(核心)五、Git项目的搭建六、Git文件操作七、使用码云八、IDEA集成git九、Git分支 一、版本控制 什么是版本控制 版本控制(Revision contr…

遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型

近年来遥感技术得到了突飞猛进的发展,航天、航空、临近空间等多遥感平台不断增加,数据的空间、时间、光谱分辨率不断提高,数据量猛增,遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…

[git]github上传大文件

github客户端最高支持100Mb文件上传,如果要>100M只能用git-lfs,但是测试发现即使用git lfs,我上传2.5GB也不行,测试737M文件可以,GitHub 目前 Git LFS的总存储量为1G左右,超过需要付费。(上传失败时&…

git管理代码

理论上改代码前要pull一次,然后在push前在pull一次 改代码前pull一次是为了获取最新的同步,但是coding也是需要时间的,难保敲代码的这段时间没有人动远程仓库的东西,所以在改完代码要push的时候也应该再pull一下看有无冲突&#x…

卷积神经网络——上篇【深度学习】【PyTorch】

文章目录 5、卷积神经网络5.1、卷积5.1.1、理论部分5.1.2、代码实现5.1.3、边缘检测 5.2、填充和步幅5.2.1、理论部分5.2.2、代码实现 5.3、多输入多输出通道5.3.1、理论部分5.3.2、代码实现 5.4、池化层 | 汇聚层5.4.1、理论部分5.4.2、代码实现 5、卷积神经网络 5.1、卷积 …

es入门实战

创建索引 PUT /hotel/ { “mappings”:{ “properties”:{ “title”:{ “type”:“text” }, “city”:{ “type”:“keyword” }, “price”:{ “type”:“double” } } } } 给索引写入数据 POST /hotel/_doc/001 { “title”:“好再来大酒店”, “city”:“东京”, “pri…

Java学习笔记——(21)运算符分类

分类一&#xff1a; 单目运算符&#xff1a;! ~ – -双目运算符&#xff1a;* / % - << >> < < > > ! & ^ | && || * / % - << >> & ^ | >>> ~三目运算符(条件运算符)&#xff1a;? :其他运算符&#xff1…

自然语言处理从入门到应用——LangChain:索引(Indexes)-[文档加载器(Document Loaders)]

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 合并语言模型和我们自己的文本数据是区分它们的一种强大方式&#xff0c;这样做的第一步是将数据加载到“文档”中&#xff0c;文档加载器的作用就是使这个过程变得简单。 LangChain提供了三种文档加载器&#xff1a;…

Go语言基础之数组

Array(数组) 数组是同一种数据类型元素的集合。 在Go语言中&#xff0c;数组从声明时就确定&#xff0c;使用时可以修改数组成员&#xff0c;但是数组大小不可变化。 基本语法&#xff1a; // 定义一个长度为3元素类型为int的数组a var a [3]int数组定义&#xff1a; var 数…

游戏开发与硬件结合,开启全新游戏体验!

游戏与硬件的结合可以通过多种方式实现&#xff0c;从改善游戏体验到创造全新的游戏玩法。以下是一些常见的游戏与硬件结合的方式&#xff1a; 虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;技术&#xff1a;VR和AR技术使玩家能够沉浸式地体验游戏…