网络学习:9个计算机的“网络层”知识点
目录
一、IP 地址
1.1 分类表示法:
1.1.1 分类表示地址的其他说明
1.2 无分类编址 CIDR
二、IP 数据报文格式
Q: IP 报文里有什么?可以不按顺序或者字节来讲一讲
三、 路由概念
3.1 路由表
3.2 路由网络匹配
3.3 ARP 解析
3.4 RARP 逆地址解析协议
四、ICMP 协议
五、DHCP 协议
六、路由表的最优下一跳地址如何计算?
6.1 RIP 协议
6.2 OSPF 协议
6.3 BGP 协议
Q: RIP 协议下路由表什么时候更新?
Q: 路由中毒是什么?
Q: 收到中毒路由的路由器会怎么做?
七、多播
7.1 IGMP 协议
7.2 MOSPF 多播路由选择协议
八、其他网络层概念
8.1 VPN
8.2 NAT
8.3 移动 IP
九、常见网络层命令
一、IP 地址
1.1 分类表示法:
分类表示法已经不常用了。
-
A 类地址:
格式为
1 [7 位网络号][24 位主机号]
网络号全 0 指本网络
网络号全 1 用于环回地址(127.0.0.1)
主机号全 0 时指本住机所在网络
全 1 时指本网络所有主机(广播地址)
因此 A 类地址实际可选范围为 1.x.x.x ~ 126.x.x.x -
B 类地址
格式为
10 [14 位网络号][16 位主机号]
网络号不可全 0,但可以全 1
范围为 128.x.x.x~191.x.x.x -
C 类地址
格式为
110 [21 位网络号][8 位主机号]
网络号不可全 0
范围为 192.x.x.x~223.x.x.x -
D 类地址(多播地址)
格式为
1110 [28 位多播地址]
范围为 224.x.x.x~239.x.x.x
因此看到 224 以上的 ip 要注意 -
E 类地址
格式为 11110 [保留]
用于实验用,因此看到 240 以上的认定不是正常节点 ip
1.1.1 分类表示地址的其他说明
-
网络号全 0,但主机号非全 0 的某个 ip 就是指本网络的某个主机
-
网络号不为全 1,但主机号为 1 的 ip,则指某个网络的广播地址
-
全 0,指本网络的本主机
-
全 1,指本网络的广播地址
-
环回地址,指 127.0.0.1,在同一台主机上进行网络传输
-
私有地址,指不会参与路由器转发的地址,, 只会参与本局域网,发给本局域网的交换机:
A 类: 10.0.0.0-10.25.255.255
B 类: 172.16.0.0-172.31.0.0
C 类: 192.168.0.0-192.168.255.255
1.2 无分类编址 CIDR
Classless Inter-Domain Routing 无类型域间选路
-
CIDR 将路由集中起来,使一个 IP 地址代表主要骨干提供商服务的几千个 IP 地址,从而减轻 Internet 路由器的负担。
-
该编址用于子网划分,子网号和上面提到的网络号是不同的。
-
IP 地址 ::= {<网络号>, < 子网号 >, < 主机号 >}
CIDR 有三种编址方式:
-
128.14.35.7/20 , 完整 ip 加子网位数
-
10.0.0.0/10 -> 10/10, 可省略末尾的 0
-
00010100*, 即用星号代替子网后的主机号
对于 CIDR 编址:
子网号的全 0 和全 1 没有特殊含义,但不可设置成全 0 或者全 1。
主机号的全 0 指本网络, 全 1 指广播。(网络号仍然遵从 ABCD 地址的规则)
-
子网掩码:
值 1 的位置指该 ip 中该位置是网络号和子网号区域
值 0 的位置指该 ip 中该位置是主机号区域。
例子:111111100000000…, 那么前面 8 个 1 就是网络号 + 子网号,后面都代表了主机号 -
路由寻址时,一般先比较网络号,再比较子网号,再比较主机。
子网掩码可以简化先比网络再比子网的过程。
二、IP 数据报文格式
IP 报文的首部至少有 20 个字节(160 位),首部如下:

上面可以看到 IP 报文的以下限制:
-
首部长度字段可以看出首部长度最多可以位 60 字节,所以任选项最多 40 字节
-
报文总长度最大为 65535, 但是由于 MTU 的限制(链路层防冲突机制导致的),一般都要做分片, 分片后就会用上分片标识和片偏移了。
Q: IP 报文里有什么?可以不按顺序或者字节来讲一讲
-
首先要知道报文多长, 首部长度 + 报文长度
-
为了校验首部,还需要校验首部和
-
很重要的源 ip 目的 ip
那么如何确定 ip 类型?这就需要 ipv 版本,来确认是 ip4 还是 ip6。 -
ip 支持分片,那么就需要
分片 id、是否是最后分片标记、分片偏移 -
协议类型(icmp、igmp)
-
TTL 生存
-
其他任选项(40 字节)
三、 路由概念
-
路由器可分隔广播域,指的是不同网络号的地址,路由器不会转发广播报文
Hub 集线器在同一个冲突域通信无法分割;交换机在同一个广播域通信,可分割冲突域;路由器实现不同广播域间通信,可分隔广播域。
-
IP 报文在传输中不会被改变,但是链路层报文的 mac 地址会不断变化。
-
当 2 个主机在不同的子网时,必须要借助路由才能通信
3.1 路由表
假设某个路由器在 N1 网络,他的路由表如下:

