当前位置: 首页 > news >正文

以太网帧、IP数据报图解

注:本文为 “以太网帧、IP数据报”图解相关文章合辑。

未整理去重。


以太网帧、IP数据报的图解格式(包含相关例题讲解)

Rebecca.Yan已于 2023-05-27 14:13:19 修改

一、基础知识

UDP 段、IP 数据包,以太网帧图示

通信过程中,每层协议都要加上一个数据首部(header),称为封装(Encapsulation), 如下图所示。

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层主教座数据包(datagram), 在链路层叫做帧(frame)。数据封装称帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。

第三行是以太网帧数据包的基本格式。

img

测试环境

机器名macipport
tcp_server00:0c:29:8b:37:da10.1.2.79502
tcp_client00:50:56:c0:00:0810.1.2.112345

抓包 客户端向服务端发送 'hello world’

原始数据帧

00 0c 29 8b 37 da 00 50 56 c0 00 08 08 00 # Ethernet_II 格式数据帧首部

45 00 00 33 28 5b 40 00 80 06 ba 80 0a 01 02 01 0a 01 02 07 # ip 协议头

30 39 25 1e 84 a4 e6 82 cf f2 ea 28 50 18 10 0a 7b 45 00 00 # tcp 协议头

68 65 6c 6c 6f 20 77 6f 72 6c 64 # data

以太网数据帧构成

img

Ethernet_II 格式、数据帧首部 链路层

总长度 14B
以太网帧图示

其中,以太网首部占用 14 字节、FCS(Frame Check Sequece)(帧校验码) 长 4 个字节,用于检验数据在传输过程中数据是否出现了错误,为 CRC32 校验码。

img

以太网首部占用 14 字节,首位开始是目的地址占用六个字节,其次是源地址,占用 6 个字节,然后是类型占用两个字节。以太网帧除去首部 14 字节和尾部 FCS,4 字节,(共 18 字节)剩下的中间的部分就是 IP 数据报

字段名称长度(byte)含义
D.MAC6接收方 MAC 地址,网络包接收方的 MAC 地址,在局域网中使用这一地址来传输网络包
S.MAC6网络包发送方 MAC 地址,接收方通过它来判断是谁发送了这个包
Type2使用的协议类型 TCP 通信中 IP 协议与 ARP 协议较常见
0000-05DC:IEEE802.3
0800:IP 协议
0806:ARP 协议
86DD:IPv6

以太网帧格式

目的 MAC 地址(6 字节)源 MAC 地址(6 字节)类型(2 字节)数据(45–1500 字节)CRC

1.IP 数据报

目的 MAC 地址(6B)源 MAC 地址(6B)类型 0x0800IP 数据包CRC

2.ARP 请求应答

目的 MAC 地址(6B)源 MAC 地址(6B)类型 0x0806ARP 请求应答(28B)CRC

3.RARP 请求应答

目的 MAC 地址(6B)源 MAC 地址(6B)类型 0x0835RARP 请求应答CRC

ICMP 协议:差错控制协议

ARP 协议:地址解析协议

实例

Ethernet_II 格式数据帧首部 14 bytes

00 0c 29 8b 37 da # 目标 MAC 地址 00:0c:29:8b:37:da

00 50 56 c0 00 08 # 源 MAC 地址 00:50:56:c0:00:08

08 00 # IP 协议

IP 协议数据包首部 网络层

总长度 20B+

IP 数据报格式如下图所示,IP 数据报文由首部(称为报头)和数据两部分组成。首部的前一部分是固定长度,共 20 字节(如图所示前五行为 IP 首部),是所有 IP 数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

img

实例

ip 协议头 20 字节

4 # 协议版本 ipv4

5 # ip 协议头长度 5 * 4 = 20 字节

00 # 服务类型 000-0-0-0-0-0

00 33 # ip 包总长度 hex => dec 51 字节

28 5b # ID 号

40 00 # 标志与分片偏移量 0100 0000 0000 0000 DF 位为 1 不允许分包 偏移量为 0

80 # 生存时间 dec 128

06 # 协议号 TCP 协议

ba 80 # 头部校验和

0a 01 02 01 # 发送方 ip 10.1.2.1

0a 01 02 07 # 接收方 ip 10.1.2.7

