wifi 802.11 kvr 漫游

2023-05-16

802.11k

802.11k为无线局域网应该如何进行信道选择、漫游服务和传输功率控制提供了标准。他提供无线资源管理,让频段(BAND)、通道(CHANNEL)、载波(CARRIER)等更灵活动态地调整、调度,使有限的频段在整体运用效益上获得提升。在一个无线局域网内,每个设备通常连接到提供最强信号的接入点。这种管理有时可能导致对一个接入点过度需求并且会使其他接入点利用率降低,从而导致整个网络的性能降低,这主要是由接入用户的数目及地理位置决定的。在一个遵守802.11k规范的网络中,如果具有最强信号的接入点以其最大容量加载,而一个无线设备连接到一个利用率较低的接入点,在这种情况下,即使其信号可能比较弱,但是总体吞吐量还是比较大的,这是因为这时网络资源得到了更加有效的利用。

802.11r

802.11r标准,着眼于减少漫游时认证所需的时间,这将有助于支持语音等实时应用。使用无线电话技术的移动用户必须能够从一个接入点迅速断开连接,并重新连接到另一个接入点。这个切换过程中的延迟时间不应该超过50毫秒,因为这是人耳能够感觉到的时间间隔。但是802.11网络在漫游时的平均延迟是几百毫秒,这直接导致传输过程中的断续,造成连接丢失和语音质量下降。所以对广泛使用的基于802.11的无线语音通讯来说,更快的切换是非常关键的。802.11r改善了移动的客户端设备在接入点之间运动时的切换过程。协议允许一个无线客户机在实现切换之前,就建立起与新接入点之间安全且具备QoS的状态,这会将连接损失和通话中断减到最小。

802.11v

无线网络管理。V工作组是最新成立的小组,其任务将基于802.11k所取得的成果。802.11v主要面对的是运营商,致力于增强由Wi-Fi网络提供的服务。无线终端设备的控制涉及多个方面。负载平衡功能能够根据接入点的负载情况在它们之间分配无线终端设备。目前,这项任务是通过阻止终端设备连接在超载的接入点上或结束已经连接到接入点上的终端设备会话来实现的。可是,这些活动可能中断终端设备会话。802.11v设想通过将终端设备引导到具有可用带宽和资源的接入点,使负载平衡变得对用户透明。

该标准可以加快网络的部署。在使用802.11网络时,终端设备加入到具有SSID特性的网络。现在没有一种无须手工为终端设备配置SSID和安全证书、自动告知终端设备应当连接在什么网络上的机制。802.11v中建议了实现从基础设施进行安全终端配置的功能,这将大大减少大型网络中的部署时间。

 

802.11r

1.1  简介

802.11r协议中定义的FT(Fast BSS Transition,快速BSS切换)功能用来减少客户端在漫游过程中的时间延迟,从而降低连接中断概率、提高漫游服务质量。

1.1.1  FT实现方式

FT支持两种方式:

·     Over-the-Air:客户端直接与目标AP通信,进行漫游前的认证。

·     Over-the-DS:客户端通过当前AP与目标AP通信,进行漫游前的认证。

1. AC内over-the-air方式漫游

图1-1 AC内over-the-air方式漫游示意图

 

图1-1所示,客户端在连接至同一AC的AP间(AP 1到AP 2)漫游时,信息交互过程描述如下:

(1)     客户端已经与AP 1连接并且要漫游到AP 2;

(2)     客户端向AP 2发送认证请求;

(3)     客户端收到AP 2的认证请求回应;

(4)     客户端向AP 2发送重关联请求;

(5)     客户端收到AP 2的重关联请求回应;

(6)     客户端完成从AP 1到AP 2的漫游。

2. AC间over-the-air方式漫游

图1-2 AC间over-the-air方式漫游示意图

 

图1-2所示,AP 1和AP 2分别连接AC 1和AC 2,在同一移动域内漫游的信息交互过程描述如下:

(1)     客户端与AP 1建立连接;

(2)     AC 1同步客户端漫游信息(PMK、VLAN等信息)到AC 2;

(3)     客户端准备漫游,发送FT认证请求到AP 2;

(4)     客户端收到AP 2发送的FT认证回复;

(5)     客户端向AP 2发送重关联请求;

(6)     客户端收到AP 2的重关联请求回应;

(7)     客户端完成从AP 1到AP 2的漫游。

