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

网络安全·第五天·TCP协议安全分析

一、传输层协议概述

1、功能

传输层负责建立端到端的连接,即应用进程之间的通信,负责数据在端到端之间的传输。与网络层不同的是,网络层负责主机与主机之间的通信。

同时,传输层还要对收到的报文进行差错检测(首部和数据部分),这一点与IP数据报首部具有显著差别。

2、复用与分用

传输层通过端口号来区分上下层服务。这里需要提到复用和分用的概念,传输层的复用指的是发送方不同的应用进程都可以使用同一个传输层协议传送数据;分用指的是接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程

同样的,复用和分用并不是传输层特有,网络层同样也有复用分用的功能,具体来说,网络层的复用指发送方不同协议的数据都可以封装成IP数据报发送出去,分用指的是接收方的网络层在剥去首部后能把数据交付给相应的协议

二、TCP与UDP协议概述

1、TCP提供的服务

面向字节流服务

在TCP中,发送方将数据分割成一个个的数据段(segment),每个数据段都有一个序号(sequence number)和一个确认号(acknowledgement number)。接收方通过确认号来确认已经接收到的数据段,并向发送方发送确认消息。如果发送方没有收到确认消息,它会重新发送数据段,直到接收方确认为止。

由于TCP是面向连接的协议,因此在数据传输之前,发送方和接收方必须先建立连接。在连接建立之后,数据才能被传输。在数据传输完成之后,连接会被关闭。

我们举一个例子,伍老师和小汪利用TCP协议互相发消息,伍老师想对小汪说:“我男朋友可细心了,每天都给我买好东西!”,小汪想对伍老师说:“今天苏州好冷!”。但是由于伍老师的消息很长,TCP将这个消息分成了两部分发送。伍老师先发送了第一部分信息,内容为“我男朋友可细心了,”假设长为9个字节,序号为1。

小汪收到第一部分后,发送确认号ack的值为10,序列号为1,内容为“今天苏州好冷!”的信息,长度为7个字节。确认号为10的意思为想知道对方想发送的第十个字节的消息。

伍老师收到后,发送第二部分为“每天都给我买好东西!”,该消息的序号为10,确认号为8。

这和我们平常利用微信或者QQ聊天的方式不大一样,我们在这里探讨的是TCP的工作原理,是微观上的而非宏观上的。

因此,从上述例子中我们不难发现,不能认为一个用户消息对应一个 TCP 报文,正因为这样,所以 TCP 是面向字节流的协议。

②全双工服务

建立连接后,两个进程之间的数据传输是双向的,放在上述例子解释,意思就是说小伍能和小汪发消息的同时,小汪也能给小伍发消息,并不是小伍的一言堂或者小汪的一言堂。

③面向连接的服务

使用TCP进行数据传输的客户/服务器之间,首先要建立一个TCP连接,数据传输完成后断开连接,也就是说,小伍和小汪发消息,首先会通过三次握手过程建立与小汪的连接,当没有消息可以发的时候,通过四次挥手断开连接。

④可靠服务

TCP提供了流量控制、拥塞控制、差错控制等保证数据传输的可靠性

2、TCP报文格式

TCP报文中数据部分是可选的,即TCP报文可以不包含数据(同理IP包也可以不包含数据)。不含数据的TCP报文通常是一些确认和控制信息类的报文,如TCP建立连接时的三次握手和TCP终止时的四次挥手等。

我们先来看看首部由哪些组成:

源端口号(Source Port):长度为16位,指明发送数据的进程。

目的端口号(Destination Port):长度为16位,指明目的主机接收数据的进程。

序号(Sequence Number):也称为序列号,长度为32位,序号用来标识从TCP发送端向接入端发送的数据字节流进行编号,可以理解成对字节流的计数

确认号(Acknowledgement Number):长度为32位,确认号包含发送确认的一端所期望收到的下一个序号。确认号只有在ACK标志为1时才有效。该部分要与大写的ACK区分开。

首部长度:以4字节为单位,一个TCP报文首部20个字节是必有的,后40个字节可有可无。如果TCP报文首部是20个字节,则该位应是20/4=5。

保留位(Reserved):长度为6位,必须是0,它是为将来定义新用途保留的。