ip 协议头 头部校验和计算方法

  1. 头部校验和置 0;

  2. 对 IP 头部中的每 16bit 进行二进制求和;

  3. 如果和的高 16bit 不为 0,则将和的高 16bit 和低 16bit 反复相加,直到和的高 16bit 为 0,从而获得一个 16bit 的 值;

  4. 将该 16bit 的值取反,存入校验和字段。

TCP 协议头 传输层

图示

img

总长度 20B+
实例

tcp 协议头 20 字节

30 39 # 源端口 12345

25 1e # 目的端口 9502

84 a4 e6 82 # 序列号

cf f2 ea 28 # 确认序列号

5 # 首部长度 5 * 32 / 8 = 20 bytes

0 1 8 # 000000 保留 011000 ACK=1 PSH=1

10 0a # 窗口大小 4106

7b 45 # 校验和

00 00 # URG=0 无效

传输的数据

68 65 6c 6c 6f 20 77 6f 72 6c 64 # ascii 码

hello world

附录

每一个数据包都带有下一个数据包的编号。如果下一个数据包没有收到,那么 ACK 的编号就不会发生变化。举例来说,现在收到了 4 号包,但是没有收到 5 号包。ACK 就会记录,期待收到 5 号包。过了一段时间,5 号包收到了,那么下一轮 ACK 会更新编号。如果 5 号包还是没收到,但是收到了 6 号包或 7 号包,那么 ACK 里面的编号不会变化,总是显示 5 号包。这会导致大量重复内容的 ACK。如果发送方发现收到三个连续的重复 ACK,或者超时了还没有收到任何 ACK,就会确认丢包,即 5 号包遗失了,从而再次发送这个包。通过这种机制,TCP 保证了不会有数据包丢失。

UDP 协议

img

例题讲解

img 答案:

填空1:00-80-c8-5a-e3-88

填空2:00-60-2f-87-01-03

填空3:44

填空4:20

填空5:24

填空6:140.128.100.116

填空7:140.128.99.5

填空8:63

填空9:6

填空10:tcp

(1) Client 段和 Server 段的以太网网卡 48 位地址是 [填空 1] 和 [填空 2]

根据以太网数据帧(OSI 二层)的数据包头部,分别是目的 MAC 地址(6 字节)、源 MAC 地址(6 字节)、类型(2 字节),所以根据上图 Frame#1 帧中的前 6 个字节是 Client MAC 地址,紧接着 6 个字节是 Server 端地址。

分别是:

填空 1:00-80-c8-5a-e3-88

填空 2:00-60-2f-87-01-03

(2) Frame#1 帧中封装的 IP 分组的总长度 [填空 3] 44 B

首部长度 [填空 4] 20 B

IP 数据长度 [填空 5] 24 B

Frame1 帧总长度 58 字节,由于题干说,已通过侦差错校验,所以这个以太网帧不包含 FCS 帧(4 字节) ,所以 IP 数据报的长度应该是 Frame1 帧总长度 58 字节减去以太网帧首部 14 字节,IP 分组的长度应该是 44 字节,IP 首部长度是固定不变的 20B(记下来就行),IP 数据部分长度是 44B-20B=24B

(3) Client 段和 Server 段的 32 位 IP 地址(用点分十进制格式表示)[填空 6] 和 [填空 7]。

根据 Ip 数据包的 20 字节长度中 IP 地址的排列位置,可知源 Ip 地址(4 字节)和目的 IP 地址(4 字节)分别在 20 字节的后八个字节中。58-14-20+8=32,从 Frame#1 帧中的倒数第 32 个字节(两个 16 进制数是 1 个字节)往后数 8 个字节。

0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111

0 1 2 3 4 5 6 7 8 9 a b c d e f

IP 首部 20 个字节

58-14B(帧首部)=44 字节(IP 数据包)=20 字节(IP 首部)+24(上层数据 udp/tcp)

8c 80 63 05 # client Ip 地址 140.128.99.5

10001100 10000000 01100011 00000101

140 128 99 5

8c 80 64 74 # server IP 地址 140.128.100.116

10001100 10000000 01100100 01110100

140 128 100 116

(4) Frame#1 帧中封装的 IP 分组和生存时间值是 [填空 8] 协议字段值是 [填空 9]。# 63 6

先从 Frame#1 帧中找到生存时间值(1 个字节)对应的十六进制数,14+4+4=22,Frame#1 帧中的第 23 个字节就是 TTL 了。TTL 的十六进制数为 3f (0011 1111), 转换成十进制为 2^6-1=63

