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

计算机网络 TCP篇常见面试题总结

目录

TCP 的三次握手与四次挥手详解

1. 三次握手(Three-Way Handshake)

2. 四次挥手(Four-Way Handshake)

TCP 为什么可靠?

1. 序列号与确认应答(ACK)

2. 超时重传(Retransmission)

3. 滑动窗口(Sliding Window)

4. 拥塞控制(Congestion Control)

5. 校验和(Checksum)

6. 面向连接

总结对比

TCP滑动窗口

三次握手期间的窗口协商

数据传输阶段的窗口动态调整

关键细节补充 

1. 窗口大小与拥塞控制的关系

2. 糊涂窗口综合征(SWS)

3. 窗口探测(Window Probe)

TCP和UDP有什么区别

核心设计目标

协议格式对比

TCP报文结构

UDP报文结构

典型应用场景

可靠性机制对比

总结选择策略

TCP的粘包和拆包

基本概念

成因分析

如何解决粘包和拆包


TCP 的三次握手与四次挥手详解

1. 三次握手(Three-Way Handshake)

TCP 建立连接时通过三次握手同步初始序列号(ISN)并协商窗口大小,确保双方具备发送和接收能力。流程如下:

  • 客户端 → 服务器(SYN 包)

    • 客户端发送 SYN 包,携带初始序列号(ISN<sub>c</sub>)和窗口大小,请求建立连接。
    • 标志位:SYN=1ACK=0
  • 服务器 → 客户端(SYN+ACK 包)

    • 服务器收到 SYN 后,分配资源并发送 SYN+ACK 包:
      • 确认号(ACK)= ISN<sub>c</sub>+1(表示已收到客户端 SYN)。
      • 自身初始序列号(ISN<sub>s</sub>)和窗口大小。
    • 标志位:SYN=1ACK=1
  • 客户端 → 服务器(ACK 包)

    • 客户端收到 SYN+ACK 后,发送 ACK 包:
      • 确认号(ACK)= ISN<sub>s</sub>+1(表示已收到服务器 SYN)。
    • 此时双方进入ESTABLISHED状态,开始传输数据。

关键作用

  • 防止过时的连接请求(如网络延迟导致的重复 SYN)干扰新连接。
  • 同步双方初始序列号,为可靠传输奠定基础。
2. 四次挥手(Four-Way Handshake)

TCP 关闭连接时通过四次挥手确保数据完全传输完毕。流程如下:

  • 主动关闭方 → 被动关闭方(FIN 包)

    • 主动方(如客户端)发送 FIN 包,表示 “我已无数据要发送”,但仍可接收数据。
    • 标志位:FIN=1ACK=1
  • 被动关闭方 → 主动关闭方(ACK 包)

    • 被动方(如服务器)确认 FIN,发送 ACK 包:
      • 确认号(ACK)= 收到的 FIN 序列号 + 1。
    • 此时主动方进入FIN_WAIT_2状态,被动方进入CLOSE_WAIT状态。
  • 被动关闭方 → 主动关闭方(FIN 包)

    • 被动方数据发送完毕后,发送 FIN 包,表示 “我也无数据要发送”。
    • 标志位:FIN=1ACK=1
  • 主动关闭方 → 被动关闭方(ACK 包)

    • 主动方确认 FIN,发送 ACK 包:
      • 确认号(ACK)= 收到的 FIN 序列号 + 1。
    • 主动方进入TIME_WAIT状态(持续 2MSL,防止 ACK 丢失导致被动方重发 FIN),最终双方关闭连接(确保至少留有一次ACK丢失的容错)。

关键作用

  • 确保双方数据均已完全发送和接收。
  • 优雅释放网络资源,避免端口占用。

TCP 为什么可靠?

TCP 通过以下机制实现可靠传输:

1. 序列号与确认应答(ACK)
  • 序列号(Sequence Number)
    每个 TCP 段携带数据的首字节序列号,接收方通过序列号按序重组数据。
  • 确认应答(ACK)
    接收方返回的 ACK 号表示 “期望接收的下一个字节序列号”,确保数据不丢失。
    例如:若发送方发送序列号 100-200 的数据包,接收方返回 ACK=201,表示已收到 100-200 并期待 201。
2. 超时重传(Retransmission)
  • 发送方为每个数据包设置定时器,若超时未收到 ACK,则重发该数据包。
  • 快速重传:若接收方连续收到 3 个相同 ACK(如 ACK=201),表明中间段(如 201-300)丢失,发送方立即重传,无需等待超时。