标志(Code Bits):长度为6位,在TCP报文中不管是握手还是挥手还是传数据等,这6位标志都很重要。最重要的是加粗的三个部分,其中RST我们在上一篇博客讲解过。6位从左到右依次为:

  • URG:紧急标志位,说明紧急指针有效;

  • ACK:确认标志位,多数情况下空,说明确认序号有效;

  • PSH:推标志位,置位时表示接收方应立即请求将报文交给应用层;

  • RST:复位标志,用于重建一个已经混乱的连接;

  • SYN:同步标志,该标志仅在三次握手建立TCP连接时有效

  • FIN:结束标志,带该标志位的数据包用于结束一个TCP会话。

窗口大小(Window Size):长度为16位,TCP流量控制由连接的每一端通过声明的窗口大小来提供。

检验和(Checksum):长度为16位,该字段覆盖整个TCP报文端(首部加数据部分),是个强制性的字段,是由发送端计算和存储,到接收端后,由接收端进行验证。

紧急指针(Urgent Pointer):长度为16位,指向数据中优先部分的最后一个字节,通知接收方紧急数据的长度,该字段在URG标志置位时有效。

选项(Options):长度为0-40B(字节),必须以4B为单位变化,必要时可以填充0。通常包含:最长报文大小(MaximumSegment Size,MSS)、窗口扩大选项、时间戳选项、选择性确认(Selective ACKnowlegement,SACK)等。

3、连接建立与断开

①三次握手

客户端与服务器建立连接的过程需要三个报文,由于很像人类之间建立联系时相互握手的过程,故这三个报文也被称为“三次握手”。

第一次握手:客户端向服务器发起连接请求报文,序列号位客户端初始序列号m;由于标志SYN=1,ACK=0,该报文也被简称为SYN报文。
第二次握手:服务器等待连接的端口收到TCP连接请求后,回应一个TCP连接应答报文,序列号为服务器初始序列号n,确认序列号为客户端初始序列号加1(m+1);其中标志SYN=1、ACK=1,故该报文称为SYN/ACK报文。
第三次握手:客户端收到服务器的响应报文后,向服务器发送TCP确认报文,序列号为客户端初始序列号自增,即(m+1),确认号为服务器初始序列号加1,即(n+1),其中标志SYN=0、ACK=1,被称为ACK报文,该报文客户端可以携带相应的信息。

②四次挥手

客户端与服务器断开连接的过程需要四个报文,由于很像人类之间相互告别时挥手表示再见的过程,故这三个报文也被称为“四次挥手”。

第一次挥手:客户端发送一个FIN=1的报文段,主动关闭客户端到服务器的数据传送,序列号假设为m;
第二次挥手:服务器收到FIN段后就向应用程序传送一个文件结束符,在给客户端发回一个ACK=1的报文,其ack为所收到的序列号自增,即(m+1);
第三次挥手:服务器发送完数据后,被动关闭与客户端的连接,发送一个FIN=1、ACK=1的报文给客户端,其序列号与m无关,假设为n,ack的值不变,为(m+1);
第四次挥手:客户端收到FIN段后,回复一个ACK=1的报文,确定收到了服务器的FIN段,并将ack的值设置为所收到的序列号加1,即(n+1)。

三、TCP协议安全分析

1、SYN Flood攻击

①原理

攻击者利用TCP连接的半开放状态发动攻击。攻击者使用第一个数据包对服务器进行大流量冲击,使服务器一直处于半开放连接状态,从而无法完成三步握手过程,导致正常用户也无法访问服务,因此SYN-Flood攻击是一种拒绝服务式攻击Dos。

②举例

什么是半开放连接状态?

我们来看看下面这个例子:主人公还是伍老师,她的班上有一个不省心的学生,叫小陈,这一天,平常不怎么学习的小陈突然在下课的时候联系伍老师,对伍老师说:“伍老师,我的古诗默写好差劲啊,今天放学后我能找您默写吗?”,伍老师一听,妈呀,太阳从西边亮起来了,赶忙同意,说:“好的好的,小陈同学,下午放学后来办公室找我吧!”

伍老师期待着小陈会在五点半之后到来,但实际情况确是,五点半放学后,伍老师并没有等到小陈的到来,小陈很可恶的放了伍老师的鸽子,直到六点半,伍老师等不下去了,下班回家了。