3. AC内over-the-ds方式漫游

图1-3 AC内over-the-ds方式漫游示意图

 

图1-3所示,客户端在连接至同一AC的AP间(AP 1到AP 2)漫游时,信息交互过程描述如下:

(1)     客户端与AP 1建立连接;

(2)     AC生成、同步、保存客户端的漫游表项;

(3)     客户端准备漫游,向AP 1发送FT认证请求;

(4)     客户端收到AP 1的FT认证回复;

(5)     客户端向AP 2发送重关联请求;

(6)     客户端收到AP 2的重关联请求回应;

(7)     客户端完成从AP 1到AP 2的漫游。

1.1.2  标准与协议

·     802.11r IEEE Standard for Information technology—Telecommunications and information exchange between systems—Local and metropolitan area networks—Specific requirements

1.1.3  注意事项

·     如果有客户端无法关联使能了FT功能的服务,可能是由于客户端的型号较早而不支持FT协议。此时可以创建两个SSID相同的服务,一个使能FT功能,另一个不使能FT功能,而其它配置均相同,以便客户端可以正常使用网络服务。

·     不建议在服务模板下同时开启FT功能和802.1X周期性重认证功能,否则会导致客户端在每次重认证时间间隔到达时重新上线。关于802.1X周期性重认证功能的介绍和配置请参见“WLAN配置指导”中的“WLAN用户接入认证”。

·     快速BSS切换协商成功的客户端,不支持PTK更新。关于PTK更新的介绍和配置请参见“WLAN配置指导”中的“WLAN用户安全”。

1.2  802.11r配置

表1-1 配置802.11r

操作

命令

说明

进入系统视图

system-view

-

配置WLAN服务模板

wlan service-template service-template-name

-

开启FT功能

ft enable

缺省情况下,FT功能处于关闭状态

(可选)配置FT方式

ft method { over-the-air | over-the-ds }

缺省情况下,FT方式为over-the-air

(可选)配置关联超时时间

ft reassociation-timeout timeout

缺省情况下,关联超时时间为20秒

关联超时时间指的是,客户端在完成认证后,客户端发起关联请求的最大时间间隔。如果在此时间内客户端没有发起关联,则会终止此次漫游

 

 

 

 

802.11r协议理解

首先阅读了相关协议内容整理出了如下的802.11r时序图所谓基础,然后会详细理解其中的每一个步骤:

802.11链路认证:
1.OSA open System 基于MCA地址的身份验证
2.Shared-key authentication使用WEP 一共使用四个帧完成认证

关联过程:AP必须为STA在网络上注册,使分布式系统能够记录每个STA的位置
为了节省时间,在AP接收到关联请求的时候会立即给STA一个关联响应,但是如果AC最后响应不允许关联,此时可以将STA下线
如果STA支持80211r则会在关联报文中添加MDIE,如果支持80211i则添加RSNIE,AP收到assoc req帧后会拿这两个信息元素和自身的MDIE,RSNIE对比(也就是写入Beacon帧里的MDIE),如果不一致会导致关联失败,关联成功后,AP向STA发送assoc resp帧,并告知STA其R0KH_ID和R1KH_ID。为以后生产三层密钥(PMK_R0,PMK_R1,PTK)做准备;

802.1X认证过程:强AP与弱AC的形式,使AC在认证过程中是作为代理
802.11i协议定义了使用TLS连接生成的主密钥MSK(Master Secret Key)来作为PMK,因此只有采用了TLS方法的802.1X认证才能够用于无线接入。最常见的一种用法是802.1X使用PEAP+MSCHAPv2的认证方法,PEAP负责建立TLS连接并对内层认证数据加密,MSCHAPv2用于内层验证用户名和密码。
详细认证过程TBD