3. 滑动窗口(Sliding Window)
  • 动态调整发送窗口和接收窗口大小,实现流量控制:
    • 发送窗口 = min (接收方通告窗口,拥塞窗口)。
    • 接收方通过 ACK 中的窗口字段告知发送方自身缓冲区剩余空间,防止过载。
4. 拥塞控制(Congestion Control)
  • 防止网络过载,通过调整拥塞窗口(cwnd)实现:
    • 慢启动:初始 cwnd=1MSS,每收到一个 ACK 则 cwnd+1,指数增长至阈值(ssthresh)。
    • 拥塞避免:超过阈值后,每轮 RTT 仅 cwnd+1,线性增长。
    • 拥塞发生时:将 ssthresh 降至当前 cwnd 的一半,cwnd 重置为 1MSS,重新进入慢启动。
5. 校验和(Checksum)
  • 每个 TCP 段包含校验和字段,接收方通过校验和验证数据完整性,若错误则丢弃并等待重传。
6. 面向连接
  • 通过三次握手建立连接,四次挥手关闭连接,确保双方状态同步,避免数据丢失。
总结对比
特性三次握手四次挥手TCP 可靠性机制
目的建立连接,同步 ISN 和窗口大小关闭连接,确保数据完全传输保证数据准确、有序、无丢失
核心动作SYN → SYN+ACK → ACKFIN → ACK → FIN → ACK序列号、ACK、重传、窗口、校验和
状态转换CLOSED → SYN_SENT → ESTABLISHEDESTABLISHED → FIN_WAIT_1 → ... → CLOSED持续维护发送 / 接收状态
可靠性保障防止过时连接干扰确保资源优雅释放端到端的数据传输质量保证

TCP滑动窗口

TCP 滑动窗口的初始值是在三次握手过程中协商确定的,之后在数据传输阶段会根据网络状况和接收方缓冲区状态动态调整。具体机制如下: 

三次握手期间的窗口协商

初始窗口大小的交换

  • 客户端 → 服务器(SYN 包)
    客户端在 SYN 包中通过Window Size字段(16 位)告知服务器自己初始接收窗口的大小(单位:字节)。例如,若客户端发送Window = 65535,表示客户端初始能接收 65535 字节的数据。
  • 服务器 → 客户端(SYN+ACK 包)
    服务器在响应的 SYN+ACK 包中,同样通过Window Size字段告知客户端自己的初始接收窗口大小。
  • 窗口扩大因子(Window Scaling)
    若双方支持Window Scaling选项(通过 TCP 选项协商),实际窗口大小 = 窗口字段值 × 2^ 缩放因子(例如,缩放因子为 2,则窗口大小 = 65535×4=262140 字节)。

数据传输阶段的窗口动态调整

窗口滑动机制

  • 发送方窗口
    发送方维护两个指针:SND.UNA(已发送但未确认的最早字节)和SND.NXT(下一个要发送的字节),窗口大小 = 接收方通告的窗口值(通过 ACK 包携带)。
  • 接收方窗口
    接收方通过 ACK 包中的Window字段告知发送方自己当前的可用缓冲区大小。例如:
    • 若接收方处理数据缓慢,缓冲区接近满,则发送Window = 0,触发发送方的窗口探测机制
    • 若接收方处理完一批数据,缓冲区空闲,则增大窗口值(如Window = 131072)。

 

关键细节补充 
1. 窗口大小与拥塞控制的关系
  • 实际发送窗口 = min (接收方通告窗口,拥塞窗口)
    接收方窗口由接收方缓冲区决定,拥塞窗口由发送方根据网络拥塞情况动态调整(如慢启动、拥塞避免算法)。
2. 糊涂窗口综合征(SWS)
  • 接收方优化
    若接收方缓冲区仅释放少量空间(如 512 字节),可能暂不发送窗口更新,而是等待缓冲区释放更多空间(如≥MSS)后再通知发送方。
  • 发送方优化
    若发送方有少量数据(如 100 字节)要发送,可能等待积累到 MSS(如 1460 字节)后再发送,避免产生小数据包。
3. 窗口探测(Window Probe)
  • 当接收方窗口为 0 时,发送方会定期发送窗口探测包(仅含 1 字节数据),迫使接收方返回最新窗口大小,防止连接饿死。

TCP和UDP有什么区别

