OKC和802.11R的知识小科普

news2024/12/28 21:44:57

欢迎来到东用知识小课堂!

1.什么是漫游

简单来说,就是设备从一个AP,连接到另一个AP。IP地址不需要重新申请。整个过程需要尽可能快的进行,否则对于用户而言,就会发现网络出现卡顿。而为了安全,网络的认证过程已经变得十分耗时(例如802.1X认证)。所以为了避免漫游时出现重新认证,开发出了OKC,以及802.11R协议进行补充。避免漫游时进行完整的认证过程。

使用OKC,802.11R等协议,可以省去认证过程的漫游,称为快速漫游。

2.PMK caching

PMK caching是由802.11i协议定义的,一种用在单个AP与设备之间的认证中的有效技术。使用在当一个工作站已经认证在某个AP上,然后漫游到其他AP,之后又漫游回该AP。不用进行完整的认证,只需进行802.11i中定义的四次握手交换共享密钥过程即可。

所以PMK caching只适用802.1X认证。它的工作原理:

在漫游发生之后,会在关联请求帧中将PMKID上报,AP根据PMKID在PMK caching中进行查找对应的PMK,如果找到,就不需要再进行802.1X过程获取PMK了。

3.OKC

OKC(Opportunistic Key Caching)也叫OPC(Opportunistic PMK Caching),是微软定义的一套标准,并不在802.11标准中。不过多数厂商都支持这种方式,也成为了一种事实标准。是在PMK caching基础上进行设计的。它是与PMK caching类似的技术,也是为了避免复杂的802.1X认证过程。

OKC适用在同一网络下,同一AC下的多个AP之间进行的漫游。

与PMK caching不同,OKC会将PMK在AP之间进行交换。它的工作原理:

当STA跟AP1经过完整的EAP/802.1X建立连接后,产生一条PMKSA,里面包含一个PMKID1,然后AP1把这个PMKSA传给它的邻居,其中一个就是AP2。

漫游发生前,STA要根据AA,SPA和PMKID1计算出一个PMKID2,把这个PMKID2放在RSN IE里,送给AP2。

AP2在收到这个PMKID2后,就像平时一样,会在自己的PMKSA Cache里找,当然,这是找不到的。因为Cache没有一个的PMKID是PMKID2。然后,AP2就要对Cache中的每一个Entry计算一次新的PMKID,其必要的几个元素,AA,SPA和PMKID1都是有的。每计算一个就跟PMKID2匹配一次,匹配成功就可以直接进行4次握手。

由于OKC是在PMK caching上进行开发,且并不是Wi-Fi联盟推出的协议,所以并不是每个设备厂商都支持。

4.802.11R

IEEE802.11R(Fast BSS Transition)定义了STA在同一移动域(MD)中的不同AP之间漫游时的交互细则,提供了实现BSS快速切换的标准。

802.11R快速漫游实现方法为:STA首次关联MD内的AP时,利用802.1x认证获得的主会话密钥(MSK,由于该密钥为认证者和申请者共享,也称为成对主密钥PMK)和MD内各个AP的R1KH_ID计算出不同的PMK_R1分发给MD内的其它AP;STA切换AP时,STA直接利用之前发送到目标AP上的PMK_R1协商出成对临时密钥(PTK)和组临时密钥(GTK),以此缩短漫游切换时间,避免再重复进行耗时的802.1x认证。

802.11R协议主要描述了四个部分的内容:密钥管理、FT初始化关联、快速切换和新增的信息元素。

5.802.11R与OKC的不同

1).802.11R不仅可以用在802.1X认证中,也可以用在PSK认证中。

2).802.11R协议延伸出新的共享密钥生成过程。

3).802.11R将密钥交换过程放到关联认证过程。

4).802.11R不仅可以省去802.1X认证过程,也可以省去四次握手过程。

好了!今天的东用知识小课堂到这里就结束了,大家如果还有疑问的话,可以在下方留言或者私信给我们,我们下期再见!

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

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

相关文章

【Python】使用pyinstaller打包py程序为exe应用程序时,出现“Tcl报错闪退”的解决办法

问题概述 使用pyinstaller -F的命令进行py程序转为exe程序时,打包后的exe程序会出现闪退报错的情况: 解决办法 1. 检查“环境变量”tcl和tk是否配置好: 查看系统高级设置>>>环境变量>>>系统变量 博主使用anaconda进行p…

河道污染物识别系统 python

河道污染物识别系统通过pythonyolo深度学习技术,对现场画面中河道污染物以及漂浮物进行全天候实时监测,当监测到出现污染物漂浮物时,立即抓拍存档触发告警。与C / C等语言相比,Python速度较慢。也就是说,Python可以使用…

计算机组成原理 | 第一章:概论

文章目录📚冯诺依曼计算机的特点📚计算机硬件组成框图📚计算机硬件的主要技术指标🐇非时间指标🐇时间指标🔑计算技巧归纳📚小结🔑本章掌握要点🐇补充思考题📚…

Froala Editor内容中删除内联样式

Froala Editor内容中删除内联样式 易于集成-编辑器可以在任何时间内集成到任何类型的项目中。它只需要基本的JavaScript和HTML编码知识。 流行-HTML编辑器在开发人员中很流行,它有最流行的开发框架的插件。 易于升级-将所有自定义内容与编辑器文件夹分开&#xff0c…

3.1存储系统基本概念

