当前位置: 首页 > news >正文

802.11协议精读(一)

入职后用半个月的时间略读过一次《802.11无线网络》,现在打算精读一次,所以,做好笔记。
此前读过的一些章节依然会迅速过掉。
这次依然打算只关注连接、验证的细节,对安全相关不做精读。
希望有特殊的感悟。

Chapter 1-3

文章目录

        • 802.11网络包含四种主要物理组件
        • 网络类型
          • IBSS: independant BSS 独立基本服务集
          • 基础结构性网络 : infrastructure BSS
          • ESS: extended service set 扩展服务集
        • 网络服务
          • 分布式
          • 整合
          • 关联
          • 重新关联
          • 取消关联
          • 身份验证
          • 接触身份验证
          • 机密性
          • MSDU传递
          • 传输功率控制
          • 动态频率选择
        • 移动性的支持
        • 隐藏节点问题
        • MAC访问模式与时机
          • DCF distributed coordination function 分布式协调功能
          • PCF point coordination function 点协调功能
          • HCF 混合协调功能
        • 载波监听功能与网络分配矢量
        • 帧间间隔
          • 短帧间间隔 SIFS:Short Interframe Space
          • PCF帧间间隔 PIFS:PCF interframe spcae
          • DCF帧间间隔 DIFS:DCF interframe spcae
          • 扩展帧间间隔 EIFS:Extended interframe space
        • DCF与错误恢复
        • 帧的分段与重组
        • 一般的802.11MAC帧格式
          • Frame Control字段
            • Power Management位
            • more data位
            • Protected Frame位
            • order位
          • Duration/ID字段
            • Duration(设定NAV)
            • 无竞争周期所传送的帧
            • PS-Poll帧
          • Address字段
          • Sequence Control顺序控制字段
          • 帧主体
          • 帧校验序列(FCS)
        • 广播与组播数据或管理帧
        • 单播帧
          • 基本的肯定确认(最后一个片段)
        • 帧分段
        • 省电程序
          • 立即响应
          • 延迟响应
        • 多种速率支持
        • 选速与降速
        • 帧的处理与桥接
        • 无线媒介至有限媒介
        • 有线媒介至无线媒介
        • 服务质量扩展功能

802.11网络包含四种主要物理组件

1.工作站 station
2.接入点 access point
需要注意的是,具备无线至有线的桥接功能的设备称为接入点,接入点的功能不仅于此,但是桥接最为重要
3.无线媒介 wireless medium
4.分布式系统 distribution system
当几个接入点串联以覆盖较大区域时,彼此之间必须相互通信以掌握移动式工作站的行踪
分布式系统属于802.11的逻辑组件,负责将帧传送至目的地
分布式系统是接入点间转发帧的骨干网络 backbone network

网络类型

IBSS: independant BSS 独立基本服务集

通常是由少数几个工作站为了特定目的而组成的暂时性网络,相互之间可以直接通信
比如在会议室中支持个别会议之用,会议结束,IBSS随即瓦解
因为持续时间不长,规模甚小且目的特殊,有时被称为特设BSS: ad hoc BSS

基础结构性网络 : infrastructure BSS

包含接入点,其负责基础结构型网络所有的通信
这种网络内的工作站跟其他工作站进行通信,需要接入点转运帧

  • 允许工作站间直接通信虽然可以省下一些带宽,但是相对提高了物理层的复杂度,因为每个工作站都必须维持与服务区域中其他工作站的邻接关系

  • 接入点在基础结构型网络里的作用时协助工作站节省电力。接入点可以记住有哪些工作站处于省电状态并且为之暂存帧,工作站关闭无线收发器,只在传输或者接收这种暂存帧时才会加以开启

ESS: extended service set 扩展服务集

利用骨干网络将几个BSS串联在一起,构成ESS
所有位于同一个ESS的接入点将会使用相同的服务组标识符,SSID
隶属于同一个ESS的工作站可以相互通信

网络服务

定义网络技术的方式之一就是看它能够提供哪些服务

分布式
整合
关联
重新关联

重新关联是由移动式工作站所开启,当关联强度显示最好切换关联对象时便会如此做
接入点不可能直接开启重新关联服务
(有些AP会可以将工作站剔除,强迫它们进行重新关联过程)