核心设计目标
TCPUDP
面向连接:通过三次握手建立连接,四次挥手关闭连接,确保通信双方状态同步。无连接:无需建立连接,直接发送数据,资源开销小。
可靠传输:确保数据准确、有序到达,通过序列号、ACK、重传等机制实现。不可靠传输:不保证数据到达顺序或完整性,可能丢包、乱序。
流量控制:通过滑动窗口动态调整发送速率,避免接收方过载。无流量控制:发送方按固定速率发送,接收方可能因来不及处理而丢包。
拥塞控制:根据网络拥塞状态调整发送窗口,避免网络崩溃。无拥塞控制:可能导致网络拥塞(如 UDP 洪水攻击)。
协议格式对比
字段TCP 头部(20 字节基础)UDP 头部(8 字节)
源端口16 位16 位
目的端口16 位16 位
序列号32 位(用于有序重组数据)
确认号32 位(用于 ACK 应答)
窗口大小16 位(用于流量控制)
校验和16 位(强制)16 位(可选,IPv4 中可忽略)
标志位SYN、ACK、FIN、RST、PSH、URG 等
TCP报文结构

UDP报文结构

指标TCPUDP
传输效率低(头部开销大,需维护连接状态)高(头部仅 8 字节,无连接开销)
实时性低(重传、排序等引入延迟)高(无重传,延迟小)
吞吐量稳定(拥塞控制避免网络崩溃)不稳定(可能因网络拥塞丢包)
资源占用高(需维护连接状态表)低(无连接状态)
典型应用场景
场景TCP 适用UDP 适用
Web 浏览(HTTP)✅ 需可靠传输,避免页面错乱❌ 不可靠传输可能导致页面缺失
文件传输(FTP)✅ 确保文件完整无误❌ 丢包会导致文件损坏
电子邮件(SMTP)✅ 邮件内容必须完整送达❌ 不可靠传输会导致邮件丢失
实时音视频❌ 重传会加剧延迟,影响体验✅ 容忍少量丢包,优先保证实时性
DNS 查询❌ 单次查询延迟高(需握手)✅ 快速响应,少量丢包可重试
游戏联机❌ 角色位置同步需低延迟✅ 允许少量预测误差,优先流畅性
可靠性机制对比
机制TCPUDP
连接管理三次握手建立连接,四次挥手关闭无连接过程
序列号与 ACK强制使用,确保数据有序性
超时重传支持(快速重传 + 超时重传)无(需应用层自行实现)
滑动窗口支持流量控制和拥塞控制
错误校验强制校验和,保证数据完整性可选校验和(IPv4 中常忽略)
总结选择策略
  • 选 TCP:当可靠性比性能更重要时(如文件传输、网页浏览)。
  • 选 UDP:当实时性比可靠性更重要时(如视频会议、游戏),或应用层自行实现可靠性机制(如 QUIC 协议)。

TCP的粘包和拆包

基本概念

TCP 是面向字节流的协议,其传输的数据无边界。发送方连续发送的多个数据包(如多次send()),在接收方可能呈现为:

  • 粘包:多个数据包被 “粘” 在一起,接收方一次读取到多个完整或不完整的包。
  • 拆包:一个数据包被 “拆分” 成多次接收,接收方需多次读取才能获取完整包。

示例场景
发送方依次发送两个数据包:[数据包1] 和 [数据包2],接收方可能收到:

  • 粘包[数据包1+数据包2](一次读取两个包)。
  • 拆包[数据包1的前半部分] 和 [数据包1的后半部分+数据包2](两次读取才完整)。
成因分析

TCP 粘包 / 拆包由以下因素共同导致:

  • TCP 的 Nagle 算法

    • 为减少网络中小数据包的数量,Nagle 算法会将短时间内的小数据包合并发送。
    • 例如:发送方先后调用send("HELLO")send("WORLD"),可能被合并为"HELLOWORLD"发送。
  • TCP 滑动窗口与拥塞控制

    • 发送窗口大小动态调整,若窗口较小,一个完整包可能被拆分为多次发送。
    • 例如:窗口大小为 1000 字节,而数据包大小为 1500 字节,则会被拆分为两个片段。
  • 接收缓冲区管理

    • 接收方缓冲区已满时,未完全接收的包会暂存,导致后续数据包与残留数据 “粘” 在一起。
  • 网络延迟与 MTU 限制

    • 网络层最大传输单元(MTU,通常为 1500 字节)会限制 TCP 数据包的大小,超过 MTU 的包会被 IP 层分片。
