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来说

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

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

相关文章

【Git Bash】简明从零教学

目录 Git 的作用官网介绍简明概要 Git 下载链接Git 的初始配置配置用户初始化本地库 Git 状态查询Git 工作机制本地工作机制远端工作机制 Git 的本地管理操作add 将修改添加至暂存区commit 将暂存区提交至本地仓库日志查询版本穿梭 Git 分支查看分支创建与切换分支跨分支修改与…

leetcode500. 键盘行

【简单题】 给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。 美式键盘 中: 第一行由字符 "qwertyuiop" 组成。第二行由字符 "asdfghjkl" 组成。第三行由字符 "zxcvbnm&…

Nacos集群

需要与Nginx配合。 这是使用三个Nacos来搭建集群。 创建mysql数据库nacos。 配置Nacos 进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf。 在cluster.conf文件的最后加上: #it is ip #example 127.0.0.1:8…

通俗理解DDPM到Stable Diffusion原理

代码1:stabel diffusion 代码库代码2:diffusers 代码库论文:High-Resolution Image Synthesis with Latent Diffusion Models模型权重:runwayml/stable-diffusion-v1-5 文章目录 1. DDPM的通俗理解1.1 DDPM的目的1.2 扩散过程1.3 …

测试框架pytest教程(6)钩子函数hook开发pytest插件

pytest hook 函数也叫钩子函数,pytest 提供了大量的钩子函数,可以在用例的不同生命周期自动调用。 比如,在测试用例收集阶段,可利用 hook 函数修改测试用例名称的编码。 pytest的hook是基于Python的插件系统实现的,使…

Tokenview再度升级:全新Web3开发者APIs数据服务体验!

Tokenview发布全新版本的区块链APIs和数据服务平台,为开发者打造更强大、更便捷的开发体验! 此次升级,我们整合了开发者使用习惯以及Tokenview产品优势。我们深知对于开发者来说,时间是非常宝贵的,因此我们努力提供一…

蚂蚁 SOFAServerless 微服务新架构的探索与实践

赵真灵(有济) 蚂蚁集团技术专家 Serverless 和微服务领域专家曾负责基于 K8s Deployment 的应用发布运维平台建设、K8s 集群的 Node/pod 多级弹性伸缩与产品建设。当前主要负责应用架构演进和 Serverless 相关工作。同时也是 SOFAArk 社区的开发和维护者…

两款开箱即用的Live2d

目录 背景第一款:开箱即用的Live2d在vue项目中使用html页面使用在线预览依赖文件地址配置相关参数成员属性源码 模型下载 第二款:换装模型超多的Live2d在线预览代码示例源码 模型下载 背景 从第一次使用服务器建站已经三年多了,记得那是在2…

【沐风老师】如何在3dMax中将3D物体转化为样条线构成的对象?

在3dMax中如何把三维物体转化为由样条线构成的对象?通常这样的场景会出现在科研绘图或一些艺术创作当中,下面给大家详细讲解一种3dmax三维物体转样条线的方法。 第一部分:用粒子填充3D对象: 1.创建一个三维对象(本例…

动物体外受精手术VR模拟仿真培训系统保证学生及标本的安全

奶牛是养殖业主要的资源,因此保证奶牛的健康对养殖业的成功和可持续发展具有重要已用,奶牛有一些常见易发病,一旦处理不当,对奶牛业都会造成较大的经济损失,传统的奶牛手术培训实操难度大、风险高且花费大,…

软件设计师学习笔记6-存储系统

目录 1.层次化存储体系 1.1层次化存储结构 1.2层次化存储结构的分类 2.Cache 2.1概念 2.2映像 2.2.1概念 2.2.2分类 2.2.3不同映像的图解(帮助理解,不考) 3.主存编址方法 3.1计算公式 3.2补充内容 1.层次化存储体系 1.1层次化存储结构 局部性原理是层次…

C++day3(类、this指针、类中的特殊成员函数)

一、Xmind整理&#xff1a; 二、上课笔记整理&#xff1a; 1.类的应用实例 #include <iostream> using namespace std;class Person { private:string name; public:int age;int high;void set_name(string n); //在类内声明函数void show(){cout << "na…

Spring Boot多环境指定yml或者properties

Spring Boot多环境指定yml或者properties 文章目录 Spring Boot多环境指定yml或者properties加载顺序配置指定某个yml 加载顺序 ● application-local.properties ● application.properties ● application-local.yml ● application.yml application.propertes server.port…

RT1050的ADC

文章目录 1 ADC介绍2 ADC框图2.1 外部输入通道2.2 输入电压范围2.3 触发源2.4 时钟源2.5 偏移矫正功能2.5.1 校准 3 单通道中断采集实验3.1 ADC选项3.2 ADC配置3.3 配置用户通道和中断3.4 中断代码 1 ADC介绍 RT1052 有 2 个 ADC&#xff0c;每个 ADC 有 12 位、10 位、8 位可…

使用windeployqt和InstallShield打包发布Qt软件的流程

前言 Qt编译之后需要打包发布&#xff0c;并且发布给用户后需要增加一个安装软件&#xff0c;通过安装软件可以实现Qt软件的安装&#xff1b;用于安装软件的软件有很多&#xff0c;这里主要介绍InstallShield使用的流程&#xff1b; 使用windeployqt打包Qt编译后的程序 Qt程序…

【JavaEE】Spring事务-事务的基本介绍-事务的实现-@Transactional基本介绍和使用

【JavaEE】Spring事务&#xff08;1&#xff09; 文章目录 【JavaEE】Spring事务&#xff08;2&#xff09;1. 为什么要使用事务2. Spring中事务的实现2.1 事务针对哪些操作2.2 MySQL 事务使用2.3 Spring 编程式事务&#xff08;手动挡&#xff09;2.4 Spring 声明式事务&#…

【线程池】ThreadPoolExecutor的使用示例

文章目录 通过ThreadPoolExecutor创建线程池。线程的处理结果如何获取&#xff1f; 通过ThreadPoolExecutor创建线程池。 ThreadPoolExecutor构造方法参数&#xff1a; int corePoolSize //核心线程数量int maximumPoolSize//最大线程数long keepAliveTime//当线程数大于核心…

【无线点对点网络时延分析和可视化】模拟无线点对点网络中的延迟以及物理层和数据链路层之间的相互作用(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Win解答 | 解决键盘中 字母+空格 导致的输入法弹窗导致的一系列问题

近三个月来&#xff0c;一直都有一个键盘组合键的问题影响我的电脑使用&#xff0c;不管是打字还是打游戏&#xff0c;都会出现按键盘的 字母空格 弹出一个特殊符号的候选框&#xff0c;如下图所示 图片中为 S空格 所出现的弹窗 一个看似方便&#xff0c;实则难受的功能 其实打…

SpringBoot入门篇2 - 配置文件格式、多环境开发、配置文件分类

目录 1.配置文件格式&#xff08;3种&#xff09; 例&#xff1a;修改服务器端口。&#xff08;3种&#xff09; src/main/resources/application.properties server.port80 src/main/resources/application.yml&#xff08;主要用这种&#xff09; server:port: 80 src/m…