网络原理OSI

news2024/12/23 16:21:57

目录

一、应用层

1、功能

2、协议的分类

二、UDP原理(传输层)

1、协议端格式

2、格式解释

三、TCP原理(传输层)

1、协议端格式

2、长度

3、可靠传输

(1)确认应答

(2)超时重传

(3)连接管理

(4)滑动窗口

(5)流量控制

(6)拥塞控制

(7)延时应答

(8)捎带应答

(9)面向字节流

(10)tcp异常情况处理

四、IP协议(网络层)

1、网络层的功能

2、协议端格式

3、格式解释

4、地址管理

5、网段划分

6、路由选择

五、以太网协议(数据链路层)

1、以太网数据帧格式

2、格式解释

3、区别IP地址和MAC地址


一、应用层

1、功能

①根据需要,明确要传输什么信息;②约定好协议,规定信息按什么格式组织。

2、协议的分类

eg:点外卖时,发送请求包括用户ID和位置信息。

用户ID:001;经度:35;纬度:87;

①自定义协议

程序员规定按照用户ID,经度,纬度顺序,中间逗号隔开的格式组织信息

请求:001,35,87

优点:格式灵活,随意更改;

缺点:可读性不高。

②xml(通过标签组织数据)

请求:

<request>
    <useID>001</useID>
    <position>35,87</position>
</request>

优点:可读性高;

缺点:标签写起来繁琐,传输时会占用许多网络宽带。

③json

{
  useID:"001",
  position:"35,87"
}

使用{}把键值对包裹起来。键值对之间用“,”分割,键与值之间用“:”分割,键是String类型,值可以是数字、字符串、json、数组等类型。

优点:可读性高;

缺点:传输时会占用许多网络宽带。

④protobuffer

使用二进制来传输数据。

优点:传输效率高,占用网络宽带最低;

缺点:可读性不高。

二、UDP原理(传输层)

1、协议端格式

2、格式解释

(1)16位源端口号:2个字节,发送方程序端口号;

(2)16位目的端口号:2个字节,接收方程序端口号。

(3)16位UDP长度:表示整个数据报的最大长度(报头+数据),为0-65535,即64kb。若发送的数据报长度超过64kb,则需在应用层手动分包,多次发送,在接收端手动拼接。

(4)16位UDP检验和:

①检验和:在数据传输中,由于磁场、电场等外部环境的影响,导致数据传输出错,检验和就是检查数据是否传输出错。本质上是一个字符串,体积比原始数据小,但是由原始数据生成的。原始数据相同,得到的检验和一定相同;检验和相同,原始数据大概率相同。

②基于检验和完成数据检验:

发送方整理好数据(data1),通过一定算法计算出检验和(checksum1);

发送方将data1和checksum1通过网络发送出去;

接收方收到数据(data2,可能和data1不一样)和检验和checksum1;

接收方根据data2通过一样算法计算出检验和checksum2;特别

对比checksum1和checksum2,若不同,则原始数据肯定不同;若相同,则原始数据大概率相同。

③计算检验和:

UDP使用的CRC算法(循环冗余算法),把当前要计算检验和的数据,每个字节都进行累加,把结果保存到两个字节的变量中,累加过程溢出也没影响。但这种算法也不是靠谱的。

md5算法:一系列公式,完成md5的计算。

特点:无论原始数据多长,计算得到的md5都是固定长度;原始数据中,只要一个字节不同,md5差异也会很大;不可逆,给一个原始数据可以计算出md5,但已知md5计算出原始数据难以实现。

三、TCP原理(传输层)

1、协议端格式

2、长度

(1)报头长度:最短20字节(没有选项),最长60字节

(2)报头+数据长度:可变,当长度不够用时,可使用保留位扩充。

3、可靠传输
(1)确认应答

①概念:发送端将数据报发送给接收端,接收端收到数据后会向发送端发送一个回应报文(acknowledge,ack)发送端接收到回应报文后就知道自己发送成功了。

②如何保证数据与回应报文对应上?如何解决数据后发先至的情况?