文章目录一、引子二、存储器的层次化结构1.层次化结构(1)金字塔(2)案例(3)Cache(4)寄存器(5)辅存和外存2.速度与价格举例(1)主存和Cac…

智障税品牌种草收割流

1.量化量化这一块我后续应该不更新了,因为目前我接触的都是赚钱层次的了发出去都是砸自己的饭碗目前我在8个交易所都是市商费率有需要费率的可以合作我在跑的策略为:套利、高频、预测《赚麻》当你有了顶级费率和速度,什么策略都可以赚钱2.引流…

88.【员工管理系统-springBoot】

SpringBoot(十三)、员工管理系统SpringBoot1.准备工作(1).导入我们所需要的环境依赖(2).首页的Controller与View (静态资源Thymeleaf接管)2.国际化(1).设置字符编码为UTF-8(2).添加文件资源目录 i18n(3).注册国际化实现(4).国际化的实现 index.html(5).英文与汉文的交互(6).在s…

[QMT]08-从本地行情数据解析历史K线信息

用python解析QMT本地数据获取本地行情数据get_local_data(field_list[], stock_code[], period1d, start_time, end_time, count-1,dividend_typenone, fill_dataTrue, data_dirdata_dir)释义从本地数据文件获取行情数据,用于快速批量获取历史部分的行情数据参数fie…

谈谈线程安全问题及其解决方法

本文讲述一下线程的安全问题及解决方法。 一 线程安全问题举例说明 在电影院售票的场景,假使有100张票待售,有3个窗口在售票,如图所示: 三个窗口都卖出票1,一个票被卖了3次,多线程访问共享数据“票”&am…

【代码阅读】MSC-VO

MSC-VO是ICRA2022的一篇点线视觉SLAM论文,本身是在ORBSLAM2的基础上改进的,改进的部分在于为SLAM系统引入了线段,并且使用了曼哈顿坐标系与结构化约束进行优化,之前看过的论文记录可以参考链接,年前把线段匹配和均匀化…

CMake的介绍

1.示例代码其实都非常简单,直接使用 GCC 编译器编译即可,连 Makefile 都不需要。在实际的项目中, 一个工程中可能包含几十、成百甚至上千个源文件, 这些源文件按照其类型、功能、模块分别放置在不同的目录中;面对这样的…

Kafka-生产者分区

一、分区的好处 便于合理使用存储资源,每个Partition在一个Broker上存储,可以把海量的数据按照分区切割成一块一块数据存储在多台Broker上。合理控制分区的任务,可以实现负载均衡的效果。提高并行度,生产者可以以分区为单位发送数…

Git自学日记

添加暂存区 git add 提交本地库 git commit -m “日志信息” 修改文件 vim 修改文件名 按i进入编辑模式 按esc退出编辑摸模式 :wq 保存更改 历史版本 git reflog 查看版本信息 git log 查看版本详细信息 版本穿梭 git reset --hard 版本号 分支操作 创建分支: git br…

【数据结构】7.1 查找的基本概念

文章目录1. 查找表2. 关键字3. 查找4. 动态查找表和静态查找表5. 平均查找长度1. 查找表 问题:在哪里找? 答:在一个新的数据结构查找表上面找。 查找表: 查找表是由同一类型的数据元素(或记录)构成的集合…

操作系统真相还原_第5章第3节:加载内核(ELF格式分析)

文章目录用C语言写内核(例)二进制程序的运行方法ELF格式的二进制文件ELF文件格式数据类型ELF header的结构Elf32_Phdr的结构ELF文件实例分析将内核载入内存当前的OS信息当前内存规划源码boot.incmbr.sloader.s内核编译并写入硬盘用C语言写内核(例) 源码: int func…

图像处理 手写体英文字母的目标检测与识别 实验报告

获取本实验的项目代码和实验报告&#xff0c;请>点击此处< [0] 摘要 近年来&#xff0c;随着python的迅速崛起&#xff0c;人工智能、图像识别、计算机视觉等新兴学科变得火热起来。Python的发展也伴随着它的各种衍生库、衍生编辑器的发展&#xff0c;其中OpenCV是比较经…

恶意代码分析实战 7 WinDbg

配置WinDbg双机调试。 下载Windbg&#xff08;WDK&#xff09;。 事实上你自己的win10上应该会自带。 配置WinXP虚拟机的boot.ini 改成如图所示的样子 修改主机上Windb的属性。 修改成如图所示&#xff1a; 启动WinXP选择调试状态&#xff0c;启动Windbg即可开始调试。 7.…

【JavaWeb】JavaScript基础语法(下)

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【JavaWeb】 ✈️✈️本篇内容:JavaScript基础语法(上)&#xff01; &#x1f680;&#x1f680;代码托管平台github&#xff1a;JavaWeb代码存放仓库&#xff01…

程序员的自我修养第七章——动态链接

继续更新《程序员的自我修养》这个系列&#xff0c;主要是夏天没把它看完&#xff0c;补上遗憾。本篇来自书中第七章。 再说动态链接前&#xff0c;我们先阐明为什么要动态链接&#xff1a; 动态链接的产生来自静态链接的局限性。随着静态链接的发展&#xff0c;其限制也越来越…

zookeeper可视化工具

参考资料&#xff1a; 参考网址 使用过程&#xff1a; 首先打开网址&#xff0c;将资源克隆下来解压压缩包 打开压缩目录下 startup.bat ,填入对应地ip即可&#xff08;记得优先启动zookeeper&#xff0c;否则会报错&#xff09;