取消关联
身份验证

关联之前,工作站会先以本身的MAC地址来跟接入点进行基本的身份验证,称为802.11身份验证
这种验证有别于后续所进行的牢靠而经过加密的用户身份验证

接触身份验证
机密性
MSDU传递

MSDU,即MAC Service Data Unit

传输功率控制

Transmit Power Control,即TPC
欧洲标准要求操作于5GHz频带的工作站必须能够控制电波的传输功率,避免干扰其他同样使用5GHz频带的用户
工作站传输功率越高,传输距离就越远,也就越容易干扰附近的网络

动态频率选择

避免在5GHz频带干扰雷达操作

移动性的支持

接入点之间可能出现的三种转换

1.不转换
2.BSS转换 seamless transition (漫游)
3.ESS转换

隐藏节点问题

如果802.11网卡的驱动程序支持,用户可通过调整RTS阈值(threshold)来控制RTS/CTS交换过程
只要帧大于此阈值,RTS/CTS交换过程就会进行,小于此阈值则会直接传送帧
PS:此阈值指帧长

MAC访问模式与时机

DCF distributed coordination function 分布式协调功能

标准CSMA/CA访问机制的基础。在传送数据之前,它会先检查无线链路是否处于清空状态
为了避免冲突,当某个传送者占据信道时,工作站会随机为某个帧选定一段退避(backoff)时间
在某些情况下,DCF可利用CTS/RTS清空技术进一步减少冲突发生的可能性

PCF point coordination function 点协调功能

PCF提供无竞争服务
称为点协调者(point coordinator)的特殊工作站可以确保不必通过竞争即可使用媒介
实际并不常见(实际上目前只有Wi-Fi6应用到了)

HCF 混合协调功能

尚未完全标准化

载波监听功能与网络分配矢量

802.11具备两种载波监听:物理载波监听和虚拟载波监听
只要有一个显示媒介处于忙碌状态,MAC就会将此状况汇报给叫高层的协议

物理载波监听由于硬件打造不易和隐藏节点问题,无法提供所有必要的信息

虚拟载波监听是由网络分配矢量(Network Allocation Vector,简称NAV)所提供
802.11的帧通常会包含一个Duration字段,用来预定一段媒介试用版时间
NAV实质是一个定时器,以微秒(microsecond)为单位
利用NAV可保证工作站的原子操作不被中断

DIFS Distributed Interframe Space,分布式帧间间隔
一次RTS/CTS过程后,再经过一段DIFS,便进入竞争窗口(contention window)

帧间间隔

这一段很没意思,但是还是要看

短帧间间隔 SIFS:Short Interframe Space

用于高优先级的传输场合,例如RTS/CTS以及肯定确认帧

PCF帧间间隔 PIFS:PCF interframe spcae

被PCF使用在无竞争操作中

DCF帧间间隔 DIFS:DCF interframe spcae

是竞争式服务中最短的媒介闲置时间

扩展帧间间隔 EIFS:Extended interframe space

帧传输错误时才用到

DCF与错误恢复

每个帧或帧片段分别对应到一个重传计数器
工作站本身有两个重传计数器:短帧重传计数器(short retry counter)与长帧重传计数器(long retry counter)
短帧和长帧取决于RTS阈值

MAC还会赋予每个帧片段,生存时间计时器(lifetime counter)随即启动
一旦超过生存时间,该帧便会被丢弃,因此不会重试其余的帧片段

帧的分段与重组

利用帧的分段,工作站可让干扰只影响较小的帧片段,而非较大的帧
通过降低可能被干扰的数据量,帧片段可以提高整体的有效吞吐量
当上层封包的大小超过网络管理人员所设定的分段阈值(fragment threshold)时,就会进行分段
每个帧片段都有相同的帧序号(frame sequence number)以及一个递增的帧片段编号(fragment number)用于重组

构成整个帧的所有帧片段通常会在所谓的片段突发期(fragment burst)传送
工作站在片段突发期会一直持有信道的掌控权
NAV可确保其他工作站在此片段突发期不适用该信道
RTS/CTS会将NAV设定成从预定时间到第一个帧片段结束,其后的片段会彼此串联,一直掌握媒介的使用权

一般的802.11MAC帧格式