上述发送数据时,第一个载荷数据的第一个字节为1,就会在报文序号中填1(载荷数据第一个字节的序号),长度为1000字节,则最后一个是1000,但不会在序号中记录。确认序号是对应的应答报文的,是对应载荷数据的最后一个序号+1,意思是确认序号之前的数据都已成功收到。如果数据出现后发先至的情况,接收端可以根据数据包的序号字段在接收缓存区进行排序,确保数据包按照正确的顺序进行处理。

③怎样区分是业务数据还是应答报文?

若传输的报文是应答报文,则在标志位ack位为1,表示传输的报文是应答报文,若为0,则为普通业务数据报文。

(2)超时重传

①概念

确认应答是一个理想情况,但若传输过程中出现丢包情况,发送端未收到ack,此时就会出现超时重传。

②丢包

在传输数据时,若数据包太多,会在路由器/交换机上出现堵塞情况,此时路由器/交换机不会保存这些挤压的数据,而是直接放弃这些数据,就会出现“丢包”情况。

③不同丢包情况

要发送的数据丢了:

返回的应答报文丢了:

④重传

发送端无法区分哪种情况导致ack未送达,在规定等待时间内,只要没有收到ack,发送端都会重新发送数据。初始等待时间是可配置的,随着丢包情况变多,等待时间也会发生变化,等待时间会变长,但也不是无限变长,当达到一定程度,认为数据无法成功传输,就会放弃tcp连接,触发tcp重置连接操作。

当是ack丢包时,重传数据时,站在接收方角度,会不会收到两份一样的数据???

答案是不会的。接收端收到数据后会将数据放到接收缓存区,当数据第二次来时,接收端发现数据已在缓存区存在,就会放弃该数据,所以读数据时也只会读取到一次。

(3)连接管理

①建立连接(三次握手)

上述建立连接过程中,传输的数据是一个简短的,没有业务的数据包,只是为了唤起对方。由发送端(客户端)先发起连接,此时数据的报文syn位为1;接收端收到syn后,接收端向发送端发送一个简短的,没有业务的数据包,此时数据的报文syn、ack位为1(合并为1次,提高效率),发送端收到后向接收端发送回应报文。完成三次握手后,发送端和接收端之间就建立了连接,即他们之间保存了对方的信息。

LISTEN状态:服务器这边把socket创建好,并把端口号绑定好,进入LISTEN状态,此时允许客户端随时建立连接。

ESTABLISHED状态:连接建立完成,可以进行正常通信。

三次握手的意义:确认当前网络是否通畅;使发送端和接收端确认发送和接收能力是否正常;让通信双方,在握手过程中,对一些参数(序号等)作出协商。

②断开连接(四次挥手)

发送端(服务器或者客户端)调用close方法或结束进程,发送报文,此时数据的报文FIN位为1;接收端收到报文发送应答报文,此时数据的报文ACK位为1;且调用close方法或结束进程发送报文,此时数据的报文FIN位为1。发送端收到数据报文后,发送应答报文。此时4次挥手完成,连接断开。

为什么这里ACK和FIN不能合并,ACK可以和SYN合并???

因为ACK和SYN是内核触发的,同一个时机发送可以合并;而FIN是应用程序执行的,与ACK发生的时机不同,不能合并;TCP还有一种机制是延时应答,能够拖延ACK的发送,ACK滞后就有机会和FIN合并。

TIME_WAIT状态:哪一方先断开连接,哪一方就会进入TIME_WAIT状态。若最后一个ACK丢失,接收端超时重传FIN,但此时发送端已经没有了,接收端一直无法收到ACK,此状态就是让发送端等待一段时间,防止ACK丢失了超时重传时也无法收到ACK。假设网络上两个节点通信消耗的最大时间为MSL,则等待的时间就为2MSL。

(4)滑动窗口

①背景

发送端发送一个数据,发送端收到应答报文后再发送下一个数据。但这样一发一收的话效率低。可不可以一次多发几个数据,批量传输,提高效率。

②具体机制

窗口大小:无需等待确认应答,发送端一次发送数据的最大数量。窗口大小越大,传输效率越高。上图中的窗口大小就是4000.

当收到一个ACK包之后,滑动窗口就向后移动,继续发送下一个数据。但若是中途出现丢包情况怎么解决???

③ACK丢包

此时ACK丢包了,不用进行重传。比如上图确认序号为1001的ACK包丢了,但确认序号为2001的ACK包发送端已经收到,表明2001序号之前的数据接收端都已经收到,1001的ACK包也就没那么重要了。