四次握手:使用EAPOL帧
在四次握手开始前,Client需要先关联到AP上,并且双方都需要准备好PMK之后才能开始四次握手。在前面1.3.2章节中介绍过,WPA-Personal方式双方可以直接计算出PMK,所以不需要经历图1-15的认证阶段,而WPA-Enterprise方式则需要通过802.1X认证来派生出PMK。
四次握手阶段的4个消息写作Message N(r, Nonce; GTK),N用来表示是第几个消息,r用来表示图1-13中的Key Replay Counter,逗号之后是随机数Nonce,如果是Authenticator产生的随机数则写作ANonce,如果是Supplicant产生的随机数则写作SNonce,如果没有随机数则不写。分号之后的参数是保存在消息的Key Data字段的,GTK表示Data中的数据是组播密钥。
消息1:四次握手的第一个消息是由AP首先发给Client,携带了AP产生的随机数ANonce,因为Key Replay Counter关系到后续报文加密计算,所以需要初始化Key Replay Counter。在整个四次握手的4个消息中,消息1是唯一不带Key MIC校验参数的消息,前面讲过Key Replay Counter需要在Key MIC校验合法后才进行更新,因此Client在收到消息1后并不会更新自己的Key Replay Counter。因为消息1是可能出现重传的,Client不能因为收到消息1就更新自己的Key Replay Counter导致该值被重置。
消息2: Client收到消息1之后会产生一个自己的随机数SNonce,从前面1.3.3.1章节的公式可以看出,Client已经知道自己和AP的无线MAC地址,也知道自己和AP的随机数SNonce和ANonce,Client已经满足公式计算的所有输入参数,因此Client可以计算出单播密钥PTK,但此时Client并未将PTK安装到无线驱动中,因为AP尚未确认该PTK。然后Client需要将SNonce发送给AP,这样AP才能够根据同样的算法派生出PTK。
消息3:此时Client和AP双方都派生出了PTK,但是PTK仅用于单播报文的通信加解密,组播和广播数据需要用到GTK密钥。因为是广播或组播通信,通信范围是一个AP下关联的所有Client,所以一个AP下的所有Client应该拥有一个共同的加解密密钥GTK,这个密钥由AP负责产生并定期更新,AP将密钥告知新接入的Client,因此AP还需要向Client发送消息3,将GTK放在Key Data字段中,但GTK也必须以加密的方式发送,加密密钥为消息2派生的PTK中的KEK密钥(图1-12中的KEK字段)。消息3会将Key Information中Install标记位置1,通知Client可以将密钥安装到无线驱动中。
消息4:该消息实际上是对消息3的确认消息,表示Client确认收到了消息3,否则会引起消息3的重传,因此消息4除了带有Key MIC验证消息完整性外,不包含任何其他信息。Client发出消息4后,就会向无线驱动中安装PTK和GTK密钥;AP收到消息4后,也会向无线驱动中安装该Client的PTK,AP上已经在使用GTK,所以GTK无需再次安装到无线驱动中。
Client在与AP首次连接时,四次握手消息都是处于未加密的状态,但是Client与AP成功连接后仍然可以通过四次握手更新PTK和GTK,在更新的情况下,四次握手消息会当作普通报文一样来处理,EAPOL报文会被前一次协商的PTK加密。GTK可以单独进行更新,更新GTK时相当于只进行了消息3和消息4的步骤。GTK是由AP来定时更新,AP上的GTK一旦更新,就需要通知AP上所有的Client更新GTK,但此时封装GTK的EAPOL报文仍然需要被每个Client的PTK加密,因此GTK的更新虽然是批量更新,但仍然是AP与每个Client单播通信。
因为每个PTK是Client与AP之间通过四次握手协商出来的,所以当Client在不同AP之间发生漫游时,都需要重新通过四次握手协商新的PTK,同时获取新AP的GTK。如果是WPA-Personal方式,PMK是提前准备好的,漫游时Client与新AP之间可以直接进行四次握手协商;如果是WPA-Enterprise方式,Client还需要重新进行一次802.1X认证来派生出新的PMK,才能与新AP之间进行四次握手协商,所以在WPA-Enterprise方式下漫游效率会降低,导致漫游发生时数据传输中断时间更久。
为了解决WPA-Enterprise方式下漫游慢的问题,Client可以与多个AP提前进行802.1X预认证,在漫游尚未发生时,Client就提前找扫描到的相同SSID的不同AP进行802.1X认证,Client自己缓存每个AP的PMK,每个AP也提前缓存该Client的PMK,当漫游真正发生时,Client和AP都已经缓存了PMK,所以双方可以直接进行四次握手来协商出新的PTK,这样就实现了与WPA-Enterprise方式相同的漫游效率。但是802.1X预认证和缓存PMK需要Client和AP双方都支持才行,双方有任何一方不支持802.1X预认证,都不能进行WPA-Enterprise方式下的快速漫游。
即使Client和AP双方都支持802.1X预认证,要实现WPA-Enterprise方式下的快速漫游还有一些需要注意的地方,那就是802.1X认证是Client首先发起第一个报文启动认证流程,而四次握手是AP首先发起第一个报文启动协商流程,两个流程首个请求发起者不一样。
从AP的角度来看,当一个Client关联上来之后,AP如果缓存了该Client的PMK,但AP不知道该Client是否也缓存了PMK能否快速进入四次握手阶段,因此AP会保持一小段静默时间,静默期间如果未收到Client发起802.1X认证,则AP进入四次握手阶段发出消息1。如果AP不支持802.1X预认证,也就不能缓存Client的PMK,当Client漫游过来后应该立即发送802.1X Identity来触发Client尽快进入802.1X认证阶段。
从Client的角度来看,当漫游到新AP后,如果Client缓存了PMK,则不主动发起802.1X报文,静静等待AP发出四次握手的消息1,如果超过了AP静默期仍然未收到四次握手的消息1,则需要放弃本地缓存的PMK,重新发起802.1X认证流程派生新的PMK。如果Client不能提前缓存PMK,则漫游后应该立即主动发起802.1X认证,AP会放弃原来缓存的PMK,通过802.1X认证来派生出新的PMK后,再进行四次握手。