这一段内容当初看的很细,也没怎么记住
实际开发的时候,omnipeek和wireshark等工具会直接给出各字段的含义

这里只记录一些,在前段时间觉得自己忽略的东西

Frame Control字段
Power Management位

此位用来指出发送端在完成当前的原子帧交换之后是否进入省电(power-save)模式
接入点所传送的帧中此位必然为0,只有工作站才需要PS

more data位

接入点设定此位,代表至少有一个帧待传给休眠中的工作站

Protected Frame位

PMF功能。如果帧受到链路层安全协议层的保护,则此位被设定为1,而且该帧会略有不同

order位

帧与帧片段可依次传送,不过发送端与接收端的MAC必须付出额外的代价
一旦进行严格依次传送,则此位被设定为1

Duration/ID字段

此字段有三种可能的形式

Duration(设定NAV)

此时第15位被设定为0。此数值代表当前所进行的传送预计使用媒介多少微秒

无竞争周期所传送的帧

无竞争周期(CFP, contention-free period),第14位为0,第15位为1,其他所有位均为0
PS:Wi-Fi5之前没有CFP

这里科普下802.11的竞争机制(这个东西很重要):

当一个节点需要发送帧时,要调用载波侦听机制来确定信道的忙/闲状态,如果信道忙,它将推迟直到信道连续处于闲状态达到 DIFS 时间,为了避免发送冲突,这时该节点在发送前必须经过一个附加的退避周期,将产生一个随机的退避时间(Backoff Time),并存入退避计数器,如果退避计数器中已经包含有一个非 0 的值,那么就不再执行产生随机退避时间的过程。一个节点执行退避过程时,在每一个时隙中侦听信道的状态,如果信道闲,则将退避时间计数器减 1;如果信道忙,则退避过程将被推迟,退避时间计数器被冻结(即不再递减),直到侦听到信道处于连续空闲状态达到DIFS 时间,退避过程重新被激活,继续递减。当退避计数器递减到 0 时,节点就可以执行发送。当多个节点同竞争信道时,每个节点都经过一个随机时间的退避过程,才能占有信道,这样就大大减少了发送冲突发生的概率。另外,通过采用退避过程中的冻结机制,使得被推迟的节点在下一轮竞争中无需再次产生一个新的随机退避时间,只需继续进行计数器递减,那么,等待时间长的节点优先级就高于新加入的节点,就可能优先得到信道,从而维护了竞争节点之间一定的公平性。

PS-Poll帧

省电-轮询帧,第14、15位同时设定为1
工作站可以关闭天线以达到省电目的,休眠中的工作站必须定期醒来
醒来时的工作站必须送出一个PS-Poll帧,以从接入点取得之前缓存的任何帧
此外,苏醒的工作站会在PS-Poll帧中加入关联标识符(association ID,简称AID),以显示其隶属的BSS
AID的值介于1~2007,之后的值尚未使用

Address字段

这部分之前看的比较细,这里记录一些细节

基本上,Address1~3依次代表接收端、发送端、被接收端拿来过滤地址
比如,在基础结构型网络中,Address3会被接收端用来判断该帧是否属于其所关联的网络

如果传送给实际媒介的第一个位为0,单播 unicast
第一位为1,则该地址代表一组实体工作站,组播 multicast
所有位都为1,广播 broadcast

Sequence Control顺序控制字段

此字段用来重组帧字段以及丢弃重复帧,由4位的片段编号和12位的顺序编号组成

帧主体
帧校验序列(FCS)

广播与组播数据或管理帧

广播与组播帧无需响应,成帧与寻址在802.11中较为复杂
组播帧无需分段,也无需得到确认,基于contention-based access control规则加以传送

单播帧

基本的肯定确认(最后一个片段)

帧分段

如果帧在传送过程中遗失,整个封包就必须重传

后续的数据帧会继续延长NAV以涵盖后续的确认,直到最后一个数据帧才会将More Fragment位设定为0
而最后一个确认则会将NAV设定为0

帧的分段是由MAC的分段阈值参数控制,大部分的网卡驱动程序都允许用户设定此参数

省电程序

在RF系统中,放大器是最耗电的组件
接收到PS-Poll帧的接入点可以立即采取响应,也可以等到环境许可、比较空闲时再予以响应
采用哪种PS-Poll响应由接入点所采用的芯片组的厂商决定
有些芯片厂商同时支持两种模式,有些则支持一种