④数据包丢包

此时比如1001-2000的数据包丢包了。A需要知道此数据包丢了,B反复告诉A我需要1001序号的数据,在重复几次后,A就知道了1001序号的数据包没有发送成功,就会重新发送。发送成功后,就开始现在已经收到数据的应答报文。

若传输的数据少也不频繁,就使用普通的确认应答和超时重传;若传输的数据多且频繁,就使用滑动窗口模式。

当滑动窗口也不是越大越好,若一次传输的数据太多,就会出现阻塞,接收端处理不过来,就容易出现丢包情况。

(5)流量控制

①概念

根据接收端接收数据的能力,对滑动窗口大小进行控制。滑动窗口大小不应该超过接收端接收数据的能力。

②接收端接收数据能力

接收端接收到数据之后,会把数据放到接收缓冲区,接收端这边的应用程序read后,接收缓存区就会把数据删除,此时接收缓存区剩余空间大小就大了。接收缓存区剩余空间越大,接收端接收数据能力就越大。

③具体机制

接收端每次收到数据之后,就会把接收缓冲区剩余空间大小通过ACK包传输给发送端,发送端收到ACK包后就会根据接收缓冲区剩余空间大小调整下一轮的窗口大小。但若接收缓存区已满,没有数据传输,也没有ACK包告诉发送端接收缓存区什么时候有剩余。此时,发送端就会给接收端不断发送窗口探测包,不携带具体的业务数据,只是为了触发ACK包,获取接收缓存区剩余空间。

(6)拥塞控制

①概念:流量控制考虑了接收方的接收能力,而拥塞控制是考虑了整个通信的路径,考虑了通信过程中中间结点的情况,任何一个结点处理能力达到上限都容易导致数据传输出现丢包情况。

②具体机制

滑动窗口以一个较小的大小传输数据,之后以指数增长窗口大小,当到达阈值之后,窗口大小以线性增长,当出现丢包情况后,降低阈值,滑动窗口开始新一轮的动态变化。 

注:流量控制和拥塞控制机制都在限制窗口大小,最终窗口大小是两种机制的最小值。

(7)延时应答

具体机制:平常情况下,A给B发送数据,B收到数据后就会立即返回ACK,但有时也会延时应答。B收到数据后,先不着急返回ACK,等一段时间后,可能B的接收缓存区剩余空间也会变多,此时返回ACK也会提高传输效率。

(8)捎带应答

具体机制:捎带应答是在延时应答的基础下提高tcp的传输效率,在传输数据时,往往是一问一答的方式,A给B请求,B给A应答报文,B给A响应,在延时应答后,应答报文会滞后,此时响应正好计算完成,则B将应答报文和响应可以一同返回给A,从而提高传输效率。

(9)面向字节流

①问题

在面向字节流传输时,当有多个应用层数据包被传输时,在接收端的缓冲区就容易出现粘包问题,无法区分从哪里到哪里是一个完整的数据包。

②解决办法

明确应用数据包之间的边界

引入分隔符;引入长度

(10)tcp异常情况处理

①进程崩溃tcp

进程结束相当于调用了socket.close()方法,触发四次挥手,tcp断开连接。进程结束时,tcp的连接还未断开。

②正常关机

强制结束进程,如果在系统关闭之前完成了四次挥手,则会正常断开连接;如果在系统关闭之后,B的ACK和FIN才到达,此时B收不到ACK,就会超时重传,重传几次后也没有响应,就会放弃tcp连接,触发tcp重置连接操作,发现没有什么效果,也就释放连接了。

③主机断电(非正常)

系统关闭是一瞬间的事,来不及进行四次挥手,此时对端迟迟未收到数据。

若对端是接收端,tcp有一个心跳包机制,接收端会周期性向发送端发送一个没有业务的数据包,期望得到发送端的一个应答,若重复几次没有响应,则认为发送端挂了,接收端单方面释放连接。

若对端是发送端,发送端未收到应答,就会超时重传,重传几次后也没有响应,就会放弃tcp连接,触发tcp重置连接操作,发现没有什么效果,也就释放连接了。

④网线端口

