网站备案 做网站时就需要吗/东莞关键词排名seo
车载以太网中,传输层和实际用的互联网相差无几。本篇文章对传输层中的IP进行介绍
目录
什么是IP?
IP和MAC的关系
IP地址分类
私有IP
NAT
DHCP
为什么要防火墙穿透?
广播
本地广播
直接广播
本地广播VS直接广播
组播
一、什么是组播(Multicast)?
1.1 组播的 “组” 概念
二、组播在 OSI 模型中的位置
三、组播地址和范围
3.1 IPv4 组播地址范围
3.2 IPv6 组播
四、组播核心原理
五、常见组播协议
六、组播带来的好处
七、常见应用场景
八、网络配置要点
九、组播与其他通信方式的对比
十、总结
IP分⽚与重组
IPv4首部
什么是IP?
IP(Internet Protocol,互联网协议)是 网络通信的核心协议,用于标识设备并确保数据包能够正确地在网络中传输。如果具象化的说就是住处的地址。MAC就相当于身份证。IP地址可能会变,MAC由网卡决定短期内一般不会更变。IP位于OSI7层模型中的的网络层,⽹络层的主要作⽤是:实现主机与主机之间的通信,也叫点对点通信。
IP和MAC的关系
正如我们上一篇文章中介绍的,IP是整个全球路径(跨网络传输)的规划者,MAC(这里是指数据链路层里面的mac子层不是mac地址)仅仅用于局域网(LAN)内一跳和下一跳之间的联系,通过ARP协议与MASK子网掩码,如果目的IP地址位于子网内,那么他将会通过ARP协议获取对应IP地址的MAC地址从而建立连接,但是如果不在子网则只能获取网关(路由器)的地址,前往下一跳了。他们的关系由下图所示:
IP地址分类
IP地址分为5类如下图所示
也就是
私有IP
其中192这个开头的也就是我们说的内网,他是私有IP。你的设备(电脑、手机、打印机等)在局域网内通信时,使用的是私有 IP(如 192.168.xxx.xxx)。
私有 IP 不能直接访问互联网。
NAT
在访问外网时,防火墙或路由器会通过 NAT(网络地址转换)把内网 IP 映射成一个公网 IP,然后再通过路由器发送到互联网。对于路由器,路由器维护一个 NAT 映射表,记录哪个内网 IP 发出了哪个请求,以便返回时能够正确转发。而防火墙的作用是防止外部恶意攻击,只有内部发起的请求可以收到响应,外部设备不能直接访问内网设备。从而NAT可以做到内网设备共享公网 IP,也就是说你的家里可能有很多设备(手机、电脑),但在公网看来,它们都是同一个 IP(路由器的公网 IP)。因此也节约了公网 IP 资源。但是这就会出一个问题,手动分配 IP 容易出错,一旦 IP 重复,网络会出现冲突。
DHCP
那么就需要DHCP这个应用层协议来帮助帮助分配IP了。DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 是一种 自动给网络中的设备分配 IP 地址、子网掩码、网关以及 DNS 等网络参数 的协议。它能让我们在局域网中实现即插即用的网络连接,大大简化了网络管理和配置工作。他能实现1.自动分配 IP 地址:无需人工手动给每台设备配置 IP 地址,设备开机后会自动从 DHCP 服务器获取到自己的 IP。2.分配其他网络参数比如默认网关,子网掩码,DNS 服务器地址以及其他设置。
来插叙回顾刚刚的arp,arp协议是在内网中询问的,那么他在跳转中,其实是每个路由器组成的内网,这个路由器又对应内部一大堆192.168的设备.说到这,我们知道一般如果跨域通信我们是要做防火墙穿透的。
为什么要防火墙穿透?
防火墙(Firewall) 是用于保护内网设备免受外部网络攻击的安全机制,它会阻止未经授权的访问,导致外部设备无法直接访问内网资源。他可以过滤非法访问(限制某些端口的访问),防止 DDoS 攻击(限制大量异常流量).但是http的80或者https的443端口他不会拦截。所以可以用http来穿透防火墙。但是像dds这种他本来就是局域网里面用的,就无所谓了。
广播
很多人会把广播和组播弄混。其实广播是 "一对所有" 的通信,即数据会发给 同一子网内的所有设备,而不是特定的组。并且广播不会跨路由器,所以数据只能局限在 192.168.0.0/24 这个子网内(这个/24其实是CIDR,也就是说前24位表示网络部分,后面8位表示主机部分,相当于子网掩码255.255.255.0)。组播(224.x.x.x):数据包只会被订阅了该组的设备接收,并且可以跨子网传播。
它分为本地广播和直接广播
本地广播
使用255.255.255.255。这样所有设备都会接收数据包,但路由器不会转发。适用于DHCP 发现啊,ARP请求啊之类。
直接广播
直接广播使用子网地址 +255,注意这里的 +255
不是指“在原来的 IP 地址上直接加 255”。它的真正含义是:把主机部分的所有位都变成 1
,得到广播地址(Broadcast Address)。举个例子192.168.1.0/24 +255就是把最后8位全部设为1.这样192.168.1这个子网内的所有设备都能1收到广播了。直接广播让子网内的所有设备都收到消息,但不会跨路由器传播。而本地广播是所有设备都会收到消息。
本地广播VS直接广播
有人就会发出疑问,那本地广播感觉和直接广播差不多啊,本地广播说是所有设备都会接受数据包,但是由于有防火墙和nat,本地设备就只有子网内设备啊,那不是和直接广播通知子网内设备差不多嘛?默认情况下是这样的,但是如果你想实现远程开机这种操作。本地广播无法被 NAT 设备(如路由器)转发到互联网,但是直接广播如果路由器启用了“直接广播转发”,数据包可以传播到其他子网。且由于防火墙的影响,如果你需要让广播通过防火墙,必须手动配置防火墙规则,允许特定端口(如 Wake-on-LAN 的 UDP 9 端口)。这样就可以实现远程开机了。
组播
一、什么是组播(Multicast)?
组播(Multicast) 是一种 “一对多” 或 “多对多” 的网络传输方式,允许发送方(Source)只发送 一份数据包,而网络设备(路由器、交换机)根据 组播路由协议 将这份数据复制并分发给多个接收方(Receivers)。
- 相比 广播(Broadcast),组播的接收方是加入了组(Group)的节点,并不是子网内所有节点。
- 相比 单播(Unicast),组播在多用户同时接收相同内容时可极大减少网络带宽消耗。
1.1 组播的 “组” 概念
- 每个组播组会对应一个 组播 IP 地址(例如
224.1.1.1
)。 - 只有 订阅(Join)了该组播组 的主机才能接收该组的流量。
- 没有订阅的主机不会接收,也就不会浪费带宽。
二、组播在 OSI 模型中的位置
- 网络层(IP 层):使用 组播 IP 地址(范围
224.0.0.0 - 239.255.255.255
for IPv4)来标识组。 - 传输层:通常用 UDP(User Datagram Protocol)来传输组播数据,也可以使用其他协议。
- 链路层(以太网层):使用 特殊的组播 MAC 地址(以
01:00:5E
开头)来标识组播帧。
三、组播地址和范围
3.1 IPv4 组播地址范围
224.0.0.0 ~ 239.255.255.255
- 224.0.0.x:保留地址,用于本地链路组播(路由器不转发)。
- 224.0.1.x - 238.x.x.x:可路由组播地址,用于互联网或大规模网络组播。
- 239.0.0.0 - 239.255.255.255:组织范围(Administratively Scoped)地址,用于私有组播(类似私有 IP),只在组织内部使用。
3.2 IPv6 组播
在 IPv6 中,组播地址以 ff00::/8
开头,例如 ff02::1
(所有节点),ff02::2
(所有路由器)等。
四、组播核心原理
- 发送方只发一次数据
不像单播要为每个接收者发送多份,组播只在网络中保留一份数据流,在需要的节点或路由节点才复制分发。 - 接收方主动加入(Join)或退出(Leave)组播组
- 局域网内:使用 IGMP(Internet Group Management Protocol) 通知组播路由器:“我要接收这个组播组地址的数据”。
- 路由器根据组播路由协议(如 PIM、MOSPF)在网络间构建 组播分发树(Multicast Distribution Tree)。
- 网络设备(路由器/交换机) 根据 组播路由协议 动态维护哪些接口下有接收组播数据的主机,实现数据精准分发。
五、常见组播协议
-
IGMP(Internet Group Management Protocol)
- 工作在主机与局域网内的组播路由器之间,主机通过 IGMP 向路由器声明要加入或离开某个组播组。
- 常见版本:IGMPv1、IGMPv2、IGMPv3(v3 支持源过滤,能指定接收来自哪几个源的组播)。
-
PIM(Protocol Independent Multicast)
- 工作在路由器之间,用于在多路由环境中建立并维护组播分发树。
- 常见模式:PIM-SM(稀疏模式)、PIM-DM(密集模式)。
- 稀疏模式(SM)常用于大多数互联网或企业网场景;密集模式(DM)现在用得较少。
-
MLD(Multicast Listener Discovery)
- IPv6 下的“IGMP”对应协议,用于管理 IPv6 组播。
六、组播带来的好处
-
节省带宽
- 只发送一次数据,然后在必要的节点进行复制。若有大量用户同时收看相同视频或订阅相同数据流,可极大降低网络压力。
-
降低服务器负载
- 无需为每个接收者维护独立的连接,大量用户共享同一个数据流。
-
实时性好,适合大规模分发
- 适用于 视频直播、股票行情、在线会议、在线教育 等实时业务场景。
七、常见应用场景
-
IPTV / 视频直播
- 机顶盒或播放器加入特定组播组,网络运营商通过组播方式发送视频流给所有收看用户。
-
在线会议 / 语音广播
- 多人语音或视频会议,使用组播减少流量。
-
实时信息分发(股票行情、竞价系统等)
- 证券公司实时推送行情给交易终端,组播可极大减轻服务器和网络负担。
-
大型局域网广播(代替纯广播,减少网络风暴)
- 例如主机发现、服务发布,可以使用组播,只有订阅者才会接收。
八、网络配置要点
-
局域网内要启用 IGMP
- 交换机需支持 IGMP Snooping,路由器需支持 IGMP Proxy 或 PIM 路由,才能正确转发组播流。
-
跨网段要启用 PIM(稀疏模式或密集模式)
- 路由器间通过 PIM 维护路由信息,让组播数据可以在不同子网间传播。
-
安全和 QoS
- 防止组播被滥用造成网络攻击(如伪造源 IP)、网络风暴。
- 对组播流量进行 QoS(服务质量) 配置,保证实时业务优先级。
-
使用私有组播地址
- 如果只在组织内部使用组播,最好用 239.x.x.x 段,避免与互联网组播地址冲突。
九、组播与其他通信方式的对比
模式 | 地址/协议 | 适用场景 | 带宽利用 | 扩展性 |
---|---|---|---|---|
单播 | 普通 IP 地址 | 点对点通信、请求-响应 | 一对一,带宽消耗大 | 大规模“一对多”非常不划算 |
广播 | 255.255.255.255 、192.168.x.255 | 局域网内的一对所有设备 | 一对所有,浪费较大 | 不能跨路由器,覆盖面有限 |
组播 | 224.0.0.0 - 239.255.255.255 | 一对多/多对多,只有订阅设备 | 只复制给加入组的设备,效率高 | 可跨子网,但需组播路由协议 |
任播 | Anycast(IPv6 Anycast) | 最近节点服务(CDN、DNS) | 面向全局路由,路由到最近节点 | 配置复杂,多用于服务器分布式 |
十、总结
-
组播是网络层的 “一对多” 传输方式
- 通过 组播 IP 地址 标识组,用 IGMP 来管理主机加入/离开组,路由器用 PIM 等协议维护跨网段的组播路由。
-
优势在于大幅节省带宽和服务器负载
- 对于 视频直播、在线会议、实时行情 等场景是非常理想的技术。
-
需要网络设备支持组播路由和 IGMP Snooping
- 企业网络或运营商网络中,需要合理规划、开启相关协议,否则组播可能无法跨网段,或发生网络风暴。
-
安全和 QoS 同样重要
- 在大规模组播应用中,要做好 鉴权、限速、ACL 等。
IP分⽚与重组
IPv4首部
这里面version 指定 IP 协议版本,IPv4 对应4,ipv6对应6
IHL(首部长度):IP 头部的长度,他的单位是4字节,用他的值x4就是实际首部长度。比如IPv4 头部最小长度 = 20 字节(IHL=5)。IPv4 头部最大长度 = 60 字节(IHL=15),最大是使用了option选项字段。
TOS:用于 区分不同优先级(如 QoS),影响路由和流量管理。他由3位的优先权子字段(现在没用了).4位的tos子字段以及最后一个无用位(必须置0)组成。他是早期用于区分数据包的优先级,但是现在主要用于 QoS(服务质量控制)影响数据包的处理方式了。现在一般是用DiffServ是取代了TOS。他由DSCP(6bit)+ECN(2bit)组成。DSCP用于标记优先级,ECN用于显式拥塞通知。常见的 DSCP 代码点包括:
DSCP 值 | 二进制 | 类别 | 用途示例 |
---|---|---|---|
0 | 000000 | Default | 普通流量(标准优先级) |
EF(Expedited Forwarding) | 101110 | 高优先级 | 语音(VoIP)、视频会议 |
AF11 | 001010 | Assured Forwarding | 低优先级流量 |
AF31 | 011010 | Assured Forwarding | 高优先级流量 |
CS6 | 110000 | Critical Services | 网络控制流量(BGP、OSPF) |
Total Length(总长度):IP 数据包的总长度(首部 + 负载),单位是 字节(最大 65535
)。但是最大数据长度受 MTU 限制,以太网典型 MTU = 1500
,意味着最大数据长度通常是 1480 字节(IP 头部 20 字节 + 数据 1480)。
Identification:发送方给每个 IP 数据包分配一个唯一 ID,用于分片重组.如果数据包被拆分成多个片段,所有片段都会有相同的 Identification 值,接收方用它来重组数据包.但是我们之前有提到说为了避免让ip来分片所以通过mss让tcp进行分片了.
Flags(标志位):DF(位 1):1
表示 禁止分片,如果数据包超过 MTU,必须丢弃。MF(位 2):1
表示 还有更多片段,如果是 0
,表示这是最后一个片段。
Fragment Offset(片偏移):指明当前片段在原始数据包中的位置,单位是 8 字节。举个例子偏移 0
:第一个片段。那么第二段偏移 1480/8=185。
TTL(Time to Live,生存时间):控制数据包在网络中存活的时间,防止死循环。每经过一个路由器,TTL - 1,如果 TTL=0,数据包被丢弃。linux是64,windows是128.
Protocol(协议):指定IP 负载是什么协议(用于解析数据部分)。1
= ICMP(ping)6
= TCP
17
= UDP。
Header Checksum(头部校验和):检查 IP 头部 是否出错,若出错则丢弃数据包。需要注意到是每经过一个路由器都会重新计算这个校验和(因为 TTL 变了)。
Source Address(源地址):记录数据包发送方的 IPv4 地址(4 字节)。
Destination Address(目标地址):记录数据包接收方的 IPv4 地址。
Options(可选字段,最大 40 字节):可以存储 时间戳、安全信息、路由指示等。但是现在已经很少使用了。
Padding(填充):确保 IP 头部的总长度是 4 的倍数,防止数据对齐问题。
之前的图标注了长度但是没有具体的英文名,这里补一张英文名对应的头部图。
相关文章:

车载以太网__传输层
车载以太网中,传输层和实际用的互联网相差无几。本篇文章对传输层中的IP进行介绍 目录 什么是IP? IP和MAC的关系 IP地址分类 私有IP NAT DHCP 为什么要防火墙穿透? 广播 本地广播 直接广播 本地广播VS直接广播 组播 …...

简单本地部署deepseek(软件版)
Download Ollama on Windows 下载 下载安装 winr 输入 cmd 然后输入ollama -v,出现ollama版本,安装成功 deepseek-r1 选择1.5b 输入 cmd 下面代码 ollama run deepseek-r1:1.5b 删除deepseek的代码如下: ollama rm deepseek-r1:1.5b 使用…...

AI绘画:解锁商业设计新宇宙(6/10)
1.AI 绘画:商业领域的潜力新星 近年来,AI 绘画技术以惊人的速度发展,从最初简单的图像生成,逐渐演变为能够创造出高度逼真、富有创意的艺术作品。随着深度学习算法的不断优化,AI 绘画工具如 Midjourney、Stable Diffu…...

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪
20250202在Ubuntu22.04下使用Guvcview录像的时候降噪 2025/2/2 21:25 声卡:笔记本电脑的摄像头自带的【USB接口的】麦克风。没有外接3.5mm接口的耳机。 缘起:在安装Ubuntu18.04/20.04系统的笔记本电脑中直接使用Guvcview录像的时候底噪很大! …...