协议字段(1 字节)值的十六进制数为 06,就是十进制的 6 了。

(5) IP 分组中封装的是 [填空 10] 的数据 # tcp

由于本题建立的是 TCP 链接,所以以太网帧封装的是 TCP 段。

58-14(Frame 帧头)-20(IP 包头)=24 字节

24 字节 - 20 字节(TCP 头部长度)=4 (应用层数据),也即是 seq(4 字节),就是 TCP 三次握手中的第一次(请求建立连接的一方)


以太网数据帧详细解析 逐字节分析

Qazink 于 2020-08-25 21:18:49 发布

详细解析以太网通信数据帧

测试环境

机器名macipport
tcp_server00:0c:29:8b:37:da10.1.2.79502
tcp_client00:50:56:c0:00:0810.1.2.112345

抓包 客户端向服务端发送 'hello world’

原始数据帧

00 0c 29 8b 37 da 00 50 56 c0 00 08 08 00 # Ethernet_II 格式数据帧首部
45 00 00 33 28 5b 40 00 80 06 ba 80 0a 01 02 01 0a 01 02 07 # ip 协议头
30 39 25 1e 84 a4 e6 82 cf f2 ea 28 50 18 10 0a 7b 45 00 00 # tcp 协议头
68 65 6c 6c 6f 20 77 6f 72 6c 64 # data

以太网数据帧构成

https://xinu-note-images.oss-cn-beijing.aliyuncs.com/UTOOLS1575647451248.png

Ethernet_II 格式数据帧首部 链路层

总长度 14B

字段名称长度 (byte)含义
D.MAC6接收方 MAC 地址,网络包接收方的 MAC 地址,在局域网中使用这一地址来传输网络包
S.MAC6网络包发送方的 MAC 地址,接收方通过它来判断是谁发送了这个包
Type2使用的协议类型。
TCP 通信中 IP 协议与 ARP 协议较常见
0000-05DC:IEEE 802.3
0800 :IP 协议
0806 :ARP 协议
86DD :IPv6

实例

Ethernet_II 格式数据帧首部 14 bytes

00 0c 29 8b 37 da # 目标 MAC 地址 00:0c:29:8b:37:da
00 50 56 c0 00 08 # 源 MAC 地址 00:50:56:c0:00:08
08 00 # IP 协议

IP 协议数据包首部 网络层

总长度 20B+

字段名称长度 (bit)含义
版本号 (Version)4协议的版本一般的值为 0100(IPv4), 0110(IPv6)
头部长度(IHL)4Header Length, 描述 IP 包头的长度, 因为在 IP 包头中有变长的可选部分。
长度 = 值 * 4, 4bit 最大 ‘1111’ = 15, IP 头长度为 20 - 60 (15 * 4) 字节
服务类型(ToS)8Type of Service,服务类型 8 位 按位被如下定义 PPP DTRC0
PPP:定义包的优先级,取值越大越重要
000 普通 (Routine)
001 优先的 (Priority)
010 立即的发送 (Immediate)
011 闪电式的 (Flash)
100 比闪电还闪电式的 (Flash Override)
101 CRI/TIC/ECP (找不到这个词的翻译)
110 网间控制 (Internetwork Control)
111 网络控制 (Network Control)
D 时延:
0: 普通
1: 延迟尽量小
T 吞吐量:
0: 普通
1: 流量尽量大
R 可靠性:
0: 普通
1: 可靠性尽量大
M 传输成本:
0: 普通
1: 成本尽量小
0 最后一位被保留,恒定为 0
总长度16Total Length IP 包总长度
以字节为单位计算的 IP 包的长度 (包括头部和数据),所以 IP 包最大长度 65535 字节
ID 号16该字段和 Flag 和 Fragment Offest 字段联合使用,对较大的上层数据包进行分段(fragment)操作。
路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。
标志(Flags)3长度 3 比特。
该字段第一位不使用。
第二位是 DF (Don’t Fragment)位,DF 位设为 1 时表明路由器不能对该 上层数据包分段。如果一个上层数据包无法在不分段的情况 下进行转发,则路由器会丢弃该上层数据包并返回一个错误信息。
第三位是 MF(More Fragments)位,当路由器对一个上层数据包分段,则路由器会在除了最后一个分段的 IP 包 的包头中将 MF 位设为 1。
分片偏移量13Fragment Offest 表示该 IP 包在该组分片包中位置,接收端 靠此来组装还原 IP 包。
生存时间(TTL)8当 IP 包进行传送时,先会对该字段赋予某个特定的值。
当 IP 包经过每一个沿途的路由器的时候,每个沿途的路由器会将 IP 包的 TTL 值减少 1。
如果 TTL 减少为 0,则该 IP 包会被丢弃。
这个字段可以防止由于路由环路而导致 IP 包在网络中不停被转发。
协议号8标识了上层所使用的协议。以下是比较常用的协议号:
1 ICMP
2 IGMP
6 TCP
17 UDP
88 IGRP
89 OSPF
头部校验和16Header Checksum 用来做 IP 头部的正确性检测,但不包含数据部分。 因为每个 路由器要改变 TTL 的值,所以路由器会为每个通过的数据包重 新计算这个值。
发送方 IP 地址32Source Addresses 发送方 IP 地址。除非使用 NAT,否则 整个传输的过程中,这两个地址不会改变
接收方 IP 地址32Destination Addresses 接收方 IP 地址。除非使用 NAT,否则 整个传输的过程中,这两个地址不会改变
可选字段一般测试使用