probe帧:在无线网络中,probe帧是周期发送进行探测STA

Fast BSS Transmition:
快速漫游过程相比于普通的STA上线过程主要区别在于:
1.在链路认证的时候使用的是FT认证
2.快速漫游是建立在已经连接无线网络的前提下,所以发生了重新关联的过程
3.没有802.1X认证过程(PMK已经存在)
4.没有四次握手过程,密钥协商发生在重关联的过程

密钥计算公式:

XXXKey指的是PMK
PMK_R0指的是root key在AC中存放,R0KH指的是AC,R0KH-ID指的是该AC的MAC地址
PMK_R1指的是由PMK_R0和R0KH-ID派生出来的密钥在AP中存放,R1KH指的是AP,R1KH-ID指的是该AP的MAC地址
PMK_R0_Name指的是PMK_R0在AC的密钥存储表中的Index,生成方式见上图
PMK_R1_Name指的是PMK_R1在AP的密钥存储表中的Index,生成方式见上图
密钥存储表表现方式为键值对,比如(PMK_R0_Name,PMK_R0)

密钥结构:
1)PMK_R0为第一层密钥,它由MSK(PMK)或PSK推演出来,由PMK_R0密钥持有者保存(即R0KH和S0KH)。
2)PMK_R1为第二层密钥,它由R0KH和S0KH共同推演而来,由PMK_R1密钥持有者保存(即R1KH和S1KH)。
3)PTK为第三层密钥,它是由R1KH和S1KH共同推演而来。R0KH和R1KH为认证者端的结构,与之对应的S0KH和S1KH为客户端的结构。
S0KH和S1KH都是指STA

FT认证:
Auth报文中的FTAA代表该验证请求帧的验证算法为FT,而不是Open和shared key;帧中的MDIE必须和FAP自身的MDIE一致,否则会导致验证失败;同样的,如果PMKR0name不可用或者R0KH(这里的R0KH_ID必须是进行初始化关联阶段所获得的R0KH_ID)不可达,同样会报错(报错结果参见 state code)。
目标AP的R1KH利用PMKR0Name和帧中的其它信息计算出PMKR1Name。如果AP没有PMKR1Name标识的Key(PMK_R1),R1KH就会从STA指示的R0KH获得这个Key。目标AP收到一个新的PMK_R1后就会删除以前的PMK_R1安全关联以及它计算出的PTKSAs。STA和目标AP计算PTK和PTKName时需要用到PMK_R1,PMKR1Name,ANonce和SNonce。认证完成后,若是在TIE(Reassociate Deadline )时间或者重关联时间[TIE(Reassociate Deadline )]到期前未收到重关联帧,那么目标AP就要将PTKSA删除。
如果目标AP经过计算找不到PMK_R1,则向R0KH发送请求,R0KH计算出PMK_R1后,将PMK_R1SA发给R1KH。R1KH随后计算随机值Anonce,并通过3.7式计算出PTK,返回一个Auth response帧给工作站。