伍老师和小陈预约默写的言行像极了“建立连接”的前两次握手,小陈发出请求,伍老师进行应答。如果这个连接想要成功建立,那么小陈就要对自己说的话负责,也就是说,放学后来办公室找伍老师默写,但是小陈没有诚信,让伍老师长时间等待,变相的消耗伍老师的“时间”,这种没得到确定消息的状态,就处于“半开放状态”。可以用下图来表示SYN Flood的攻击原理:

当然了,如果只有一个可恶的黑客让服务器白等,可能也占不了服务器多少资源,但是如果黑客伪造IP地址,让每一个伪造的IP地址都对服务器进行SYN Flood攻击,这样会大量占据服务器的半连接队列,消耗资源的同时,由于半连接队列已满,也能让真正有需要的客户端不能与服务器建立连接,从而无法访问该服务器。

③攻击检测

如何检测SYN Flood攻击呢?

一个最简单的方法就是检测半连接数,如果在一段时间内突然增多,说明很有可能有黑客对服务器进行了SYN Flood攻击,当然,也可以检测半连接数建立的速度,不过这个本质上与检测数量一致,可以归类为一种方法。

④攻击防范

如何防范SYN Flood攻击呢?

一类方法是释放无效连接,例如监视系统的半开连接和不活动连接,缩短阈值,服务器超过阈值时会释放这些无效的半连接;

另一类方法是利用代理或者防火墙,例如SYN Cookie技术或者SYN proxy技术。

SYN Cookie的原理是,在服务器接收到SYN报文并返回SYN/ACK报文时,不分配一个专门的数据区,而是根据这个SYN报文计算出一个cookie值。这个cookie值作为将要返回的SYN/ACK报文的初始序列号。当客户端返回一个ACK报文时,服务器根据报文头信息计算cookie,与客户端返回的确认序列号进行对比,如果相同,则是一个正常连接,然后,分配资源,建立连接。这样,对于恶意的客户端发起的连接,就不会在为他们分配资源,从根本上遏制了黑客的进攻。

SYN proxy则是在SYN cookie的基础上改进的。客户端与握手代理进行三次握手,握手代理回复客户端的ACK报文携带的初始序列号由SYN cookie算法生成,与SYN cookie工作流程相似;当cookie验证通过后,握手代理充当客户端和服务端进行三次握手,并负责校正初始序列号和窗口大小;在连接建立之后握手代理负责调整客户端和服务端之间数据传输过程中的序列号和确认号。

2、TCP序列号攻击

这个讲解起来很难,对于网络安全的初学者了解即可,小编在这里放一个视频连接,感兴趣的小伙伴可以看一看。

劫持TCP连接,这操作太骚了!_哔哩哔哩_bilibili

如果你觉得小编写的还不错,麻烦点一个免费的赞和收藏好吗!

相关文章:

网络安全·第五天·TCP协议安全分析