实例

ip 协议头 20 字节

4 # 协议版本 ipv4
5 # ip 协议头长度 5 * 4 = 20 字节
00 # 服务类型 000-0-0-0-0-0
00 33 # ip 包总长度 hex => dec 51 字节
28 5b # ID 号
40 00 # 标志与分片偏移量 0100 0000 0000 0000 DF 位为 1 不允许分包 偏移量为 0
80 # 生存时间 dec 128
06 # 协议号 TCP 协议
ba 80 # 头部校验和
0a 01 02 01 # 发送方 ip 10.1.2.1
0a 01 02 07 # 接收方 ip 10.1.2.7

ip 协议头 头部校验和计算方法

  1. 头部校验和置 0;
  2. 对 IP 头部中的每 16bit 进行二进制求和;
  3. 如果和的高 16bit 不为 0,则将和的高 16bit 和低 16bit 反复相加,直到和的高 16bit 为 0,从而获得一个 16bit 的 值;
  4. 将该 16bit 的值取反,存入校验和字段。

TCP 协议头 传输层

图示

https://xinu-note-images.oss-cn-beijing.aliyuncs.com/UTOOLS1575643308334.png

总长度 20B+
字段名长度 (bit)含义
源端口号16发送网络包的程序的端口号
目的端口号16网络包的接收方程序的端口号
序列号 seq32发送的时候,TCP 协议为每个包编号(sequence number, 简称 SEQ),以便接收的一方按照顺序还原。万一发生丢包 ,也可以知道丢失的是哪一个包。
当前序列号 + 数据长度 = 下一个包的序列号
确认序列号 ack32期待要收到下一个数据包的编号,ack 与 seq 搭配确保数据的 完整性,确认号只有 ACK 位为 1 时才有效。
首部长度 (数据偏移量)4表示数据部分的起始位置,也可以认为表示头部的长度
保留6保留,未使用
控制位6该字段中的每个比特分别表示以下通信控制含义。
URG:表示紧急指针字段有效
ACK:接收数据序号字段有效,一般表示数据已被接收方接收 该位只有在连接未建立时为 0,连接建立后始终为 1
PSH:表示通过 flush 操作发送的数据,指示接收方在接收到 该报文段以后,应尽快将这个报文段交给应用程序,而不是 在缓冲区排队。
RST:强制断开连接,用于异常中断的情况
SYN:同步序号,用于建立连接过程,在连接请求中发送 SYN=1 和 ACK=0, 应答 SYN=1 和 ACK=1 FIN:用于释放连接,为 1 时表示发送方已经没有数据发送了, 即关闭本方数据流。
窗口16接收方告知发送方窗口大小(即无需等待确认可一起发送的数据量)
校验和16用来检查是否出现错误
紧急指针16只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。
选项和填充不定最常见的可选字段是最长报文大小,又称为 MSS (Maximum Segment Size),每个连接方通常都在通 信的第一个报文段(为建立连接而设置 SYN 标志为 1 的那 个段)中指明这个选项,它表示本端所能接受的最大报 文段的长度。
选项长度不一定是 32 位的整数倍,所以要 加填充位,即在这个字段中加入额外的零,以保证 TCP 头是 32 的整数倍。
数据可选

实例

tcp 协议头 20 字节