重新关联:
此时双方都已经计算出PTK了这里的两个帧是为了校验双方的PTK计算的是否一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wifi 802.11 kvr 漫游 的相关文章

  • Android WifiManager 和扫描电池性能

    据我了解 人们可以请求 WifiManager 启动 AP 扫描 这很好 您会收到扫描结果 但我的问题是关于幕后发生的连续 wifi 扫描 除了取消注册用于扫描回调的 wifi 侦听器之外 禁用 wifi 是阻止硬件扫描的唯一方法吗 那么
  • 如何计算IEEE 802.11 CRC-32 FCS?

    这是来自 IEEE Std 802 11 2012 第 8 2 4 8 FCS 字段 我无法理解最后两段 除法的初始余数预设为全部 是什么意思 为什么我们需要这样做 计算字段和 FCS 的串行输入位 是什么意思 将 CRC 初始化为全 1
  • 如何查看android中真实连接的互联网?

    我做了一个程序 我必须使用wifi来连接互联网 我找了一些资料来检查wifi是否连接 但在某些情况下 你可以连接wifi AP 但仍然无法上网 比如wifi需要账号和密码进行https认证 或者wifi AP无法上网 那么 如何查看真实的互
  • 为什么我在 Android 上无法检测到带有 unicode 字符的 wifi SSID?

    我有一个 Wi Fi AP 其 SSID 是一串 unicode 字符 例如 我希望 Android 设备连接到它 当我的设备 Nexus One 检测到热点时 SSID 看起来像这样 并且无法识别它 知道如何解决这个问题吗 802 11数
  • 是否可以在 swift 4 的代码中关闭 wifi 或将 iPhone 切换到离线模式?

    我想知道是否有任何方法可以在 swift 4 中的代码中打开或关闭 iPhone wifi 或将设备切换到离线模式 我知道苹果可能不允许应用程序可以做这样的事情在App Store中分发但这并不重要我只是想知道是否有任何代码可以做到这一点
  • 无需连接WiFi即可获取MAC地址

    是否可以在未实际连接的情况下获取 WiFi MAC 地址 假设我有 Android 设备 A 我已经打开了 WiFi 因此我的 Android 设备现在能够检测到附近广播的 WiFi SSID 我附近有一些广播的 WiFi SSID 如下所
  • 如何使用Java连接wifi设备? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在Java中在wifi范围内的设备之间建立连接 要通过网络 WiFi 电缆等 在两个设备之间建立连接 您需要编写 2 个软件 1
  • 检测连接到 Wifi 的 Android 设备

    我想制作一个连接到 Wifi 网络的 Android 应用程序 假设网络 SSID ABC 假设它已连接到 Wifi ABC 连接到 ABC 后 我希望我的应用程序显示连接到同一 wifi ABC 网络的所有 Android 设备的 ip
  • iPhone 802.11 扫描

    我正在开发一个室内位置使用 wifi 的系统 但是我在使用苹果库时遇到了问题 曾经是私人的 现在是公共的 我在哪里使用代码 libHandle dlopen System Library SystemConfiguration IPConf
  • 如何使用Python连接WiFi网络? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试用 Python 编写一个脚本 该脚本将使我能够搜索无线网络并连接到它们 有没有为此目的的Python 库 None
  • 如何使用 Objective-C 判断 iPhone 是否连接到 wifi 网络?

    在 Objective C iPhone 应用程序的上下文中 我需要能够判断 iPhone 是否已连接到 wifi 网络 并在可能的情况下侦听此状态的变化 有谁知道如何做到这一点 谢谢 加布伊 正如其他人提到的 可达性样本 https de
  • 通过 Wi-Fi 扫描 MFI 产品

    在 iOS 8 中 Apple 允许我们通过 Wifi direct 连接到设备并与其共享 WiFi 网络凭据 我们可以在 wifi 设置页面中执行此操作 也可以在应用程序中执行此操作 我正在尝试启动扫描来查找 wifi MFI 设备 我可
  • 如何通过已知路由器上的三角测量来确定我的位置?

    有没有可用的开源软件 基本上 我只想根据位置固定且已知的路由器的信号强度进行三角测量 我意识到可能存在干扰的情况 但我们还是坚持列出已知的源代码 谢谢 我不知道任何三边测量软件 有人应该编写一个开源库 看看三边测量 http en wiki
  • 是否可以强制通过 Wifi 或 TMobile 网络进行网络流量?

    我想知道使用 G1 是否可以强制网络流量通过 Wifi 或通过 Cell GSM 网络 我需要强制应用程序通过塔式网络连接以获取一些登录信息 这可能吗 有人对这如何可能有任何想法吗 我正在尝试使用 Android SDK 在应用程序内完成此
  • Android手机休眠时网络访问

    我正在使用警报组合 设置为AlarmManager 和后台服务定期同步我的应用程序中的数据 我遇到的唯一问题是 当睡眠策略终止 Wi Fi 连接时 同步将不再起作用 有没有办法 唤醒 已进入睡眠状态的 Wi Fi 连接 GMail 以某种方
  • Android 智能手机与其他设备之间的直接 Wifi 通信

    我想在 Android 设备和另一个设备 不是另一个 Android 智能手机 而是使用 C 实现的带 wifi 的设备 之间建立通信 通过 WIFI 我已经发现android提供了直接无线网络 http developer android
  • 通过 Wi-Fi 运行/安装/调试 Android 应用程序?

    我认为有一种方法可以通过 Wi Fi 测试开发中的应用程序 这可能吗 我希望能够摆脱手机的束缚并进行无线开发 参见论坛帖子 通过USB连接设备并确保调试正常 adb tcpip 5555 这使得设备开始侦听端口 5555 上的连接 查找设备
  • 我如何使用肘节检查连接性?

    我需要使用连接库检查应用程序内每个页面的连接性 所以我将在提供者内部使用一肘 问题是何时关闭流以便在用户关闭应用程序时可以处理它 像这样 import package connectivity connectivity dart overr
  • 如何在没有互联网的情况下通过 wifi 提供网站服务?

    我想通过开放的 wifi 连接提供网站服务 但我不希望此 wifi 连接能够访问互联网 这是否可能以及我将如何去做 我已经在本地设置了网站 并通过本地主机或 IP 地址在浏览器中进行了访问 但我不确定如何设置网络服务器并通过 wifi 为网
  • iOS:同时使用 WiFi 和移动数据

    Setup 我的项目涉及一个 WiFi 相机 它创建一个 WiFi 热点 为了在相机上流式传输视频预览 浏览媒体 用户需要连接到相机的热点 Problem 用户无法同时使用 3G 4G 上的蜂窝数据 因为 iOS 设备已通过 WiFi 连接