立即响应
延迟响应

通过PS-Poll请求帧的工作站必须保持清醒,直到该帧传送完成
收到数据帧后,工作站还必须停留在清醒状态,直到下一个Beacon帧被传送出来
(这个Beacon帧的作用是显示已无缓存帧)

多种速率支持

工作站必须能够适应变动的环境,必要时更改传送速率。
有些通则适用于所有工作站:
1.每个工作站均持有一份操作速率列表,记录工作站于所连BSS均支持的所有速率
高于操作速率集的传送速率是不允许用来传送帧的
2.每个BSS必须负责维护一组基本速率,即打算加入此BSS的工作站所必须支持的速率列表
任何传送至组接收地址的帧必须以基本速率传送,以确保所有工作站均可正确解读
3.用来开始帧交换的控制帧,如RTS和CTS,必须以基本速率集中的一种来进行传送

选速与降速

速率选择主要决定一张网卡该在何时提高速率以提高链路品质
速率选择如何实现留给芯片组厂商自行决定,它是可编程的,一般由驱动接口的程序代码控制
速率选择机制可以通过驱动程序或者固件升级

最常被用来判断何时应该变速的算法,其实是通过一些不是那么严谨的信号质量测量
信号质量可以直接就信噪比(signal-to-noise ratio)加以测量
或者间接观察有多少帧需要重传

帧的处理与桥接

无线媒介至有限媒介

无线接入点的核心就是桥接器,负责在无线与有线媒介之间转换帧。
以下是接入点必须进行的一系列操作:
1.检测该帧的基本完整性;针对所使用的物理层,查看物理层标头,然后验证帧上的FCS
2.继续查看是否应该进一步处理该帧
不匹配接入点BSSID的帧应予以丢弃(有些产品并未实现此步骤)
检测并移除重复的帧(产生重复帧的原因很多,最常见的是ACK遗失或损坏)
3.解密
4.解密后,查看该帧是否为帧片段,是否需要进一步重组
5.经过步骤2的BSSID校验,判断接入点必须桥接该帧,较复杂的802.11 MAC标头就会被转换为较简单的Ethernet MAC标头
6.重新计算FCS
7.将产生的新帧交付给Ethernet接口传送

有线媒介至无线媒介

1.验证Ethernet FCS后,接入点首先检查是否需要进一步处理所接收到的帧
即查看该帧的目的地址是否属于当前与接入点关联的工作站
2.将SNAP标头附加于Ethernet帧的数据之前
3.对帧的传送进行调度
4.一旦帧被置于队列待传,就会被赋予一个顺序编号
如果帧需要分段,会根据事先设定好的分段阈值进行分段
5.如果帧需要保护,对帧(或每个帧片段)的主体加密
6.802.11标头根据Ethernet MAC标头产生
7.重新计算FCS
8.将产生的新帧交付给802.11接口传送

服务质量扩展功能

quality of service extension
服务质量扩展功能会影响帧的传送顺序

802.11e服务质量扩展功能并非只用单一传送队列,而是在上述有线至无线桥接过程中的第4、5、7步采用多组传送队列
这些步骤会根据优先次序(priority order)进行帧处理,而优先次序取决于帧的内容以及配置设定中预先指定的优先级分级规则

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

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

nginx隐藏x-real-ip头配置