是一瞬间的事,来不及进行四次挥手,此时对端迟迟未收到数据。

若对端是接收端,tcp有一个心跳包机制,接收端会周期性向发送端发送一个没有业务的数据包,期望得到发送端的一个应答,若重复几次没有响应,则认为发送端挂了,接收端单方面释放连接。

若对端是发送端,发送端未收到应答,就会超时重传,重传几次后也没有响应,就会放弃tcp连接,触发tcp重置连接操作,发现没有什么效果,也就释放连接了。

注:若需要将数据发给局域网中的所有设备(广播),使用UDP

四、IP协议(网络层)

1、网络层的功能

(1)地址管理;通过IP地址描述出一个设备在网络上的地址。

(2)路由选择;规划出合适的路径进行数据传输。

2、协议端格式

3、格式解释

(1)4位版本:若为4,代表IPV4版本;若为6,代表IPV6版本。

(2)8位服务类型:能够让IP协议切换形态。4种形态彼此之间是冲突的,最小延时、最小成本、最大吞吐量、最高可靠性。

(3)16位总长度:IP协议总长度为64kb,但是IP协议支持拆包组包。拆出的小包之间的16位标识是一样的,标志中是是否支持拆包和是否是最后一个包,13位片偏移是小包的相对位置,方便按顺序组包。

(4)8位生存时间:描述这个数据包,在网络上还能生成多久。TTL的单位是次,表明该数据包还能被路由器/交换机转发的次数。TTL会设置一个初始值(32,64,128....),每经过一次转发就会-1.若一个数据包,目的IP是不存在的,当TTL消耗完时,该数据包也就消失了。每个路由器都知道自己的相邻设备,所以到达目的IP消耗的TTL不会太大。

(5)8位协议:描述的传输层是TCP协议还是UDP协议。

4、地址管理

(1)IP地址:是一个32位的整数,为了方便人们理解,写作点分十进制方式,可以用2^32-1个IP地址,但在当代社会,上网设备多,IP地址存在不够用的问题。

(2)解决IP地址不够用的问题

①动态分配IP

同一时间,需要上网的设备才会分配一个IP地址。

②NAT机制(网络地址转化)

内网IP(局域网IP):如果一个IP地址是以10.或者172.16.-172.31.或者192.168.开头,IP就是内网IP,在同一个局域网内,内网IP之间不能重复;在不同局域网类,内网IP直之间可以重复。

外网IP(广域网IP):内网IP剩下的为外网IP,外网IP是唯一的,不可以重复。

通常一个学校,小区等有一个外网IP,一个外网IP内有多台设备,即有多个内网IP。

当电脑访问网站服务器时,需要先把电脑的内网IP地址通过NAT设备转换为外网IP地址,此时才能访问广域网,响应完成返回时,再通过NAT设备中的映射关系,将电脑外网IP地址转换为之前的内网IP地址。

当不同的电脑访问服务器时,若他们的内网IP地址是一样的,NAT设备转换时,在映射方面会结合端口号,使得区分数据应传给哪个设备;若IP地址和端口号都一样,则在转换时会分配他们不同的端口号,使得区分数据应返回给哪个设备。

③IPV6

16个字节表示IP地址,大幅度提高了IP地址的个数。但由于IPV4与IPV6不兼容,导致IPV6的普及程度并不高。

5、网段划分

IP地址会被划分成两部分,网络号(标识一个局域网)+主机号(标识一个局域网中的设备),同一个局域网下,主机号必须不同。

一个IP地址中,哪部分是网络号,哪部分是主机号是通过子网掩码确定的。

eg:IP地址为:192.168.100.176;子网掩码为:255.255.255.0

子网掩码转为二进制为:11111111 11111111 11111111 00000000(左侧为1,右侧为0,不会交替出现)

IP地址转为二进制为:11000000  10101000  01100100 10110000

两者取余:11000000 10101000 01100100 00000000

上述结果为网络号:192.168.100

(1)5类划分方式

若一个IP地址主机号全为0,表示是网络号;

若一个IP地址主机号二进制全为1,表示是广播地址,该局域网中的所有设备都能收到;

若一个IP地址是127.开头的表示是环回IP(loopback),能够排除网络不流畅的因素,测试;

6、路由选择