如何解决粘包和拆包
  • 粘包:这个思路其实很清晰,就是把它拆开呗,具体就是看怎么拆了,比如我们可以固定长度,我们规定每个包都是10个字节,那么就10个字节切一刀,这样拆开解析就ok了。
  • 半包:半包其实就是信息还不完整,我们需要等接收到全部的信息之后再作处理,当我们识别这是一个不完整的包时候,我们先hold住,不作处理,等待

数据完整再处理。这里关键点在于,我们如何才能知道此时完整了?上面说的固定长度其实也是一点,当然还有更多更好的解决方案,我们接着往下看。
实际常见解决粘包与半包问题有三个方案:

  • 固定长度:
  1. 每个数据包的总长度固定,不足部分填充特定字符(如\0)。
  2. 接收方按固定长度读取数据,确保每次读取对应一个完整包。
优点缺点
实现简单浪费带宽(需填充)
无需维护缓冲区不适合变长数据
解析速度快需预估最大长度
  • 分隔符
  1. 使用特殊字符(如\r\n\0)标记数据包的结束。
  2. 接收方需维护缓冲区,累积数据直到找到分隔符。
优点缺点
灵活支持变长数据需维护缓冲区
适合文本协议(如 HTTP)分隔符可能出现在数据中
实现较简单性能略低于固定长度
  • 固定长度字段+内容
  1. 在数据包头部添加固定长度的字段(如 4 字节整数),指示包的总长度。
  2. 接收方先读取长度字段,再按长度读取完整数据。
优点缺点
高效处理任意长度数据实现复杂度较高
无需填充,节省带宽需处理多字节序问题
解析逻辑清晰需确保长度字段完整接收

选择建议

  • 若数据长度固定 → 优先用固定长度协议
  • 若为文本协议且分隔符不会出现在数据中 → 用分隔符协议
  • 若需高效处理任意长度数据 → 用长度前缀协议(现代协议主流方案)

相关文章:

计算机网络 TCP篇常见面试题总结

目录 TCP 的三次握手与四次挥手详解 1. 三次握手&#xff08;Three-Way Handshake&#xff09; 2. 四次挥手&#xff08;Four-Way Handshake&#xff09; TCP 为什么可靠&#xff1f; 1. 序列号与确认应答&#xff08;ACK&#xff09; 2. 超时重传&#xff08;Retransmis…...

树欲静而风不止,子欲养而亲不待

2025年6月2日&#xff0c;13~26℃&#xff0c;一般 待办&#xff1a; 物理2 、物理 学生重修 职称材料的最后检查 教学技能大赛PPT 遇见&#xff1a;使用通义创作了一副照片&#xff0c;很好看&#xff01;都有想用来创作自己的头像了&#xff01; 提示词如下&#xff1a; A b…...

Kotlin中的::操作符详解

Kotlin提供了::操作符&#xff0c;用于创建对类或对象的成员(函数、属性)的引用。这种机制叫做成员引用(Member Reference)。这是Kotlin高阶函数和函数式编程的重要组成部分。 简化函数传递 在Java中&#xff0c;我们这样传方法&#xff1a; list.forEach(item -> System.…...

【Linux】(1)—进程概念-③Linux进程概念与PCB

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Linux进程概念与PCB 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 什么是进程&#xff1f; 进程可以理解为"正在执行的…...

神经网络中的梯度消失与梯度爆炸

在深层次的神经网络中很容易出现梯度消失与梯度爆炸的问题。这篇博客就详细介绍一下为什么会产生梯度消失与梯度爆炸的问题&#xff0c;以及如何解决。 首先梯度是什么 类比快递员送包裹&#xff1a; 神经网络训练时&#xff0c;需要根据预测错误&#xff08;损失函数&#…...

深入详解编译与链接:翻译环境和运行环境,翻译环境:预编译+编译+汇编+链接,运行环境

目录 一、翻译环境和运行环境 二、翻译环境&#xff1a;预编译编译汇编链接 &#xff08;一&#xff09;预处理&#xff08;预编译&#xff09; &#xff08;二&#xff09;编译 1、词法分析 2、语法分析 3、语义分析 &#xff08;三&#xff09;汇编 &#xff08;四&…...

系统架构设计师案例分析----经典架构风格特点

这次的考试太大意了&#xff0c;很多知识点有印象&#xff0c;但不能完整的描述出来。今年11月的考试&#xff0c;要认真备考&#xff0c;从现在开始&#xff0c;把案例分析和论文内容整理出来&#xff0c;一是方便记忆&#xff0c;二是和各位考一起分享。欢迎各位拍砖。 这段…...