实现隐藏X-Real-Ip头,可通过配置server{} proxy_set_header实现。 server { listen 10.10.98.10:8080 backlog20480; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_…...

8.文本处理(编码解码/文件操作)

本章主要从文本处理、系统监控、日志、FTP、邮件监控、微信监控等方面来介绍基础运维的相关知识。 8.1 文本处理 在日常的运维工作中一般都离不开与文本,如日志分析、编码转换、ETL加工等。本节从编码原理、文本操作、读写配置文件、解析XML等实用编程知识出发,希望能抛砖引…...

【vue】vue3学习笔记(三)

接上篇 面包屑 安装path-to-regexpcomponent/breadcrumb/index <template><el-breadcrumb class"app-breadcrumb breadcrumb-container" separator"/"><el-breadcrumb-item v-for"(item, index) in levelList" :key"item…...

MVC三层架构

什么是MVC&#xff1a; Model view Controller 模型、视图、控制器 1.以前的架构模型 用户直接访问控制层&#xff0c;控制层就可以直接操作数据库&#xff1b; servlet--CRUD-->数据库 弊端&#xff1a;程序十分臃肿&#xff0c;不利于维护 servlet的代码中&#xff1a…...

zookeeper--一致性协议 ZAB

一、简介 ZAB 协议全称&#xff1a;Zookeeper Atomic Broadcast&#xff08;Zookeeper 原子广播协议&#xff09;。 是一个为分布式应用提供高效且可靠的分布式协调服务。在解决分布式一致性方面&#xff0c;Zookeeper 并没有使用 Paxos &#xff0c;而是采用了 ZAB 协议。 Z…...

Android面试回忆录:帮助程序员提高核心竞争力的30条建议,真香!

**新技术层出不穷&#xff0c;去年kotlin到如今Flutter&#xff0c;技术迭代&#xff0c;你是否会变得固步自封&#xff1f;**那么看本篇文章帮你解决问题&#xff0c;让你知道怎么样学习&#xff0c;学习那些技术点才能不被时代的迭代快速淘汰&#xff01; 首先&#xff0c;先…...

2021-05-30解决centos+宝塔面板,FTP传输421 Too many connections问题错误

解决centos宝塔面板&#xff0c;FTP传输421 Too many connections”问题错误 1、首先连入服务器 在/www/server/pure-ftpd/etc下&#xff0c;找到pure-ftpd.conf 2、vim pure-ftpd.conf 没有vim的&#xff0c;用其他编辑软件也可以 3、找到 #Maximum number of sim clients wit…...

RK3399 DDR频率修改

RK3399 DDR频率修改 一、DDR当前频率获取与可调节范围 1、获取当前DDR频率、可调值、容量 cat /sys/class/devfreq/dmc/cur_freq2、查看DDR频率可调节的值 cat /sys/class/devfreq/dmc/available_frequencies3、获取DDR容量 cat /proc/meminfo二、DDR测试定频 1、因为RK3…...

javascript正则表达式常用合集

javascript正则表达式常用的合集 参考网址 {n}: n 是一个正整数&#xff0c;匹配了前面一个字符刚好出现了 n 次 {n,}: n是一个正整数&#xff0c;匹配前一个字符至少出现了n次 {n,m}: n 和 m 都是整数。匹配前面的字符至少n次&#xff0c;最多m次。如果 n 或者 m 的值是0&…...

qApp加载qss技巧

使用Qt加载qss样式&#xff0c;一般操作是读取文件&#xff0c;通过setStyleSheet设置 但是qApp只需如下&#xff1a; qApp->setStyleSheet("file:///:/test.qss");//只适用于qApp...

发现一款好用到爆的数据库工具 - DataGrip(就是耗内存)

作者&#xff1a;Atzuge cnblogs.com/zuge/p/7397255.html 最近看到一款数据库客户端工具&#xff0c;DataGrip&#xff0c;是大名鼎鼎的JetBrains公司出品的&#xff0c;就是那个出品Intellij IDEA的公司。 - 就是耗内存 DataGrip是一款数据库管理客户端工具&#xff0c;方便…...

Java 类加载器(ClassLoader)的实际使用场景有哪些?

什么是classloader classloader顾名思义&#xff0c;即是类加载。虚拟机把描述类的数据从class字节码文件加载到内存&#xff0c;并对数据进行检验、转换解析和初始化&#xff0c;最终形成可以被虚拟机直接使用的Java类型&#xff0c;这就是虚拟机的类加载机制。了解java的类加…...

Bad owner or permissions on C:\\Users\\USER/.ssh/config on Windows

Bad owner or permissions on C:\Users\USER/.ssh/config 问题描述 由于使用vscode远程连接服务器突然新增了C:\Users\USER/.ssh/config &#xff0c;再powershell/cmd下面使用openssh&#xff08;windows自带&#xff09;连接服务器会出现Bad owner or permissions on C:\\U…...

React方向的前端面试题

1、React的生命周期&#xff1f; React中只有类组件有生命周期可言。 其中包含三个状态&#xff1a; Mounting&#xff1a;此时已经插入了真实的DOM&#xff1b; Updating&#xff1a;正在被重新渲染&#xff1b; Unmounting&#xff1a;已经移出真实的DOM。 生命周期的方…...

理解“same-site“ 和 “same-origin“

Understanding "same-site" and "same-origin" 作者&#xff1a;Eiji Kitamura 译者&#xff1a;weixsun 原文&#xff1a;Understanding "same-site" and "same-origin" "same-site" and "same-origin" are …...

ERC20智能合约安全评估

ERC20智能合约评估 常见漏洞: https://github.com/slowmist/Knowledge-Base/blob/master/solidity-security-comprehensive-list-of-known-attack-vectors-and-common-anti-patterns-chinese.md ERC20标准接口 //代币名字 function name() constant returns (string name) /…...

自己动手开发了一个 SpringMVC 框架,用起来太香了

一、介绍 在日常的 web 开发中&#xff0c;熟悉 java 的同学一定知道&#xff0c;Spring MVC 可以说是目前最流行的框架&#xff0c;之所以如此的流行&#xff0c;原因很简单&#xff1a;编程简洁、上手简单&#xff01; 我记得刚开始入行的时候&#xff0c;最先接触到的是Stru…...

一个由java.util.ConcurrentModificationException引起的血案

线上跑的一个flink任务突然报了异常&#xff0c;话不多&#xff0c;先把异常发出来 最近在做一个flink项目时遇到了一个线上报错&#xff0c;话不多说&#xff0c;先上代码&#xff0c;其中用到的第三方封装的flink sdk隐去了包前缀&#xff0c;不会影响分析。 Caused by: ja…...

程序员,请你不要在坑程序员了

大家好&#xff0c;hellohello-tom又来分享实战经验了。&#x1f923; 在一个风和日丽的下午&#xff0c;tom哥正在工位上打着瞌睡&#xff0c;突然QQ群运维同学全部开发人员说线上绿线环境大面积开始瘫痪&#xff0c;zuul网关大量接口返回service unavailable&#xff0c;并且…...

jvm 脑图笔记

...

vis.js绘制网络拓扑图,并且鼠标移上去会有显示效果

<!DOCTYPE html> <!-- saved from url(0044)http://kenedict.com/networks/worldcup14/vis/ , thanks Andre!--> <html lang"en"><head><meta http-equiv"content-type" content"text/html; charsetUTF8" /><...

linux任何用户ssh正确密码登陆均报错Permission denied, please try again.处理方法

文章目录说明报错日志内容查看secure日志查看【知道就行】messages日志查看【这里面有记录】处理方法key文件删除修改配置文件中的UsePAM上面步骤过程测试自己可以ssh自己了工具也可以正常连接了别的服务器ssh自己【必看】说明 我的一台虚拟机IP是&#xff1a;192.168.59.133出…...

JavaScript进阶学习笔记(五)--- 严格模式

一、严格模式 1、严格模式的概念 ​ JavaScript 除了提供正常模式外&#xff0c;还提供了严格模式&#xff08;strict mode&#xff09;。ES5 新增的严格模式是采用具有限制性 JavaScript变体的一种方式&#xff0c;即在严格的条件下运行 JS 代码。格模式在 IE10 以上版本的浏…...

Maven安装(指定本地库)

安装一、下载Maven二、找到需要下载的文件三、解压四、配置环境&#xff0c;和jdk环境配置一样五、将本地仓库配置到指定路径&#xff08;可以不进行配置&#xff0c;默认在C盘&#xff09;六、配置阿里镜像七、验证是否安装成功因为我需要把本地仓库放置在硬盘F盘&#xff0c;…...

8.文本处理(编码解码/文件操作)

本章主要从文本处理、系统监控、日志、FTP、邮件监控、微信监控等方面来介绍基础运维的相关知识。 8.1 文本处理 在日常的运维工作中一般都离不开与文本,如日志分析、编码转换、ETL加工等。本节从编码原理、文本操作、读写配置文件、解析XML等实用编程知识出发,希望能抛砖引…...

python2.7安装pyqt4

起因 由于pyqt5对于pyqt4部分功能不兼容&#xff0c;因此在使用旧包的时候会报错。 这里尝试安装pyqt4&#xff0c;但是发现pyqt4的官方.exe安装包已经不提供支持&#xff0c;使用pip install Pyqt4也会失效&#xff0c;因此直接绕过这些步骤&#xff0c;使用.whl文件进行安装…...

Jupyter Lab3.0远程访问配置及代码无法自动补全问题

1. 前言 阴沟里翻船&#xff0c;也算做了几年深度学习&#xff0c;居然配置深度学习利器Jupyter Lab出了一堆问题&#xff0c;总结以及解决方案如下&#xff1a; 2. 远程访问配置 生成默认配置文件&#xff0c;会保存在~/.jupyter/jupyter_notebook_config.py中 jupyter no…...

javascript 幻灯片代码(含自动播放)

参见&#xff1a;https://www.runoob.com/w3cnote/javascript-slideshow.html...

nginx隐藏x-real-ip头配置

实现隐藏X-Real-Ip头&#xff0c;可通过配置server{} proxy_set_header实现。 server { listen 10.10.98.10:8080 backlog20480; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_…...

一句话解释空洞卷积和反卷积

空洞卷积 通俗理解&#xff1a;在卷积核上增加空白数据&#xff0c;或者说是在卷积的时候固定跳过部分像素点&#xff0c;达到一次卷积看到的范围变大的效果。 作用&#xff1a;在不增加参数的情况下&#xff0c;增大感受野。&#xff08;效果等同于卷积池化&#xff0c;但是避…...

Android全面解析之Window机制

文章已授权『鸿洋』公众号发布 前言 你好&#xff01; 我是一只修仙的猿&#xff0c;欢迎阅读我的文章。 Window&#xff0c;读者可能更多的认识是windows系统的窗口。在windows系统上&#xff0c;我们可以多个窗口同时运行&#xff0c;每个窗口代表着一个应用程序。但在安卓…...

Window概念

Window是什么 Window是Android中的可见窗口&#xff0c;也是Android中唯一的可见视图&#xff0c;包括Activity、Dialog、PopupWindow、Toast等都是通过Window来显示视图的。 Window是个抽奖的概念&#xff0c;它是以View的形式存在的&#xff0c;也可以是说Window其实就是一…...

Window系列 (一) — WindowManager 详解

WindowManager 详解一、概述二、WindowManager 体系1. 类图2. 源码分析2.1 ViewManager 的结构2.2 PhoneWindow 对象何时创建&#xff1f;2.3 WindowManagerImpl 类三、Window 的属性 (类型和显示次序)四、Window 的操作1. Window 的添加过程2. Window 的更新过程3. Window 的删…...

Android Window学习记录(一)理解window和windowmanager

Android Window学习记录&#xff08;一&#xff09;理解window和windowmanager一、Window什么是Window小结为什么需要Window小结Window的相关属性window的type属性Window的flags参数window的softInputMode属性如何给window属性赋值小结Window和WindowManager的关系二、WindowMa…...

Debian 时间同步

Debian 有时候时间可是时区不正确&#xff0c;我们可以执行如下命令进行校正&#xff1a; 命令时区根据需要进行替换&#xff1a; sudo rm /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime...

Window 时间同步 地址

国家授时中心服务器的IP地址(210.72.145.44) ntp.fudan.edu.cn (复旦)推荐使用 time-b.nist.gov1 s1a.time.edu.cn 北京邮电大学 s1b.time.edu.cn 清华大学 s1c.time.edu.cn 北京大学 s1d.time.edu.cn 东南大学 s1e.time.edu.cn 清华大学 s2a.time.edu.cn 清华大学 s2b…...

一文详解,数据仓库、数据库、数据中台、数据湖的区别

数据时代&#xff0c;各行业的企业都已经开始通过数据库来沉淀数据&#xff0c;但是真的论起数据库、数据仓库、数据中台&#xff0c;还是新出现的数据湖&#xff0c;它们的概念和区别&#xff0c;可能知道的人就比较少了&#xff0c;今天我们详细来比较了解一下。 数据仓库是…...

关于使用图表控件LightningChart的十大常见问题及解答

LightningChart是芬兰的一款高性能图表开发控件&#xff0c;其中的LightningChart .NET支持实时可视化1万亿个数据点&#xff0c;且可以直接用于.NET WinForms、WPD、传统的Win32 C的应用程序中&#xff1b;而LightningChart JS是一款性能极高的JavaScript图表库&#xff0c;专…...

Buuctf rar

下载该文件&#xff0c;发现该文件为rar文件&#xff0c;在进行解压时发现有密码 结合题意可以得到该题需要进行密码爆破&#xff0c;而且密码在0000~9999之间 利用ARCHPR对该文件进行密码爆破 获得该文件密码为&#xff1a;8795&#xff0c;对该文件进行解压&#xff0c;发现…...

RAR文件设置了密码,如何打开?

RAR文件如果设置了密码&#xff0c;要如何打开呢&#xff1f; 双击RAR文件时&#xff0c;还是可以直接打开的&#xff0c;但是再点击里面的文件&#xff0c;就会出现提示&#xff0c;需要输入密码才能打开。 就算是将RAR文件解压出来&#xff0c;也同样会提示输入密码。 所以…...

RKMEDIA--VI的使用

在上一篇文章RKMEDIA使用简介中简单的介绍了rkmedia的组成部分&#xff0c;本章主要聊聊VI模块。 rkmedia中的VI模块主要可以从两个方式获取流&#xff1a;直接打开video节点的方式、使用rk平台的rkaiq。 1、直接打开video节点的方式 顾名思义只需要在vi初始化中配置VI_CHN_AT…...

hackthebox - jail (考点:linux缓冲区 nfs配置提权 rvim提权 rar解密 rsa解密)

1 扫描 看到常规的22&#xff0c;可能有ssh登录&#xff0c;80进web搜集信息&#xff0c;还有个nfs &#xff0c;要想到showmount 以及mount -t nfs 2 http下的linux缓冲区溢出 在http里&#xff0c;dirbuster扫&#xff0c;看到jail这些文件。查看c源码&#xff0c;可以知道…...

java 解压加密rar_Java对文件压缩/加密/解密/解压缩的例子,DES/RSA

importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.security.Key;importjava.security.KeyPair;importjava.security.KeyPairGenerator;importjava.security.P...

java rar 密码_java对压缩文件进行加密,winrar和好压 直接输入解密密码来使用

packagecom.yggdrasill.foura.web.sysadmin.backup.service;importnet.lingala.zip4j.core.ZipFile;importnet.lingala.zip4j.exception.ZipException;importnet.lingala.zip4j.model.ZipParameters;importnet.lingala.zip4j.util.Zip4jConstants;import java.io.*;importjava...

c# rar解压大小_C#调用RAR压缩与解压

publicvoidRARsave(stringpatch,stringrarPatch,stringrarName)...{String the_rar;RegistryKey the_Reg;Object the_Obj;String the_Info;ProcessStartInfo the_StartInfo;Process the_Process;try...{the_RegRegistry.ClassesRoot.OpenSubKey("ApplicationsWinRAR.exeS...

RAR解密跑字典

...

rar压缩包解密在线,忘记rar压缩包密码怎么找回?

rar压缩包解密在线&#xff0c;rar压缩包权限密码如何解开&#xff1f;【解密神器】rar压缩包密码破除&#xff0c;用「密码帝」 就可以啦&#xff01;手机电脑都可以用&#xff0c;一键轻松在线解密&#xff01;不用下载安装任何软件&#xff01;...

分享 kettle pdi-ce-9.1

今天找了一下最新的pdi https://dev.zhidaohub.xyz/share/pdi-ce-9.1.0.0-324.zip 官方地址&#xff1a;下载较慢 https://sourceforge.net/projects/pentaho/files/Pentaho%208.1/client-tools/...

Docker系列之一:在线安装docker和下载镜像

目录 1 部署环境 2 在线安装Docker 2.1 卸载已有docker服务 2.2 安装epel更新源 2.3 安装docker仓库 2.4 安装docker 2.5 配置docker镜像下载加速器 2.6 修改docker的默认镜像、容器数据存储位置 2.7 启动docker服务命令 3 docker镜像下载 3.1 镜像下载&#xff1a…...

yum直接安装docker-ce报错找不到安装包

报错现象 [rootnode01 ~]# yum -y install docker-ce 已加载插件&#xff1a;fastestmirror Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* epel: mirrors.bfsu.edu.cn* extras: mirrors.163.com* updates: mirrors.cqu.edu.cn 没有可用软件包 dock…...