每个路由器内部都有一个数据结构路由表,传输数据时,根据目的IP,查路由表,如果查到了,就按照路由表给的方向继续转发;若没有查到,就按照路由表的默认表项继续转发。

五、以太网协议(数据链路层)

1、以太网数据帧格式

2、格式解释

①目的地址和源地址:指网卡的物理地址(mac),固定的,每个设备是唯一的;

②载荷数据类型:帧协议类型字段有三种值,分别对应IP(数据报长度不能超过1500字节(MTU),所以IP协议有拆包组包功能)、ARP、RARP;

③CRC:校验码。

3、区别IP地址和MAC地址

MAC地址用来识别数据链路层中相连的节点,描述路途上每个区间的起点和终点;

IP地址是整个路途的终点和起点。

在数据转发过程中,IP地址不会改变,MAC地址会根据转发情况改变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1368864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RBAC权限管理概念

基于RBAC模型的权限设计&#xff1a;如何设计系统权限体系&#xff1f; | 人人都是产品经理 一&#xff0c;什么是RBAC RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念。取消了用户和权限的直接关联&#xff0c;改为通过用户关联角色、角色关联权限的…

软件测试|MySQL主键自增详解:实现高效标识与数据管理

简介 在MySQL数据库中&#xff0c;主键自增是一种常见的技术&#xff0c;用于自动为表中的主键字段生成唯一的递增值。本文将深入讨论MySQL主键自增的原理、用途、使用方法&#xff0c;以及在实践中的注意事项和最佳实践。 主键自增 主键自增的原理 主键自增是通过使用AUTO…

蓝桥杯 python 第二题 数列排序

这里给出一种解法 """ # 错的 n int(input()) dp[int(i) for i in input().split(" ")] dp.sort() print(" ".join(str(i) for i in dp)) """#这个是对的 num int(input())l list(map(int, input().split()))l.sort()pr…

CLIP论文总结

文章目录 NLP的积淀Method1. 预训练的方法&#xff1a;放宽约束&#xff1a;对比学习2. 模型训练训练时间 ExperimentsMotivationPrompt&#xff1a;提示&#xff1a;也就是文本的引导作用Prompt enginneringPrompt ensembling 对比实验 NLP的积淀 取之不尽用之不竭的自监督信…

常孝元宇宙《神由都城》发布会成功召开

2024年1月9日,2024常孝元宇宙《神由都城》发布会在北京市中国科技会堂举办,由中国移动通信联合会元宇宙产业工作委员会主办,常州神由之星数字信息产业发展有限公司、常州孝道文化产业股份有限公司共同承办。 本次发布会以“创新引领、协同发展”为主题,邀请第十二届全国政协副主…

海淘注意事项科普

关税和税费&#xff1a; 在海淘过程中&#xff0c;您可能需要支付关税和其他税费。了解目标国家的相关规定&#xff0c;预先了解可能的费用&#xff0c;并确保考虑到这些额外成本。 货币汇率&#xff1a; 注意货币汇率的波动&#xff0c;以避免因兑换率变化导致支付更多费用。…

Unity | Shader基础知识(第九集:shader常用单词基础知识速成)

目录 一、顶点&#xff08;Vertex&#xff09;和法线(Normal) 二、UV信息 三、 基础数据种类 1 基础数据种类 2 基础数据数组 3 基础数据数组的赋值 4 对数据数组的调用 四、 基础矩阵 1 基础矩阵种类 2 对矩阵数组的调用 2.1对一个数据的调用 2.2对多个数据的调用 2…

【华为】IPsec VPN 实验配置(动态地址接入)

【华为】IPsec VPN 实验配置&#xff08;动态地址接入&#xff09; 注意实验需求配置思路配置命令拓扑R1基础配置配置第一阶段 IKE SA配置第二阶段 IPsec SA ISP_R2基础配置 R3基础配置配置第一阶段 IKE SA配置第二阶段 IPsec SA PCPC1PC2 检查建立成功查看命令清除IKE / IPsec…

视频号小店和抖音小店相比,新手做哪个比较好?

我是电商珠珠 抖音小店在19年被抖音所发展&#xff0c;在这过程中&#xff0c;抖音小店通过自身的不断完善&#xff0c;从兴趣电商到全域兴趣电商模式&#xff0c;从直播电商到商城的出现&#xff0c;凭借着门槛低流量高的优势&#xff0c;让很多商家尝到了红利。 尤其是在20…