基于大模型的急性乳腺炎全病程风险预测与综合治疗方案研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 1.3 研究方法与技术路线 二、急性乳腺炎概述 三、大模型技术原理与应用现状 3.1 大模型基本原理 3.2 在医疗领域的应用案例 3.3 选择大模型用于急性乳腺炎预测的依据 四、大模型预测急性乳腺炎各阶段风险 4.…...

HTML实战:爱心图的实现

设计思路 使用纯CSS创建多种风格的爱心 添加平滑的动画效果 实现交互式爱心生成器 响应式设计适应不同设备 优雅的UI布局和色彩方案 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <meta nam…...

定时任务:springboot集成xxl-job-core(二)

定时任务实现方式&#xff1a; 存在的问题&#xff1a; xxl-job的原理&#xff1a; 可以根据服务器的个数进行动态分片&#xff0c;每台服务器分到的处理数据是不一样的。 1. 多台机器动态注册 多台机器同时配置了调度器xxl-job-admin之后&#xff0c;执行器那里会有多个注…...

DeviceNET转EtherCAT网关:医院药房自动化的智能升级神经中枢

在现代医院药房自动化系统中&#xff0c;高效、精准、可靠的设备通信是保障患者用药安全与效率的核心。当面临既有支持DeviceNET协议的传感器、执行器&#xff08;如药盒状态传感器、机械臂限位开关&#xff09;需接入先进EtherCAT高速实时网络时&#xff0c;JH-DVN-ECT疆鸿智能…...

一:UML类图

一、类的设计 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 学习设计模式的第一步是看懂UML类图,类图能直观的表达类、对象之间的关系,这将有助于后续对代码的编写。 类图在软件设计及应用框架前期设计中是不可缺少的一部分,它的主要成分包括:类名、…...

数据库三范式的理解

最近在学习数据库知识&#xff0c;发现 “数据库三范式” 这个概念特别重要&#xff0c;今天就来和大家分享一下我的理解,欢迎各位指正 一、数据库三范式是什么&#xff1f; 数据库三范式是为了让数据库结构更合理、减少数据冗余、提高数据完整性的设计规则。 第一范式&…...

Java 中 MySQL 索引深度解析:面试核心知识点与实战

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Java 中 MySQL 索引深度解析&#xff1a;面试…...

DeepSeek 部署中的常见问题及解决方案

技术文章大纲&#xff1a;DeepSeek 部署中的常见问题及解决方案 部署环境配置问题 硬件兼容性问题&#xff08;如GPU驱动版本不匹配&#xff09; 操作系统及依赖库版本冲突&#xff08;CUDA/cuDNN版本&#xff09; Python虚拟环境配置错误 模型加载与初始化失败 预训练模型…...

Nvidia Intern 笔试回忆

Nvidia intern compute arch 的笔试回忆&#xff0c;感觉强度拉满&#xff0c;两个半小时6道编程题&#xff0c;难度堪比ACM&#xff0c;需要自己写好输入输出&#xff08;ACM好歹有个签到题 &#xff09;&#xff0c;图论的题比较多&#xff0c;跟大厂面试题不是同一level...…...

鸿蒙OS基于UniApp的WebRTC视频会议系统实践:从0到1的HarmonyOS适配之路#三方框架 #Uniapp

基于UniApp的WebRTC视频会议系统实践&#xff1a;从0到1的HarmonyOS适配之路 引言 在移动互联网时代&#xff0c;实时音视频通讯已成为各类应用的标配功能。本文将结合我在某大型企业协同办公项目中的实战经验&#xff0c;详细讲解如何使用UniApp框架开发一个支持鸿蒙系统的W…...

设计模式之结构型:装饰器模式

装饰器模式(Decorator Pattern) 定义 装饰器模式是一种​​结构型设计模式​​&#xff0c;允许​​动态地为对象添加新功能​​&#xff0c;而无需修改其原始类。它通过将对象包装在装饰器类中&#xff0c;以​​组合代替继承​​&#xff0c;实现功能的灵活扩展(如 Java I/O …...

mysql分布式教程

MySQL 主从复制 主从复制原理&#xff1a;MySQL 主从复制是指数据可以从一个 MySQL 数据库服务器主节点复制到一个或多个从节点。主库将写操作记录在二进制日志文件中&#xff0c;从库的 IO 线程请求读取主库的二进制日志并写入中继日志&#xff0c;然后 SQL 线程执行中继日志中…...

MySQL安装及启用详细教程(Windows版)

