计算机网络介质访问控制全攻略:从信道划分到协议详解!!!
一、信道划分介质访问控制
介质访问控制:多个节点共享同一个“总线型”广播信道时,可能发生“信号冲突”
应该怎么控制各节点对传输介质的访问,才能减少冲突,甚至避免冲突?
时分复用(TDM)
时分复用:将时间分为等长的“TDM 帧”,每个“TDM 帧”又分为等长的 m 个“时隙”,将 m 个时隙分配给 m 对用户(节点)使用
TDM 的缺点:
每个节点最多只能分配到信道总带宽的 1/m
如果某节点暂不发送数据,会导致被分配的“时隙”闲置,信道利用率低
如何解决这个问题呢?
可统计每个节点对信道的使用需求,动态按需分配时隙
统计时分复用(STMD)
统计时分复用:又称异步时分复用,在TDM 的基础上,动态按需分配时隙
STDM 的优点:
- 如果需要时,一个节点可以在一段时间内获得所有的信道带宽资源
- 如果某节点暂不发送数据,可以不分配“时隙”,信道利用率更高
频分复用(FDM)
频分复用(FDM):是将信道的总频带划分为多个子频带,每个子频带作为一个子信道,每对用户使用一个子信道进行通信
FDM 的优缺点:
- 优点:各节点可同时发送信号;充分利用了信道带宽(Hz)
- 缺点:FDM 技术只能用于模拟信号的传输
波分复用(WDM):即光的频分复用:
光信号的频带范围(带宽)非常大,因此很适合采用波分复用技术,将一根光纤在逻辑上拆分为多个子信道
码分复用
2G、3G 移动网络时代,节点和节点之间的通信常使用 CDMA技术,而 CDMA 技术的底层原理就是码分复用(CDM)
CDM 技术允许信号相互干扰,相互叠加。接收方有办法将来自各节点的信号值分离”出来
①给各节点分配专属"码片序列”
“码片序列"包含 m 个码片(信号值),可看作"m 维向量”(m 维向量的分量通常取 1或-1
要求:各节点的"m 维向量"必须相互正交
Tips:相互通信的各节点知道彼此的"码片序列"
②发送方如何发送数据
节点发出 m 个信号值与"码片序列"相同,表示比特 1
节点发出 m 个信号值与"码片序列"相反,表示比特 0
③信号在传输过程中"叠加"
当多个发送方同时发送数据时,信号值会叠加(注:本质是多个 m 维向量的加法)
④接收方如何接收数据
接收方收到的是"看加"信号,需要从中"分离"出各发送方的数据
叠加信号与发送方的码片序列作"规格化内积”
- 结果为 1,表示比特 1
- 结果为-1,表示比特 0
二、随机访问介质访问控制
- 在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。
- 在总线形网络中,当有两个或多个用户同时发送信息时,就会产生的冲突(碰撞,即前面所说的相互干扰),导致所有冲突用户的发送均以失败告终。
- 为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过。这些规则就是随机访问介质访问控制协议,常用的协议有 ALOHA 协议、CSMA 协议、CSMACD 协议和 CSMA/CA 协议等,它们的核心思想都是:胜利者通过争用获得信道,从而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议。
- 如果介质访问控制采用信道划分机制,那么结点之间的通信要么共享空间,要么共享时间,要么两者都共享:而如果采用随机访问控制机制,那么各结点之间的通信就可既不共享时间,也不共享空间。所以随机介质访问控制实质上是一种将广播信道转化为点到点信道的行为。
三、ALOHA 协议
ALOHA 协议是由美国夏威夷大学开发的一种网络协议。处于 OSI 模型中的数据链路层。它属于随机存取协议中的一种。它分为纯 ALOHA 协议和时隙 ALOHA 协议。
纯 ALOHA
纯 ALOHA 协议思想:不监听信道,不按时间发送,随机重发,想发就发
冲突如何检测?
如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。
冲突如何解决?
超时后等一随机时间再重传。
时隙 ALOHA
时隙 ALOHA 协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。
控制想发就发的随意性
对比纯 ALOHA 和时隙 ALOHA
- 纯 ALOHA 比时隙 ALOHA 吞吐量更低,效率更低
- 纯 ALOHA 想发就发,时隙 ALOHA 只有在时间片段开始时才能发
四、CSMA协议
CSMA 协议:是一种允许多个设备在同一信道发送信号的协议,其中的设备监听其它设备是否忙碌,只有在线路空闲时才发送。
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上
协议思想:发送帧之前,监听信道
1-坚持 CSMA
坚持:指的是对于监听信道忙之后的坚持。
1-坚持 CSMA 思想:
如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。
忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到肯定回复),则等待一
个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失,
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
传播延迟对 1-坚持 CSMA 协议的性能影响较大。
结点 A开始发送数据时,结点 B也正好有数据要发送,但这时结点 A发出数据的信号还未到达结点 B,结点 B 侦听到信道空闲,于是立即发送数据,结果必然导致冲突。
即使不考虑延迟,1-坚持 CSMA 协议也可能产生冲突。
例如,结点 A正在发送数据时,结点 B 和 C 也准备发送数据,侦听到信道忙,于是坚持侦听,结果当结点 A一发送完毕,结点 B 和 C 就会立即发送数据,同样导致冲突。
非坚持 CSMA
非坚持: 指的是对于监听信道忙之后就不继续监听,
非坚持 CSMA 思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
非坚持 CSMA 协议在侦听到信道忙后就放弃侦听,因此降低了多个结点等待信道空闲后同时发送数据导致冲突的概率,但也会增加数据在网络中的平均延迟。可见,信道利用率的提高是以增加数据在网络中的延迟时间为代价的。
p-坚持 CSMA
p-坚持指的是对于监听信道空闲的处理。
p-坚持 CSMA 思想:
如果一个主机要发送消息,那么它先监听信道,空闲则以p概率直接传输,不必等待;概率1-p 等待到下一个时间槽再传输。忙则等待一个随机的时间之后再进行监听。
优点:既能像非坚持算法那样减少冲突,又能像 1-坚持算法那样减少媒体空闲时间的这种方案。
缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。
1-坚持CSMA | 非坚持CSMA | p-坚持CSMA | |
信道空闲 | 马上发 | 马上发 | p概率马上发 1-p概率等到下一个时隙再发送 |
信道忙 | 继续监听 | 放弃监听,等一个随机时间再监听 | 继续坚持监听 |
五、CSMA/CD协议
协议要点:
先听后发,边听边发,冲突停发,随机重发
截断二进制指数规避算法
确定碰撞后的重传时机
随机等待一段时间 = r倍争用期,其中r是随机数
争用期 = 2×最远单向传播时延(考虑距离最远的两个节点)
k冲突次数
①如果 k≤10,在[0, 2k -1]区间随机取一个整数r
②如果 k>10,在[0,210 -1]区间随机取一个整数r
注:
如果争用期内没检测到冲突,本次帧发送就不再可能发生冲突
CSMA/CD 没有 ACK 机制,若发送过程中未检测到冲突,就认为帧发送成功
特别注意:
第 10 次冲突,是"随机重发"的分水岭
第 16 次冲突,直接躺平,放弃传帧,报告上级(网络层)
最短帧长:
最短帧长 = 2×最大单向传播时延×信道带宽
若收到的帧小于最短帧长,视为无效帧
CSMA/CD 协议的“冲突停发”规则会导致小于最短帧长的“非法帧”
如果 A节点发送的数据帧长度小于最短帧长,可能会导致 A节点“误以为”
发送过程中没有发生冲突,但实际上已经发生了冲突。
如果实际要发送的数据很少,可“填充”至合法长度后再发送
当接收方从信道收到一个帧会做哪些判断?
① 判断是否小于“最短帧长”,'是,则丢弃帧
② 判断是不是发给自己的帧,相当于判定目的地址,"否’,则丢弃帧
③ 使用 CRC 校验,判定帧是否存在差错,'是’,则丢弃帧
以上均无问题,则接收帧,并将数据部分交给网络层
最长帧长:规定最长帧长可防止某些节点一直占用信道
以太网规定:
最短帧长=64B
最长帧长=1518B
六、CSMA/CA协议
协议要点:
若信道空闲,间隔 DIFS 后,再发送帧(一口气发完,发送过程中不用检测冲突)
若信道不空闲,则进行“随机退避"
随机退避原理:
① 用二进制指数退避算法确定一段随机退避时间(倒计时)
② 发送方会保持监听信道,只有信道空闲时才"扣除倒计时"倒计时结束后立即发送帧(此时信道“听起来"一定空闲)
接收方:(采用停止等待协议)
每收到一个正确数据帧都返回 ACK;若发送方超时未收到 ACK,则进行”随机退避”
CSMA | CSMA/CD | CSMA/CA | |
原理 | 先监听,若信道空闲,在发送 | 边发送边监听,检测到冲突立即停止发送 | 发送过程中不用检测冲突,发送前想办法尽量避免冲突(但无法完全避免) |
适用于 | 适用于有线网络(如:以太网技术) | 适用于无线网络:(如:IEEE 802.11标准的无线局域网技术,即WIFI) |
无线局域网(WIFI)
AP(Access Point):接入点,也就是你平时连接的无线 WiFi热点
为什么不采用 CSMAICD 协议?
1)硬件上很难实现“边听边发,冲突检测”;因为接收信号的强度往往远小于发送信号的强
度,且在无线介质上信号强度的动态变化范围很大。
- 存在“隐蔽站”问题;在无线通信中,并非所有站点都能够听见对方。发送结点处没有冲突并不意味着在接收结点处就没有冲突。
帧间间隔((InterFrame Gap)
DIFS(分布式协调IFS):最长的帧间间隔
SIFS(短 IFS):最短的帧间间隔。预留 SIFS 用于处理收到的帧(如完成差错控制等)
PIFS(中等长度的IFS),不考察了解即可
时间长度:DIFS > PIFS > SIFS
解决隐蔽站问题
信道预约机制(可选功能)
- 发送方广播 RTS 控制帧(先听后发,忙则退避)
- AP 广播 CTS 控制帧
- 其他无关节点收到 CTS 后自觉"禁言"一段时间(即:虚拟载波监听机制);发送方收到 CTS 后,就可以发送数据帧
- AP 收到数据帧后,进行 CRC 校验,若无差错就返回 ACK 帧
RTS 控制帧(Request ToSend,请求发送):
它包括源地址、目的地址和这次通信所需的持续时间。
CTS 控制帧(Clear To send,允许发送):
它也包括源地址、目的地址和这次通信所需的持续时间。
注 1:如果超时未收到 CTS,说明预约失败,则“随机退避”后再次 RTS 预约
注 2:“先预约,再发送”这种模式可以启用、也可以不启用。
七、令牌传递协议(轮循访问)
令牌环网技术:IBM 公司于1984 开发的一种局域网技术
核心特点:
环形拓扑结构,各节点“轮询访问”信道,不会发生信道冲突。
如何实现“介质访问控制”:
令牌传递协议
- 令牌传递又称“标记传送”,局部网数据送取的一种控制方法,多用于环形网。
- 令牌由专用的信息块组成,典型的令牌由连续的8位“1”组成。当网络所有节点都空闲时,令牌就从一个节点传送到下一个节点。当某一节点要求发送信息时,它必须获得令牌并在发送之前把它从网络上取走。一旦传送完数据,就把令牌转送给下一个节点,每个节点都具备有发送/接收令牌的装置。使用这种传送方法决不会发生碰撞,这是因为在某一瞬间只有一个节点有可能传送数据。
最大的问题是令牌在传送过程中丢失或受到破坏,从而使节点找不到令牌从而无法传送信息。
- TCU:环接口干线耦合器。它的主要作用是传递经过的所有帧,为接入站发送和接收数据提供接口。它的状态有两种:收听状态和发送状态
- 没有人使用令牌时,令牌则在环路中循环。
令牌:一个特殊格式的 MAC 控制帧,不含任何信息
控制信道的使用,确保同一时刻只有一个结点独占信道。
令牌环网无碰撞(无冲突):
每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
问题:
1.令牌开销 2.等待延迟 3.单点故障
应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
令牌环网中令牌和数据的传递过程如下:
1)网络空闲时,环路中只有令牌帧在循环传递。
2)令牌传递到有数据要发送的站点处时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去。
3)数据帧沿着环路传输,接收到的站点一边转发数据,一边查看帧的目的地址。如果目的地址和自己的地址相同,那么接收站就复制该数据帧以便进一步处理。
4)数据帧沿着环路传输,直到到达该帧的源站点,源站点接收到自己发出去的数据帧后便不再进行转发。同时,发送方可以通过检验返回的数据帧来查看数据传输过程中是否有错,若有错则重传该帧。
5)源站点传送完数据后,重新产生一个令牌,并将令牌传递给下一个站点,以交出对媒体的访问权限。
相关文章:
计算机网络介质访问控制全攻略:从信道划分到协议详解!!!
一、信道划分介质访问控制 介质访问控制:多个节点共享同一个“总线型”广播信道时,可能发生“信号冲突” 应该怎么控制各节点对传输介质的访问,才能减少冲突,甚至避免冲突? 时分复用(TDM) 时分复用:将时间分为等长的“…...
代码随想录day1
704.二分查找: 1.左闭右闭 int search(vector<int>& nums, int target) {int right nums.size() - 1;int left 0;while(left < right){int middle left ((right - left) >> 1);if(nums.at(middle) target){return middle;}else if(nums[m…...
IJK播放器问题集
IJK播放器问题集 在使用ijkplayer进行播放时候,时常会遇到一些问题,故记录下: 1 ijkplayer出现小窗切换到大窗画面卡住问题 检查是否大小窗口切换时候,频繁设置了surface。某些底层api频繁设置会导致画面不动。 //holder判断是…...
macOS使用LLVM官方发布的tar.xz来安装Clang编译器
之前笔者写过一篇博文ubuntu使用LLVM官方发布的tar.xz来安装Clang编译器介绍了Ubuntu下使用官方发布的tar.xz包来安装Clang编译。官方发布的版本中也有MacOS版本的tar.xz,那MacOS应该也是可以安装的。 笔者2015款MBP笔记本,CPU是intel的,出厂…...
【设计模式-行为型】观察者模式
一、什么是观察者模式 说起观察者模式,不得不说一位观察者模式的高级应用者,朱元璋。不知道大家有没有看过胡军演的电视剧《朱元璋》。这部剧背景是元朝末年,天下大乱,朱元璋自幼父母双亡,沦为乞丐,后遁入空…...
HTML5 新表单属性详解
HTML5 为 <form> 和 <input> 标签引入了一系列新属性,极大地增强了表单的功能和用户体验。这些新属性不仅简化了开发者的工作,还为用户提供了更友好、更高效的交互方式。本文将详细介绍这些新属性,并结合代码示例帮助大家更好地理…...
Android程序中使用FFmpeg库
目录 前言 一、环境 二、创建APP 三. 添加FFmpeg库文件到app中 1. 复制ffmpeg头文件和so库到app中 2. 修改CMakeLists.txt文件内容. 3. 修改ffmpeglib.cpp 文件内容 4. 修改NativeLib.kt 文件添加方法和加载库 5. 调用 四. 增加解析视频文件信息功能 总结 前言 前面…...
到华为考场考HCIE的注意事项和考试流程
大家好,我是张同学,来自成都职业技术学院2021级计算机网络专业。最近成功通过了 Datacom HCIE 考试,在这里和大家分享一下我的经验。 考证契机 在母校的培养下,我接触到ICT这个行业,打好了基础,开始了成…...
基于STM32的智能书架管理系统设计
目录 引言系统设计 硬件设计软件设计 系统功能模块 图书分类与存储模块环境监测与保护模块数据显示与用户交互模块远程管理与书籍推荐模块 控制算法 图书分类与存储管理算法环境监测与保护算法数据记录与推荐算法 代码实现 图书分类与存储代码环境监测与保护代码数据显示与远程…...
STL--list(双向链表)
目录 一、list 对象创建 1、默认构造函数 2、初始化列表 3、迭代器 4、全0初始化 5、全值初始化 6、拷贝构造函数 二、list 赋值操作 1、赋值 2、assign(迭代器1,迭代器2) 3、assign(初始化列表) 4、assig…...
构建高效稳定的网络环境
概述 网络技术是当今IT行业的重要组成部分,构建高效稳定的网络环境对于企业、个人和互联网发展至关重要。本文将探讨网络技术中的关键要素,包括网络协议、网络架构、网络安全和网络优化,并提供实用的技巧和最佳实践,以帮助您构建…...
2025美赛倒计时,数学建模五类模型40+常用算法及算法手册汇总
数学建模美赛倒计时,对于第一次参加竞赛且没有相关基础知识的同学来讲,掌握数学建模常用经典的模型算法知识,并熟练使用相关软件进行建模是关键。本文将介绍一些常用的模型算法,以及软件操作教程。 数学建模常用模型包括…...
ElasticSearch DSL查询之排序和分页
一、排序功能 1. 默认排序 在 Elasticsearch 中,默认情况下,查询结果是根据 相关度 评分(score)进行排序的。我们之前已经了解过,相关度评分是通过 Elasticsearch 根据查询条件与文档内容的匹配程度自动计算得出的。…...
C语言--数据在内存中的存储
数据在内存中的存储 主要研究整型和浮点型在内存中的存储。 1. 整数在内存中的存储 在学习操作符的时候,就了解过了下面的内容: 整数的2进制表示方法有三种,即原码、反码和补码。 有符号的整数,三种表示方法均有符号位和数值…...
qml ScrollView详解
1、概述 QML中的ScrollView是一个容器组件,它允许用户滚动查看其内容,当内容超出视口大小时特别有用。ScrollView提供了垂直和水平滚动条(或触摸滚动),使用户能够访问被视口裁剪的内容部分。它常用于显示大量数据或复…...
通过frm和ibd文件恢复mysql数据
1.提取所有的文件名并查找出以frm结尾的 dir /t /b >1.txt 2.要准备的软件 1.mysql-utilities-1.6.5-winx64.msi 2.vcredist_x64.exe(c 2013) 3.利用frm生成sql文件 mysqlfrm --serverroot:123456localhost:3306 --port3308 D:\phpstudy_pro\Extensions\MySQL5.7.26\da…...
观察者模式 - 观察者模式的应用场景
引言 观察者模式(Observer Pattern)是设计模式中行为型模式的一种,它定义了对象之间的一对多依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会自动收到通知并更新。观察者模式广泛应用于事件处理系统…...
【Mac】Python相关知识经验
一、给Python3安装第三方库 mac下给Python3安装第三方库pillow,处理图片 【安装方式】: 终端中输入命令:python3 -m pip install pillow 按回车,等待pillow下载安装 NOTE: 其他模块同理,如pytesseract 二、Python版…...
使用 JMeter 的 Autostop Listener 插件:自动化性能测试的守护者
在性能测试中,监控测试执行的状态并及时做出响应是至关重要的。如果测试过程中出现性能瓶颈或系统崩溃,继续运行测试可能会导致资源浪费或测试结果不准确。JMeter 的 Autostop Listener 插件正是为了解决这一问题而设计的。它允许你设置自动化停止条件&a…...
C# lock使用的逻辑和情景
情景:扣库存,会出现超扣的情况,因为同一个单子会有不同的工作人员使用,要保证数据的一致性。那么就用锁。 优化锁对象管理 使用 Lazy 初始化锁对象: 使用 ConcurrentDictionary 的 GetOrAdd 方法结合 Lazy 确保锁对象只…...
React 中hooks之 React useCallback使用方法总结
1. useCallback 基础概念 useCallback 是 React 的一个 Hook,用于记忆函数定义,避免在每次渲染时创建新的函数实例。它在需要将回调函数传递给经过优化的子组件时特别有用。 当state变化的时候引起组件重新渲染执行会导致某个方法被反复创建增加内存负担…...
期刊论文左下角添加通讯作者和横线的方法
一、添加脚注 二、写脚注内容 三、修改脚注分隔符(添加横线) 大概插入十个此符号,长度可微调。...
Docker使用 使用Dockerfile来创建镜像
本篇文章主要介绍了Docker使用Dockerfile来创建镜像, 本文学习Dcokerfile的基本命令,并且创建一个支持ssh服务的镜像. 1.Dockerfile 1.1基本案例 基本案例 dockerfile可以说是docker的描述符,该文件定义了docker镜像的所能拥有哪些东西.基本格式如下: 第一行指定…...
手写SOCKET进行HTTP通信
网络基础 我们电脑主板上都内置了多种网卡,一般主要有以下几类: 虚拟网卡(loopback) 注意,它是虚拟的,并不是物理网卡,也被称为是本地环回地址(或接口),一般将127.0.0.1作为本地环回…...
深入理解 Java 的并发容器
目录 一、为何需要并发容器 二、Java 中的主要并发容器 1. ConcurrentHashMap 2. CopyOnWriteArrayList 3. ConcurrentLinkedQueue 4. BlockingQueue及其实现类 三、并发容器的应用场景 1. 缓存系统 2. 任务队列 3. 数据共享与传递 四、使用并发容器的注意事项 1. …...
四、CSS效果
一、box-shadow box-shadow:在元素的框架上添加阴影效果 /* x 偏移量 | y 偏移量 | 阴影颜色 */ box-shadow: 60px -16px teal; /* x 偏移量 | y 偏移量 | 阴影模糊半径 | 阴影颜色 */ box-shadow: 10px 5px 5px black; /* x 偏移量 | y 偏移量 | 阴影模糊半径 | 阴影扩散半…...
每日OJ_牛客_DP44兑换零钱_C++_Java
目录 牛客_DP44兑换零钱 题目解析 C代码 Java代码 牛客_DP44兑换零钱 兑换零钱_牛客题霸_牛客网 描述: 给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个a…...
Linux——入门基本指令汇总
目录 1. ls指令2. pwd3. whoami指令4. cd指令5. clear指令6. touch指令7. mkdir指令8. rm指令9. man指令10. cp指令11. mv指令12. cat指令13. tac指令14. more指令15. less指令16. head指令17. tail指令18. date指令19. cal指令20. find指令21. which指令22. alias指令23. grep…...
VOSK实现【离线中文语音】识别
Vosk是一款开源的离线语音识别工具包,具有以下功能: 多语言支持:能够对20多种语言和方言进行语音识别,如中文、英语、德语、法语、西班牙语等,可满足不同用户的语言需求。 模型轻量化:每种语言的模型大小仅…...
Qt 控件与布局管理
1. Qt 控件的父子继承关系 在 Qt 中,继承自 QWidget 的类,通常会在构造函数中接收一个 parent 参数。 这个参数用于指定当前空间的父控件,从而建立控件间的父子关系。 当一个控件被设置为另一控件的子控件时,它会自动成为该父控…...
Checkbutton组件
在这个案例中,我们将添加三个复选框(Checkbutton)组件,每个组件都有不同的初始状态。 准备就绪 本文案例是在上一篇《Combobox组件》上的扩展,你可以从这里下载其中的代码。 如何操作 我们正在创建三个状态不同的复选框组件。 第一个组件是禁用状态,并且其中有一个勾…...
Markdown Viewer 浏览器, vscode
使用VS Code插件打造完美的MarkDown编辑器(插件安装、插件配置、markdown语法)_vscode markdown-CSDN博客 右键 .md 文件,选择打开 方式 (安装一些markdown的插件) vscode如何预览markdown文件 | Fromidea GitCode - 全球开发者…...
【QNX】QNX侧查看CPU的信息
目录 一 工具 ① top ▲ 使用top查看CPU信息 ▲ 输出 ② hogs ▲ 使用hogs查看CPU信息 ▲ 输出 ③ pidin ▲ 使用pidin查看CPU信息 ▲ 输出 二 对比 在QNX实时操作系统中,可查看CPU信息的方法有top、hogs以及pidin。 一 工具 ① top top命令不仅能够显…...
Android中关于View的几种属性赋值方式
我们以给TextView组件设置颜色属性展开讲解 1、xml中直接定义(设定TextView为黑色) 2、xml 中 引用style(设定TextView为蓝色) 3、在theme 中直接定义(设定TextView紫色) 4、在主题中添加对样式资源的引用…...
JavaScript网页基于tesseract.js提取图片中的文字,识别车牌,识别快递单号等
Tesseract是我们的老盆友了,以前写过基于JavaCV版本的Tesseract字符识别,现在tesseract终于可以在网页上面用了(tesseract.js),让我们一起来试试效果。 注意:本章使用Vue模块化调用tesseract.js方式&#x…...
智慧金融合集:财税资金数据管理一体化大屏
随着科技的快速进步和数字化转型的加速,金融、税务等机构和企业面临的数据量呈现出爆炸式增长。传统的数据分析方法早已无法胜任现代业务的需求。为此,许多机构开始尝试创新的软件工具来更好的管理繁琐的数据。 通过图扑软件的数据可视化大屏,…...
Android SystemUI——最近任务应用列表(十七)
对于最近任务应用列表来说,在 Android 原生 SystemUI 中是一个单独的组件。 <string-array name="config_systemUIServiceComponents" translatable="false">……<item>com.android.systemui.recents.Recents</item> </string-arra…...
工业相机 SDK 二次开发-Halcon 插件
本文介绍了 Halcon 连接相机时插件的使用。通过本套插件可连接海康 的工业相机。 一. 环境配置 1. 拷贝动态库 在 用 户 安 装 MVS 目 录 下 按 照 如 下 路 径 Development\ThirdPartyPlatformAdapter 找到目录为 HalconHDevelop 的文 件夹,根据 Halcon 版本找到对…...
AI Agent:数字文明的暗物质,如何悄然改变我们的世界?
AI Agent:数字文明的暗物质,如何悄然改变我们的世界? 引言 在人类文明的漫长黑夜中,人工智能(Artificial Intelligence, AI)如同第一缕曙光,正在撕裂数字与现实的边界。这是一个技术奇点临近的…...
vscode 自用插件
vscode按住ctrl鼠标左键无法跟踪跳转方法名,装这些插件就可以 vscode-elm-jump:常规的代码跳转定义 Vue CSS Peek:跳转css定义 vue-helper:变量函数只跳转定义 Vetur 代码提示 Baidu Comate 自动帮你写console.log Turbo Console Log: ctrl alt l 选中变量之后&am…...
Ragas-RAG能力评测
Ragas是一个框架,它可以帮助你从不同的方面评估你的问答(QA)流程。它为你提供了一些指标来评估你的问答系统的不同方面,具体包括: 评估检索(context)的指标:提供了上下文相关性&…...
【PCL】Segmentation 模块—— 条件欧几里得聚类(Conditional Euclidean Clustering)
1、简介 1.1 条件欧几里得聚类(Conditional Euclidean Clustering) 本文介绍了如何使用 pcl::ConditionalEuclideanClustering 类:这是一种基于欧几里得距离和用户自定义条件的点云聚类分割算法。 该类使用了与欧几里得聚类提取(Euclidean…...
#HarmonyOS篇:build-profile.json5里面配置productsoh-package.json5里面dependencies依赖引入
oh-package.json5 用于描述包名、版本、入口文件和依赖项等信息。 {"license": "","devDependencies": {},"author": "","name": "entry","description": "Please describe the basic…...
《探秘:人工智能如何为鸿蒙Next元宇宙网络传输与延迟问题破局》
在元宇宙的宏大愿景中,流畅的网络传输和低延迟是保障用户沉浸式体验的关键。鸿蒙Next结合人工智能技术,为解决这些问题提供了一系列创新思路和方法。 智能网络监测与预测 人工智能可以实时监测鸿蒙Next元宇宙中的网络状况,包括带宽、延迟、…...
java中的泛型
文章目录 java中的泛型泛型的使用1 快速入门2 泛型的介绍(1)使用泛型的好处(2)泛型的理解(3)泛型的语法(4)泛型使用的注意事项 3 自定义泛型(1)自定义泛型类&…...
PCF8563一款工业级、低功耗多功能时钟/日历芯片
PCF8563是PHILIPS(现NXP)公司生产的一款工业级、内含I2C总线接口功能的低功耗多功能时钟/日历芯片。以下是对该芯片的详细介绍: 一、主要特性 低功耗:典型值为0.25μA(VDD3.0V,Tamb25℃)。宽电…...
Servlet快速入门
Servlet 由于目前主流使用SpringBoot进行开发Servlet可以说是时代的眼泪,这篇文章主要介绍我基于SpringBoot对应Servlet的浅薄认知,有利于更好的理解前端界面和java服务器的数据交换过程 快速入门 我比较推荐这篇文章来对Servlet有一个大概的了解 都2…...
C语言初阶牛客网刷题——JZ17 打印从1到最大的n位数【难度:入门】
1.题目描述 牛客网OJ题链接 题目描述: 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 用返回一个整数列表来代替打印n 为正整数,0 < n < 5 示例1 输入&…...
【组件分享】商品列表组件-最佳实践
商品列表组件 商品列表组件用于展示商品信息列表,支持多种布局方式和自定义配置。 基础用法 <template><ProGoodsList :goods-list"goodsList" :layout"layout" item-click"handleItemClick" /> </template>&l…...
【JAVA】BOSS系统发版艺术:构建高效、优雅的微服务部署策略
在现代软件开发领域,微服务架构与容器化部署已迅速成为行业新趋势。微服务架构通过将应用拆分成多个小型、自治的服务单元,每个服务承担某项特定的业务功能。而容器化部署则以其轻量级和高度可移植的特性,为这些微服务的有效打包、分发和运行…...