CVE-2023-51385 OpenSSH ProxyCommand命令注入漏洞

一、背景介绍 ProxyCommand 是 OpenSSH ssh_config 文件中的一个配置选项&#xff0c;它允许通过代理服务器建立 SSH 连接&#xff0c;从而在没有直接网络访问权限的情况下访问目标服务器。这对于需要经过跳板机、堡垒机或代理服务器才能访问的目标主机非常有用。 二、漏洞简…

解码 Elasticsearch 查询 DSL:利用 Elasticsearch 中的 has_child 和 has_parent 查询进行父子文档搜索

今天&#xff0c;让我们深入研究 has_child 查询和 has_parent 查询&#xff0c;这将帮助我们将 2 个不同的文档组合到一个索引中&#xff0c;从而使我们能够将它们与关系关联起来。 这样做会对我们搜索相关文档时有很大帮助。 在使用 has_child 及 has_parent 这种关系时&…

计算机网络 —— 物理层

物理层 2.1 物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流。 物理层为数据链路层屏蔽了各种传输媒体的差异&#xff0c;使数据链路层只需要考虑如何完成本层的协议和服务&#xff0c;而不必考虑网络具体的传输媒体是什么 2.2 物理层下…

Maven 工程 java -jar 时提示 xxx-SNAPSHOT.jar 中没有主清单属性

Maven 工程 java -jar 时提示 xxx-SNAPSHOT.jar 中没有主清单属性 将skip属性注释掉或者改为false 如果为true&#xff0c;则工程找不到主启动类

git安装教程 Windows 附安装包链接

Git是一款分布式源代码管理工具(版本控制工具) 。 git的作用 当你需要做一个大工程的时候&#xff0c;文件的管理无疑是非常庞大的工作&#xff0c;因为你需要不断的修改更新文件内容&#xff0c;同时可能还要保留旧版本保证可以复原&#xff0c;这样就需要备份多个版本的文件…

在wsl中安装miniconda

下载安装包 打卡miniconda的官网https://docs.conda.io/projects/miniconda/en/latest/,下载下来安装包&#xff0c;或者直接在乌班图中运行命令wget https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-x86_64.sh,等待下载完毕 安装 到下载目录下执行命令…

【WinRAR】右键压缩文件功能没了怎么办?

我们安装了WinRAR之后想要压缩文件&#xff0c;但是右键点击文件之后发现并没有WinRAR压缩选项&#xff0c;这应该如何设置才能出现右键带有压缩选项呢&#xff1f;方法如下&#xff1a; 首先打开WinRAR&#xff0c;在上面功能中点击选项 – 设置 然后我们在设置界面中切换到集…

C++学习笔记(二十九):c++ 创建与使用库

c自己创建库并使用库。当项目较大时&#xff0c;创建库有助于帮助代码模块化&#xff0c;同时提高代码重用。同时使用库允许程序中混合使用编程语言。首先创建一个空项目名为Game&#xff0c;接着在visiualstudio的解决方案上右击->添加->新建项目&#xff0c;添加一个空…

TS 36.213 V12.0.0-PUSCH相关过程(1)-传输PUSCH的UE过程

​本文的内容主要涉及TS 36.213&#xff0c;版本是C00&#xff0c;也就是V12.0.0。

全新链动2+1模式,提升用户粘性度,增加产品复购率!

在互联网电商行业中&#xff0c;消费增值模式已经成为一种强大的营销工具。通过将消费者所消费的金额转化为积分&#xff0c;再利用平台的销售业绩作为托底&#xff0c;使得积分的价值不断增长&#xff0c;从而增加了消费者的忠诚度和黏性。然而&#xff0c;在实际操作中&#…

MySQL批量插入技巧

关于MySQL批量插入的一些问题 MySQL一直是我们互联网行业比较常用的数据&#xff0c;当我们使用半ORM框架进行MySQL大批量插入操作时&#xff0c;你是否考虑过这些问题: 进行大数据量插入时&#xff0c;是否需要进行分批次插入&#xff0c;一次插入多少合适&#xff1f;有什么…