cors跨域是如何做的?
CORS 跨域资源共享详解 什么是 CORS? CORS(Cross-Origin Resource Sharing)是一种机制,允许浏览器向不同源的服务器发出请求,从而实现跨域资源共享。默认情况下,浏览器出于安全考虑,禁止跨域请求。这意味着,当一个网页尝试从不同的域名、协议或端口加载资源时,浏览器…...

系统通解:超多视角理解
在科学研究和工程应用中,我们常常面临各种复杂系统,需要精确描述其行为和变化规律。从物理世界的运动现象,到化学反应的进程,再到材料在受力时的响应,这些系统的行为往往由一系列数学方程来刻画。通解,正是…...

最大矩阵的和
最大矩阵的和 真题目录: 点击去查看 E 卷 100分题型 题目描述 给定一个二维整数矩阵,要在这个矩阵中选出一个子矩阵,使得这个子矩阵内所有的数字和尽量大,我们把这个子矩阵称为和最大子矩阵,子矩阵的选取原则是原矩阵中一块相互…...

深度学习 | 表示学习 | 卷积神经网络 | Batch Normalization 在 CNN 中的示例 | 20
如是我闻: 让我们来用一个具体的例子说明 Batch Normalization 在 CNN 里的计算过程,特别是如何对每个通道(channel)进行归一化。 1. 假设我们有一个 CNN 层的输出 假设某个 CNN 层的输出是一个 4D 张量,形状为&#…...

