深入理解TCP与UDP:协议对比、头部结构与连接管理
一、TCP与UDP的核心区别
特性 | TCP | UDP |
---|---|---|
连接特性 | 面向连接(三次握手建立连接) | 无连接,直接传输数据 |
可靠性 | 通过确认重传、排序、流控保证可靠 | 尽力交付,不保证数据到达 |
流量控制 | 支持滑动窗口机制调节发送速率 | 不支持 |
数据分段 | 支持大数据分段传输 | 以完整报文传输(最大65507字节) |
资源与效率 | 头部大(20-60字节)、效率较低 | 头部小(8字节)、传输速度快 |
二、适用场景对比
1. TCP典型场景
- 文件传输(FTP/HTTP)
- 邮件协议(SMTP/POP3)
- 网页浏览(HTTPS)
核心需求:数据完整性与准确性优先,容忍一定延迟。
2. UDP典型场景
- 实时视频/直播(RTP)
- 在线游戏(MOBA/FPS)
- DNS查询
核心需求:低延迟优先,允许少量数据丢失。
三、协议头部结构详解
TCP头部(20-60字节)
1. 基础标识字段
- 源端口(Source Port):16位,标识发送方应用程序进程
- 目的端口(Destination Port):16位,标识接收方应用程序进程
- 序列号(Sequence Number):32位,标识发送数据流中第一个字节的序号
- 确认号(Acknowledgment Number):32位,期望接收的下一个字节序号(仅当ACK=1时有效)
2. 控制字段
- 头部长度(HL):4位,以32位字为单位计算头部长度(最小值为5,对应20字节)
- 保留位(Reserved):6位,必须置0,为未来协议扩展保留
- 控制标志(Control Flags):6位,按顺序表示:
URG
:紧急指针有效(置1时优先处理数据)ACK
:确认字段有效(建立连接后必须置1)PSH
:推送功能请求(要求立即提交数据到应用层)RST
:连接重置(强制中止异常连接)SYN
:同步序列号(连接建立阶段使用)FIN
:数据传输结束(正常关闭连接)
3. 流量控制字段
- 窗口大小(Window Size):16位,声明接收窗口剩余容量(最大65535字节)
- 紧急指针(Urgent Pointer):16位,配合URG标志定位紧急数据末尾位置
4. 校验与扩展
- 校验和(Checksum):16位,覆盖伪头部+TCP头部+数据的CRC校验值
- 选项(Options):可变长度,支持:
- 最大报文段大小(MSS)协商
- 窗口缩放因子(Window Scaling)
- 时间戳(Timestamp)
- 选择性确认(SACK)
伪头部校验机制
0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Zero | Proto | TCP Length (包括头部和数据) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- 组成要素:源/目的IP地址(各32位)、协议类型(8位)、TCP报文总长度(16位)
- 验证范围:IP层关键信息参与校验,防止路由篡改
2. UDP头部(固定8字节)
四、TCP连接管理机制
1. 三次握手建立连接
关键步骤:
- 客户端发送SYN包(随机初始化序列号x)
- 服务端返回SYN-ACK包(确认号x+1,随机序列号y)
- 客户端发送ACK包(确认号y+1),连接建立
2. 四次挥手释放连接
关键状态迁移:
- 客户端:FIN_WAIT_1 → FIN_WAIT_2 → TIME_WAIT(等待2MSL)
- 服务端:CLOSE_WAIT → LAST_ACK → CLOSED
为什么需要四次挥手?
TCP是全双工协议,需分别关闭两个方向的数据流:
- 客户端关闭发送通道(FIN)
- 服务端确认并关闭接收通道(ACK)
- 服务端关闭发送通道(FIN)
- 客户端确认并关闭接收通道(ACK)
五,实验复现
一、实验环境搭建
拓扑设计
二、TCP三次握手复现(HTTP通信)
-
启动抓包
- 右键点击与路由器之间的链路 → 启动Wireshark抓包
- 设置过滤器:
tcp.port == 80
-
发起HTTP请求
数据包分析报告:TCP连接与HTTP通信全流程
1. TCP三次握手建立连接
数据包 | 源地址:端口 | 目标地址:端口 | 协议 | 标志位 | 序列号(Seq) | 确认号(Ack) | 说明 |
---|---|---|---|---|---|---|---|
1 | 192.168.1.10:2050 | 192.168.2.20:80 | TCP | SYN | 0 | - | 客户端发起连接请求 |
2 | 192.168.2.20:80 | 192.168.1.10:2050 | TCP | SYN+ACK | 0 | 1 | 服务端确认连接请求 |
3 | 192.168.1.10:2050 | 192.168.2.20:80 | TCP | ACK | 1 | 1 | 客户端确认连接建立 |
关键点:
- 序列号递增规则:SYN包占1个序号(
Seq=0
→ 下一包Seq=1
)。 - MSS协商:双方声明最大报文段长度(1460字节),基于MTU 1500字节(扣除IP和TCP头部)。
2. HTTP请求与响应
数据包 | 源地址:端口 | 目标地址:端口 | 协议 | 内容 | 说明 |
---|---|---|---|---|---|
4 | 192.168.1.10:2050 | 192.168.2.20:80 | HTTP | GET / HTTP/1.1 | 客户端请求根路径资源 |
5 | 192.168.2.20:80 | 192.168.1.10:2050 | HTTP | HTTP/1.1 200 OK | 服务端返回HTML内容 |
6 | 192.168.1.10:2050 | 192.168.2.20:80 | TCP | ACK | 客户端确认收到HTTP响应 |
关键点:
- HTTP协议特征:GET请求与200响应均通过TCP连接传输。
- 数据长度:HTTP响应包长度361字节(含头部和HTML内容)。
3. TCP四次挥手断开连接
数据包 | 源地址:端口 | 目标地址:端口 | 协议 | 标志位 | 序列号(Seq) | 确认号(Ack) | 说明 |
---|---|---|---|---|---|---|---|
7 | 192.168.1.10:2050 | 192.168.2.20:80 | TCP | FIN+ACK | 159 | 308 | 客户端发起断开请求 |
8 | 192.168.2.20:80 | 192.168.1.10:2050 | TCP | ACK | 308 | 160 | 服务端确认客户端的FIN |
9 | 192.168.2.20:80 | 192.168.1.10:2050 | TCP | FIN+ACK | 308 | 160 | 服务端发起断开请求 |
10 | 192.168.1.10:2050 | 192.168.2.20:80 | TCP | ACK | 160 | 309 | 客户端确认服务端的FIN |
关键点: 。
- 序列号与确认号规则:
- 客户端发送FIN后,序列号递增至159(假设之前数据长度为158字节)。
- 服务端确认号为160(159+1),符合
Ack=Seq+1
的规则。
4. 网络性能与延迟分析
阶段 | 时间差 | 说明 |
---|---|---|
SYN → SYN-ACK | 15ms | 网络往返时间(RTT)约15ms |
HTTP请求→响应 | 78ms | 服务端处理请求耗时 |
FIN → FIN-ACK | 843ms | 客户端等待应用层释放资源后断开连接 |
三、UDP协议验证(模拟DNS查询)
-
配置DNS服务
-
抓包设置
- 过滤器:
udp.port == 53
- 过滤器:
-
执行DNS查询
DNS查询与响应抓包分析报告
1. 数据包概览
数据包 | 时间戳 | 源地址:端口 | 目标地址:端口 | 协议 | 长度 | 信息 |
---|---|---|---|---|---|---|
21 | 1092.078000 | 192.168.1.10:49153 | 192.168.2.20:53 | DNS | 71字节 | 查询 www.aaa.com 的A记录 |
23 | 1092.156000 | 192.168.2.20:53 | 192.168.1.10:49153 | DNS | 87字节 | 响应 www.aaa.com → 192.168.2.20 |
2. 分层解析
2.1 数据包21(DNS查询)
-
以太网层
- 源MAC:
54:89:98:53:50:b4
(客户端) - 目的MAC:
00:e0:fc:90:09:b9
(DNS服务器/路由器) - 关键点:若跨子网通信,目的MAC可能为路由器接口MAC。
- 源MAC:
-
IP层
- 源IP:
192.168.1.10
(客户端) - 目的IP:
192.168.2.20
(DNS服务器) - 关键点:客户端与DNS服务器位于不同子网(
192.168.1.0/24
vs192.168.2.0/24
),需通过路由器转发。
- 源IP:
-
UDP层
- 源端口:
49153
(客户端临时端口) - 目的端口:
53
(DNS服务端口) - 关键点:DNS默认使用UDP,仅当响应过大时切换TCP。
- 源端口:
-
DNS层
- 事务ID:
0x0000
- 查询类型:
A
记录(IPv4地址) - 查询域名:
www.aaa.com
- 关键点:
- 事务ID应为随机值(此处为
0x0000
,需检查是否为抓包工具显示问题或配置异常)。 - 查询长度71字节,符合简单DNS查询的典型大小。
- 事务ID应为随机值(此处为
- 事务ID:
2.2 数据包23(DNS响应)
-
以太网层
- 源MAC:
00:e0:fc:90:09:b9
(DNS服务器/路由器) - 目的MAC:
54:89:98:53:50:b4
(客户端)
- 源MAC:
-
IP层
- 源IP:
192.168.2.20
(DNS服务器) - 目的IP:
192.168.1.10
(客户端)
- 源IP:
-
UDP层
- 源端口:
53
(DNS服务端口) - 目的端口:
49153
(客户端临时端口)
- 源端口:
-
DNS层
- 事务ID:
0x0000
(与查询匹配) - 响应类型:
A
记录 - 解析结果:
www.aaa.com
→192.168.2.20
- 关键点:
- 响应长度87字节,包含查询结果和资源记录头部。
- 若
192.168.2.20
为DNS服务器自身IP,可能是本地测试配置(如hosts文件或本地DNS记录)。
- 事务ID:
3. 完整DNS交互流程
相关文章:
深入理解TCP与UDP:协议对比、头部结构与连接管理
一、TCP与UDP的核心区别 特性TCPUDP连接特性面向连接(三次握手建立连接)无连接,直接传输数据可靠性通过确认重传、排序、流控保证可靠尽力交付,不保证数据到达流量控制支持滑动窗口机制调节发送速率不支持数据分段支持大数据分段…...
Flask快速入门和问答项目源码
Flask基础入门 源码: gitee:我爱白米饭/Flask问答项目 - 码云 目录 1.安装环境2.【debug、host、port】3.【路由params和query】4.【模板】5.【静态文件】6.【数据库连接】6.1.安装模块6.2.创建数据库并测试连接6.3.创建数据表6.4.ORM增删改查 6.5.ORM模…...
python创建flask项目
好的,我会为你提供一个使用 Flask、pg8000 和 Pandas 构建的后台基本框架,用于手机理财产品 App 的报表分析接口。这个框架将包含异常处理、模块化的结构以支持多人协作,以及交易分析和收益分析的示例接口。 项目结构: financial_report_ap…...
Flink 的窗口机制
🪟 1. 基于时间驱动的滚动时间窗口(Tumbling Time Window - Time-based) ✅ 定义: 每隔固定的时间周期开启一个新的窗口。窗口之间不重叠。 🕒 示例: DataStream<Tuple2<String, Integer>>…...
STM32 OTA 中断向量表重定向
在STM32的OTA(Over-the-Air)升级中,中断向量表重定向是关键技术需求,其核心原因在于STM32的硬件架构和固件运行机制。以下从原理、实现方式及必要性三个角度详细分析: 一、中断向量表的作用与默认机制 中断向量表的…...
先说爱的人为什么先离开
2025年5月19日,15~23℃,贼好的一天,无事发生 待办: 2024年税务申报 《高等数学2》取消考试资格学生名单 《物理[2]》取消考试资格名单 5月24日、25日监考报名 《高等数学2》备课 《物理[2]》备课 职称申报材料 教学技能大赛PPT 遇…...
OnlyOffice秘籍系列.6-表格保护功能详解-灵活设置单元格的权限
最近很多用户在咨询是否可以提供一个灵活控制表格权限的在线协同编辑表格,这里和大家分享如果用OnlyOffice在线表格实现。 OnlyOffice 是一款功能强大的在线协作办公套件,其表格工具(Spreadsheet Editor)提供了完善的数据保护机制,…...
LLM笔记(八)Transformer学习
文章目录 1. Transformer 整体架构2. 核心组件详解2.1. 输入部分 (Input Embedding & Positional Encoding)2.2. 注意力机制 (Attention Mechanism)2.2.1. Padding Mask (填充掩码)2.2.2. Sequence Mask (Look-ahead Mask / Subsequent Mask / Causal Mask) 2.3. Multi-Hea…...
Vue 3 中使用 md-editor-v3 的完整实例markdown文本
下面我将提供一个完整的 Vue 3 项目中使用 md-editor-v3 的 Markdown 编辑器实现,包含常用功能和最佳实践。 1. 基础实现 安装依赖 npm install md-editor-v3也可以是pnpm安装 pnpm install md-editor-v3基础编辑器组件 (BasicEditor.vue) <template> &l…...
OpenCV-图像分割
实验1 实验内容 上述代码通过使用OpenCV和Matplotlib库来执行以下操作: 读取名为’kt.jpg’的图像文件,并存储在变量img中。将图像img转换为灰度图像,将其存储在变量gray中。使用cv2.threshold函数对灰度图gray进行阈值化处理,…...
Vue-计算属性
计算属性 案例 输入姓、名, 全名称姓名 实现 插值语法 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>计算属性与监视</title><!-- 引入Vue --><script type&…...
16. 通用配置文件开发.py
16. 通用配置文件开发.py 一、配置文件架构设计 1.1 模块化结构规划 #mermaid-svg-Iuex47psGWeZj6XQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Iuex47psGWeZj6XQ .error-icon{fill:#552222;}#mermaid-svg-Iu…...
Python训练营打卡 Day29
复习日:类的装饰器 知识点回顾 类的装饰器:餐厅升级计划 假设你是一家餐厅的老板,餐厅已经运营了一段时间,但你希望提升服务质量,比如在每道菜上增加一些特别的服务(比如日志记录、额外的装饰等)…...
解决 Tailwind CSS 代码冗余问题
解决 Tailwind CSS 代码冗余问题 Tailwind CSS 确实可能导致 HTML 类名过长和冗余的问题,以下是几种有效的解决方案: 1. 使用 apply 指令提取重复样式 /* 在CSS文件中 */ .btn {apply px-4 py-2 rounded-md font-medium; }.card {apply p-6 bg-white …...
【藏经阁】加密机服务完整解决方案,包含客户端+服务端
前言 你是否存在这样的苦恼,数据需要安全存储,但是每个系统大家自己写,很浪费时间。 encryption-local 一个离线版本的金融敏感信息加解密工具,用于数据库敏感信息存储。 离线版本的加解密好处是非常的方便。不过缺点也比较明显…...
互联网大厂Java求职面试:AI与大模型应用集成及云原生挑战
互联网大厂Java求职面试:AI与大模型应用集成及云原生挑战 面试场景设定 郑薪苦是一位具有搞笑风格但技术潜力巨大的程序员,正在接受一位严肃专业的技术总监面试。 第一轮提问 面试官:在我们公司的短视频平台中,需要处理千万级…...
ffmpeg -vf subtitles添加字幕绝对路径问题的解决方法
今天遇到奇怪的问题,老是报 Unable to parse option value Error applying option original_size to filter subtitles: Invalid argument 踩坑很长时间,记录下 因subtitles需要指定绝对路径, 注意点: 外面要用单引号 不能…...
JetBrains IDEA,Android Studio,WebStorm 等IDE 字体出现异常时解决方法
JetBrains IDEA,Android Studio,WebStorm 等IDE 中文字体出现异常,很怪的时候,通常需要设置字体回退才能解决。 需要在 Font 中将字体连写打开,并且设置字体回退为 Microsoft YaHei Ul 只有这样 IDEA 在没有中文字体的样式下,会将…...
鸿蒙AI开发:10-多模态大模型与原子化服务的集成
鸿蒙AI开发:10-多模态大模型与原子化服务的集成 在鸿蒙生态中,多模态大模型与原子化服务的集成是一个重要课题。本文将介绍如何在鸿蒙平台上进行多模态大模型与原子化服务的集成,以及相关的技术细节和实际案例。 鸿蒙AI开发概述 什么是鸿蒙AI…...
信奥赛CSP动态规划入门-最大子段和
针对**“最大子段和”**问题的详细分步解析与程序实现,通过动态规划将大问题分解为小问题: 一、问题拆解步骤 1. 明确问题定义 大问题:在数组[-2,1,-3,4,-1,2,1]中,找到连续子数组的和的最大值。 小问题:以每个位置i结尾的子数组能得到的最大和。 2. 状态定义 定义数组…...
Python爬虫实战:通过PyExecJS库实现逆向解密
1. 核心定义 1.1 PyExecJS 库 PyExecJS 是 Python 的第三方库,通过调用 JavaScript 运行时环境(如 Node.js、PhantomJS),实现 Python 与 JavaScript 的无缝交互。其核心功能包括: JavaScript 代码编译与执行跨语言函数调用与数据传递多引擎支持与自动环境检测1.2 字段加…...
网络安全深度解析:21种常见网站漏洞及防御指南
一、高危漏洞TOP 10 1. SQL注入(SQLi) 原理:通过构造恶意SQL语句突破系统过滤机制 典型场景: - 联合查询注入: union select 1,version(),3--+ - 布尔盲注:and (select substr(user(),1,1)=r) - 时间盲注:;if(now()=sysdate(),sleep(5),0)/ 防御方案: - 严格参数化查…...
web系统安全管理
一、概述 认证、授权是JavaWeb项目的核心部分。 二、相关概念 1、认证Authentication 认证,简单来说,就是确认用户身份的过程,确认“你是谁”(验证身份)。 2、授权(Authorization) 授权&…...
相机基础常识
相机基础常识 相机中颜色滤镜的作用🎨 1. **捕捉彩色图像**✅ 最常见的颜色滤镜阵列是 **拜耳滤镜(Bayer Filter)**: 🔍 2. **实现特定的图像效果或分析功能**✅ 常见的滤镜类型包括: 🛠️ 3. *…...
Python训练营打卡Day29
复习日:类的装饰器 知识点回顾 类的装饰器装饰器思想的进一步理解:外部修改、动态类方法的定义:内部定义和外部定义 1. 类的装饰器 类的装饰器是一种特殊的函数,用于修改或扩展类的行为。它们在类定义时被应用,类似于函…...
不同版本 Linux 系统账号操作指令 ——rtkit 账号删除、普通账号的创建 / 删除 / 权限修改超详细大全
不同版本 Linux 系统账号操作指令 ——rtkit 账号删除、普通账号的创建 / 删除 / 权限修改超详细大全 安全提醒 先备份:/etc/passwd 、/etc/shadow 、/etc/group 、/etc/sudoers 以及 Home 目录。系统账户慎删:rtkit 属于实时调度守护进程 RealtimeKit&…...
基于 Zookeeper 部署 Kafka 集群
文章目录 1、前期准备2、安装 JDK 83、搭建 Zookeeper 集群3.1、下载3.2、调整配置3.3、标记节点3.4、启动集群 4、搭建 Kafka 集群4.1、下载4.2、调整配置4.3、启动集群 1、前期准备 本次集群搭建使用:3 Zookeeper 3 Kafka,所以我在阿里云租了3台ECS用…...
Listener method could not be invoked with the incoming message
问题描述 生产者方代码: private void rollbackOrder(long orderId, CorrelationData correlationData) {rabbitTemplate.convertAndSend("order-rollback-exchange","rollback.order",new QuotaRollbackTO(orderId,null,null),correlationData…...
VueUse/Core:提升Vue开发效率的实用工具库
文章目录 引言什么是VueUse/Core?为什么选择VueUse/Core?核心功能详解1. 状态管理2. 元素操作3. 实用工具函数4. 浏览器API封装5. 传感器相关 实战示例:构建一个拖拽上传组件性能优化技巧与原生实现对比常见问题解答总结 引言 在现代前端开发…...
记录一次win11本地部署deepseek的过程
20250518 win11 docker安装部署 ollama安装 ragflow部署 deepseek部署 文章目录 1 部署Ollama下载安装ollama配置环境变量通过ollama下载模型deepseek-r1:7b 2 部署docker2.1 官网下载amd版本安装2.2 配置wsl2.3 Docker配置:位置代理镜像源 3 部署RAGFlow更换ragfl…...
PrimeVul论文解读-如何构建高质量漏洞标签与数据集
目录 1. 引入2. 现有漏洞识别方案的不足2.1 数据集中label不准2.2 数据重复2.3 测评标准不够好 3. 现有漏洞识别数据集分析3.1 关于现有数据集中label的准确率分析3.2 关于现有数据集中数据泄露( Data Leakage)情况分析 4. 漏洞识别测评5. PrimeVul数据集…...
现代生活健康养生新视角
在科技飞速发展的今天,我们的生活方式发生巨大转变,健康养生也需要新视角。从光线、声音等生活细节入手,能为健康管理开辟新路径。 光线与健康密切相关。早晨接触自然光线,可调节生物钟,提升血清素水平,…...
开启健康生活的多元养生之道
健康养生是一门值得终身学习的学问,在追求健康的道路上,除了常见方法,还有许多容易被忽视却同样重要的角度。掌握这些多元养生之道,能让我们的生活更健康、更有品质。 室内环境的健康不容忽视。定期清洁空调滤网,避…...
Flink 并行度的设置
在 Apache Flink 中,并行度(Parallelism) 是控制任务并发执行的核心参数之一。Flink 提供了 多个层级设置并行度的方式,优先级从高到低如下: 🧩 一、Flink 并行度的四个设置层级 层级描述设置方式Operator…...
抖音视频怎么去掉抖音号水印
你是不是经常遇到这样的烦恼?看到喜欢的抖音视频,想保存下来分享给朋友或二次创作,却被抖音号水印挡住了画面?别着急,今天教你几种超简单的方法,轻松去除水印,高清无水印视频一键保存࿰…...
类的加载过程详解
类的加载过程详解 Java类的加载过程分为加载(Loading)、链接(Linking) 和 初始化(Initialization) 三个阶段。其中链接又分为验证(Verification)、准备(Preparation&…...
运行:MSI Afterburner报错:应用程序无法启动并行配置不正确
从日志中可以看出,MSI Afterburner 运行时因缺少关键依赖组件(Microsoft.VC90.MFC)导致激活上下文生成失败。这是典型的 Visual C 运行时库缺失/版本不匹配 问题,与您提到的 for %1 in (%windir%\system32\*.dll) do regsvr32.exe…...
基于智能家居项目 ESP8266 WiFi 模块通信过程与使用方法详解
一、ESP8266 简介 ESP8266 是由乐鑫科技(Espressif)推出的一款低功耗、高集成度的 WiFi SoC 芯片。它内置 TCP/IP 协议栈,支持 STA(Station)、AP(Access Point)和 STA+AP 混合模式,可以独立作为主控 MCU 或配合其它主控(如 STM32、Arduino)通过串口通信使用。 常见…...
字节跳动开源通用图像定制模型DreamO,支持风格转换、换衣、身份定制、多条件组合等多种功能~
项目背景分析 图像定制是一个快速发展的领域,包括身份(ID)、风格、服装试穿(Try-On)等多种任务。现有研究表明,大规模生成模型在这些任务上表现出色,但大多数方法是任务特定的,难以推…...
Cursor:简单三步提高生成效率
第一步:结构化提示词——像写需求文档一样对话 常见误区:“做个知识管理模块,用SpringBoot。” 问题:AI会陷入迷茫——需要哪些字段?分页怎么做?异常处理是否需要? 正确写法: Note C…...
第二章 苍穹外卖
开发环境搭建_后端环境搭建_熟悉项目结构 constant:存储的是定义好的常量类 context:存储与上下文相关的 enumeration:存储枚举类 exception:存储一些异常 json:处理一些json转换的类 properties:存储一些配置类 …...
【上位机——WPF】命名空间
概述 XAML命名空间实际上是XML命名空间概念的扩展。指定XAML命名空间的技术依赖于XML命名空间语法、使用URL作为命名空间标识符的约定,使用前缀提供从同一标记源中引用多个命名空间的方法,诸如此类,XML命名空间的XAML定义中增加的主要概念是…...
当AI自我纠错:一个简单的“Wait“提示如何让模型思考更深、推理更强
原论文:s1: Simple test-time scaling 作者:Niklas Muennighoff, Zitong Yang, Weijia Shi等(斯坦福大学、华盛顿大学、Allen AI研究所、Contextual AI) 论文链接:arXiv:2501.19393 代码仓库:GitHub - simp…...
【聚类】 K-means
K-means 文章目录 K-means1. 算法介绍2. 公式及原理3. 伪代码1. 算法介绍 背景与目标 K-means 是最经典、最常用的原型聚类(prototype-based clustering)算法之一,由 Stuart Lloyd 于1957年提出,1982年被广泛推广。其核心目标是: 将给定的 n n n 个数据点划分为 K K K 个…...
matlab分段函数
在 MATLAB 中,定义分段函数可以使用 piecewise 函数或者条件语句(如 if、else)来实现。以下是两种常见方法的示例: 1. 使用 piecewise 函数(适用于符号函数) syms x f piecewise(x < 0, x^2, x > …...
《Vite 报错》ReferenceError: module is not defined in ES module scope
trip): [ReferenceError] module is not defined in ES module scope 解决方案 postcss.config.js 要改为 postcss.config.cjs,也就是 .cjs 后缀。 原因解析 原因解析 下图提示,packages.json 中的属性 type 设置为 module。所有*.js文件现在都被解释…...
基于matlab/simulink锂电池算法学习集合(SOC、SOH、BMS)
一、引言概述。 锂电池是目前在各个能源密集型行业中用途广泛,例如新能源汽车、电力微网、航空航天等。电池模型的建立对研究电池的特性、SOC(state-of-charge)估计、SOH(state-of-health)估计、BMS算法开发以及电池系统的快速实时仿真有重要的意义。 等效电路建模…...
10.8 LangChain三大模块深度实战:从模型交互到企业级Agent工具链全解析
LangChain Community 项目:Model I/O, Retrieval, Agent Tooling 关键词:LangChain Model I/O, 检索增强生成, Agent 工具链, 多路召回策略, 工具调用协议 1. Model I/O 模块:大模型交互标准化接口 Model I/O 是 LangChain 生态中连接大模型的核心模块,定义了统一的输入输…...
408考研逐题详解:2009年第16题
2009年第16题 某机器字长为 16 位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一个字节为操作码字段,第二个字节为相对位移量字段。假定取指令时,每取一个字节 PC 自动加 1。若某转移指令所在…...
python打卡day29@浙大疏锦行
知识点回顾 类的装饰器装饰器思想的进一步理解:外部修改、动态类方法的定义:内部定义和外部定义 作业:复习类和函数的知识点,写下自己过去29天的学习心得,如对函数和类的理解,对python这门工具的理解等&…...