计算机网络笔记(十六)——3.3使用广播信道的数据链路层
3.3.1局域网的数据链路层
一、核心逻辑架构(拓扑结构演变)
二、MAC层核心机制
-
MAC地址结构
-
以太网帧格式
- CSMA/CD工作机制流程
三、关键功能对比表
功能 | 集线器(Hub) | 交换机(Switch) | 网桥(Bridge) |
---|---|---|---|
工作层级 | 物理层 | 数据链路层 | 数据链路层 |
冲突域处理 | 全广播,增加冲突 | 隔离冲突域 | 分段冲突域 |
MAC地址表 | 不维护 | 动态维护 | 维护有限表 |
转发方式 | 盲转发 | MAC精确转发 | MAC过滤转发 |
延时特性 | 100%延时 | 存储转发 | 存储转发 |
典型应用场景 | 10BASE-T局域网 | 现代企业网络 | 网络分段 |
四、性能优化要点
-
冲突窗口计算
- 冲突检测时间: t d e t e c t i o n = 2 τ t_{detection} = 2\tau tdetection=2τ
- 最大帧长设计(1518字节)确保能在冲突窗口内检测到冲突
-
二进制指数退避算法
- 冲突次数k ∈ [0,10]
- 退避时间 r a n d o m ( 0 , 2 k − 1 ) × τ random(0,2^k-1) \times \tau random(0,2k−1)×τ
- 超过16次冲突则丢弃帧
-
最小帧长限制
- L m i n = R × t r o u n d t r i p L_{min} = R \times t_{roundtrip} Lmin=R×troundtrip
- 对10Mbps以太网,最小帧长=64字节
五、现代演进特性
-
全双工交换式以太网
- 取消CSMA/CD机制
- 支持同时收发
- 使用流量控制协议(IEEE 802.3x)
-
VLAN支持
- 通过添加802.1Q标签
- 实现逻辑网络划分
- 优化广播域控制
六、典型场景流程(数据发送)
3.3.2CSMA/CD协议
一、协议基础
CSMA/CD(Carrier Sense Multiple Access with Collision Detect)是以太网物理层的核心协议,适用于半双工通信的总线型网络,主要解决多个设备共享同一信道时的传输协调问题。
主要特征:
-
使用场景:传统以太网总线拓扑结构
-
协议标准:IEEE 802.3
-
典型应用:传统集线器连接的以太网
二、三大核心机制
-
载波监听(侦听)
- 工作在物理层:持续检测线路电压变化
- 两种监听时机:
- 发送前监听(减少冲突概率)
- 发送中监听(实时检测冲突)
-
多路访问
- 碰撞检测
三、冲突处理流程
四、关键时序控制参数
-
冲突窗口(1.12μs @10Mbps)
- 公式: t w i n d o w = 2 τ t_{window} = 2τ twindow=2τ(τ为端到端最大时延)
- 最小帧长限制:64字节(保证冲突有效检测)
-
二进制指数退避算法
退避时间 = R a n d o m [ 0 , 2 k − 1 ] × τ s l o t 退避时间 = Random[0,2^k-1] × τ_{slot} 退避时间=Random[0,2k−1]×τslot
(k=min(冲突次数,10))示例:第3次碰撞时随机选择0-7中的数值
五、协议效率公式
η = 1 1 + 5 τ p r o p / τ t r a n s η = \frac{1}{1 + 5τ_{prop}/τ_{trans}} η=1+5τprop/τtrans1
参数说明:
- τprop:端到端传播时延
- τtrans:帧传输时延
效率影响案例:
当网络半径扩展时,随着τprop增大,效率显著下降
六、协议演进
随着以太网演进,当前应用场景变化:
-
现代全双工交换网络:
- 物理点对点连接
- 通过MAC地址交换避免冲突
- CSMA/CD已不再适用
-
无线网络:
- 改用CSMA/CA协议
- 解决了隐藏站等问题
七、性能优化技巧
- 帧间隙控制(IFG=9.6μs)
- 背压机制(Backpressure)
- 自适应退避算法
3.3.3使用集线器的星形拓扑
一、基本概念
星形拓扑是以太网常见的物理拓扑结构,其核心设备是集线器(Hub),所有计算机通过双绞线连接到中央的集线器,形成星形布局。需要注意以下几点:
-
物理拓扑与逻辑拓扑:
- 物理上是星形结构
- 逻辑上仍然是总线结构(所有设备共享通信介质)
-
集线器本质:
- 物理层设备,没有智能识别能力
- 对接收到的信号进行再生放大后广播到所有端口
二、拓扑结构示意图
三、工作原理特性
-
广播机制:
- 任意设备发送的数据都会被集线器复制到所有端口
- 网络中同时只能有一台设备发送数据
-
冲突检测:
- 所有设备共享同一广播域和冲突域
- 必须使用CSMA/CD协议解决冲突问题
-
带宽分配:
- 共享带宽(如10Mbps集线器连接n台设备,每台设备平均带宽为10/n Mbps)
四、典型工作流程
五、主要技术特征对比
特征 | 总线型拓扑 | 星形拓扑(集线器) |
---|---|---|
物理结构 | 直线连接 | 中央集线器辐射状连接 |
故障排查 | 困难(需逐段排查) | 简单(分端口检测) |
扩展性 | 较差(长度受限) | 良好(端口可扩展) |
线路利用率 | 低(单点故障影响大) | 高(单点故障易隔离) |
最大传输距离 | 受电缆长度限制 | 受双绞线标准限制 |
六、优势与局限性
-
优势:
- 安装维护简单(结构化布线)
- 故障隔离效果好(单节点故障不影响全网)
- 便于扩展(通过增加集线器级联)
-
局限性:
- 共享带宽导致性能受限
- 广播风暴风险
- 最大覆盖范围受5-4-3规则限制:
- 最多5个网段
- 4个中继器(集线器)
- 3个可接入计算机的网段
七、典型应用场景
- 小型办公室网络布线
- 早期10BASE-T以太网应用
- 临时网络搭建(已被交换机替代)
八、历史演进意义
集线器的星形拓扑在90年代推动了以太网的普及:
- 相较总线拓扑更可靠的物理连接
- 更易维护的布线结构
- 为后续交换机发展奠定基础
3.3.4以太网的信道利用率
一、基本概念
以太网(CSMA/CD协议)的信道利用率体现了一个时间周期内有效数据传输的比率,其核心公式为:
U = 有效发送时间 总占用时间 = T frame T frame + 2 τ + T contention U = \frac{\text{有效发送时间}}{\text{总占用时间}} = \frac{T_{\text{frame}}}{T_{\text{frame}} + 2\tau + T_{\text{contention}}} U=总占用时间有效发送时间=Tframe+2τ+TcontentionTframe
其中:
- τ \tau τ:信号在链路中的单程传播时延
- T_contention:冲突后处理时间(协议退避机制额外耗时)
📊 影响因素:
- 帧长越大 → 利用率越高(分母中占比降低)
- 带宽越高 → 帧发送时间变短 → 利用率降低
- 传播时延越大 → 冲突概率增加 → 利用率降低
二、关键推导过程
1. 帧发送时间
T frame = L 帧数据 C 带宽 T_{\text{frame}} = \frac{L_{\text{帧数据}}}{C_{\text{带宽}}} Tframe=C带宽L帧数据
2. 冲突检测窗口
要确保数据发送过程中未被中断,需满足:
T frame ≥ 2 τ T_{\text{frame}} \geq 2\tau Tframe≥2τ
- 若满足:帧完整发送,接收方成功接收
- 若不满足:可能发生迟来冲突,导致重传
三、最高利用率极限
当系统处于理想状态(无冲突、无退避)时,最大利用率可达:
U max = 1 1 + 4.44 a ( 式中 a = τ T frame ) U_{\text{max}} = \frac{1}{1 + 4.44a}\quad (\text{式中 } a = \frac{\tau}{T_{\text{frame}}}) Umax=1+4.44a1(式中 a=Tframeτ)
四、性能对比案例
不同链路长度下的利用率对比:
参数 | 短链路(τ=1ms) | 长链路(τ=10ms) |
---|---|---|
帧长1KB | 32.7% | 6.3% |
帧长10KB | 84.6% | 32.1% |
结论:
- 窗口效应:物理链路长度直接影响冲突概率
- 巨型帧优势:工业场景中常用9000字节"Jumbo Frame"提升效率
五、优化策略
- 提升帧长度(如采用Jumbo Frame)
- 使用全双工交换机消除冲突域
- 流量整形技术限制突发传输
- 分段传输协议动态调整帧尺寸
3.3.5以太网的MAC层
一、以太网MAC层核心功能
MAC层(Media Access Control)是数据链路层的子层,主要负责以下功能:
- 数据帧封装与解封装
- 物理地址(MAC地址)寻址
- 介质访问控制(如CSMA/CD)
- 差错检测(通过帧校验序列FCS)
二、MAC地址
1. MAC地址结构
- 48位二进制的全球唯一标识符,通常用十六进制表示(如
00:1A:2B:3C:4D:5E
)。 - 前24位:厂商标识符(由IEEE分配,例如
00:1A:2B
代表Intel)。 - 后24位:设备唯一编号(由厂商分配)。
2. MAC地址类型
- 单播地址:指向特定设备。
- 广播地址:
FF:FF:FF:FF:FF:FF
,所有设备接收。 - 组播地址:用于特定组的通信(如
01:00:5E:xx:xx:xx
)。
三、MAC帧格式
以太网帧的标准格式如下:
1. 各字段说明
字段 | 长度(字节) | 功能 |
---|---|---|
前导码 | 7 | 同步时钟(10101010…)。 |
起始定界符 | 1 | 帧开始标志(10101011)。 |
目标MAC地址 | 6 | 接收方的MAC地址。 |
源MAC地址 | 6 | 发送方的MAC地址。 |
类型/长度 | 2 | 上层协议类型(如IPv4=0x0800 )或数据长度。 |
数据 | 46~1500 | 有效载荷(如IP数据包)。 |
帧校验序列FCS | 4 | CRC校验,检测传输错误。 |
四、介质访问控制:CSMA/CD
(适用于传统半双工以太网,如集线器环境)
关键步骤
- 载波侦听:发送前检查信道是否空闲。
- 冲突检测:发送过程中持续监听是否发生冲突。
- 冲突处理:
- 发现冲突后立即停止发送。
- 发送32位拥塞信号通知所有设备。
- 采用二进制指数退避算法等待随机时间后重试。
五、全双工模式与交换式以太网
现代以太网多采用全双工交换式网络(使用交换机):
- 无需CSMA/CD:交换机为每个端口提供独立信道。
- 同时收发:
六、典型流程:数据帧传输
七、关键概念总结
概念 | 说明 |
---|---|
适配器 | 实现MAC层功能(帧封装、地址解析等),负责与物理层交互。 |
CSMA/CD | 解决多设备竞争信道的冲突问题。 |
交换表 | 交换机通过自学建立MAC地址与端口的映射关系,实现高效转发。 |
相关文章:
计算机网络笔记(十六)——3.3使用广播信道的数据链路层
3.3.1局域网的数据链路层 一、核心逻辑架构(拓扑结构演变) 二、MAC层核心机制 MAC地址结构 以太网帧格式 CSMA/CD工作机制流程 三、关键功能对比表 功能集线器(Hub)交换机(Switch)网桥(Bridge)工作层级物理层数据链路层数据链路层冲突域处理全广播&…...
STM32-模电
目录 一、MOS管 二、二极管 三、IGBT 四、运算放大器 五、推挽、开漏、上拉电阻 一、MOS管 1. MOS简介 这里以nmos管为例,注意箭头方向。G门极/栅极,D漏极,S源极。 当给G通高电平时,灯泡点亮,给G通低电平时&a…...
单片机 + 图像处理芯片 + TFT彩屏 指示灯控件
指示灯控件使用说明 简介 这是一个基于单片机 RA8889/RA6809图形处理芯片的指示灯的控件库,用于在TFT显示屏上显示各种状态的指示灯。该控件支持多种状态显示,包括正常、警告、错误和停止等状态,并支持自定义标签显示。 功能特点 支持多…...
73页最佳实践PPT《DeepSeek自学手册-从理论模型训练到实践模型应用》
这份文档是一份关于 DeepSeek 自学手册的详细指南,涵盖了 DeepSeek V3 和 R1 模型的架构、训练方法、性能表现以及使用技巧等内容。它介绍了 DeepSeek V3 作为强大的 MoE 语言模型在数学、代码等任务上的出色表现以及其训练过程中的创新架构如多头潜在注意力和多 To…...
Python自动化-python基础(上)
一.魔法方法 在 Python 中,魔法方法(Magic Methods)是一类特殊的方法,以双下划线 __ 开头和结尾 ,它们在特定的场景下会被 Python 解释器自动调用,用于实现一些内置的操作行为。 1. 初始化与构造相关 __…...
mysql数据库体验
目录 数据库简介 使用数据库 数据库的基本概念 数据 数据库和数据库表 数据库管理系统和数据库系统 数据库系统发展史 经典数据库 网状模型 层次模型 关系模型 当今主流数据库介绍 关系数据库 非关系型库的基本概念 关系数据库的基本结构 主键与外键 主键 外…...
Python开发系统
以下是一个基于Python和OpenCV的简单图像检测系统开发示例,包含目标检测、颜色检测和边缘检测功能: 一、环境搭建 1. 安装依赖 pip install opencv-python numpy matplotlib 2. 准备测试图片 下载示例图片或使用本地图片(如 test.jpg &…...
架空输电线巡检机器人轨迹优化设计
架空输电线巡检机器人轨迹优化 摘要 本论文针对架空输电线巡检机器人的轨迹优化问题展开研究,综合考虑输电线复杂环境、机器人运动特性及巡检任务需求,结合路径规划算法、智能优化算法与机器人动力学约束,构建了多目标轨迹优化模型。通过改进遗传算法与模拟退火算法,有效…...
针对共享内存和上述windows消息机制 在C++ 和qt之间的案例 进行详细举例说明
针对共享内存和上述windows消息机制 在C++ 和qt之间的案例 进行详细举例说明 以下是关于在 C++ 和 Qt 中使用共享内存(QSharedMemory)和 Windows 消息机制(SendMessage / PostMessage)进行跨线程或跨进程通信的详细示例。 🧩 使用 QSharedMemory 进行进程间通信(Qt 示例…...
cursor平替,试试 vscode+cline+openrouter 的方案,还能自定义 mcp-server 教程大纲
一、引言 cursor 工具使用成本高的现状 编程agent好用,解放劳动力,但费用贵 vscodeclineopenrouter Cline 是一款可集成在 IDE 中的 AI 编程助手,支持 OpenAI 和 Ollama 等多种模型,能在 IDE 里自主完成复杂编程任务,…...
Qt实现车载多媒体项目,包含天气、音乐、视频、地图、五子棋功能模块,免费下载源文件!
本文主要介绍项目,项目的结构,项目如何配置,项目如何打包。这篇文章如果对你有帮助请点赞和收藏,谢谢!源代码仅供学习使用,如果转载文章请标明出处!(免费下载源代码)&…...
C++ set替换vector进行优化
文章目录 demo代码解释: 底层原理1. 二叉搜索树基础2. 红黑树的特性3. std::set 基于红黑树的实现优势4. 插入操作5. 删除操作6. 查找操作 demo #include <iostream> #include <set>int main() {// 创建一个存储整数的std::setstd::set<int> myS…...
Android学习总结之算法篇八(二叉树和数组)
路径总和 import java.util.ArrayList; import java.util.List;// 定义二叉树节点类 class TreeNode {int val;TreeNode left;TreeNode right;// 构造函数,用于初始化节点值TreeNode(int x) {val x;} }public class PathSumProblems {// 路径总和 I:判…...
正点原子IMX6U开发板移植Qt时出现乱码
移植Qt时出现乱码 1、前言2、问题3、总结 1、前言 记录一下正点原子IMX6U开发板移植Qt时出现乱码的解决方法,方便自己日后回顾,也可以给有需要的人提供帮助。 2、问题 用正点原子IMX6U开发板移植Qt时移植Qt后,sd卡里已经存储了Qt的各种库&…...
算法解密:轮转数组问题全解析
算法解密:轮转数组问题全解析 一、引言 在算法的世界里,数组的操作问题常常考验着我们对数据结构和算法技巧的掌握程度。“轮转数组”问题就是其中一个经典且有趣的题目。它看似简单,却蕴含着多种巧妙的解法。通过深入研究这个问题,我们能更好地理解数组的特性,提升算法思…...
正则化和L1/L2范式
1. 背景与引入 历史与位置 正则化(Regularization)是机器学习中控制模型复杂度、提升泛化能力的核心手段之一。 L2范式(Ridge正则化)最早可追溯至20世纪70年代的Tikhonov正则化,用于解决病态线性方程组问题…...
day05_java中常见的运算符
对字面量或者变量进行操作的符号就是运算符。用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。 java中常用的运算符有下面几种 算术运算符 代码示例 public class Demo01Operator {public static void main(String[] args) {int a 3;int b 4;System.o…...
Linux_进程退出与进程等待
一、进程退出 退出场景 正常终止:代码执行完毕且结果符合预期(退出码为 0)。异常终止:运行结果错误(退出码非 0)或进程被信号强制终止。(如 SIGINT 或 SIGSEGV)。 退…...
SSM框架(Spring + Spring MVC + MyBatis)整合配置的详细步骤
以下是 SSM框架(Spring Spring MVC MyBatis)整合配置的详细步骤,适用于 Maven 项目。 (一)、pom.xml中添加相关依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"ht…...
B. Zero Array(思维)
Problem - 1201B - Codeforces 思路:每次给任意两个不同下表的数减-1,相当于在这个数组总和S上减2,S为奇数则不可能变为0,S为偶数时,一定存在两个序列组成两个S/2,这样每次都是在两个S/2上各减1,…...
FPGA_Verilog实现QSPI驱动,完成FLASH程序固化
FPGA_Verilog实现QSPI驱动,完成FLASH程序固化 操作提要 使用此操作模式实现远程升级的原因是当前的FLASH的管脚直接与FPGA相连接,SPI总线并未直接与CPU相连接,那么则需要CPU下发升级指令与将要升级的文件给FPGA,然后在FPGA内部产…...
前端取经路——框架修行:React与Vue的双修之路
大家好,我是老十三,一名前端开发工程师。在前端的江湖中,React与Vue如同两大武林门派,各有千秋。今天,我将带你进入这两大框架的奥秘世界,共同探索组件生命周期、状态管理、性能优化等核心难题的解决之道。无论你是哪派弟子,掌握双修之术,才能在前端之路上游刃有余。准…...
【DBMS学习系列】一、DBMS(数据库管理系统)的存储模型
一、前置知识 1.1 什么是OLAP 和 OLTP? On-Line Analytical Processing,简称OLAP(联机分析处理),是一种用于处理大规模数据的技术,它提供了一种灵活的分析和查询方式,能够帮助用户从不同维度来分析和理解业务数据。 On-Line Transaction Processing,简称OLTP(联机事…...
Matlab 镍氢电池模型
1、内容简介 Matlab216-镍氢电池模型 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...
39、.NET GC是什么? 为什么需要GC?
.NET GC是什么? .NET GC(Garbage Collector,垃圾回收器)是.NET运行时(CLR)的核心组件,负责自动管理托管堆(Managed Heap)中的内存分配与释放。其核心工作机制包括&#…...
前端缓存踩坑指南:如何优雅地解决浏览器缓存问题?
浏览器缓存,配置得当,它能让页面飞起来;配置错了,一次小小的上线,就能把你扔进线上 bug 的坑里。你可能遇到过这些情况: 部署上线了,结果用户还在加载旧的 JS;接口数据改了…...
XML语言
XML语言 在开始介绍Mybatis之前,先介绍一下XML语言,XML语言发明最初是用于数据的存储和传输,它是由一个一个的标签嵌套而成 <?xml version"1.0" encoding"UTF-8" ?> <outer> <name>阿伟</name&…...
垃圾回收的三色标记算法
目录 1、介绍 1.1、发展 1.2、基本原理 2、执行过程 2.1、初始标记 (Initial Marking) 2.2、并发标记 (Concurrent Marking) 2.3、重新标记 (Remark) 2.4、垃圾清理阶段 3、并发标记 3.1、浮动垃圾 3.2、漏标 前言 三色标记(Tri-color Marking࿰…...
紫禁城多语言海外投资理财返利源码带前端uniapp纯工程文件
测试环境:Linux系统CentOS7.6、宝塔、PHP7.2、MySQL5.6,根目录public,伪静态thinkphp,开启ssl证书 语言:中文简体、英文、越南语、马来语、日语、巴西语、印尼语、泰语 前端是uniapp的源码,我已经把nmp给你…...
深入剖析 I/O 复用之 select 机制
深入剖析 I/O 复用之 select 机制 在网络编程中,I/O 复用是一项关键技术,它允许程序同时监控多个文件描述符的状态变化,从而高效地处理多个 I/O 操作。select 作为 I/O 复用的经典实现方式,在众多网络应用中扮演着重要角色。本文…...
Android开发报错解决
Android开发报错解决 组件相关文件相关权限相关代码相关程序报错IDE相关版本对应框架okhttp请求失败 Roomno such table cocos2d 组件相关 使用gravity属性让文字居中是,需把该属性放在text属性上面ScrollView只能容纳一个子视图 文件相关 放在drawble下的图片资源…...
Linux 网络命名空间:从内核资源管理到容器网络隔离
1. 网络命名空间是什么? 网络命名空间(Network Namespace) 是 Linux 内核提供的一种网络资源隔离机制,用于为进程或容器创建完全独立的网络环境。它并非物理或虚拟的网络接口(如网卡、veth pair 等),而是一个虚拟容器,包含以下资源的独立实例: 网络接口(物理或虚拟)…...
VNC windows连接ubuntu桌面
✅ 步骤 1:安装 VNC 服务器 首先,我们需要在 Winux 系统上安装一个 VNC 服务器。这里我们使用 tigervnc 作为例子,它是一个常用的 VNC 服务器软件。 打开终端并更新你的软件包: sudo apt update安装 tigervnc 服务器:…...
Elastic:如何构建由 AI 驱动的数字客户体验策略
作者:来自 Elastic Elastic Platform Team 客户通过多个数字渠道与企业和组织互动 —— 从网站和应用程序到聊天机器人和电子邮件。这些接触点构成了数字客户体验(DCX)。无缝的数字客户体验能显著提升客户满意度,进而带动更高的收…...
安防多协议接入/视频汇聚平台EasyCVR助力工地/工程/建筑施工领域搭建视频远程监控系统
一、摄像机安装方案 1)安装位置选择:摄像机安装需避开强振源与电磁干扰区,兼顾建筑外观,隐蔽安装。其防护罩应巧妙遮蔽视角,增强安防威慑。电梯轿厢内的摄像机,建议藏于吊顶。连接摄像机的视频、电源及…...
《100天精通Python——基础篇 2025 第16天:异常处理与调试机制详解》
目录 一、认识异常1.1 为什么要使用异常处理机制?1.2 语法错误1.3 异常错误1.4 如何解读错误信息 二、异常处理2.1 异常的捕获2.2 Python内置异常2.3 捕获多个异常2.4 raise语句与as子句2.5 使用traceback查看异常2.6 try…except…else语句2.7 try…except…finally语句--捕获…...
Ceph PG unfound/lost 问题排查与解决
Ceph PG unfound/lost 问题排查与解决 背景现象排查过程经验总结参考命令结语 背景 Ceph 集群出现 HEALTH_ERR,提示有 PG 对象丢失(unfound),并且 repair 无法自动修复。 现象 ceph health detail 显示: HEALTH_ERR …...
LeetCode热题100--54.螺旋矩阵--中等
1. 题目 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:ma…...
【嵌入式开发-CAN】
嵌入式开发-CAN ■ CAN简介 ■ CAN简介...
SQLite3介绍与常用语句汇总
SQLite3简介 SQLite3是一款轻量级的、基于文件的开源关系型数据库引擎,由 D. Richard Hipp 于 2000 年首次发布。它遵循 SQL 标准,但与传统的数据库系统不同,SQLite 并不运行在独立的服务器进程中,而是作为一个嵌入式数据库引擎直…...
uniapp中score-view中的文字无法换行问题。
项目场景: 今天遇到一个很恶心的问题,uniapp中的文字突然无法换行了。得..就介样 原因分析: 提示:经过一fan研究后发现 scroll-view为了能够横向滚动设置了white-space: nowrap; 强制不换行 解决起来最先想到的是,父…...
[学习]RTKLib详解:ephemeris.c与rinex.c
文章目录 RTKLib详解:ephemeris.c与rinex.cPART A: ephemeris.c一、代码整体作用与工作流程分析1.1 整体作用1.2 工作流程 二、核心函数说明2.1 alm2pos (Almanac to Position)2.2 eph2clk (Ephemeris to Clock)2.3 eph2pos (Ephemeris to Position)2.4 geph2pos (G…...
JDBC:java与数据库连接,Maven,MyBatis
JDBC 是使用Java语言操作关系型数据库的一套API JDBC是接口,用其实现一系列不同种类关系型数据库的实现类 JDBC本质: 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口 各个数据库厂商去实现这套接口,提供数据库驱动jar包 我…...
代码随想录第39天:单调栈
一、每日温度(Leetcode 739) 思路: 栈里存放的是**“还没等到升温的日子”**的索引; 每遇到一个新的温度: 检查是否比栈顶的温度高; 如果高了,说明升温来了,栈顶元素可以出栈&…...
如何在vite构建的vue项目中从0到1配置postcss-pxtorem
1. 安装postcss-pxtorem和autoprefixer yarn add postcss-pxtorem autoprefixer2. 在vite.config.ts中写入 import { defineConfig } from "vite"; import vue from "vitejs/plugin-vue"; import postcssPxtorem from "postcss-pxtorem"; impo…...
基于51单片机的自动洗衣机衣料材质proteus仿真
地址:https://pan.baidu.com/s/13d2bJ6vKh8ZLuDBZnI0VGw 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C51 是一款常用的 8 位单片机,由 Atmel 公司(现已被 Microchip 收…...
永久免费的小工具,内嵌微软接口
有时候我们制作短视频,需要为视频添加声音,但部分配音软件要收费。不过别担心,今天给大家推荐一款超实用的免费文字转语音软件,完全无需担忧费用问题! 01 软件介绍 这款软件就是Read Aloud,具有以下特点&a…...
C++漫步结构与平衡的殿堂:AVL树
文章目录 1.AVL树的概念2.AVL树的结构3.AVL树的插入4.AVL树的旋转4.1 左单旋4.2 右单旋4.3 右左双旋4.4 左右双旋 5.AVL树的删除6.AVL树的高度7.AVL树的平衡判断希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 二叉搜索树有其自身的缺陷…...
MIST:一键解锁 macOS 历史版本,旧系统安装不再难!
在 Mac 电脑的使用过程中,你是否遇到过这些困扰?为了运行一款经典设计软件,新系统却无法兼容;或是想给老旧 Mac 设备升级,却找不到适配的系统版本。而 App Store 里,旧版 macOS 安装包就像 “隐藏副本”&am…...
mac连接lniux服务器教学笔记
从你的检查结果看,容器内已经安装了 XFCE 桌面环境(xfce.desktop 和 xubuntu.desktop 的存在说明桌面环境已存在)。以下是针对 Docker 容器环境的远程桌面配置方案: 一、容器内快速配置远程桌面(XFCE VNC)…...