一、传输层协议概述 1、功能 传输层负责建立端到端的连接,即应用进程之间的通信,负责数据在端到端之间的传输。与网络层不同的是,网络层负责主机与主机之间的通信。 同时,传输层还要对收到的报文进行差错检测(首部和…...

LX10-MDK的使用技巧

MDK5的使用技巧 查找匹配花括号 ​ Ctrle table键的妙用 一次右缩进4个(个人偏好设置)空格shiftenter取消,即左缩进 快速注释/取消注释 先选代码→ 快速编辑一列 按住ALT键选择一列编辑(实用性极强) 窗口拆分 倒数第一个:按列拆分倒数第二个:按行拆分 查找与替换(一个超级…...

IDEA创建Gradle项目然后删除报错解决方法

根据错误信息,你的项目目录中缺少Gradle构建必需的核心文件(如settings.gradle/build.gradle),且IDEA可能残留了Gradle的配置。以下是具体解决方案: 一、问题根源分析 残留Gradle配置 你通过IDEA先创建了Gradle子模块…...

JavaScript性能优化实战(2):DOM操作优化策略

浏览器渲染原理与重排重绘机制 浏览器将HTML和CSS转换为用户可见页面的过程是前端开发的基础知识,也是理解DOM性能优化的关键。这个渲染过程大致可分为以下几个步骤: 渲染过程的核心步骤 解析HTML构建DOM树:浏览器解析HTML标记,转换为DOM树(Document Object Model),表…...

乐视系列玩机---乐视1s x500 x501 x502等系列线刷救砖以及刷写第三方twrp 卡刷第三方固件步骤解析

乐视乐1S(X500 x501 x502 等)采用联发科 Helio X10(MT6795T)Turbo 64位8核处理器 通过博文了解💝💝💝 1💝💝💝-----详细解析乐视1s x500 x501x502等系列黑砖线刷救砖的步骤 2💝💝💝----官方两种更新卡刷步骤以及刷写第三方twrp过程与资源 3💝💝…...

Spark-Streaming(1)

Spark Streaming概述: 用于流式计算,处理实时数据流。 数据流以DStream(Discretized Stream)形式表示,内部由一系列RDD组成。 Spark Streaming特点: 易用、容错、易整合到spark体系。 易用性&#xff1a…...

【Git】Git Revert 命令详解

Git Revert 命令详解 1. Git Revert 的基本概念 Git Revert 是一个用于撤销特定提交的命令。与 Git Reset 不同,Git Revert 不会更改提交历史,而是会创建一个新的提交来撤销指定提交的更改。这意味着,使用 Git Revert 后,项目的…...

SpringClound 微服务分布式Nacos学习笔记

一、基本概述 在实际项目中,选择哪种架构需要根据具体的需求、团队能力和技术栈等因素综合考虑。 单体架构(Monolithic Architecture) 单体架构是一种传统的软件架构风格,将整个应用程序构建为一个单一的、不可分割的单元。在这…...

PageIndex:构建无需切块向量化的 Agentic RAG

引言 你是否对长篇专业文档的向量数据库检索准确性感到失望?传统的基于向量的RAG系统依赖于语义相似性而非真正的相关性。但在检索中,我们真正需要的是相关性——这需要推理能力。当处理需要领域专业知识和多步推理的专业文档时,相似度搜索常…...

使用Java调用TensorFlow与PyTorch模型:DJL框架的应用探索

在现代机器学习的应用场景中,Python早已成为广泛使用的语言,尤其是在深度学习框架TensorFlow和PyTorch的开发和应用中。尽管Java在许多企业级应用中占据一席之地,但因为缺乏直接使用深度学习框架的能力,往往使得Java开发者对机器学…...

nodejs的包管理工具介绍,npm的介绍和安装,npm的初始化包 ,搜索包,下载安装包

nodejs的包管理工具介绍,npm的介绍和安装,npm的初始化包 ,搜索包,下载安装包 🧰 一、Node.js 的包管理工具有哪些? 工具简介是否默认特点npmNode.js 官方的包管理工具(Node Package Manager&am…...

LeetCode 热题 100_分割等和子集(89_416_中等_C++)(动态规划)

LeetCode 热题 100_分割等和子集(89_416) 题目描述:输入输出样例:题解:解题思路:思路一(动态规划): 代码实现代码实现(思路一(动态规划&#xff0…...

EasyCVR视频智能分析平台助力智慧园区:全场景视频监控摄像头融合解决方案

一、方案背景 在智慧园区建设的浪潮下,设备融合、数据整合与智能联动已成为核心诉求。视频监控作为智慧园区的“视觉中枢”,其高效整合直接影响园区的管理效能与安全水平。然而,园区内繁杂的视频监控设备生态——不同品牌、型号、制式的摄像…...

《剥开卷积神经网络CNN的 “千层酥”:从基础架构到核心算法》

文章目录 前言卷积神经网络(Convolutional Neural Network,CNN)是一种专门用于处理网格结构数据(如图像、视频、音频)的深度学习模型。它在计算机视觉任务(如图像分类、目标检测)中表现尤为出色…...

win10中打开python的交互模式

不是输入python3,输入python,不知道和安装python版本有没有关系。做个简单记录,不想记笔记了...

技术与情感交织的一生 (七)

目录 出师 大三 MVP 首战 TYMIS はじめまして 辣子鸡丁 报价 日本人 致命失误 大佬 包围 品质保障 扩军 唯快不破 闪电战 毕业 总攻 Hold On 出师 大三 大三的学习生活,能认认真真的上一天课的时候很少,甚至经常因为客户的 “传呼”…...

ElasticSearch深入解析(一):Elastic Stack全景

一、Elastic Stack的发展 过去和现在: Elastic数据平台在搜索、地理位置、内部日志、数据指标、安全监控和APM应用性能管理等场景中的应用颇具亮点。 APM(Application Performance Management,应用性能管理)是一种用于监控和管理…...

CAD在线查看免费,可以支持DWG/GLB/GLTF/doc/wps/pdf/psd/eml/zip, rar/MP3/MP4/svg/OBJ/FBX格式

CAD在线查看免费,可以支持DWG/GLB/GLTF/doc/wps/pdf/psd/eml/zip, rar/MP3/MP4/svg/OBJ/FBX格式 m.gszh.xyz m.gszh.xyz 免费支持以下格式文件在线查看类型 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx, xlam, xla, pages …...

【机器学习案列-21】基于 LightGBM 的智能手机用户行为分类

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

多路转接poll服务器

目录 函数原型 poll服务器 对比select的优点 关于select的详解&#xff0c;可查看多路转接select服务器-CSDN博客 函数原型 #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout); poll作为多路转接的实现方案&#xff0c;与select要解决的问…...

全本地化智能数字人

&#x1f31f;EdgePersona- 全本地化智能数字人 ​完全离线 | 隐私无忧 | 轻量高效 |笔记本友好 测试效果&#xff1a;【纯本地部署的电子魅魔&#xff01;笔记本也能离线&#xff0c;隐私性拉满】 https://www.bilibili.com/video/BV1jydeYTETD/?share_sourcecopy_web&v…...

第6次课 贪心算法 A

向日葵朝着太阳转动&#xff0c;时刻追求自身成长的最大可能。 贪心策略在一轮轮的简单选择中&#xff0c;逐步导向最佳答案。 课堂学习 引入 贪心算法&#xff08;英语&#xff1a;greedy algorithm&#xff09;&#xff0c;是用计算机来模拟一个「贪心」的人做出决策的过程…...

Docker 部署 PostgreSQL 数据库

Docker 部署 PostgreSQL 数据库 基于 Docker 部署 PostgreSQL 数据库一、拉取 PostgreSQL 镜像二、运行 PostgreSQL 容器三、运行命令参数详解四、查看容器运行状态 基于 Docker 部署 PostgreSQL 数据库 一、拉取 PostgreSQL 镜像 首先&#xff0c;确保你的 Docker 环境已正确…...

Android如何通过aspectj打造一个无侵入式动态权限申请框架

目录 一,背景 二,通过Aspectj管理所有的注解 三,配置注解 四,通过空白Activity完成真正的权限申请 五,引入依赖配置 一,背景 在Activity或者fragment中&#xff0c;写在几个方法写一些注释&#xff0c;用来表示权限申请成功&#xff0c;申请失败&#xff0c;多次拒绝。…...

Flink介绍——实时计算核心论文之Dataflow论文详解

引入 在过去的几篇文章里&#xff0c;我们看到了大数据的流式处理系统是如何一步一步进化的。从最早出现的S4&#xff0c;到能够做到“至少一次”处理的Storm&#xff0c;最后是能够做到“正好一次”数据处理的MillWheel。我们会发现&#xff0c;这些流式处理框架&#xff0c;…...

浅克隆(--depth 1)后如何获取完整的历史记录

如果远程remote为origin&#xff0c;则origin可以不写&#xff0c;如不是&#xff0c;则必须要写 获取全部分支 git fetch origin refs/heads/*:refs/remotes/origin/* 单独获取master分支 git fetch origin refs/heads/master:refs/remotes/origin/master 获取全部历史…...

安宝特案例 | 某知名日系汽车制造厂,借助AR实现智慧化转型

案例介绍 在全球制造业加速数字化的背景下&#xff0c;工厂的生产管理与设备维护效率愈发重要。 某知名日系汽车制造厂当前面临着设备的实时监控、故障维护&#xff0c;以及跨地域的管理协作等挑战&#xff0c;由于场地分散和突发状况的不可预知性&#xff0c;传统方式已无法…...

Feign 深度解析:Java 声明式 HTTP 客户端的终极指南

Feign 深度解析&#xff1a;Java 声明式 HTTP 客户端的终极指南 Feign 是由 Netflix 开源的 ​声明式 HTTP 客户端&#xff0c;后成为 Spring Cloud 生态的核心组件&#xff08;现由 OpenFeign 维护&#xff09;。它通过注解和接口定义简化了服务间 RESTful 通信&#xff0c;并…...

WPS Office安卓版云文档同步速度与PDF转换体验测评

WPS Office安卓版是很多人常用的移动办公软件。它支持在线编辑、文档同步、格式转换等功能&#xff0c;适合手机和平板用户随时处理文档。我们用它配合谷歌浏览器打开网页文档时&#xff0c;也可以将内容快速保存到云端或转换成PDF格式使用。 先说云文档同步。在打开WPS Office…...

ARM汇编的LDM和STM指令

批量加载/存储指令可以实现在一组寄存器和一块连续的内存单元之间传输数据.LDM 为加载多个寄存器&#xff0c;STM 为存储多个寄存器.允许一条指令传送 16 个寄存器的任何子集或所有寄存器.指令格式如下: LDM{cond}<模式> Rn{!},reglist{^} STM{cond}<模式> Rn{!}…...

Python-27:游戏英雄升级潜力评估

问题描述 小U在一款挂机游戏中拥有n个英雄。游戏中有一种历练升级机制&#xff0c;每天可以选择两个英雄进行历练&#xff0c;如果两位英雄的等级相同&#xff0c;则他们的等级都不会改变。如果英雄等级不同&#xff0c;那么等级较高的英雄会增加1级&#xff0c;而等级较低的英…...

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之显示勾选的购物车数据和创建订单

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【Spring篇】【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f680;1.显示勾选的购物…...

AWS Lambda 架构深入探究

AWS Lambda 是现代云架构中最受欢迎的服务之一&#xff0c;因其能够在完全托管的无服务器环境中运行代码而广受认可。然而&#xff0c;尽管 Lambda 广受欢迎&#xff0c;许多开发者和架构师对它的底层运作机制却知之甚少&#xff0c;常常将其视为“编写能够在云端神奇运行的代码…...

信奥赛CSP-J复赛集训(DP专题)(19):P3399 丝绸之路

信奥赛CSP-J复赛集训&#xff08;DP专题&#xff09;&#xff08;19&#xff09;&#xff1a;P3399 丝绸之路 题目背景 张骞于公元前 138 年曾历尽艰险出使过西域。加强了汉朝与西域各国的友好往来。从那以后&#xff0c;一队队骆驼商队在这漫长的商贸大道上行进&#xff0c;他…...

网络NAT类型测试

免费收录PCDN、GPU算力网站_算力收录站需要专业的PCDN、GPU算力网站收录服务吗&#xff1f;算力收录站为您提供高效、可信赖的收录服务&#xff0c;提升您的网站能见度。https://www.cdngpu.com/ 什么是 NAT&#xff1a;NAT代表网络地址转换&#xff0c;允许多个内网设备共享一…...

Postman下载安装与使用汉化版教程

简介&#xff1a; Postman 是一款常用的 API 测试工具&#xff0c;可以方便地进行接口测试、调试和文档编写。本文将详细介绍如何下载安装 Postman 并汉化&#xff0c;包括每个步骤的详细说明。 Postman 是一款常用的 API 测试工具&#xff0c;可以方便地进行接口测试、调试和…...

使用Python+OpenCV对视频抽帧保存为JPG图像

使用PythonOpenCV对视频抽帧保存为JPG图像 import os import cv2 import time#视频文件夹路径&#xff0c;可修改 videoPath D:\\video\\ #保存的图片文件夹路径&#xff0c;可修改 savePath D:\\images\\ videolist os.listdir(videoPath) if not os.path.exists(savePath…...

Java的反射机制(曼波超易懂图文版)

(✪▽✪)曼波~~~~&#xff01;好的呀~让曼波用最可爱的姿势为你讲解Java反射机制吧&#xff01; &#x1f31f;反射机制核心概念 曼波觉得反射就像编程世界的"魔法镜"(◕ᴗ◕✿) 可以让我们在运行时动态获取类的信息并操作类对象&#xff01; // 举个栗子&#…...

【DeepSeek 学习推理】Llumnix: Dynamic Scheduling for Large Language Model Serving实验部分

6.1 实验设置 测试平台。我们使用阿里云上的16-GPU集群&#xff08;包含4个GPU虚拟机&#xff0c;类型为ecs.gn7i-c32g1.32xlarge&#xff09;。每台虚拟机配备4个NVIDIA A10&#xff08;24 GB&#xff09;GPU&#xff08;通过PCI-e 4.0连接&#xff09;、128个vCPU、752 GB内…...

运行neo4j.bat console 报错无法识别为脚本,PowerShell 教程:查看语言模式并通过注册表修改受限模式

无法将“D:\neo4j-community-4.4.38-windows\bin\Neo4j-Management\Get-Args.ps1”项识别为cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次。 前提配置好环境变量之后依然报上面的错…...

AI写代码之GO+Python写个爬虫系统

下面我们我们来利用AI&#xff0c;来用GOPython写个爬虫系统。 帮我写一个Python语言爬取数据写入Mysql的案例&#xff0c;信息如下&#xff1a; 1、Mysql数据库地址是&#xff1a;192.168.1.20 &#xff0c;mysql用户名是&#xff1a;root&#xff0c; Mysql密码是&#xff1…...

【FAQ】如何配置PCoIP零客户端AWI能访问

应用场景 在安全性要求较高的环境中&#xff0c;禁用 AWI 并使用 PCoIP 管理控制台配置端点&#xff0c;建议隐藏 OSD 以提高安全性。 通过OSD和AWI: 阻止 PCoIP 管理工具管理 PCoIP 零客户端。禁用对 Tera2 PCoIP Zero Client 的 AWI 的管理访问。下次访问 AWI 或 OSD 时强…...

RAGFlow:构建高效检索增强生成流程的技术解析

引言 在当今信息爆炸的时代&#xff0c;如何从海量数据中快速准确地获取所需信息并生成高质量内容已成为人工智能领域的重要挑战。检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;技术应运而生&#xff0c;它将信息检索与大型语言模型&#xff08;L…...

go语言中defer使用指南

目录 1.使用场景 2.执行顺序 3.for循环中的defer及defer中的闭包陷阱 4.defer与返回值的关系 5.总结 1.使用场景 在编程的时候&#xff0c;经常需要打开一些资源&#xff0c;比如数据库连接、文件、锁等&#xff0c;这些资源需要在用完之后释放掉&#xff0c;否则会造成内…...

成熟软件项目解决方案:360°全景影像显控软件系统

​若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/147425300 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、Open…...

域名解析体系中 IPv4/IPv6 地址切换的关键技术剖析

前言&#xff1a; 对接的一家学校业务&#xff0c;学校老师要求域名解析既能解析到ipv4地址又能解析到ipv6地址。听学校老师叙述&#xff08;还是会考察v6开通率的&#xff09;&#xff0c;所以通过这个方法来实现的&#xff0c;域名解析到ipv6和ipv4都可以。 准备一台机器 机…...

PHP 爬虫如何获取 1688 商品详情(代码示例)

在电商领域&#xff0c;获取 1688 商品的详细信息对于市场分析、选品上架、库存管理和价格策略制定等方面至关重要。1688 作为国内领先的 B2B 电商平台&#xff0c;提供了丰富的商品数据。通过 PHP 爬虫技术&#xff0c;我们可以高效地获取 1688 商品的详细信息&#xff0c;包括…...

Mysql的redolog

保证事务持久性&#xff0c;用于崩溃恢复&#xff0c;崩溃恢复时&#xff0c;把redo上记载的页读到内存&#xff0c;对其修改&#xff0c;变为脏页&#xff0c;刷盘运用于WAL技术&#xff0c;将随机写改为顺序写 redo log有三种状态&#xff1a; 存在 redo log buffer 中&…...

C++ 哈希表

1. 哈希表的概念 在vector、list的顺序结构中&#xff0c;查找效率为 O ( N ) O(N) O(N)&#xff0c;在set、map的树型结构中&#xff0c;查找效率为 O ( l o g 2 N ) O(log_2{N}) O(log2​N)&#xff0c;有没有更优的结构 —— 哈希表 如果让数据按照某种规则映射到某个值&a…...

【pytorch学习】土堆pytorch笔记1

学习参考 仓库 https://github.com/xiaotudui/pytorch-tutorialhttps://github.com/xiaotudui/pytorch-tutorial https://github.com/AccumulateMore/CV 参考博客 https://blog.csdn.net/weixin_44216612/article/details/124203730? https://www.morinha.cc/posts/cours…...