30 39 # 源端口 12345
25 1e # 目的端口 9502
84 a4 e6 82 # 序列号
cf f2 ea 28 # 确认序列号
5 # 首部长度 5 * 32 / 8 = 20 bytes
0 1 8 # 000000 保留 011000 ACK=1 PSH=1
10 0a # 窗口大小 4106
7b 45 # 校验和
00 00 # URG=0 无效

传输的数据

68 65 6c 6c 6f 20 77 6f 72 6c 64 # ascii 码
hello world

附录

每一个数据包都带有下一个数据包的编号。如果下一个数据包没有收到,那么 ACK 的编号就不会发生变化。
举例来说,现在收到了 4 号包,但是没有收到 5 号包。ACK 就会记录,期待收到 5 号包。过了一段时间,5 号包收到了,那么下一轮 ACK 会更新编号。
如果 5 号包还是没收到,但是收到了 6 号包或 7 号包,那么 ACK 里面的编号不会变化,总是显示 5 号包。这会导致大量重复内容的 ACK。
如果发送方发现收到三个连续的重复 ACK,或者超时了还没有收到任何 ACK,就会确认丢包,即 5 号包遗失了,从而再次发送这个包。通过这种机制,TCP 保证了不会有数据包丢失。

UDP 协议

https://xinu-note-images.oss-cn-beijing.aliyuncs.com/UTOOLS1575899141973.png

Qazink


via:

  • 以太网帧、IP数据报的图解格式(包含相关例题讲解)_以太网帧格式-CSDN博客 Rebecca.Yan 已于 2023-05-27 14:13:19 修改
    https://blog.csdn.net/weixin_45440484/article/details/129667838

  • 以太网数据帧详细解析 逐字节分析_以太网帧包括哪些字段?-CSDN博客 Qazink 于 2020-08-25 21:18:49 发布
    https://blog.csdn.net/weixin_43197795/article/details/108229234

相关文章:

以太网帧、IP数据报图解

注:本文为 “以太网帧、IP数据报”图解相关文章合辑。 未整理去重。 以太网帧、IP数据报的图解格式(包含相关例题讲解) Rebecca.Yan已于 2023-05-27 14:13:19 修改 一、基础知识 UDP 段、IP 数据包,以太网帧图示 通信过程中&…...

01.大模型起源与发展

知识点 注意力机制(Attention)的主要用途是什么? 选择重要的信息并忽略不相关的信息 Transformer 模型是基于什么理论构建的? C. 注意力机制(Attention) GPT 和 BERT 的主要区别是什么? C. GPT…...

leetcode刷题日记03——javascript

题目3: 回文数https://leetcode.cn/problems/palindrome-number/ 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向…...

vue横向滚动日期选择器组件

vue横向滚动日期选择器组件 组件使用到了element-plus组件库和dayjs库,使用前先保证项目中已经下载导入 主要功能:选择日期,点击日期可以让此日期滚动到视图中间,左滑右滑同理,支持跳转至任意日期,支持自…...

【大模型】大模型项目选择 RAGvs微调?

RAG 输入问题,在知识库匹配知识,构建提示词:基于{知识}回答{问题} 微调 用知识问答对重新训练大模型权重,输入问题到调整后的大模型 如何选择 如果业务要求较高,RAG和微调可以一起使用 1-动态数据 选择RAG 原因&a…...

2024年12月CCF-GESP编程能力等级认证Python编程一级真题解析

