【计算机网络】网络基础(协议,网络传输流程、Mac/IP地址 、端口号)
目录
- 1.协议简述
- 2.网络分层结构
- 2.1 软件分层
- 2.2 网络分层
- 为什么?
- 是什么?
- OSI七层模型
- TCP/IP五层(或四层)结构
- 3. 网络与操作系统之间的关系
- 4.从语言角度理解协议
- 5.网络如何传输
- 局域网通信(同一网段)
- 不同网段、MAC、IP地址
- 端口号
1.协议简述
为什么要存在网络?网络主要解决什么问题?
核心问题就是计算机之间的距离变远了,数据传输变得不再那么方便了,所以有了网络,而距离变远必然会引发新的问题(可靠性、主机定位等 ),所以我们的网络协议就是为了解决这些问题,所以协议就是一种解决方案
首先我们要知道,协议是一种约定,计算机协议,就是计算机之间的约定
而在网络中的协议是为了减少我们的通信成本,主要是沟通成本
通俗来讲就是:
计算机生产厂商有很多;计算机操作系统, 也有很多; 计算机网络硬件设备, 还是有很多;
如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是 网络协议;
2.网络分层结构
2.1 软件分层
在计算机领域有一句经典名言
任何问题都可以添加一层软件层来解决
层和层之间是松耦合的,可以随时替换或者方便维护
2.2 网络分层
为什么?
既然协议是一种解决方案,一个好的方案是要可扩展的,方便维护的,所以网络协议就被设计为层状结构了
是什么?
OSI七层模型
-
OSI(Open System
Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范; -
把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
-
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
-
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整.
通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解
TCP/IP五层(或四层)结构
但我们工程使用一般用的是TCP/IP五层(或四层)结构
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求
- 物理层(底层硬件): 负责光/电信号的传递方式. 网卡、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决
定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层 - 数据链路层(驱动软件): 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层
- 网络层(操作系统内部实现、IP): 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层
- 传输层(操作系统内部实现、TCP): 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机
- TCP/IP等都是在操作系统内部实现的,所以网络也属于操作系统源代码的一部分
- 应用层(网络库、软件、系统调用、用户空间): 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层
一般来说:
- 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容
- 对于一台路由器, 它实现了从网络层到物理层
- 对于一台交换机, 它实现了从数据链路层到物理层
- 对于集线器, 它只实现了物理层
但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发);
3. 网络与操作系统之间的关系
拿Windows与Linux系统举例,这两个系统中的内部实现比如内存管理或者进程管理是不一样的,那他们为什么可以通信呢,因为尽管他们内部实现不同,但他们在网络上都要遵循上述的OSI七层或者TCP/IP五层模型,所以他们之间可以通信
世界上所有的操作系统只要想入网,就必须遵守TCP/IP协议,保证不同主机之间的通信
4.从语言角度理解协议
既然有了协议约定,那么 协议双方传递的的数据就是都双方能识别的结构体数据类型,这就是约定
5.网络如何传输
局域网通信(同一网段)
在我们的世界,是先有局域网再有互联网的,各种各样的局域网组合通信构成了我们的互联网
同一网段内的两台主机如何进行文件传输呢?
首先,文件传输的过程都一定要遵守上述所讲的模型(TCP/IP),如下图所示
加入我们的用户A要传递一个C信息,这几个要经过一些规定的路径和流程才能到达用户B
- 我们要传递的信息作为有效载荷,从用户层一层一层向下传递
- 每到一层我们都要加上这一层的协议报头
- 这种协议报头+有效载荷的结构我们称为报文,报文不断被自定义向下交互的过程,不断添加每一层的协议报头,我们叫做封装
- 每一层的报文在每一层都有着自己的名称(数据段、数据报、数据帧)
- 当A用户的信息自顶向下封装传输到B用户的底部时,B用户又要开始将这些报文解包和分用
- 自底向上没到一层解除对应层的协议报头,直到信息到达用户层,我们的报头中一般包含了上层协议是谁
因此任何协议:
1.可以将报头和有效载荷进行分离
2.可以将自己的有效载荷交付给上层的协议
不同网段、MAC、IP地址
对于跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器
这里我们要了解两个重要的地址,MAC与IP地址
路由器一般至少要跨越两个子网,所以要有两张网卡,也就是要有两个MAC地址
在我们数据运输的过程,报文带有两套地址
- 源IP与目标IP地址
- 源mac与目标mac地址
源IP与目标IP地址是一直不变的,就比如我们坐火车去北京旅游,我的源IP地址是家,目标IP地址是北京,这个一直不会变
而在去北京的过程我们会经过许多站,比如我现在在长沙,我的源mac地址就是长沙,我的下一站是武汉,我们的目标mac地址就是武汉,mac地址会随我们站的改变而改变
IP地址就像是方向,永远不变,mac地址就像我们的坐标,表明当前位置和指引下一步
端口号
我们要明白,网络通信的本质其实就是进程在帮我们进行网络通信(进程间通信)
我们知道IP地址可以标识唯一的一台主机,而端口号port可以标识该主机上唯一的一个进程,两者结合起来就可以标识互联网中的唯一一个进程(源IP地址、源端口号 | 目的IP地址、目的端口号)
所以客户端和服务器端都可以通过上述方式唯一的找到彼此,上述这种基于IP地址加端口号的通信模式我们称为套接字通信(socket通信)
- 端口号(port)是传输层协议的内容,是一个2字节16位的整数
- 用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪一个进程来处理
- IP地址 + 端口号能够标识网络上的某一台主机的某一个进程
- 一个端口号只能被一个进程占用
- 一个进程可以绑定多个端口号; 但是一个端口号不能被多个进程绑定
我们知道 pid 表示唯一一个进程,但此处我们的端口号也是唯一表示一个进程,为什么要有端口号,两者又是什么关系呢?
- 为什么要有端口号
不要与系统向耦合,OS中每个进程都有PID,但不是每个进程都要有端口号(port),专事专办
2.两者关系
1.两者关系有点类似于哈希,有了port,就可以通过port在哈希表中找到相应的PID(绑定)
相关文章:
【计算机网络】网络基础(协议,网络传输流程、Mac/IP地址 、端口号)
目录 1.协议简述2.网络分层结构2.1 软件分层2.2 网络分层为什么? 是什么?OSI七层模型TCP/IP五层(或四层)结构 3. 网络与操作系统之间的关系4.从语言角度理解协议5.网络如何传输局域网通信(同一网段) 不同网…...
【Java编程】【计算机视觉】一种简单的图片加/解密算法
by Li y.c. 一、内容简介 本文介绍一种简单的图片加/解密算法,算法的基本原理十分简单,即逐个(逐行、逐列)地获取图片的像素点颜色值,对其进行一些简单的算数运算操作进行加密,解密过程则相应地为加密运算…...
61.评论日记
老人摔倒无人扶最终死亡,家属将路人告上法庭,法院这样宣判!_哔哩哔哩_bilibili 2025年4月14日16:01:25...
每日一题——云服务计费问题
云服务计费问题(哈希表 排序)| 附详细 C源码解析 一、题目描述二、输入描述三、输出描述四、样例输入输出输入示例:输出示例:说明: 五、解题思路分析六、C实现源码详解(完整)七、复杂度分析 一…...
android-根据java文件一键生成dex文件脚本
安装7z命令 7-Zip官方下载网址 生成dex脚本文件 echo off setlocal enabledelayedexpansion:: 获取当前日期和时间 for /f "tokens2 delims" %%i in ("wmic os get localdatetime /value | findstr LocalDateTime") do set datetime%%i:: 提取年、月、日…...
OpenCV直方图均衡化全面解析:从灰度到彩色图像的增强技术
目录 一、直方图均衡化基础:原理与核心思想 二、彩色图像的直方图均衡化:挑战与解决方案 三、进阶技巧与注意事项 四、应用场景与典型案 一、直方图均衡化基础:原理与核心思想 1. 直方图的本质与作用 直方图是图像像素强度分布的统计图表…...
Node.js技术原理分析系列7——Node.js模块加载方式分析
Node.js 是一个开源的、跨平台的JavaScript运行时环境,它允许开发者在服务器端运行JavaScript代码。Node.js 是基于Chrome V8引擎构建的,专为高性能、高并发的网络应用而设计,广泛应用于构建服务器端应用程序、网络应用、命令行工具等。 本系…...
BFD:网络链路检测与联动配置全攻略
目录 BFD简介 BFD会话建立方式和检测机制 BFD会话建立过程 BFD工作流程 联动功能 BFD与OSPF联动配置需求 BFD与OSPF联动配置实现 BFD与VRRP联动配置需求 BFD与VRRP联动配置实现 单臂回声 BFD默认参数及调整方法 BFD简介 一种全网统一、检测迅速、监控网络中链…...
预防WIFI攻击,保证网络安全
文章总结(帮你们节约时间) WiFi协议存在多种安全漏洞,从去认证攻击到KRACK和PMKID攻击,这些都源于协议设计中的历史遗留问题。ESP32S3微控制器结合Arduino环境,成为强大的WiFi安全研究平台,可用于网络扫描…...
循环神经网络 - 门控循环单元网络
为了解决循环神经网络在学习过程中的长程依赖问题,即梯度消失或爆炸问题,一种非常好的解决方案是在简单循环网络的基础上引入门控机制来控制信息的累积速度,包括有选择地加入新的信息,并有选择地遗忘之前累积的信息。这一类网络可…...
Java 正则表达式综合实战:URL 匹配与源码解析
在 Web 应用开发中,我们经常需要对 URL 进行格式验证。今天我们结合 Java 的 Pattern 和 Matcher 类,深入理解正则表达式在实际应用中的强大功能,并剖析一段实际的 Java 示例源码。 package com.RegExpInfo;import java.util.regex.Matcher; …...
TCPIP详解 卷1协议 六 DHCP和自动配置
6.1——DHCP和自动配置 为了使用 TCP/IP 协议族,每台主机和路由器需要一定的配置信息。基本上采用3种方法:手工获得信息;通过一个系统获得使用的网络服务;使用某种算法自动确定。 拥有一个IP 地址和子网掩码,以及 DN…...
面试宝典(C++基础)-01
文章目录 1. C++基础1.1 C++特点1.2 说说C语言和C++的区别1.3 说说 C++中 struct 和 class 的区别1.4 include头文件的顺序以及双引号""和尖括号<>的区别1.5 说说C++结构体和C结构体的区别1.6 导入C函数的关键字是什么,C++编译时和C有什么不同?1.7 C++从代码…...
【笔记ing】AI大模型-04逻辑回归模型
一个神经网络结构,其中的一个神经网络层,本质就是一个逻辑回归模型 深度神经网络的本质就是多层逻辑回归模型互相连接或采用一定的特殊连接的方式连接在一起构成的。其中每一个层本质就是一个逻辑回归模型。 逻辑回归模型基本原理 逻辑回归࿰…...
【Android】常用参数实践 用户界面UI 布局文件XML
本文将系统总结 Android XML 布局的通用参数和常用布局类型的专属规则 一、通用布局参数 这些参数适用于所有 View 和 ViewGroup,是布局设计的基石。 1. 尺寸控制 android:layout_width 与 android:layout_height 定义视图的宽度和高度,可选值…...
音乐产业新玩法:NFTs如何颠覆传统与挑战未来?
音乐产业新玩法:NFTs如何颠覆传统与挑战未来? 近年来,NFT(Non-Fungible Token,非同质化代币)像一颗新星,迅速在数字艺术、游戏等领域掀起了革命。而在音乐产业,NFT不仅是一种数字所…...
测试基础笔记第三天
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 ⼀、缺陷介绍定义:软件中使⽤中任何问题都为缺陷,简称:bug 二、缺陷编写三、注册模块测试点练习 ⼀、缺陷介绍 定义:…...
HTML5 Web 存储:超越 Cookie 的本地存储新选择
一、引言 在当今的 Web 开发领域,对于用户数据的本地存储需求日益增长。HTML5 带来了一种比传统 cookie 更强大、更安全、更高效的本地存储方式 ——Web 存储。本文将深入探讨 HTML5 Web 存储的相关知识,包括其基本概念、浏览器支持情况、localStorage …...
基于 DB、EAST、SAST 的文本检测算法详解及应用综述
摘要 近年来,随着深度学习在计算机视觉领域的广泛应用,自然场景文字检测技术取得了飞速发展。针对复杂背景、任意形状、多角度文本等问题,学术界和工业界陆续提出了 DB、EAST、SAST 等多种算法。本文详细介绍了这几种主流文本检测方法的原理…...
牙刷生产中的视觉检测,让刷毛缺陷检测高效便捷!
在日常口腔护理中,一把优质牙刷至关重要,而刷毛质量直接决定了牙刷品质。从生产端来看,牙刷制造行业正面临着品质管控的严峻挑战。人工目检在检测刷毛缺陷时,不仅效率低下,还极易因主观因素导致漏检、误检,…...
面向对象编程(OOP)核心概念进阶
面向对象编程(OOP)核心概念进阶 final 关键字 行为特征:作为终结者关键字,用于限制类、方法、变量的可修改性 三层控制力: - 修饰类: 定义不可继承的最终类(如 String、Integer 等不可变类核…...
AI与教育的协奏曲:重构未来学习生态
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言:教育的“智变”来临 在经历了千年的教与学之后,教育终于迎来了最大规模的技术变革浪潮。随着ChatGPT、DeepSeek、Grok 等大语言模型的诞生与不断演进,AI正以前所未有的方式深入影响每一个学生、老师…...
性能炸裂的数据可视化分析工具:DataEase!
今天分享一款开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便地与他人分享。 技术栈 前端:Vue.js、Elemen…...
9.thinkphp的请求
请求对象 当前的请求对象由think\Request类负责,该类不需要单独实例化调用,通常使用依赖注入即可。在其它场合则可以使用think\facade\Request静态类操作。 项目里面应该使用app\Request对象,该对象继承了系统的think\Request对象ÿ…...
UBUNTU20.04安装ros2
ubuntu20.04安装ROS2 详细教程_ubuntu20.04 ros2-CSDN博客...
数据可视化工具LightningChart .NET v12.2.1全新发布——支持新的 .NET 目标框架
LightningChart.NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学…...
Python + Playwright:规避常见的UI自动化测试反模式
Python + Playwright:规避常见的UI自动化测试反模式 前言反模式一:整体式页面对象(POM)反模式二:具有逻辑的页面对象 - POM 的“越界”行为反模式三:基于 UI 的测试设置 - 缓慢且脆弱的“舞台搭建”反模式四:功能测试过载 - “试图覆盖一切”的测试反模式之间的关联与核…...
蓝宝石狼组织升级攻击工具包,利用新型紫水晶窃密软件瞄准能源企业
网络安全专家发现,被称为"蓝宝石狼"(Sapphire Werewolf)的威胁组织正在使用升级版"紫水晶"(Amethyst)窃密软件,对能源行业企业发起复杂攻击活动。此次攻击标志着该组织能力显著提升&am…...
高光谱相机:温室盆栽高通量植物表型光谱成像研究
传统植物表型测量依赖人工观察与手工记录,存在效率低、主观性强、无法获取多维数据(如生化成分、三维形态)等缺陷。例如,叶片氮含量需破坏性取样检测,根系表型需挖掘植株,导致数据不连续且难以规模化。此外…...
Android Studio安装平板的虚拟机
其实很简单,但是我刚开始也是一窍不通,所以也查了好多资料才会的,本文仅作为个人学习笔记分享,有跟我一样的小白可以当做一个参考,有什么问题也欢迎大家提出建议,俺会虚心接受并改进的~ 首先我们打开项目&…...
Redis 常问知识
1.Redis 缓存穿透问题 缓存穿透:当请求的数据在缓存和数据库中不存在时,该请求就跳出我们使用缓存的架构(先从缓存找,再从数据库查找、这样就导致了一直去数据库中找),因为这个数据缓存中永远也不会存在。…...
UnityUI:Canvas框架获取鼠标悬浮UI
将下面脚本挂在主体Canvas上,Canvas会对下面所有Image挂上PointerHandler脚本,并且可以通过GetPointEnter方法判断当前鼠标是否悬停在UI上 public class BaseCanvas : MonoBehaviour {public static BaseCanvas Main;private void Awake(){Main this;I…...
NLP实战(3):RNN英文名国家分类
目录 1. 项目需求 2. 模型解析 2.1 网络模型 2.2 准备数据 2.3 双向循环神经网络 3. 代码解析 4. 完整代码 5. 结果 1. 项目需求 对名字的分类,几千个名字,总共来自于18个国家 2. 模型解析 对于自然语言处理来说,输入是一个序列&am…...
东方博宜OJ ——1335 - 土地分割
递归 入门 ————1335 - 土地分割 1335 - 土地分割题目描述输入输出样例问题分析递归解法(欧几里得算法)代码实现总结 1335 - 土地分割 题目描述 把一块m * n米的土地分割成同样大的正方形,如果要求没有土地剩余,分割出的正方形…...
在轨道交通控制系统中如何实现μs级任务同步
轨道交通作为现代城市化进程中的重要支柱,承载着数以亿计的乘客出行需求,同时也是城市经济运行的命脉。无论是地铁、轻轨还是高速铁路,其控制系统的稳定性和可靠性直接关系到运营安全和效率。在这样一个高风险、高复杂度的环境中,…...
【C++教程】进制转换的实现方法
在C中进行进制转换可以通过标准库函数或自定义算法实现。以下是两种常见场景的转换方法及示例代码: 一、使用C标准库函数 任意进制转十进制 #include <string> #include <iostream>int main() {std::string num "1A3F"; // 十六进制数int…...
日志文件爆满_配置使用logback_只保留3天日志文件_每天定时生成一个日志文件---SpringCloud工作笔记206
日志文件爆满,springCloud微服务架构中的,日志爆满如何解决,使用脚本直接删除,会导致, 如果要删除的日志文件,还正在被进程占用,那么你即使使用脚本定时删除了,这个日志文件,那么这个日志文件实际上还是不会删除的,他的大小,依然占用磁盘,就是因为,有进程还在占用它,所以之前说…...
DICOM通讯(ACSE->DIMSE->Worklist)
DICOM 通讯协议中的 ACSE → DIMSE → Worklist 这条通讯链路。DICOM 通讯栈本身是一个多层的协议结构,就像 OSI 模型一样,逐层封装功能。 一、DICOM 通讯协议栈总体架构 DICOM 通讯使用 TCP/IP 建立连接,其上面封装了多个协议层次…...
QML与C++:基于ListView调用外部模型进行增删改查(附自定义组件)
目录 引言相关阅读项目结构文件组织 核心技术实现1. 数据模型设计联系人项目类 (datamodel.h)数据模型类 (datamodel.h)数据模型实现 (datamodel.cpp) 2. 主程序入口点 (main.cpp)3. 主界面设计 (Main.qml)4. 联系人对话框 (ContactDialog.qml)5. 自定义组件CustomTextField.qm…...
# linux 设置宽容模式
linux 设置宽容模式 在Linux系统中,通常没有直接称为“宽容模式”的设置选项,但你可以通过几种方式来模拟或调整系统行为,使其表现得更加“宽容”,特别是在处理错误、权限问题或其他潜在问题时。以下是一些常见的方法:…...
#1 理解物联网
物联不是一个新概念,物联网如其中文译名, 虚拟和物的对应和联接。 对于人类的梦想而言,总是希望自己无比强大,但受限于外部条件而只能为此悻悻念念。 所以人们的目光聚焦在,上世纪70年代发展的传感器、大规模电路、通…...
物联网场景实战:智能电表数据管理与分析(二)
数据管理 数据清洗与预处理 智能电表在数据采集、传输和存储过程中,不可避免地会引入噪声、出现缺失值和异常值等问题,这些问题会严重影响数据的质量和后续分析的准确性,因此数据清洗至关重要。 噪声数据通常是由于测量误差、通信干扰等原…...
linux一次启动多个jar包
linux一次启动多个jar包并且可以自定义路径和端口号 代码使用 分享公司大神使用的一个脚步,可以一次启动多个jar包,也可以指定启动jar包 代码 #! /bin/sh # 端口号 PORTS(8080 8081 8082 8083) # 模块 MODULES(gateway auth system file) # 模块名称 MODULE_NAMES(网关服务 认…...
自然语言交互:NAS进化的下一站革命
自然语言交互:NAS进化的下一站革命 在数据爆炸式增长的数字时代,网络附加存储设备(NAS)早已突破企业级应用的边界,成为个人数字资产管理的核心枢纽。当全球NAS市场年复合增长率稳定在15%之际,耘想科技推出…...
go中我遇到的问题总结
go问题总结 1 - go中的nil等于java中的null吗 在 Go 和 Java 中,nil 和 null 都用于表示“空值”,但它们的实现和使用方式有所不同。 以下是 Go 中的 nil 和 Java 中的 null 之间的对比: 1. Go 中的 nil 在 Go 中,nil 是一个预定义的常量,表示零值。它的行为根据数据类…...
java面试题带答案2025最新整理
文章目录 一、java面试题集合框架1. 请简要介绍 Java 集合框架的体系结构2. ArrayList 和 LinkedList 的区别是什么3. HashMap 的工作原理是什么,它在 JDK 7 和 JDK 8 中有哪些不同4. 如何解决 HashMap 的线程安全问题5. TreeSet 是如何保证元素有序的 二、java面试…...
第七届浙江省大学生网络与信息安全竞赛决赛Unserialize深度解析 1.0
花还会重新开,不同的春来了又来。 - 2025.4.11 0x01 声明 仅作为个人学习使用,仅供参考,欢迎交流 可能是新生赛缘故,突发奇想,想好好梳理此题,顺便写成参考,于是有了这篇文章 当然很多理解可…...
onlyoffice 在线编辑集成
onlyoffice 在线编辑集成 项目中要使用word在线编辑功能,记录一下过程 安装使用docker版本 docker run -itd -p 8001:80 --name kodoffice --restart always registry.cn-hangzhou.aliyuncs.com/kodcloud/kodoffice:7.4.1.1 启动后http://192.168.x.x:8001/web/…...
2.4goweb 项目1
mysql库和表 CREATE DATABASE IF NOT EXISTS book_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;USE book_manager;-- 用户表(用于登录) CREATE TABLE IF NOT EXISTS users (user_id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(…...
ESP-ADF外设子系统深度解析:esp_peripherals组件架构与核心设计(系列开篇)
目录 ESP-ADF外设子系统深度解析:esp_peripherals组件架构与核心设计(系列开篇)简介模块概述功能定义架构位置核心特性 接口分析公共API概述1. 外设集合管理API2. 单个外设管理API3. 事件通信API4. 定时器管理API 数据结构关键数据结构分析枚…...