随机推荐

  • 串口实用的循环缓冲区

    小记 项目临时需要单片机进行节点控制 xff0c 主要用来控制模块的开关 xff0c 以串口进行通讯 单片机几多久没玩了 xff0c 选用的是C8051F920 xff0c 传说中增强型51 xff0c 不过看了Datesheet 还是51
  • C++学习:编译

    编译 为了编译 C 43 43 程序 xff0c 我们使用 C 43 43 编译器 C 43 43 编译器按顺序遍历程序中的每个源代码 cpp 文件 它会检查您的代码以确保它遵循 C 43 43 语言的规则 如果没有 xff0c 编译器会给
  • 堆、栈、方法区存储的变量的类型

    1 堆 xff08 Heap xff09 xff0c 此内存区域的唯一目的就是存放对象实例 xff0c 几乎所有的对象实例都在这里分配内存 这一点在 Java 虚拟机规范中的描述是 xff1a 所有的对象实例以及数组都要在堆上分配 2 通常
  • stm32串口中断的接收

    利用串口使得led点亮 利用之前的串口函数加上NVIC的中断函数结构体 定义结构体 定义 配置抢占优先级的组别 配置NVIC串口中断的结构体 xff1a 中断的通道 xff0c 配置抢占优先级和子优先级 使能CMD 结构体初始化 还有需要配
  • 4.1.2.HTTP报文格式解析

    不同的请求方式 xff0c 他们的请求格式可能是不一样的 xff0c 请求格式就是我们所说的的报文格式 但是 xff0c 通常来说一个HTTP请求报文由请求行 xff08 request line xff09 请求头 xff08 heade
  • QSerialPort实现上位机和单片机串口通信模块

    一 背景知识 项目需要 xff0c 上位机控制单片机执行任务 xff0c 单片机会发送心跳包和任务指令到上位机 xff0c 因此采用全双工模式 xff0c 使用Qt自带QSerialPort实现 二 设计思路 模块需发送和接收数据 xff0
  • 加速度计,磁力计与姿态角的关系。(网上很多资料都是错的,请看我的!)

    请读者自行把公式 xff08 3 1 xff09 计算出来 xff0c 然后得到两个列向量 xff0c 如下图 xff1a 注意 xff0c 网上关于俯仰角给出了不少公式 xff0c 但是都是来自这两个向量的对应关系 我写出的应该是最简形式
  • 传输层协议 ——— UDP协议

    文章目录 传输层再谈端口号端口号范围划分认识知名端口号两个问题netstat与iostatpidof UDP协议UDP协议格式UDP协议的特点面向数据报UDP的缓冲区UDP使用注意事项基于UDP的应用层协议 传输层 在学习HTTP等应用层协
  • Authentication 和 Authorization 的区别

    Authentication 和 Authorization 的区别 背景 我们经常会遇到这两个单词 xff0c 有些人会有疑惑 xff0c 但其实他们区分还是比较清晰的 本人用大白话 xff0c 用我自己的理解写出 区别 authenti
  • c语言中<algorithm>头文件因使用STL在部分oj系统中编译错误的猜测与解决方案。

    最近在使用北邮oj系统时 xff0c 代码编译总无法通过 xff0c 在网络查找答案后 xff0c 有了一些初步的想法 具体原因猜测是因为 lt algorithm gt 头文件包含了STL标准模板库 xff0c 而oj系统可能采用的VC6
  • 一种嵌入式设备串口加密协议

    嵌入式设备串口通讯一般都会明文通讯 但在某些应用场合我们也有加密需求 以下为一种加密方式的建议 上位机 主机 定义为Master 下位机 从机 定义为Slaver 通讯协议建议 完整数据格式 帧头Header 43 数据长度Length 4
  • ubuntu 修改socket最大连接数

    在Linux系统上 xff0c 无论编写应用程序还是测试 xff0c 在进行高并发TCP连接处理时 xff0c 最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制 这是因为系统为每个TCP连接都要创建一个socket句柄 xf
  • [C++11]std::atomic、boost::atomic、Interlocked三者的性能比较(benchmark)

    原文作者 xff1a 64 玄冬Wong 好久没做过benchmark了 xff0c 这次之所以想测试下 xff0c 是怕std atomic的效率没有windows的Interlocked性能好 xff0c 测一下发现 xff0c 性能差
  • Nvidia Xavier NX安装并测试Cartographer

    这里写自定义目录标题 前言安装过程软件包 前言 最近成功在Nvidia Xavier NX和Nvidia Xavier AGX安装并测试了谷歌的开源激光slam算法Cartographer xff0c 在此记录下过程中的一些坑 安装过程 首
  • TTL/RS232/RS422/RS485串行通信接口区别与波形

    TTL RS232 RS422 RS485通信接口区别与波形 串行通信接口区别串口数据帧格式接线图波形图 串行通信接口区别 TTL RS232 RS422 RS485指的是电平接口标准 xff0c 都属于串行通信接口 xff0c 即串口 x
  • 什么是RT-Thread?

    一 RT Thread的定义 RT Thread xff0c 全称是 Real Time Thread xff0c 是一款主要由中国开源社区主导开发的开源实时操作系统 xff08 许可证GPLv2 xff09 xff0c 包含了实时 嵌入式
  • mbim ndis ecm ncm之我的理解

    这几个问题困扰了我很长时间 xff0c 经过我不懈的努力 加上 我的悟性 xff0c 我自认为 理解了那么一点 ndis xff08 Network Driver Interface Specification xff09 网络驱动接口规范
  • RTK基站坐标,标定

    差分基站的经纬度是人为设定的 xff0c 一般来说 xff0c RTK差分定位是测试的相对值 xff0c 但前提是要给基站设置一个相对精确的经纬度 xff0c 之前没有意识到重要性 xff0c 这次出现的问题 xff0c 确认了这一点 公司
  • Codeblocks+vscode

    由于新买了电脑 xff0c 要重装好多东西 xff0c 简单记录一下 顺序 xff1a 先codeblocks xff0c 后vscode 第一步 xff1a Codeblocks安装 Binary releases Code Blocks
  • wifi 802.11 kvr 漫游

    802 11k 802 11k为无线局域网应该如何进行信道选择 漫游服务和传输功率控制提供了标准 他提供无线资源管理 xff0c 让频段 xff08 BAND xff09 通道 xff08 CHANNEL xff09 载波 xff08 CA