本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 2024年10月8日,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰霍普菲尔德(John J. Hopfield)和杰弗里辛顿(Geof…...

【机器学习】元学习(Meta-learning)

云边有个稻草人-CSDN博客 目录 引言 一、元学习的基本概念 1.1 什么是元学习? 1.2 元学习的与少样本学习的关系 二、元学习的核心问题与挑战 2.1 核心问题 2.2 挑战 三、元学习的常见方法 3.1 基于优化的元学习 3.1.1 MAML(Model-Agnostic Meta…...

详解Redis的String类型及相关命令

目录 SET GET MGET MSET SETNX SET和SETNX和SETXX对比 INCR INCRBY DECR DECRBY INCRBYFLOAT APPEND GETRANGE SETRANGE STRLEN 内部编码 SET 将 string 类型的 value 设置到 key 中。如果 key 之前存在,则覆盖,⽆论原来的数据类型是什么…...

android RadioButton + ViewPager+fragment

RadioGroup viewpage fragment 组合显示导航栏 1、首先主界面的布局控件就是RadioGroup viewpage <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools…...

给机器装上“脑子”—— 一文带你玩转机器学习

目录 一、引言&#xff1a;AI浪潮中的明星——机器学习 二、机器学习的定义与概念 1. 机器学习与传统编程的区别 2. 机器学习的主要任务类型 3. 机器学习的重要组成部分 三、机器学习的工作原理&#xff1a;从数据到模型的魔法之旅 1. 数据收集与预处理——数据是机器的…...

论文笔记:是什么让多模态学习变得困难?

整理了What Makes Training Multi-modal Classification Networks Hard? 论文的阅读笔记 背景方法OGR基于最小化OGR的多监督信号混合在实践中的应用 实验 背景 直观上&#xff0c;多模态网络接收更多的信息&#xff0c;因此它应该匹配或优于其单峰网络。然而&#xff0c;最好的…...

ChatGPT Search开放:实时多模态搜索新体验

点击访问 chatTools 免费体验GPT最新模型&#xff0c;包括o1推理模型、GPT4o、Claude、Gemini等模型&#xff01; ChatGPT Search&#xff1a;功能亮点解析 本次更新的ChatGPT Search带来了多项令人瞩目的功能&#xff0c;使其在搜索引擎市场中更具竞争力。 1. 高级语音模式&…...

Centos7.9 离线安装docker

实验环境&#xff1a; [root192 ~]# cat /etc/system-release CentOS Linux release 7.9.2009 (Core)下载二进制压缩包 a. 官网下载地址&#xff1a; https://download.docker.com/linux/static/stable/x86_64/b. 阿里云下载地址 https://mirrors.aliyun.com/docker-ce/lin…...

C语言函数在调用过程中具体是怎么和栈互动的?

从栈开始的一场C语言探险记 —— C语言函数是如何与栈"共舞"的。 栈的舞步解析 通过一个简单的例子来看看这支"舞蹈"&#xff1a; int add(int a, int b) {int result a b;return result; }int main() {int x 10;int y 20;int sum add(x, y);retur…...

【Java中常见的异常及其处理方式】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 字符串修改的实现——StringBuilder和StringBuffer异常常见异常①算数异常②数组越界异常③空指针异…...

如何更新项目中的 npm 或 Yarn 依赖包至最新版本

要升级 package.json 文件中列出的包&#xff0c;你可以使用 npm&#xff08;Node Package Manager&#xff09;或 yarn。以下是两种工具的命令来更新你的依赖项&#xff1a; 使用 npm 更新所有包到最新版本 npm update如果你想将所有依赖项更新到其各自最新的大版本&#xf…...

SpringBoot3整合FastJSON2如何配置configureMessageConverters

在 Spring Boot 3 中整合 FastJSON 2 主要涉及到以下几个步骤&#xff0c;包括添加依赖、配置 FastJSON 作为 JSON 处理器等。下面是详细的步骤&#xff1a; 1. 添加依赖 首先&#xff0c;你需要在你的 pom.xml 文件中添加 FastJSON 2 的依赖。以下是 Maven 依赖的示例&#…...

《Vue3实战教程》2:Vue3快速上手

如果您有疑问&#xff0c;请观看视频教程《Vue3实战教程》 快速上手​ 线上尝试 Vue​ 想要快速体验 Vue&#xff0c;你可以直接试试我们的演练场。 如果你更喜欢不用任何构建的原始 HTML&#xff0c;可以使用 JSFiddle 入门。 如果你已经比较熟悉 Node.js 和构建工具等概念…...

ubuntu 24.04.1安装FTP流程

1、安装vsftpd&#xff1a; sudo apt update sudo apt install vsftpd 2、安装后重启查看vsftpd状态 sudo systemctl status vsftpd 输出如下所示&#xff0c;表明vsftpd服务处于活动状态并正在运行&#xff1a; * vsftpd.service - vsftpd FTP server Loaded: loaded (/…...

多功能护照阅读器港澳通行证阅读机RS232串口主动输出协议,支持和单片机/Linux对接使用

此护照阅读器支持护照、电子芯片护照、港澳通行证、台湾通行证&#xff0c;和串口的被动的方式不一样。此护照阅读器通电后&#xff0c;自动读卡&#xff0c;串口输出&#xff0c;软件只需要去串口监听数据即可&#xff0c;例如用串口助手就可以收到读卡信息。 非常适用于单片…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...