最短木板长度
最短木板长度 真题目录: 点击去查看 E 卷 100分题型 题目描述 小明有 n 块木板,第 i ( 1 ≤ i ≤ n ) 块木板长度为 ai。 小明买了一块长度为 m 的木料,这块木料可以切割成任意块,拼接到已有的木板上,用来加长木板。 小明想让最…...

团体程序设计天梯赛-练习集——L1-034 点赞
前言 20分的题目题目不难,理解也不难,做起来有点问题 L1-034 点赞 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本…...

利用腾讯云cloud studio云端免费部署deepseek-R1
1. cloud studio 1.1 cloud studio介绍 Cloud Studio(云端 IDE)是基于浏览器的集成式开发环境,为开发者提供了一个稳定的云端工作站。支持CPU与GPU的访问。用户在使用 Cloud Studio 时无需安装,随时随地打开浏览器即可使用。Clo…...

LabVIEW的智能电源远程监控系统开发
在工业自动化与测试领域,电源设备的精准控制与远程管理是保障系统稳定运行的核心需求。传统电源管理依赖本地手动操作,存在响应滞后、参数调节效率低、无法实时监控等问题。通过集成工业物联网(IIoT)技术,实现电源设备…...

Docker深度解析:安装各大环境
安装 Nginx 实现负载均衡: 挂载 nginx html 文件: 创建过载目录: mkdir -p /data/nginx/{conf,conf.d,html,logs} 注意:在挂载前需要对 conf/nginx.conf 文件进行编写 worker_processes 1;events {worker_connections 1024; …...

牛客 - 链表相加(二)
描述 假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。 给定两个这种链表,请生成代表两个整数相加值的结果链表。 数据范围:0≤n,m≤1000000,链表任意值 0≤val≤9 要求:空间复杂度 O(n)&am…...

GPU 硬件原理架构(一)
这张费米管线架构图能看懂了,整个GPU的架构基本就熟了。市面上有很多GPU厂家,他们产品的架构各不相同,但是核心往往差不多,整明白一了个基本上就可以触类旁通了。下面这张图信息量很大,可以结合博客GPU 英伟达GPU架构回…...

C/C++编译器
C/C 代码是不可跨平台的,Windows 和 Unix-like 有着不同的 API,C/C 在不同平台有着不同编译器。 MSVC Windows 平台,MSVC 是 Visual Studio 中自带的 C/C 编译器。 GCC Unix-like 平台,GCC 原名 GNU C Compiler,后…...

Immutable设计 SimpleDateFormat DateTimeFormatter
专栏系列文章地址:https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标: 理解不可变设计模式,时间format有线程安全要求的注意使用DateTimeFormatter 目录 ImmutableSimpleDateFormat 非线程安全可以synchronized解决&a…...

最新EFK(Elasticsearch+FileBeat+Kibana)日志收集
文章目录 1.EFK介绍2.操作前提3.FileBeat8.15下载&安装4.编写FileBeat配置文件5.启动FileBeat6.模拟实时日志数据生成7.查看索引(数据流)是否创建成功8.创建数据视图:9.查看数据视图10.使用KQL对采集的日志内容进行过滤11.给日志数据配置保留天数(扩展知识) 1.E…...

Vue 3 30天精进之旅:Day 15 - 插件和指令
欢迎来到“Vue 3 30天精进之旅”的第15天!今天我们将深入探讨Vue 3中的插件和自定义指令。这两个主题能够帮助我们扩展Vue的功能,使我们的应用更加灵活和强大。 一、插件概述 1. 什么是插件? 在Vue中,插件是一种功能扩展机制。…...

【实战篇】Android安卓本地离线实现视频检测人脸
实战篇Android安卓本地离线实现视频检测人脸 引言项目概述核心代码类介绍人脸检测流程项目地址总结 引言 在当今数字化时代,人脸识别技术已经广泛应用于各个领域,如安防监控、门禁系统、移动支付等。本文将以第三视角详细讲解如何基于bifan-wei-Face/De…...

【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter3-语言基础
三、语言基础 ECMAScript 的语法很大程度上借鉴了 C 语言和其他类 C 语言,如 Java 和 Perl。ECMAScript 中一切都区分大小写。无论是变量、函数名还是操作符,都区分大小写。 所谓标识符,就是变量、函数、属性或函数参数的名称。标识符可以由…...

(dpdk f-stack)-堆栈溢出-野指针-内存泄露(问题定位)
目的:解决堆栈溢出,野指针,内存泄露。 解决方法 [root@ test]# yum install libasan [root@ test]# cat test.c int main() { int array[10]; array[11] = 11; return 0; } [root@ test]# gcc -fsanitize=address -O1 -fno-omit-frame-pointer -g -O0 test.c -o test ./te…...

HTML5 教程之标签(3)
HTML5 <center> 标签 (已废弃) 定义和用法 <center> 标签对其包围的文本进行水平居中处理。HTML5不支持使用<center>标签,因此有关该标签的更多信息,请参考“HTML <center>标签”部分! 示例: <center>这个…...

【蓝桥】动态规划-简单-破损的楼梯
题目 解题思路 完整代码 #include <bits/stdc.h> using namespace std; const int N1e59; const long long p1e97; long long dp[N];//dp[i]表示走到第i级台阶的方案数 bool broken[N];//broken代表破损台阶的数组 int main() {int n,m;cin>>n>>m;for(int …...

如何自定义软件安装路径及Scoop包管理器使用全攻略
如何自定义软件安装路径及Scoop包管理器使用全攻略 一、为什么无法通过WingetUI自定义安装路径? 问题背景: WingetUI是Windows包管理器Winget的图形化工具,但无法直接修改软件的默认安装路径。原因如下: Winget设计限制…...

107,【7】buuctf web [CISCN2019 华北赛区 Day2 Web1]Hack World
这次先不进入靶场 看到红框里面的话就想先看看uuid是啥 定义与概念 UUID 是 Universally Unique Identifier 的缩写,即通用唯一识别码。它是一种由数字和字母组成的 128 位标识符,在理论上可以保证在全球范围内的唯一性。UUID 的设计目的是让分布式系…...

STM32 ADC单通道配置
硬件电路 接线图: ADC基本结构图 代码配置 根据基本结构框图 1.定义结构体变量 //定义结构体变量 GPIO_InitTypeDef GPIO_InitStructure;//定义GPIO结构体变量 ADC_InitTypeDef ADC_InitStructure; //定义ADC结构体变量 2.开启RCC时钟 ADC、GPIO的时钟&#x…...

【技海登峰】Kafka漫谈系列(二)Kafka高可用副本的数据同步与选主机制
【技海登峰】Kafka漫谈系列(二)Kafka高可用副本的数据同步与选主机制 一. 数据同步 在之前的学习中有了副本Replica的概念,解决了数据备份的问题。我们还需要面临一个设计难题即:如何处理分区中Leader与Follwer节点数据同步不匹配问题所带来的风险,这也是保证数据高可用的…...

Spring的三级缓存如何解决循环依赖问题
循环依赖问题是在对象之间存在相互依赖关系,形成一个闭环,导致无法准确的完成对象的创建和初始化,当两个或多个对象彼此之间相互引用,这种相互引用形成一个循环时,就可能出现循环依赖问题。 在 Spring 框架中…...

Ext文件系统
文件内容属性 被打开的文件在内存中,没有被打开的文件在磁盘里文件系统的工作就是根据路径帮我们找到在磁盘上的文件 磁盘(硬件) 磁盘的存储结构 磁头在传动臂的运动下共同进退,向磁盘写入的时候是向柱面批量写入的 OS文件系统访…...