-
特定 IP 地址的子网掩码为全 1,所以一般都是 x.x.x.x/32
-
DNS 服务器一般会配置在路由表中的特定 IP 地址
-
未知网络在路由表里的目的网络被写为 0.0.0.0, 如果么有,则就是未设置默认路由
-
路由器不会转发私有地址。
-
距离指的是跨越路由器的数量,而不是实际长度单位
3.2 路由网络匹配
如果路由表中的目的网络由很多,怎么确定 IP 和路由表中的目的网络是匹配的?
- 使用最长前缀匹配, 即前缀匹配得最多的就是目的网络。
- 优化算法可用二叉线索树来确认最长前缀。
3.3 ARP 解析
全称 Address Resolution Protocol,地址解析协议。
从主机发给路由, 或者路由发给路由时,底层还是得封装一层 mac 地址然后往下交给交换机。
那么 ip 和 mac 地址的对应关系, 是怎么得知的?
答案就是 ARP 协议
本质就是当 mac 缓存表里没有 ip 和 mac 的对应关系时, 主机或者路由会广播 ARP 报文, 对应 ip 方向的交换机会把报文发送回来,这时候就直到 mac 地址和 ip 的对饮关系了。
-
arp -a 可以检查 ARP 告诉缓存
-
ARP 缓存有超时时间
-
目的主机不存在时,会反复发送,有个超期期限的存在。
-
主机发送 ARP 查找自己的 Mac 地址称为 “免费 ARP"
-
发送给某 1 主机的 arp 请求被中间路由器接收了,则称为 “ARP 代理”, 发送者不管不管你是中间路由还是目的 ip 主机,只知道这个 ip 需要发给这个 mac。
3.4 RARP 逆地址解析协议
由 mac 地址反取 ip,因为 ip 不存在,无法直接转给给路由。所以会比 ARP 难。
过程:
- 将源设备和目标设备的 MAC 地址字段都设为发送者的 MAC 地址和 IP 地址,发送主机发送一个本地的 RARP 广播,能够到达网络上的所有设备,在此广播包中,声明自己的 MAC 地址并且请求任何收到此请求的 RARP 服务器分配一个 IP 地址;
- 本地网段上的 RARP 服务器收到此请求后,检查其 RARP 列表,查找该 MAC 地址对应的 IP 地址;
- 如果存在,RARP 服务器就给源主机发送一个响应数据包并将此 IP 地址提供给对方主机使用;如果不存在,RARP 服务器对此不做任何的响应;
- 源主机收到从 RARP 服务器的响应信息,就利用得到的 IP 地址进行通讯;如果一直没有收到 RARP 服务器的响应信息,表示初始化失败。
四、ICMP 协议
全称 Internet control message protocl,网络控制报文协议
他会包装在 IP 的数据报文中,并把首部的协议类型改成 ICMP 那个数字。
首部总共 8 个字节,分别为
- 2 字节的 ICMP 类型
- 2 字节的 ICMP 报文代码(类似错误码)
- 4 字节的校验和
后面就是数据部分了。
常见的 2 种用途:
1、发送网络层之间的差错报告,例如:
-
-
源点抑制 —— 发送网络拥塞
-
终点不可达 —— 无法找到对应 ip 交付地点
-
时间超时 —— 报文种的 TTL 降为 0,或者分片一直没收集完
-
参数错误 —— 首部中字段有错
-
路由改变(重定向)—— 主机把数据发给了路由器 R2,但是路由器 R2 发现主机自己本来就可以直达了,于是发给主机该消息,告诉他你要更新路由表了。
-
差错报告有以下其他特点:
-
ICMP 自身出错时,不会再发 ICMP 差错报文
-
如果是报文分配后发生错误,则只会发 1 次,而不会每个分片发一次
-
不针对多播,不针对 127.0.0.1、0.0.0.0 等特殊的地址发送差错报文,不可广播(避免广播风暴)
-
2、发送一些询问报文,例如:
-
-
回送请求和应答 —— 例如 ping 命令就是借助 ICMP
-
超时报文 ——traceroute 就是用这个,把 TTL 从 1 慢慢增加,发好多份,通过 TTL 为 0 时的差错报告,定位跟踪路上有哪些路由
-
时间戳请求 —— 同步时间
-
五、DHCP 协议
全称 Dynamic Host Configuration Protocol, 动态主机配置协议
当某个局域网内新增了一台主机,这个主机的 ip 是怎么生成的呢?
这就会用到 DHCP 协议
主机所在网内会有一台 DCHP 服务器。
当新主机加入时,发生如下之事:
-
主机先 “广播” 自己,告诉大家 “我来了,谁给我一个 IP 地址”(他一开始不知道 DHCP 在哪)
-
DCHP 服务器收到后,会分配一个 IP 地址,但因为不知道发给谁,所以也只能 “广播”,告诉大家 “我这有个 ip,刚才谁要的,自己来领一下”
-
主机收到 DHCP 广播的报文后,就能知道自己的 ip 和 dhcp 服务器位置了。于是给 DCHP 服务器发送请求,告诉他 “我收到了你发来的 ip 了”
-
DCHP 收到后,确认了他的信息,并加入到 DHCP 本地的数据库中,后面分配新 ip 时就会排除掉这个 ip 了。
有以下几个注意点:
-
如果有多个主机同时应答了 DHCP 的广播, 则会选择最先到达的做分配。
-
分配的 ip 是临时的
DCHP 可以认为是基于 UDP 的应用层协议,但本质是为了寻求新主机的动态 ip 地址。
六、路由表的最优下一跳地址如何计算?
可以理解为 在一个复杂的拓扑图下, 怎么选择最优的一个路由做目的地址的下一跳。
有 2 种方式:
6.1 RIP 协议
全称 Routing Information Protocol, 路由信息协议
是一种动态路由信息协议。
-
路由只会和相邻的其他路由交换信息。
-
交换的是路由表的信息,关键在于目的网络和距离
-
之前路由表里知道了表里会存储 到目的网络的距离即跨越路由数量,那么只要拿到周边所有路由的距离表, 看下哪个方向最小, 然后把下一跳地址选为最小的那个路由方向即可。
-
使用 UDP 广播,把自己的路由报文发给周边的其他路由。
-
当路径不可达时,会导致 2 个路由之间不断叠加该目的地址的距离,直到 16 时,会被设置成不可达。
所以 RIP 本质也是基于 UDP 的应用层协议,但是目的是为了网络层的最优路由选取。
6.2 OSPF 协议
open shortest path first,开放最短路径优先协议
指路由器里有全网的拓扑结构,使用最短路算法计算最优路由,因此路由会把自己的连接情况通过 OSPF 协议发给所有其他路由,以建立拓扑图。这个是属于 IP 层的协议,不借助 UDP。
RIP 和 OSPF 是自治网络系统 AS 里的选路措施。
AS 里的选路措施被称作 IGP(内部网关协议)
1 个 AS 里只会有一种选路措施。
而跨自治系统的协议叫 EGP(外部网关协议),通常使用 BGP 协议。
6.3 BGP 协议
Border Gateway Protocol 边界网关协议
-
每个 AS 都知道自己为了到达网络 N,需要经过哪些 AS(相当于知道以 AS 为节点的拓扑图)
-
每个 AS 都有一个 BGP 发言人,会与其他 BGP 网络之间交换自身的 AS 拓扑信息,从而构建全局连通图
-
使用 TCP 179 端口工作
Q: RIP 协议下路由表什么时候更新?
-
正常情况下,路由器会基于更新计时器每 30s 将路由表发送给邻居路由器,而触发更新是立刻发送路由更新信息
-
触发更新就是当检测到网络拓扑发生变动时,路由器会立即发送一个更新信息给邻居路由器,并依次产生触发更新通知它们的邻居路由器,此过程就叫触发更新
Q: 路由中毒是什么?
A: 路由中毒是指在路由信息在路由表中失效时,先将度量值变为无穷大的数,而不是马上从路由表中删掉这条路由信息。 然后再将中毒路由信息发布出去,当相邻的路由器收到该中毒路由就可以通过其度量值是 16,说明该路由是无效的。
因为 RIP 协议中的度量值其实就是跳数,而 RIP 协议的跳数最大是 15,大于 15 的目的地被认为是不可达,所以当其度量值为 16,就表示这是一个无效路由,这就是所谓的路由中毒,这个数字在限制了网络大小的同时也防止了一个叫做 “记数到无穷大” 的问题。
Q: 收到中毒路由的路由器会怎么做?
A: 收到中毒路由信息的相邻的路由器会发送一个毒性逆转的信息,表示已经收到中毒路由信息。
那么为什么收到中毒路由的路由器为什么要回复一个毒性逆转的信息?这是因为如果不回复的话,那么发送中毒路由的路由器就会一直以广播的形式发送中毒路由,直到相邻的路由器收到并回复一个毒性逆转的信息。
七、多播
UDP 的时候会用到多播
7.1 IGMP 协议
internet group message protol, 网络组管理协议
负责收集和解释一个网络中的组成员信息
IGMP 协议应用于路由器
-
某主机加入新的多播组时,发送报文,并转发多播的关系给其他相邻主机或者路由
-
会周期性探寻,确认自身这个主机是否还在多播组内
-
无法直到总成员数
-
IGMP 属于网络层的协议
7.2 MOSPF 多播路由选择协议
多播开放最短通路优先(Multicast Open Shortest PathFirst,MOSPF)协议是 OSPF 协议的扩展,使用多播链路状态路由选择来创建源点基准树。
这个协议需要一个新的链路状态更新分组,把主机的单播地址和组地址或主机负责的地址联系起来,这个分组就称为组成员关系 LSA。
此外,这个数可以保存在高速缓存中,以便以后有同样源点 / 组地址对的分组可以使用它。
多播的其他更详细概念见链接
八、其他网络层概念
8.1 VPN
需要建立专用通道
当专用 A 试图向专用 B 通信时,会先加密,再通过加密隧道发到对方内网,具体报文内容不会和互联网直接接触。
8.2 NAT
内外网转换用的一个东西, 公网 ip 和内网 ip 互转。
8.3 移动 IP
ip 从子网 A 变道子网 B。
- 在本网时,按 TCP 通信
- 要漫游到外网时, 注册一个转交地址
- 本地代理接收地址,开启隧道
- 数据发送到外网
- 在外网时,使用代理 ip 发送数据
- 回到本地时,会注册并转交之前的地址
九、常见网络层命令
-
ifconfig 可显示本机的 IP 地址
-
netstat -r可显示路由表
-
tcpdump 可显示硬件地址
-
ping 测试另一个主机是否可达
-
traceroute 利用 ICMP 跟踪途径的所有路由
-
route 命令可查看和修改路由表
-
gated 可查看 IGP(内部网关协议)和 EGP(外部网关协)
相关文章:
网络学习:9个计算机的“网络层”知识点
目录 一、IP 地址 1.1 分类表示法: 1.1.1 分类表示地址的其他说明 1.2 无分类编址 CIDR 二、IP 数据报文格式 Q: IP 报文里有什么?可以不按顺序或者字节来讲一讲 三、 路由概念 3.1 路由表 3.2 路由网络匹配 3.3 ARP 解析 3.4 RARP 逆地址解析…...
web项目的搭建
使用Webstorm并创建Next.js文件 1、配置nodejs环境、安装webstorm【配置node.js可以使用nvm去管理nodejs的版本】 2、需要破解webstorm,可能会导致原本的idea失效,注册码过期 3、taobao的npm过期,导致npm is sass执行不成功,需…...
C++for语句
1.求平均年龄 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位 输入 第1行有一个整数n(1 <= n <=100),表示学生的人数;其后n行每行有1个整数,表示每个学生的年龄,取值为15~25 输出 一行,包含一个浮点数,为所求的平…...
最新基于R语言lavaan结构方程模型(SEM)技术
原文链接:最新基于R语言lavaan结构方程模型(SEM)技术https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247596681&idx4&sn08753dd4d3e7bc492d750c0f06bba1b2&chksmfa823b6ecdf5b278ca0b94213391b5a222d1776743609cd3d14…...
【网络安全】-数字证书
数字证书 数字证书是互联网通讯中用于标志通讯各方身份信息的一串数字或数据,它为网络应用提供了一种验证通信实体身份的方式。具体来说,数字证书是由权威的证书授权(CA)中心签发的,包含公开密钥拥有者信息以及公开密…...
【C++ 】stack 和 queue
1. 标准库中的stack stack 的介绍: 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作 2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其…...
html--彩虹马
文章目录 htmljscss 效果 html <!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>Rainbow Space Unicorn</title> <link rel"stylesheet" href"css/style.css"> &l…...
如何将应用一键部署至多个环境?丨Walrus教程
在 Walrus 平台上,运维团队在资源定义(Resource Definition)中声明提供的资源类型,通过设置匹配规则,将不同的资源部署模板应用到不同类型的环境、项目等。与此同时,研发人员无需关注底层具体实现方式&…...
Redis的一些问题,解决并发的
项目通布隆过滤器: 布隆过滤器: 布隆过滤器是一种空间效率非常高的数据结构,用于快速判断一个元素是否可能存在于一个集合中。它由一个位数组(通常是长度为 m 的比特数组)和 k 个不同的哈希函数组成。当一个元素被加入…...
郭炜老师mooc第十一章数据分析和展示(numpy,pandas, matplotlib)
多维数组库numpy numpy创建数组的常用函数 # numpy数组import numpy as np #以后numpy简写为np print(np.array([1,2,3])) #>>[1 2 3] print(np.arange(1,9,2)) #>>[1 3 5 7] 不包括9 print(np.linspace(1,10,4)) #>>[ 1. 4. 7. 10.] # linespace(x,y,n)&…...
Redis主从架构和管道Lua(一)
Redis主从架构 架构 Redis主从工作原理 如果为master配置了一个slave,不管这个slave是否是第一次连接上Master,它都会发送一个PSYNC命令给master请求复制数据。master受到PSYNC命令,会在后台进行数据持久化通过bgsave生成最新的 RDB快照文件,持久化期间…...
GTH手册学习注解
CPLL的动态配置 终于看到有这个复位功能了 QPLL SWITCHing需要复位 器件级RESET没发现有管脚引出来 两种复位方式,对应全复位和器件级复位 对应的复位功能管脚 改那个2分频的寄存器说明段,复位是自动发生的?说明可能起效了,但是分…...
html5cssjs代码 002 50以内的加法算式
html5&css&js代码 002 一些基本概念 50以内的加法算式 一、代码二、解释 50以内的加法算式。 一、代码 <!DOCTYPE html> <html lang"en"> <head><title>50以内的加法算式</title><meta charset"UTF-8"><m…...
[React 进阶系列] React Context 案例学习:使用 TS 及 HOC 封装 Context
[React 进阶系列] React Context 案例学习:使用 TS 及 HOC 封装 Context 具体 context 的实现在这里:[React 进阶系列] React Context 案例学习:子组件内更新父组件的状态。 根据项目经验是这样的,自从换了 TS 之后,…...
网络编程:网络编程基础
一、网络发展 1.TCP/IP两个协议阶段 TCP/IP协议已分成了两个不同的协议: 用来检测网络传输中差错的传输控制协议TCP 专门负责对不同网络进行2互联的互联网协议IP 2.网络体系结构 OSI体系口诀:物链网输会示用 2.1网络体系结构概念 每一层都有自己独…...
力扣热题100_矩阵_73_矩阵置零
文章目录 题目链接解题思路解题代码 题目链接 73.矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&…...
C++程序设计-第四/五章 函数和类和对象【期末复习|考研复习】
前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下C程序设计中的重点概念,以供大家期末复习和考研复习的时候使用。 C程序设计系列文章传送门: 第一章 面向对象基础 第四/五章 函数和类和对象 第六/七/八章 运算符重载/包含与继承/虚函…...
C#快速入门基础
本篇文章从最基础的C#编程开始学习,经过非常优秀的面向对象编程思想和方法的学习,为C#编程打下基础。 第 01 章 C#开发环境之VS使用和.NET平台基础 1.1 Visual Studio 开发环境 1.1.1 硬件环境 i5CPUi5CPU(建议 4核 4线程或以上 ࿰…...
UnityShader常用算法笔记(颜色叠加混合、RGB-HSV-HSL的转换、重映射、UV序列帧动画采样等,持续更新中)
一.颜色叠加混合 1.Blend混合 // 正常,透明度混合 Normal Blend SrcAlpha OneMinusSrcAlpha //柔和叠加 Soft Additive Blend OneMinusDstColor One //正片叠底 相乘 Multiply Blend DstColor Zero //两倍叠加 相加 2x Multiply Blend DstColor SrcColor //变暗…...
Vue3调用钉钉api,内嵌H5微应用单点登录对接
钉钉内嵌H5微应用单点登录对接 https://open.dingtalk.com/document/isvapp/obtain-the-userid-of-a-user-by-using-the-log-free 前端需要的代码 1、安装 dingtalk-jsapi npm install dingtalk-jsapi2、在所需页面引入 import * as dd from dingtalk-jsapi; // 引入钉钉a…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