MySQL安装及启用详细教程&#xff08;Windows版&#xff09; &#x1f4cb; 概述 本文档将详细介绍MySQL数据库在Windows系统下的下载、安装、配置和启用过程。 &#x1f4e5; MySQL下载 官方下载地址 官方网站: https://dev.mysql.com/downloads/社区版本: https://dev.my…...

Vue3.5 企业级管理系统实战(二十一):菜单权限

有了菜单及角色管理后&#xff0c;我们还需要根据用户访问的token&#xff0c;去获取用户信息&#xff0c;根据用户的角色信息&#xff0c;拉取所有的菜单权限&#xff0c;进而生成左侧菜单树数据。 1 增加获取用户信息 api 在 src/api/user.ts 中&#xff0c;添加获取用户信…...

kafka幂等生产者和事务生产者区别

#作者&#xff1a;张桐瑞 文章目录 消息交付可靠性保障什么是幂等性&#xff08;Idempotence&#xff09;&#xff1f;幂等性Producer事务事务型Producer 消息交付可靠性保障 所谓的消息交付可靠性保障&#xff0c;是指Kafka对Producer和Consumer要处理的消息提供什么样的承诺…...

【HarmonyOS Next之旅】DevEco Studio使用指南(二十九) -> 开发云数据库

目录 1 -> 开发流程 2 -> 创建对象类型 3 -> 添加数据条目 3.1 -> 手动创建数据条目文件 3.2 -> 自动生成数据条目文件 4 -> 部署云数据库 1 -> 开发流程 云数据库是一款端云协同的数据库产品&#xff0c;提供端云数据的协同管理、统一的数据模型和…...

批量导出CAD属性块信息生成到excel——CAD C#二次开发(插件实现)

本插件可实现批量导出文件夹内大量dwg文件的指定块名的属性信息到excel&#xff0c;效果如下&#xff1a; 插件界面&#xff1a; dll插件如下&#xff1a; 使用方法&#xff1a; 1、获取此dll插件。 2、cad命令行输入netload &#xff0c;加载此dll&#xff08;要求AutoCAD&…...

可视化大屏如何制作

超详细&#xff01;手把手教你制作可视化大屏 在当今数字化时代&#xff0c;数据犹如一座蕴藏无尽价值的宝藏&#xff0c;而可视化大屏则是开启这座宝藏大门、让数据价值得以充分展现的关键钥匙。无论是企业运营监控、数据分析展示&#xff0c;还是项目成果汇报&#xff0c;可视…...

Goreplay最新版本的安装和简单使用

一&#xff1a;概述 Gor 是一个开源工具&#xff0c;用于捕获实时 HTTP 流量并将其重放到测试环境中&#xff0c;以便使用真实数据持续测试您的系统。它可用于提高对代码部署、配置更改和基础设施更改的信心。简单易用。 项目地址&#xff1a;buger/goreplay: GoReplay is an …...

Android Studio 解决报错 not support JCEF 记录

问题&#xff1a;Android Studio 安装Markdown插件后&#xff0c;报错not support JCEF不能预览markdown文件。 原因&#xff1a;Android Studio不是新装&#xff0c;之前没留意IDE自带的版本是不支持JCEF的。 解决办法&#xff1a; 在菜单栏选中Help→Find Action&#xff…...

SMT高速贴片机核心技术深度剖析

内容概要 在智能制造升级背景下&#xff0c;SMT高速贴片机的性能直接影响电子产品的生产效率和可靠性。本文将从微米级贴装精度的实现机制出发&#xff0c;探讨高速运动控制与精准定位的协同优化方案&#xff0c;同时分析视觉系统在多类型元件识别中的动态补偿策略。针对消费电…...

sigmastar实现SD卡升级

参考文章:http://wx.comake.online/doc/DD22dk2f3zx-SSD21X-SSD22X/customer/development/software/Px/zh/sys/P3/usb%20&%20sd%20update.html#21-sd 1、构建SD卡升级包 在project下make image完成后使用make_sd_upgrade_sigmastar.sh脚本打包SD卡升级包。 ./make_sd_up…...

kafka学习笔记(三、消费者Consumer使用教程——配置参数大全及性能调优)

本章主要介绍kafka consumer的配置参数及性能调优的点&#xff0c;其kafka的从零开始的安装到生产者&#xff0c;消费者的详解介绍、源码及分析及原理解析请到博主kafka专栏 。 1.消费者Consumer配置参数 配置参数默认值含义bootstrap.servers无&#xff08;必填&#xff09;…...