计算机网络 4-2-2 网络层(IPv4)
-
2.7 网络地址转换NAT
引入端口号:IP地址+端口号→一个特定的进程,(不同主机可能存在相同端口号)
网络层实现了“主机到主机”的通信。网络层在IP数据报的首部,指明源IP地址、目的IP地址
传输层实现了“端到端” (进程到进程)的通信。传输层在TCP(或UDP)报文段的首部,指明源端口、目的端口
-
-
私有IP地址(内网IP)
-
只允许分配给局域网内部的节点, 不允许分配给互联网上的节点
-
-
10.0.0.0~10.255.255.255
-
172.16.0.0~172.31.255.255
-
192.168.0.0~192.168.255.255
-
每个局域网内部都可以自行分配这些私有IP地址
-
私有IP地址是可复用的,只要求局域网内唯一,不要求全球唯一
-
-
全球IP地址(外网IP)
-
通常由ISP提供,全球唯一
-
外网IP 是一个局域网与外界通信时所需使用的IP地址
-
-
-
-
NAT路由器
-
作用:转发IP数据报时,进行内网IP、外网IP的相互转换
-
NAT表,记录地址转换关系
-
<内网IP:端口号 外网IP:端口号>
-
-
一个IP数据报
-
从内网转发到外网,会更改源IP地址、源端口号
-
从外网转发到内网,会更改目的IP地址、目的端口号
-
-
NAT路由器包含传输层的功能 (因为端口号是传输层的概念)
-
NAT路由器与普通路由器的区别
- 普通路由器转发IP数据报时,不会改变源IP、 目的IP地址
- 普通路由器仅包含网络层及以下的功能
其他:
NAT基本思想:局域网内部的多台主机共享一个全球唯一的公网IP地址。
端口号的复用:不同主机上的端口号可能重复,但端口号与IP地址的组合是唯一的。
NAT表的作用:记录内网IP地址和端口号与外网IP地址和端口号之间的映射关系
训练一:手机1→手机2微信发文字
1) 手机1先封装数据包:
IP首部:源IP :192.168.3.48 目的 IP:66.211.88.55
TCP首部源端口:9855 目的端口:4096
应用层数据:在吗?
2) 转发到手机1对应默认网关NAT路由器(完成内网IP、端口号和外网IP、端口号转换)内网映射成外网信息 为:
IP首部:源IP :59.175.49.153 目的IP:66.211.88.55
TCP首部源端口:7788. 目的端口:4096
应用层数据:在吗?
3) 转发到接收方NAT路由器(完成外网IP、端口号和内网IP、端口号转换)外网映射成内网信息为:
IP首部:源IP :59.175.49.153 目的IP:192.168.3.74
TCP首部源端口:7788. 目的端口:6666
应用层数据:在吗?
4)手机2接收数据进行拆包,得到端口号6666,确定是微信进程的数据
训练二:手机2→手机1微信发图片
训练三:电脑1→服务器 请求网页数据
训练四:服务器→电脑1返回网页数据
-
2.8 地址解析协议ARP
-
回顾
-
MAC地址 (48bit),是网络适配器出厂时分配好的,全球唯一
-
一台主机至少有一个网络适配器 (网线插口背后的芯片),因此主机至少有一个MAC地址
-
一台路由器有多个转发接口,每个接口背后都是一个网络适配器,因此路由器有多个MAC地址
-
-
2.8.1 ARP(ARP 协议只在同一段链路间使用)
-
-
作用
-
在一个局域网内部,可以通过ARP协议查询到一个IP地址对应的MAC地址
-
-
ARP表 (ARP缓存)
-
记录 (IP地址+MAC地址)之间的映射关系
-
一个数据结构 (每台主机、每台路由器都有自己的ARP表)
-
需要定期更新ARP表项
-
-
过程
-
①ARP请求分组(广播帧)
-
内容
-
我是谁?
-
我的IP地址是X,我的MAC地址是Y
-
-
我想找谁?
-
我想找的这个家伙,IP地址是Z
-
-
-
ARP请求分组封装进MAC帧 (帧目的地址=全1,源地址=Y
-
-
②ARP响应分组(单播帧)
-
内容
-
你好,我就是你要找的那个靓仔,我的IP地址是Z, 我的MAC地址是V
-
-
ARP响应分组封装进MAC帧 (帧目的地址=Y,源地址=V
-
-
-
-
-
训练一:假设 H3 想给internet 发送IP数据报,分析ARP工作过程
H3只知道指向的默认网关,并不知道其对应的mac帧,需要发送ARP 请求分组,为广播帧,分组会被传送至该网络的所有主机
,
被寻找的节点,返回ARP响应分组,是单播帧,并且顺手将H3的IP地址和Mac地址的映射关系记录到ARP表中
H3接收到ARP请求分组后将映射关系记录到ARP转发表中
训练二:基于上一个训练,假设有一个IP数据报从Internet->H3,分析ARP工作过程
训练三:假设H3想给166.1.150.1发送IP数据报,分析ARP工作过程
注意:H6发送ARP响应帧时,需要注意H6与H5连接为集线器,所以ARP响应帧会被集线器无脑转发给H5
ARP分组总长度为28字节,封装到以太网的MAC帧里,需要填充至46字节才能发送
-
2.9 动态主机配置协议DHCP
-
2.9.1 基本概念
-
DHCP协议的作用:给刚接入网络的主机动态分配IP地址、配置默认网关、子网掩码
-
DHCP使用客户/服务器模型 (C/S)
-
DHCP客户:就是新接入网络的主机(希望获得IP地址等配置)
-
DHCP服务器
-
就是负责分配IP地址的那台主机,管理一系列IP地址池
-
注:在家庭网络中,通常由家庭路由器兼职“DHCP服务器”
-
在一个大型网络内可以有多台DHCP服务器
-
-
-
DHCP是应用层协议,基于UDP
-
客户UDP端口号=68、服务器UDP端口号=67
-
-
-
2.9.2 获取IP地址相关信息
-
-
-
①客户→服务器:DHCP发现报文
-
携带信息:客户主机的MAC地址 (还可以提出对IP地址租用期的要求)
-
网络层: 源IP地址=0.0.0.0, 目的IP地址=255.255.255.255 (广播IP数据报)
-
链路层: 源MAC=客户的MAC地址,目的MAC=全1 (广播帧)
-
-
②服务器→客户:DHCP提供报文
-
携带信息:给客户分配的IP 地址、租用期、子网掩码、默认网关
-
网络层: 源IP=DHCP服务器的IP地址,目的IP=255.255.255.255 (广播IP数据报)
-
链路层:源MAC=服务器的MAC地址, 目的MAC=客户的MAC地址 (单播帧)
-
-
③客户→服务器:DHCP请求报文
-
携带信息:客户机确认要使用的IP地址
-
网络层: 源IP=0.0.0.0, 目的IP=255.255.255.255 (广播IP数据报)
-
链路层: 源MAC=客户的MAC地址, 目的MAC=全1 (广播帧)
-
-
④服务器→客户:DHCP确认报文
-
携带信息:与报文②类似
-
网络层: 源IP=DHCP服务器的IP地址, 目的IP=255.255.255.255 (广播IP数据报)
-
链路层:源MAC=服务器的MAC地址, 目的MAC=客户的MAC地址 (单播帧)
-
-
-
最常见的情况:每个网络配置一台DHCP服务器,H3是刚接入网络的主机
1)客户→服务器:DHCP发现报文
H3刚接入网络不知道DHCP的地址,因此目的IP为广播地址,又因为刚接入,源地址为0.0.0.0
解释说明:H6主机接收到该帧怎么处理:
H6链路层收到MAC帧,解析发现目的MAc全1,链路层掐头去尾得到IP数据报,发现目的IP全1,网络层吧这个IP数据报接收下来,继续拆解,得到UDP数据报,到达传输层,目的端口号为67,H6并没有对应的进程,丢弃
②服务器→客户:DHCP提供报文
③客户→服务器:DHCP请求报文
H3在4补完成之前的IP地址仍为0.0.0.0
为什么目的IP、MAC帧仍为全1? ANS:在一个大型网络内可以有多台DHCP服务器,第一步DH CP发送报文,该报文可能被多个DHCP服务器接收,DHCP以为都找他申请新IP,都同时发挥给H3 DHCP提供报文,所以H3要广而告之下我拿了哪个IP
④服务器→客户:DHCP确认报文
2.10 ICMP
2.10.1 基本概念
-
为了更有效地转发IP数据报以及提高IP数据报交付成功的机会,TCP/IP体系结构的网际层使用了网际控制报文协议(
Internet Control Message Protocol,ICMP
) -
主机或路由器使用ICMP来发送差错报告报文和询问报文
-
ICMP报文被封装在IP数据报中作为数据载荷发送
2.10.2 ICMP报文数据类型
-
差错报告报文:用来向主机或路由器报告差错情况
-
终点不可达:当路由器或主机不能交付IP数据报时,就向源点发送终点不可达报文,具体可再根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种
-
源点抑制:当路由器或主机由于拥塞而丢弃IP数据报时,就向发送该IP数据报的源点发送源点抑制报文,使源点知道应当把IP数据报的发送速率放慢
-
超时:
-
当路由器收到一个目的IP地址不是自己的IP数据报时,会将其首部中生存时间TTL字段的值减1。若结果不为0,则路由器将该数据报转发出去;若结果为0,路由器不但要丢弃该数据报,还要向发送该IP数据报的源点发送时间超过(超时)报文
-
另外,当终点在预先规定的时间内未能收到一个数据报的全部数据报分片时,就把已收到的数据报片都丢弃,也会向源点发送时间超过(超时)报文
-
-
参数问题:当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段的值发现首部在传送过程中出现了误码,就丢弃该数据报,并向发送该数据报的源点发送参数问题报文
-
改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将IP数据报发送给另外的路由器,这样可以通过更好的路由到达目的主机
-
-
以下情况不应发送ICMP差错报告报文:
-
对ICMP差错报告报文不再发送ICMP差错报告报文
-
对第一个分片的IP数据报片的所有后续数据报片都不发送ICMP差错报告报文
-
对具有多播地址的IP数据报都不发送ICMP差错报告报文
-
对具有特殊地址(例如
127.0.0.0
或0.0.0.0
)的IP数据报不发送ICMP差错报告报文。 -
询问报文:用来向主机或路由器询问情况
-
回送请求和回答:
由主机或路由器向一个特定的目的主机或路由器发出。收到此报文的主机或路由器必须给发送该报文的源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态
-
时间戳请求和回答:
用来请求某个主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32比特的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。这种询问报文用来进行时钟同步和测量时间
-
-
2.10.3. ICMP的典型应用
1. PING
分组网间探测(Packet InterNet Groper,
PING
)在命令行中使用ping命令用来测试主机或路由器之间的连通性
PING是TCP/IP体系结构的应用层直接使用网际层ICMP的一个例子,它并不使用运输层的TCP或UDP
PING应用所使用的ICMP报文类型为回送请求和回答
2. traceroute
跟踪路由应用traceroute,用于探测IP数据报从源主机到达目的主机要经过哪些路由器
在不同操作系统中,traceroute应用的命令和实现机制有所不同:
在UNIX版本中,具体命令为
traceroute
,其在运输层使用UDP协议,在网络层使用ICMP报文类型只有差错报告报文在Windows版本中,具体命令为
tracert
,其应用层直接使用网际层的ICMP协议,所使用的ICMP报文类型有回送请求和回答报文以及差错报告报文原理:设置IP数据报TTL为1,经过第一个路由器时,TTL减为0,IP数据报被丢弃,路由器向源主机发送超时差错报告报文,这样就知道了经过的第一个路由器的IP地址,以此类推依次设置TTL为2,3,4,……,直到接收到目的主机的回送请求回答报文
参考:计算机网络
相关文章:
计算机网络 4-2-2 网络层(IPv4)
2.7 网络地址转换NAT 引入端口号:IP地址端口号→一个特定的进程,(不同主机可能存在相同端口号) 网络层实现了“主机到主机”的通信。网络层在IP数据报的首部,指明源IP地址、目的IP地址 传输层实现了“端到端” &#…...
第二个简单的SpringBoot和Vue前后端全栈的todoapp案例
项目源于哔哩哔哩,按视频手敲了一下,补充上代码和一些细节。 全栈项目实践:1小时快速入门SpringBootvue3element-plus_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LH4y1w7Nd/?spm_id_from333.1387.favlist.content.click&vd_…...
探秘 Canva AI 图像生成器:重塑设计创作新范式
Canva 凭借简洁易用的界面和海量模板资源,早已成为设计师和普通用户的心头好。而 Canva AI 图像生成器的推出,更是为设计领域带来了一场深刻变革,以智能化的手段重塑了图像创作的方式与边界。 技术内核:AI 如何驱动图像生成 Can…...
栈应用:辅助站(c++)
干货 今天讲讲最大辅助栈和最小辅助栈 主栈进入元素的时候 最大辅助栈:保证新元素大于等于(辅助栈)顶的时候,再进入辅助栈这样就能保证最大辅助栈的栈顶元素 是主栈中的最大值 主栈出栈的时候 最大辅助栈:主栈出栈元素如果等于(辅助栈)的栈顶元素,再…...
AI时代的数据可视化:未来已来
你有没有想过,数据可视化在未来会变成什么样?随着人工智能(AI)的飞速发展,数据可视化已经不再是简单的图表和图形,而是一个充满无限可能的智能领域。AI时代的可视化不仅能自动解读数据,还能预测…...
常见音频主控芯片以及相关厂家总结
音频主控芯片是音频设备(如蓝牙耳机、音箱、功放等)的核心组件,负责音频信号的解码、编码、处理和传输。以下是常见的音频主控芯片及其相关厂家,按应用领域分类: 蓝牙音频芯片 主要用于无线耳机、音箱等设备࿰…...
湖仓一体架构在金融典型数据分析场景中的实践
在数字经济与金融科技深度融合的今天,数据已成为金融机构的核心战略资产。然而,传统数据架构面临着三大困局,制约着金融机构数据价值的充分释放。 一、需求驱动更多银行数据分析场景 金融机构,特别是银行业,面临着双重…...
VBA —— 学习Day5
子程序与函数 子程序:实现特定功能的程序代码块 子程序语法: [修饰符] Sub 子程序名称([参数1,参数2,参数3]) 代码块 End Sub 子程序如何调用: 1 . 子程序名 [参数1,参数2,...] 2. Cal…...
Flink 实时数据一致性与 Exactly-Once 语义保障实战
在构建企业级实时数仓的过程中,“数据一致性” 是保障指标准确性的核心能力,尤其是在金融、电商、医疗等对数据敏感度极高的场景中。Flink 作为流批一体的实时计算引擎,其内建的 Exactly-Once 语义为我们提供了强有力的保障机制。本篇将围绕如何实现端到端的数据一致性、如何…...
Java云原生到底是啥,有哪些技术
☁️ Java云原生:程序员の修仙飞升指南(附渡劫技巧) 一、修仙世界观:传统程序 vs 云原生程序 🏡 传统Java程序(老宅院) 特点:单体大瓦房、扩建要拆墙(耦合度高…...
IPM IMI111T-026H 高效风扇控制板
概述: REF-MHA50WIMI111T 是一款专为风扇驱动设计的参考开发板,搭载了英飞凌的IMI111T-026H iMOTION™智能功率模块(IPM)。这个模块集成了运动控制引擎(MCE)、三相栅极驱动器和基于IGBT的功率级,全部封装在一个紧凑的DSO22封装中。REF-MHA50…...
JavaScript基础-局部作用域
在JavaScript中,理解不同种类的作用域是掌握这门语言的关键之一。作用域决定了变量和函数的可访问性(即可见性和生命周期)。与全局作用域相对应的是局部作用域,它限制了变量和函数只能在其定义的特定范围内被访问。本文将深入探讨…...
[特殊字符]Meilisearch:AI驱动的现代搜索引擎
前言 大家好,我是MAI麦造! 上文介绍一了Manticore Search 这款轻量级的搜索引擎,这次又有了新的发现!传送门: Elasticsearch太重?它的超轻量的替代品找到了! 这是一个让我超级兴奋的AI搜索引…...
K8S Svc Port-forward 访问方式
在 Kubernetes 中,kubectl port-forward 是一种 本地与集群内资源(Pod/Service)建立临时网络隧道 的访问方式,无需暴露服务到公网,适合开发调试、临时访问等场景。以下是详细使用方法及注意事项: 1. 基础用…...
SD06_前后端分离项目部署流程(采用Nginx)
本文档详细描述了如何在Ubuntu 20.04服务器上从零开始部署Tlias前后端分离系统。Tlias系统由Spring Boot后端(tlias-web-management)和Vue前端(vue-tlias-management)组成。 目录 环境准备安装MySQL数据库部署后端项目部署前端项…...
计算机网络:家庭路由器WiFi信号的发射和手机终端接收信号原理?
WiFi路由器与手机之间的信号传输涉及多个技术层面的协作,以下是其工作原理的详细步骤: 一、数据封装与协议处理 应用层数据生成 用户操作(如浏览网页、视频播放)产生数据包,经TCP/IP协议栈逐层封装,添加IP地址(网络层)和MAC地址(数据链路层)。协议封装 数据包被封装…...
【Redis】string
文章目录 string 字符串常用命令设置和获取setgetmget & mset 计数操作incr & incrbydecr & decrbyincrbyfloat 字符串操作appendstrlengetrangesetrange string 字符串 关于 Redis 的字符串,有几点需要注意 Redis 所有的 key 的类型都是字符串类型va…...
vue3的响应式设计原理
Vue 3 的响应式设计是其核心特性之一,依赖于 Proxy 和 依赖收集机制,相比 Vue 2 的 Object.defineProperty,Vue 3 的响应式系统更加高效、灵活且易于维护。 以下是 Vue 3 响应式设计的核心原理: 一、核心机制概览 使用 Proxy 实现…...
学习黑客5 分钟深入浅出理解Linux Logs [特殊字符]
5 分钟深入浅出理解Linux Logs 📝 大家好!今天我们将探索Linux系统中的日志机制——这是系统管理和安全分析的重要组成部分。在网络安全学习特别是TryHackMe平台上的挑战中,理解和分析日志是发现入侵痕迹、追踪攻击者行为和收集证据的关键技…...
【Docker系列】docker inspect查看容器部署位置
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
journalctl使用
journalctl 可以查看很多服务的日志,比如 docker,ollama 等。 1. 查看 xx 服务的最新日志(实时滚动) sudo journalctl -u docker -f -f 参数表示 跟随(follow),会持续输出最新日志࿰…...
Satori:元动作 + 内建搜索机制,实现超级推理能力
Satori:元动作 内建搜索机制,实现超级推理能力 论文大纲一、背景:LLM 推理增强的三类方法1. 基于大规模监督微调(SFT)的推理增强2. 借助外部机制在推理时进行搜索 (RLHF / 多模型 / 工具)3. 现有局限性总结 二、Sator…...
基于语言模型的依存关系分句 和 主题变换检测(基于词频和句段得分)的 意思
🧠 一、基于语言模型的依存关系分句(Dependency-based Segmentation) ✅ 说人话: 用语言模型判断句子里的语法结构(谁依赖谁),找到合理的“断点”,把太长的句子拆成语法上更自然的小…...
计算机体系结构一些笔记
1、异构计算:CPU也像人类社会一样存在专业分工。 异构计算(Heterogeneous Computing)是指不同类型的计算单元合作完 成计算任务。每个计算单元采用不同的架构,分别擅长处理某一种类型 的计算任务。整个计算任务分解为小的单位&…...
Go语言——goflow工作流使用
一、引入依赖 这个很坑,他不允许连接带密码的redis,只能使用不带密码的redis,要带密码的话得自己改一下源代码,无语 go get github.com/s8sg/goflow二、画出我们的工作流程 三、编写代码 package mainimport ("encoding/j…...
理性地倾听与表达:检索算法的语言学改进
论文标题 Rational Retrieval Acts: Leveraging Pragmatic Reasoning to Improve Sparse Retrieval 论文地址 https://arxiv.org/pdf/2505.03676 代码地址 https://github.com/arthur-75/Rational-Retrieval-Acts 作者背景 巴黎萨克雷大学,索邦大学ÿ…...
RV1126 ROS2环境交叉编译及部署(基于官方Docker)
RV1126 ROS2环境交叉编译及部署(基于官方Docker) 0 前言1 SDK源码更新1.1 启动Docker容器1.2 更新SDK源码1.3 SDK更新问题2 ROS2编译配置3 Buildroot rootfs编译ROS2的依赖包3.1 编译问题解决4 使用Docker交叉编译ROS24.1 准备Linux(Ubuntu) PC机的依赖环境4.1.1 Ubuntu PC机…...
每日脚本学习5.10 - XOR脚本
xor运算的简介 异或就是对于二进制的数据可以 进行同0异1 简单的演示 : 结果是 这个就是异或 异或的作用 1、比较两数是否相等 2、可以进行加密 加密就是需要key 明文 :0b010110 key : 0b1010001 这个时候就能进行加密 明文 ^ key密文 还有这个加密比…...
深圳SMT贴片加工厂制造流程解析
内容概要 作为大湾区电子制造产业链的重要节点,深圳SMT贴片加工厂凭借精密的生产体系与技术创新,构建了涵盖12道核心工序的标准化流程。从PCB基板的来料检验开始,通过全自动贴片机的高精度元件定位、SPI三维锡膏检测、智能温控回流焊接等关键…...
英语六级---2019.6 卷二 仔细阅读2
文章 Officials at the White House announced a new space policy focused on managing the increasing number of satellites that companies and governments are launching into space. Space Policy Directive-3 lays out general guidelines for the United States to mi…...
【小沐学GIS】基于C++绘制二维瓦片地图2D Map(QT、OpenGL、GIS)
🍺三维数字地球系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut、GIS)第二期3【小沐学…...
Windows 系统 - Trae 内 终端 无法使用 node (重新配置 nodejs 路径)
想在 Trae 中尝试一下 mcp, 所以 Windows 系统下安装了 node.js. 安装成功后, 在 Windows 的 powershell 下可以 node -v, 但是在 Trae 的终端下输入 node -v 时, 识别提示不能识别 node 命令. 参考了 vscode 下的一种解决方式 VS Code 内终端无法使用 node 解决方案是相似的…...
AI编程: 使用Trae1小时做成的音视频工具,提取音频并识别文本
背景 在上个月,有网页咨询我怎么才能获取视频中的音频并识别成文本,我当时给他的回答是去问一下AI,让AI来给你答案。 他觉得我在敷衍他,大骂了我一顿,大家觉得我的回答对吗? 小编心里委屈,我…...
springCloud/Alibaba常用中间件之Nacos服务注册与发现
文章目录 SpringCloud Alibaba:依赖版本补充六、Nacos:服务注册与发现1、下载安装Nacos2、服务注册1. 导入依赖(这里以服务提供者为例)2. 修改配置文件和主启动类3. 创建业务类4. 测试 3.服务映射1. 导入依赖2. 修改配置文件和主启动类3. 创建业务类和RestTemplate配置类用来提…...
鸿蒙 所有API缩略图鉴
从HarmonyOS NEXT Developer Preview1(API 11)版本开始,HarmonyOS SDK以 Kit 维度提供丰富、完备的开放能力,涵盖应用框架、应用服务、系统、媒体、AI、图形在内的六大领域,共计30000个API...
互联网大厂Java求职面试:AI集成场景下的技术挑战与架构设计
标题:互联网大厂Java求职面试:AI集成场景下的技术挑战与架构设计 第一幕:向量数据库选型与性能调优 技术总监(严肃脸): 郑薪苦,我们最近在做一个基于大语言模型的企业级AI应用,需要…...
搜索与图论
文章目录 搜索与图论深度优先搜索 DFS[843. n-皇后问题 - AcWing题库](https://www.acwing.com/problem/content/845/) 宽度优先搜索 BFS[844. 走迷宫 - AcWing题库](https://www.acwing.com/problem/content/description/846/) 树与图的存储[846. 树的重心 - AcWing题库](http…...
【递归、搜索和回溯】二叉树中的深搜
个人主页 : zxctscl 专栏 【C】、 【C语言】、 【Linux】、 【数据结构】、 【算法】 如有转载请先通知 文章目录 前言1 2331. 计算布尔二叉树的值1.1 分析1.2 代码 2 129. 求根节点到叶节点数字之和2.1 分析2.2 代码 3 814. 二叉树剪枝3.1 分析3.2 代码 4 98. 验证…...
通俗的理解MFC消息机制
1. 消息是什么? 想象你家的门铃响了(比如有人按门铃、敲门、或者有快递),这些都是“消息”。 在 MFC 中,消息就是系统或用户触发的各种事件,比如鼠标点击(WM_LBUTTONDOWN)、键盘输入…...
Windows CMD通过adb检查触摸屏Linux驱动是否被编译
检查 CONFIG_TOUCHSCREEN_GT9XX 是否启用,检查内核是否编译了Goodix GT9XX系列触摸屏的驱动支持 Windows CMD.exe输入: adb shell “zcat /proc/config.gz | grep CONFIG_TOUCHSCREEN_GT9XX” 如果返回CONFIG_TOUCHSCREEN_GT9XXy,表示驱动已编…...
Java并发编程-锁(八)
文章目录 Condition的使用和实现使用add(T t) 实现等待队列await()signal()signalAll() 总结 Condition的使用和实现 我们知道,任意一个Java Object,都拥有一组监视器方法,主要包括wait()、 wait(long timeout)、notify()以及notifyAll()方法…...
idea如何快速生成测试类
点击 code -> generate -> Test...
FPGA笔试题review
今天翻网盘上的旧资料,找到了一套20年9月份在武汉某芯片公司食堂做的笔试题(我在做笔试题,旁边的人在嗦酸辣粉,也算是记忆犹新),借着这套题目,正好也可以捡一捡关于FPGA的基础知识点,算是温故而知新。答案更新中 1、名词解释 (1)FPGA、ASIC (2)CLB、LUT (3)时…...
[C++类和对象]构造函数和析构函数
类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗? 并不是,任何类在什么都不写时,编译器会自动生成以下6 个默认成员函数。 默认成员函数:用户没有显式实现,编译器会…...
Java【网络原理】(5)深入浅出HTTPS:状态码与SSL/TLS加密全解析
目录 1.前言 2.正文 2.1状态码 2.2HTTP与HTTPS的关系 2.3SSL协议 2.3.1对称加密 2.3.2非对称加密 2.3.3中间人攻击 2.3.4校验机制 2.3.4.1证书 2.3.4.2数字签名 1. 数字签名的生成过程 2. 数字签名的验证过程 2.4TLS协议(握手过程) 3.小结…...
《全球短剧正版授权通道,助力平台出海与流量变现》
正版短剧片源授权,全方位赋能您的内容运营 短剧作为短视频领域的一种重要形式,凭借其紧凑的剧情、鲜明的角色和引人入胜的叙事方式,赢得了广大观众的喜爱。 然而,在短剧市场蓬勃发展的同时,版权问题也日益凸显。为了保…...
17.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--微服务基础工具与技术--ELK
在微服务中,日志是非常重要的组成部分。它不仅可以帮助我们排查问题,还可以帮助我们分析系统的性能和使用情况。ELK(Elasticsearch、Logstash、Kibana)是一个强大的日志分析工具,可以帮助我们收集、存储和分析日志数据…...
Linux系统管理与编程16:PXE自动化安装部署centos7.9操作系统
兰生幽谷,不为莫服而不芳; 君子行义,不为莫知而止休。 0.准备 1)防火墙和SELinux systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config (很不好的…...
DAMA第10章深度解析:参考数据与主数据管理的核心要义与实践指南
引言 在数字化转型的浪潮中,数据已成为企业的核心资产。然而,数据孤岛、冗余和不一致问题严重制约了数据价值的释放。DAMA(数据管理协会)提出的参考数据(Reference Data)与主数据(Master Data&…...
Python+OpenCV打造AR/VR基础框架:从原理到实战的全链路解析
引言:重新定义数字与现实的边界 在元宇宙概念持续升温的当下,AR(增强现实)与VR(虚拟现实)技术正成为连接物理世界与数字世界的桥梁。Python凭借其丰富的计算机视觉生态(尤其是OpenCV库…...