Wlan——STA上线流程与802.11MAC帧讲解以及报文转发路径
目录
802.11MAC帧基本概念
802.11帧结构
802.11MAC帧的分类
管理帧
控制帧
数据帧
STA接入无线网络流程
信号扫描—管理帧
链路认证—管理帧
用户关联—管理帧
用户上线
不同802.11帧的转发路径
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信息(记录用户的上下线信息)
不同802.11帧的转发路径
针对于瘦AP来说
相关文章:

Wlan——STA上线流程与802.11MAC帧讲解以及报文转发路径
目录 802.11MAC帧基本概念 802.11帧结构 802.11MAC帧的分类 管理帧 控制帧 数据帧 STA接入无线网络流程 信号扫描—管理帧 链路认证—管理帧 用户关联—管理帧 用户上线 不同802.11帧的转发路径 802.11MAC帧基本概念 802.11协议在802家族中的角色位置 其中802.3标…...

Python|爬虫和测试|selenium框架模拟登录示例(一)
前言: 上一篇文章Python|爬虫和测试|selenium框架的安装和初步使用(一)_晚风_END的博客-CSDN博客 大概介绍了一下selenium的安装和初步使用,主要是打开某个网站的主页,基本是最基础的东西,那么,…...
QT的概述
什么是QT Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。 QT项目的创建 .pro文件 .pro 文件是一个Qt项目文件,用于定义…...
Hive 导入csv文件,数据中包含逗号的问题
问题 今天 Hive 导入 csv 文件时,开始时建表语句如下: CREATE TABLE IF NOT EXISTS test.student (name STRING COMMENT 姓名,age STRING COMMENT 年龄,gender STRING COMMENT 性别,other_info STRING COMMENT 其他信息 ) COMMENT 学生信息表 ROW FORM…...

1、Odoo开发起点
1.1.odoo的模块组成 init.py将一个文件夹编程python包manifestpyodoo模块定义的清单文件,用于对odoo模块管理详见model模型类文件,存放py文件security表级别权限管理static静态文件views视图文件。wizard瞬态模型向导文件位置 1.2.odoo的开发规范 非强…...
Ubuntu22.04 交叉编译树莓派CM4 kernel
通过这个文章记录一下如何在Ubuntu22.04编译树莓派CM4的kernel。 主要参考树莓派官网的方法,也总结了一些关于SD卡分区的知识。 1,虚拟机安装Ubuntu 22.04,就不介绍了。 2,先将树莓派官方系统烧录倒SD卡中,设备能正…...
稀疏矩阵搜索(两种方法解决:1.暴力+哈希 2.二分法)
题目: 有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置。 示例: 输入: words ["at", "", "", "", "ball", "", &…...
NodeJS系列教程、笔记
NodeJS系列教程、笔记 点我进入专栏 Node.js安装与基本使用 NodeJS的Web框架Express入门 Node.js的sha1加密 Nodejs热更新 Nodejs配置文件 Nodejs的字节操作(Buffer) Node.js之TCP(net) Node.js使用axios进行web接口调用 …...

4.4TCP半连接队列和全连接队列
目录 什么是 TCP 半连接队列和全连接队列? TCP 全连接队列溢出 如何知道应用程序的 TCP 全连接队列大小? 如何模拟 TCP 全连接队列溢出的场景? 全连接队列溢出会发生什么 ? 如何增大全连接队列呢 ? TCP 半连接队列溢出 如何查看 TC…...

一键实现 Oracle 数据整库同步至 Apache Doris
在实时数据仓库建设或迁移的过程中,用户必须考虑如何高效便捷将关系数据库数据同步到实时数仓中来,Apache Doris 用户也面临这样的挑战。而对于从 Oracle 到 Doris 的数据同步,通常会用到以下两种常见的同步方式: OGG/XStream/Lo…...

Unity3D软件安装包分享(附安装教程)
目录 一、软件简介 二、软件下载 一、软件简介 Unity3D是一款全球知名的游戏开发引擎,由Unity Technologies公司开发。它提供了一个跨平台、多功能的开发环境,支持创建2D和3D游戏、交互式应用、虚拟现实、增强现实等多种类型的应用程序。以下是Unity3D…...

Vue2向Vue3过度Vue3组合式API
目录 1. Vue2 选项式 API vs Vue3 组合式API2. Vue3的优势3 使用create-vue搭建Vue3项目1. 认识create-vue2. 使用create-vue创建项目 4 熟悉项目和关键文件5 组合式API - setup选项1. setup选项的写法和执行时机2. setup中写代码的特点3. <script setup>语法糖 6 组合式…...

⛳ Docker 安装 MySQL
🎍目录 ⛳ Docker 安装 MySQL🚜 一、搜索 mysql , 查看版本🎨 二、拉取mysql镜像👣 三、建立容器的挂载文件🧰 四、创建mysql配置文件,my.conf🏭 五、根据镜像产生容器🎁 六、远程连…...

4.6 TCP面向字节流
TCP 是面向字节流的协议,UDP 是面向报文的协议 操作系统对 TCP 和 UDP 协议的发送方的机制不同,也就是问题原因在发送方。 UDP面向报文协议: 操作系统不会对UDP协议传输的消息进行拆分,在组装好UDP头部后就交给网络层处理&…...

uniapp返回上一页并刷新
在uniapp中,经常会有返回上一页的情况,官方提供有 uni.navigateBack 这个api来实现效果,但是此方法返回到上一页之后页面并不会更新(刷新)。 例如有这样一个场景:从地址列表页点击添加按钮进入添加地址页面…...
LRU cache的实现细节优化——伪结点的技巧
LRU cache的实现是面试常见的题目,思路比较简单,可以参考思路 这个题目在实际面试中容易出错,主要是npe和头节点与尾节点的更新,有没有办法避免这一点呢,这时可以发现伪节点的好处,永远不用更新头尾节点&am…...

【C/C++】父类指针指向子类对象 | 隐藏
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c系列专栏:C/C零基础到精通 🔥 给大…...

NSSCTF——Web题目2
目录 一、[HNCTF 2022 Week1]2048 二、[HNCTF 2022 Week1]What is Web 三、[LitCTF 2023]1zjs 四、[NCTF 2018]签到题 五、[SWPUCTF 2021 新生赛]gift_F12 一、[HNCTF 2022 Week1]2048 知识点:源代码审计 解题思路: 1、打开控制台,查看…...

从零到富:探索CSGO搬砖项目的无限可能
在如今互联网时代,有一项令人惊叹的项目正悄然兴起,它就是CSGO搬砖项目。作为一个从零开始的家伙,我亲身经历了这个项目的神奇魅力,每天轻松赚取几十上百的收益,无风险,低成本。今天,我将带领大…...
Uniapp中vuex的使用
vuex的学习笔记,很多地方还都不是很懂,先记下来再说,比小程序里自带的store复杂很多,看着头大,而且方法里面很多ES6的内容,头都看到爆炸 一、初始化vuex 新建store.js,挂载到main.js 1、在根…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...