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

TCP 数据传输的拆包和粘包了解吗?

前言:

上一篇我们了解了什么是 TCP 协议,以及 TCP 协议 3 次握手 4次挥手的原因,本篇来分享一下 TCP 数据的传输过程的拆包和粘包,以及 TCP 数据传输过程中的一些细节。

计算机网络往期文章

TCP 为什么是 3 次握手 4 次挥手?

TCP 数据是如何发送接收的?

我们知道 TCP 是传输层协议,TCP 协议传输数据有发送和接收的过程,我们知道 TCP 数据传输的时候是将一个完整的数据拆分成一段一段发送的,收到数据之后有会将一段一段的数据合并起来,还原成完整的数据。

TCP 为什么要把完整数据进行拆分发送,然后接收到之后又要合并?

TCP 把数据拆分发送有一下原因:

  • 稳定性:一次发送的数据包越大传输的稳定性越差,越容易出错,把完整数据拆分成一小段一小段发送,可以提升数据传输的稳定性。
  • 提升效率:数据传输时候,有时候是可以并行发送的,把数据拆分成一段一段的,就可以利用并行发送的能力,提升数据传输效率。
  • 内存页限制:我们知道内存的最小分配单位是页,一页的大小默认是 4K,如果一次性传输超过一个内存页大小的数据,会存在页置换的问题,会造成一定的性能损失。
  • 缓冲区问题:我们知道数据传输和接收的时候都存在缓冲区,缓冲区是内存中开辟的一块内存区域,大小也是有限制的,缓冲区的作用是用来缓冲网卡暂时处理不过来的请求,这些请求在缓冲区排队,如果一次发送的数据量太大,那缓冲区就会被迅速占满,也就失去了缓冲的意义。

总而言之就是一次传输太大的数据包就是不合适的,从软件开发的思想来说一次处理大量的数据也是不合适的。

TCP 数据传输的拆包和粘包是什么意思?

  • 拆包:像我们上面说的把一个大的数据包拆分成一小段一小段的发送,接收之后在再将这些数据包组合到一起的过程叫做拆包。
  • 粘包:粘包从字面意思理解就是和拆包相反,其本质意思也确实如此,我们发送到一个接收端的数据量太小,为了防止多次发送导致的资源占用,TCP 协议会在发送的时候,对数据进行合并处理,将多个小的数据包合并成一个 TCP 段来发送,在数据接收端接收到数据后,在进行数据拆分还原,这个过程叫做粘包。

通过同拆包和粘包的解释,我们发现所谓的“拆”、“粘”都是已发送端的操作来定义的。

TCP SEGMENT(TCP 报文段)

上面在解释粘包的时候提到了将数据合并成一个 TCP SEGMENT 进行数据传输,下面我们来剖析一下什么是 TCP SEGMENT。

TCP SEGMENT 组成示意图如下:

在这里插入图片描述

对 TCP SEGMENT 组成部分逐个剖析如下:

  • 源端口号:发送端端口号,字段长 16 位占用 2字节。
  • 目标端口号:接收端端口号,字段长 16 位占用 2字节。
  • 序列号(sequence number):发送数据的第一个字节的编号,字段长度为 32 位占用 4字节。
  • 确认应答号(acknowledge number):期望收到下一个报文段的第一个数据字节的序列号,该字段段长度也是 32 位占用 4字节。
  • 数据偏移量(data offset):表示的是 TCP 首部的长度,字段长 4位。
  • 保留位(reserved):为 TCP 扩展使用,字段长 4位。
  • 控制位(control flag):描述了 TCP 的一些能力,该字段长 8位,对应 8个字段,如下:

ECE(ECN-Echo):为 1 时会通知通信对方,从对方到这边的网络有拥塞。
URG:为1时,表示有紧急数据需要处理,发送方会将紧急数据插入到报文段的最前面,需要与 TCP 首部紧急指针(urgent pointer)配合使用。
ACK:ACK 为 1 时,确认好字段才有效,当 ACK 为 0 时,确认号无效,是 TCP 传输可靠性的一种保障。
PSH:数据推送的意思,为 1 时,发送方会立即创建一个报文段发送出去,接收方在收到报文段后,就立刻交付给接收方应用进程,而不用等到整个缓存填满了再交付。
RST:为 1时,表示 TCP 连接出现严重问题,必须释放连接,然后重新建立连接,RST 为 1 也可以用来拒绝非法的报文段。
SYN:为 1 时,表明这是一个连接请求。
FIN:用来关闭连接,当 FIN 为 1 时,表明此报文段的发送方的数据已发送完毕,请求关闭 TCP 连接。

  • 窗口大小(window size):占 2字节,表示发送方的接收方允许发送方发送的数据量,发送方的发送窗口大小也是依据这个窗口,接收方的数据缓存空间是有限的,因此窗口大小页是动态变化的。
  • 校验和(checksum):占用 2个字节,校验 TCP 首部和数据两部分,用于校验 TCP 段有没有损坏。
  • 紧急指针(urgent pointer):占用 2个字节,紧急指针仅当 URG=1 时才有意义,指向最后一个紧急数据的序号(Sequence Number),因为紧急数据页可能是连续的很多个段,所以需要提前告诉接收方进行准备。
  • TCP 选项(TCP option):option 中存储了一些可选字段,比如 MSS。
  • 填充(padding):就是我们常说的对其填充,不足 4 字节的整数倍时候,就进行填充。

什么是 MSS?

MSS 的全称是 Maximun Segment Size,翻译过来就是最大分段大小,MSS 控制了 TCP 段的大小,它是一个协商字段,需要发送方接收方协商,然后双方都要遵循的标准,因此需要双方协商决定。MSS 的大小涉及发送、接收缓冲区的大小设置,双方实际发送接收到包的大小,也会影响到拆包和粘包,因此需要慎重设置。

假设 MSS 设置过大有什么后果?

我们前面提到的拆包,就是因为数据过大才需要进行拆包,如果 MSS 设置过大,那拆包还有什么意义呢?对性能的损耗、内存使用的损耗等问题都出来了。

那 MSS 设置过小又有什么问题?

MSS 如果拆分的过小,会影响数据传输性能,被拆分每一份数据都有一个 TCP 首部,MSS 过小 TCP 首部的数据占比会大幅上升,这会造成严重的传输资源浪费。

如有不正确的地方欢迎各位指出纠正。

相关文章:

TCP 数据传输的拆包和粘包了解吗?

前言: 上一篇我们了解了什么是 TCP 协议,以及 TCP 协议 3 次握手 4次挥手的原因,本篇来分享一下 TCP 数据的传输过程的拆包和粘包,以及 TCP 数据传输过程中的一些细节。 计算机网络往期文章 TCP 为什么是 3 次握手 4 次挥手&am…...

Ubuntu常用自救方案

一、开机进入终端界面 莫名其妙进入终端界面了且死活出不来,原因可能是下载了些不该下的,或者卸载了些不能卸的。 万一真是这样可以尝试以下方法: 1.安装图形界面 第一行必安,2、3没试过 sudo apt-get install ubuntu-desktop …...

决策曲线分析(DCA)中平均净阈值用于评价模型算法(R自定义函数)

决策曲线分析(DCA)中平均净阈值用于评价模型算法 DCA分析虽然不强调用来评价模型算法或者变量组合的优劣,但是实际应用过程中感觉DCA曲线的走势和模型的效能具有良好的一致性,其实这种一致性也可以找到内在的联系,比如…...

【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut、QT)第三期

🍺三维数字地球系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(456:OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(456:OpenGL、glfw、glut)第二期3【小沐…...

回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测

回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-BiGRU-Attention卷积神经网络结合双向门控循环单元融合注意力机制多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效…...

深度解析相对路径、绝对路径与URL映射策略、MVC架构

一、相对路径与绝对路径的概念与应用 路径管理是Web开发中的核心概念之一。理解不同类型的路径如何影响文件和资源的访问对于确保代码的灵活性、可维护性和可移植性至关重要。 1. 相对路径 相对路径是指相对于当前文件或目录的位置来指定目标资源的路径。它不依赖于绝对的服…...

clipboard----封装复制组件

Clipboard.js 是一个轻量级的 JavaScript 库,旨在帮助开发者轻松地实现将文本复制到剪贴板的功能。它不依赖 Flash 或其他外部库,并且提供了一种简单的方式来响应用户的复制行为。Clipboard.js 支持绑定到任何元素(如按钮、图片等&#xff09…...

vue 中数据改变后,组件不更新

vue 中数据改变后,组件不更新 1.1. 确认响应式 1.2. 使用计算属性或侦听器 1.3. 检查异步更新队列 1.4. 手动触发更新 1.5. 检查数据绑定 1.6. 避免直接修改数组 1.7. 使用 Vue.set 或 this.$set 1.8. 检查作用域问题 1.9. 使用 Vue DevTools vue 中数据改变后&…...

使用C#和OPenCV实现圆形检测

文章目录 霍夫变换使用 OpenCV 和 C# 实现圆形检测 霍夫变换 在计算机视觉中,圆形检测是一个常见且有用的任务,特别是在物体识别、图像分析和图形处理等领域。OpenCV 是一个强大的开源计算机视觉库,它提供了许多工具来实现不同的图像处理功能…...

C++ 给定字符串,然后给出开始要取的位置,返回取到的信息

3 happy new year 7 year 1 new 4 new year year error input #include <stdio.h> #include <string.h> void strmcpy(char* s, char* t, int m); int main() {int repeat, m;char t[1000], s[1000];scanf("%d", &repeat);getchar(); //吸收换行符in…...

异步持久化策略对比

1.背景 游戏服务器其中一项重点工作&#xff0c;就是对游戏玩家的数据进行持久化&#xff0c;保证下次登录可以再续前缘。如果游戏服务器架构里没有缓存&#xff0c;每次操作都需要读写数据库&#xff0c;无疑对数据库带来非常大的压力。一旦使用缓存&#xff0c;就伴随异常持…...

手机租赁系统开发全流程解析与实用指南

内容概要 在如今快速发展的科技时代&#xff0c;手机租赁系统已经成为一种新兴的商业模式&#xff0c;非常符合当下市场需求。那么&#xff0c;在开发这样一个系统的时候&#xff0c;首先要从需求分析和市场调研开始。在这一阶段&#xff0c;你需要了解用户需要什么&#xff0…...

apache-dubbo

dubbo 文档地址 dubbo 官方文档地址 https://dubbo.apache.org/zh-cn/docs/user/references/api.html nacos 官方文档地址 https://nacos.io/zh-cn/docs/quick-start.html nacos下载地址 https://github.com/alibaba/nacos/releases/download/2.3.0/nacos-server-2.3.0.…...

【JavaEE】网络(1)

&#x1f435;本篇文章开始讲解计算机网络相关的知识 一、基础概念 1.1 局域网和广域网 局域网→Local Area Network→简称LAN&#xff0c;局域网是局部组建的一种私有网络&#xff0c;局域网内的主机之间可以进行网络通信&#xff0c;局域网和局域网之间在没有连接的情况不能…...

系统思考—决策

今年在为不同公司交付培训与项目时&#xff0c;常常听到“降本增效”的提法&#xff0c;但关键是&#xff1a;“降”的到底是什么成本&#xff1f;裁员无疑是最快的成本削减方式&#xff0c;但也可能带来人心惶惶。人力是资本&#xff0c;不是成本。除非企业到了生死存亡的关头…...

nVisual 前端集成SDK使用说明

目前客户需要搭建自己的可视化产品,但需要使用nVisual的可视化视图功能,根据目前项目实施需求,决定做了一款简单版的SDK视图插件,这个小插件的主要功能是嵌入到客户项目里给客户提供 ‘详细视图’‘拓扑视图’或者是‘主视图’的展示功能.目前已经开发完毕,这里做一下简单介绍.…...

上传文件时获取音视频文件时长和文本文件字数

获取音视频文件时长和文本文件字数 一、获取音视频文件时长二、计算文本文件字数 最近有个需求&#xff0c;要求上传文件时获取音视频文件时长和文本文件字数&#x1f436;。 发现这样的冷门资料不多&#xff0c;特做个记录。本文忽略文件上传功能&#xff0c;只封装核心的工具…...

[COLM 2024] V-STaR: Training Verifiers for Self-Taught Reasoners

本文是对 STaR 的改进方法&#xff0c;COLM 是 Conference On Language Models&#xff0c;大模型领域新出的会议&#xff0c;在国际上很知名&#xff0c;不过目前还没有被列入 ccf list&#xff08;新会议一般不会列入&#xff09;&#xff1b;作者来自高校、微软研究院和 Goo…...

【C++】string的主要功能模拟复现

经常调用的短小函数直接定义在头文件中&#xff0c;可以节省时间开销 #include<iostream> #include<assert.h> using namespace std; namespace mumu {class string{friend ostream& operator<<(ostream& _cout, const mumu::string& s);friend…...

Linux环境安装Jenkins

Linux环境安装Jenkins Jenkins和JDK的版本 Jenkins和JDK的版本需要对应&#xff0c;不然无法正常启动。 Jenkins稳定版下载地址 Jenkins服务 手动使用命令启动和关闭Jenkins比较麻烦&#xff0c;所以可以把Jenkins设置成开机启动。 创建Jenkins.sh文件 JAVA_HOME和jenk…...

Elasticsearch:ES|QL 中的全文搜索 - 8.17

细心的开发者如果已经阅读我前两天发布的文章 “Elastic 8.17&#xff1a;Elasticsearch logsdb 索引模式、Elastic Rerank 等”&#xff0c;你就会发现在 8.17 的发布版中&#xff0c;有一个重要的功能发布。那就是 ES|QL 开始支持全文搜索了。在今天的文章中我们来尝试一下。…...

Leetcode 3387. Maximize Amount After Two Days of Conversions

Leetcode 3387. Maximize Amount After Two Days of Conversions 1. 解题思路2. 代码实现 题目链接&#xff1a;3387. Maximize Amount After Two Days of Conversions 1. 解题思路 这一题思路上其实就是要分别求出day 1以及day 2中原始货币与其他各个货币之间的成交价&…...

Lumos学习王佩丰Excel第二十一讲:经典Excel动态图表实现原理

一、动态图表实现原理 1、理解图表中的数据系列 在Excel图表中&#xff0c;系列指的是图表中的数据集合&#xff0c;它通常代表着一个数据源。每个系列都可以包含多个数据点&#xff0c;这些数据点在图表中以特定的形式展现&#xff0c;如柱状图中的柱子&#xff0c;折线图中…...

静态路由、RIP、OSPF、BGP的区别

静态路由&#xff1a;是管理员手动将路由写入到路由器中&#xff0c;配置简单开销小&#xff0c;但不能适应网络变化&#xff0c;只用于小型的网络 RIP&#xff0c;路由信息协议&#xff0c;属于距离矢量路由协议的一种&#xff0c;根据跳数来判断最优路由&#xff0c;如果跳数…...

解决 Flutter 在 Mac 上的编译错误

解决 Flutter 在 Mac 上的编译错误 在使用 Flutter 进行项目开发并尝试在 Mac 设备上进行编译时&#xff0c;遇到了一系列的错误信息&#xff0c;这些错误信息给项目的构建与部署带来了阻碍。 一、错误详情 在编译过程中&#xff0c;Xcode 输出了大量的信息&#xff0c;其中…...

ECharts实现数据可视化入门详解

文章目录 ECharts实现数据可视化入门详解一、引言二、基础配置1.1、代码示例 三、动态数据与交互2.1、代码示例 四、高级用法1、多图表组合1.1、在同一容器中绘制多个图表1.2、创建多个容器并分别初始化 ECharts 实例1.3、实现多图联动 五、总结 ECharts实现数据可视化入门详解…...

LRM-典型 Transformer 在视觉领域的应用,单个图像生成3D图像

https://yiconghong.me/LRM. 一、Abstract 第一个大型重建模型&#xff08;LRM&#xff09;&#xff0c;它可以在5秒内从单个输入图像预测物体的3D模型。LRM采用了高度可扩展的基于transformer的架构&#xff0c;具有5亿个可学习参数&#xff0c;可以直接从输入图像中预测神经…...

Stream– ESP8266物联网应用,(客户端向服务器发送数据信息 客户端向服务器请求数据信息)

Stream– ESP8266物联网应用 Stream对于ESP8266-Arduino语言来说指的是数据序列。请留意&#xff1a;在C编程中Stream常被翻译作“流”。我们认为将Stream称为数据序列更加直观。因为数据序列这一概念有两个很关键特点。 第一个特点是“序”&#xff0c;即数据序列不能是杂乱…...

win10系统右下角没有显示网络图标 , 打开或关闭系统图标网络灰色

win10系统右下角没有显示网络图标 / 打开或关闭系统图标网络灰色 win10系统右下角没有显示网络图标, 并且打开或关闭系统图标网络灰色 解决方案: 首先&#xff0c;按【Ctrl Alt Del】组合键&#xff0c;然后点击【任务管理器】。任务管理器窗口&#xff0c;找到并选择【Wind…...

Python使用Selenium库获取 网页节点元素、名称、内容的方法

我们要用到一些网页源码信息&#xff0c;例如获取一些节点的class内容&#xff0c; 除了使用Beautifulsoup来解析&#xff0c;还可以直接用Selenium库打印节点&#xff08;元素&#xff09;名称&#xff0c;用来获取元素的文本内容或者标签名。 例如获取下面的class的内容&am…...

onnx文件转pytorch pt模型文件

onnx文件转pytorch pt模型文件 1.onnx2torch转换及测试2.存在问题参考文献 从pytorch格式转onnx格式&#xff0c;官方有成熟的API&#xff1b;那么假如只有onnx格式的模型文件&#xff0c;该怎样转回pytorch格式&#xff1f; https://github.com/ENOT-AutoDL/onnx2torch提供了…...

计算机网络中的SIP协议是什么?

SIP&#xff08;Session Initiation Protocol&#xff0c;会话初始化协议&#xff09;是由IETF&#xff08;Internet Engineering Task Force&#xff0c;因特网工程任务组&#xff09;制定的多媒体通信协议。以下是对SIP的详细简述&#xff1a; 一、SIP的基本概念 SIP是一个…...

Apache Kylin最简单的解析、了解

官网&#xff1a;Overview | Apache Kylin 一、Apache Kylin是什么&#xff1f; 由中国团队研发具有浓厚的中国韵味&#xff0c;使用神兽麒麟&#xff08;kylin&#xff09;为名 的一个OLAP多维数据分析引擎:&#xff08;据官方给出的数据&#xff09; 亚秒级响应&#xff…...

axfbinhexelf文件区别

0 Preface/Foreword axf,bin,hex,elf四个都能存在于嵌入式软件领域。 1 文件介绍 嵌入式软件中常见的文件包含&#xff1a; axf&#xff0c;包含调试信息&#xff0c;文件最大。调试信息放在机器码前面。elfhex&#xff0c;包含地址信息&#xff0c;文件内容较大。bin&#x…...

MySQL表自增id溢出的故障复盘,你是如何解决与监控的

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…...

03、SpirngMVC核心(下)

一、关于RESTful编程风格 什么是RESTful RESTful的英文全称是:Representational State Transfer(表述性状态转移) RESTful是Web服务接口的一种设计风格。它定了一组约束和规范,可以让Web服务接口更加简洁、易于理解、易于扩展、安全可靠。 RESTful对于请求的约束如下:…...

【游戏设计原理】10 - 科斯特的游戏理论

科斯特的游戏理论强调了游戏与学习之间的关系&#xff0c;认为“玩得开心”与“学习”是紧密相连的。换句话说&#xff0c;游戏的核心魅力在于通过适当的挑战和不断的学习进程激发玩家的内啡肽循环&#xff0c;这让玩家在不断的探索和进步中找到乐趣。 科斯特的理论通过游戏是…...

【JAVA】Java项目实战—Java EE项目:客户关系管理(CRM)系统

Java EE项目&#xff1a;客户关系管理&#xff08;CRM&#xff09;系统 一、背景介绍 1.1 Java语言的重要性 Java是一种广泛使用的编程语言&#xff0c;因其跨平台性、面向对象特性以及丰富的生态系统而受到开发者的青睐。Java EE&#xff08;Enterprise Edition&#xff09…...

JAVA 零拷贝技术和主流中间件零拷贝技术应用

目录 介绍Java代码里面有哪些零拷贝技术java 中文件读写方式主要分为什么是FileChannelmmap实现sendfile实现 文件IO实战需求代码编写实战IOTest.java 文件上传阿里云&#xff0c;测试运行代码看耗时为啥带buffer的IO比普通IO性能高&#xff1f;BufferedInputStream为啥性能高点…...

STM32软件IIC驱动TCA9548A多路测量AHT10

STM32软件IIC驱动TCA9548多路测量AHT10 TCA9548AAHT10代码逻辑代码展示现象总结 TCA9548A TCA9548A 有八个可通过 I2C 总线控制的双向转换开关&#xff0c;SCL/SDA 上行对扩展到八个下行对&#xff0c;或者通道&#xff0c;适用于系统中存在I2C目标地址冲突的情况。8路双向转换…...

博弈论3:图游戏SG函数(Graph Games)

目录 一、图游戏是什么 1.游戏特征 2.游戏实例 二、图游戏的必胜策略 1.SG 函数&#xff08;Sprague-Grundy Function&#xff09; 2.必胜策略&#xff08;利用SG函数&#xff09; 3.拿走游戏转化成图游戏&#xff08;Take-away Game -> Graph Game&#xff09; 一、图…...

音视频入门基础:MPEG2-TS专题(17)——FFmpeg源码中,解析TS program map section的实现

一、引言 由《音视频入门基础&#xff1a;MPEG2-TS专题&#xff08;16&#xff09;——PMT简介》可以知道&#xff0c;PMT表&#xff08;Program map table&#xff09;由一个或多个段&#xff08;Transport stream program map section&#xff0c;简称TS program map sectio…...

SQL server学习05-查询数据表中的数据(上)

目录 一&#xff0c;基本格式 1&#xff0c;简单的SQL查询语句 2&#xff0c;关键字TOP 3&#xff0c;关键字DISTINCT 二&#xff0c;模糊查询 1&#xff0c;通配符 三&#xff0c;对结果集排序 1&#xff0c;不含关键字DISTINCT 2&#xff0c;含关键字DISTINCT 3&…...

Transformer记录Attention is all you need

视频&#xff1a; Transformer 原理详解_哔哩哔哩_bilibili 代码&#xff1a; harvardnlp/annotated-transformer: An annotated implementation of the Transformer paper....

JAVA入门:使用IDE开发

JAVA入门&#xff1a;使用IDE开发 什么是IDE IDE&#xff08;Integrated Development Environment&#xff0c;集成开发环境&#xff09;是一种软件应用程序&#xff0c;它为程序开发、软件设计、项目管理等提供全面的设施。 简单来说就是简化开发过程&#xff0c;让编程更加…...

汽车嵌入式软件构建高效技术团队的全面思考

在汽车嵌入式软件开发领域&#xff0c;构建一支高效的通用技术团队至关重要。这类团队负责为各种项目提供可复用、标准化的技术基石&#xff0c;从而提高开发效率、降低成本并确保产品质量。构建这样的团队需要从技术能力、角色分工、标准化与复用、流程管理与质量保证、工具和…...

Debezium源码分析: TopicSelector实现原理与应用

Debezium源码分析: TopicSelector实现原理与应用 Debezium源码分析: TopicSelector实现原理与应用文章目录背景介绍主要功能应用场景实现原理DataCollectionId 接口核心设计工作流程源码分析基础实现默认选择器创建应用示例1. 分库分表场景2. 多租户场景3. 业务领域分组总结设计…...

SpringCloud微服务实战系列:03spring-cloud-gateway业务网关灰度发布

目录 spring-cloud-gateway 和zuul spring webflux 和 spring mvc spring-cloud-gateway 的两种模式 spring-cloud-gateway server 模式下配置说明 grayLb://system-server 灰度发布代码实现 spring-cloud-gateway 和zuul zuul 是spring全家桶的第一代网关组件&#x…...

【恶意软件检测论文】通过提取 API 语义来实现的一个新颖的安卓恶意软件检测方法

目录 摘要1. 引言2. 相关工作2.1. 基于重新训练的恶意软件检测2.2. 基于应用关系图的恶意软件检测2.3. 基于异常样本识别的恶意软件检测2.4. 基于API聚类的恶意软件检测 3. AMDASE概述4. 基于语义距离的API聚类4.1. API特征提取4.2. API句子生成4.3. API句子编码4.4.聚类中心生…...

大模型系列4--开源大模型本地部署到微调(WIP)

背景 一直想真正了解大模型对硬件资源的需求&#xff0c;于是准备详细看一篇视频&#xff0c;将核心要点总结记录下。本文内容参考视频&#xff1a;保姆级教程&#xff1a;6小时掌握开源大模型本地部署到微调&#xff0c;感谢up主 训练成本 训练 > 微调 > 推理训练GPT…...