【开端】记一次诡异的接口排查过程
一、绪论
最近碰到这么一个情况,接口请求超时。前提是两台服务器间的网络是畅通的,端口也是通,应用代码也是通。意思是在应用上,接口没有任何报错,能正常返回数据。客户端到服务端接口也能通,但是接收不到服务的数据。比较诡异的,如果报文比较短,客户端是可以收到返回数据。
现象:
本地windows系统网络去请求接口可以通

linux服务器网络去请求接口

前提是telnet是可以通
于是就开始抓包分析
linux 抓包命令: sudo tcpdump -i eth0 port 19999
这个过程展示了两个IP地址(10.22.33.22 和 10.200.33.229)之间通过TCP协议在端口dnp-sec(非标准端口,可能是某个特定应用的自定义端口)上建立连接、交换数据、然后关闭连接的过程。不过,最后出现了RST(重置)包,这通常表示连接被异常终止。下面是对这个过程的详细解释:连接建立(三次握手):
SYN包(16:06:28.412328):10.22.33.22的40778端口向10.200.33.229的dnp-sec端口发送SYN包,请求建立连接。SYN包中包含了序列号(seq)3884995505,窗口大小(win)29200,以及其他TCP选项(如MSS、SACK支持、时间戳等)。
SYN-ACK包(16:06:28.420340):10.200.33.229的dnp-sec端口回应SYN-ACK包,确认收到SYN包,并发送自己的序列号(seq)325552826,同时确认对方的序列号(ack)为3884995506(即SYN包的序列号+1)。SYN-ACK包中也包含了窗口大小、TCP选项等信息。
ACK包(16:06:28.420359):10.22.33.22的40778端口发送ACK包,确认收到SYN-ACK包,完成三次握手,连接建立。
数据传输:
PSH包(16:06:28.420400):10.22.33.22的40778端口发送PSH包(尽管这里也使用了PUSH标志,但通常数据包的类型是通过长度和内容来判断的,而不是仅仅依赖标志位),携带了389字节的数据。
ACK包(16:06:28.428450):10.200.33.229的dnp-sec端口发送ACK包,确认收到数据。
PSH包(16:06:28.453221):10.200.33.229的dnp-sec端口也发送了数据(11字节),尽管这里也使用了PUSH标志,但实际上是普通的数据包。
ACK包(16:06:28.453229):10.22.33.22的40778端口发送ACK包,确认收到数据,并使用SACK选项确认接收到的数据段(尽管这里SACK的范围与确认的序列号不匹配,可能是个错误或特殊情况)。
连接保持:
在数据传输之后,双方继续发送ACK包以保持连接活跃,但没有新的数据传输。这些ACK包中包含了SACK选项,表明接收方已经确认接收到的数据段。
连接关闭:
FIN包(16:07:43.452938):10.200.33.229的dnp-sec端口发送FIN包,表示它已完成数据传输,准备关闭连接。
ACK包(16:07:43.452959):10.22.33.22的40778端口发送ACK包,确认收到FIN包,但此时它可能还在等待应用层完成某些操作,因此没有立即发送自己的FIN包。
连接异常终止:
在一段时间后(1分钟后),10.200.33.229的dnp-sec端口发送RST包(16:08:43.475557),异常终止连接。这可能是因为它认为连接已经超时或不再需要,或者是因为它接收到了无法识别的序列号等。RST包的发送通常会导致TCP连接立即关闭,且不会进行正常的四次挥手过程。
总结:这个过程展示了TCP连接的建立、数据传输、保持和异常终止。尽管在大多数情况下,TCP连接会通过正常的四次挥手过程来关闭,但在这个例子中,连接被RST包异常终止了。
发现tcp 第三次握手发送消息失败
这个过程展示了两个IP地址(10.22.33.22 和 10.200.33.229)之间通过TCP协议在端口dnp-sec(非标准端口,可能是某个特定应用的自定义端口)上建立连接、交换数据、然后关闭连接的过程。不过,最后出现了RST(重置)包,这通常表示连接被异常终止。下面是对这个过程的详细解释:
连接建立(三次握手):
SYN包(16:06:28.412328):10.22.33.22的40778端口向10.200.33.229的dnp-sec端口发送SYN包,请求建立连接。SYN包中包含了序列号(seq)3884995505,窗口大小(win)29200,以及其他TCP选项(如MSS、SACK支持、时间戳等)。
SYN-ACK包(16:06:28.420340):10.200.33.229的dnp-sec端口回应SYN-ACK包,确认收到SYN包,并发送自己的序列号(seq)325552826,同时确认对方的序列号(ack)为3884995506(即SYN包的序列号+1)。SYN-ACK包中也包含了窗口大小、TCP选项等信息。
ACK包(16:06:28.420359):10.22.33.22的40778端口发送ACK包,确认收到SYN-ACK包,完成三次握手,连接建立。
数据传输:
PSH包(16:06:28.420400):10.22.33.22的40778端口发送PSH包(尽管这里也使用了PUSH标志,但通常数据包的类型是通过长度和内容来判断的,而不是仅仅依赖标志位),携带了389字节的数据。
ACK包(16:06:28.428450):10.200.33.229的dnp-sec端口发送ACK包,确认收到数据。
PSH包(16:06:28.453221):10.200.33.229的dnp-sec端口也发送了数据(11字节),尽管这里也使用了PUSH标志,但实际上是普通的数据包。
ACK包(16:06:28.453229):10.22.33.22的40778端口发送ACK包,确认收到数据,并使用SACK选项确认接收到的数据段(尽管这里SACK的范围与确认的序列号不匹配,可能是个错误或特殊情况)。
连接保持:
在数据传输之后,双方继续发送ACK包以保持连接活跃,但没有新的数据传输。这些ACK包中包含了SACK选项,表明接收方已经确认接收到的数据段。
连接关闭:
FIN包(16:07:43.452938):10.200.33.229的dnp-sec端口发送FIN包,表示它已完成数据传输,准备关闭连接。
ACK包(16:07:43.452959):10.22.33.22的40778端口发送ACK包,确认收到FIN包,但此时它可能还在等待应用层完成某些操作,因此没有立即发送自己的FIN包。
连接异常终止:
在一段时间后(1分钟后),10.200.33.229的dnp-sec端口发送RST包(16:08:43.475557),异常终止连接。这可能是因为它认为连接已经超时或不再需要,或者是因为它接收到了无法识别的序列号等。RST包的发送通常会导致TCP连接立即关闭,且不会进行正常的四次挥手过程。
总结:这个过程展示了TCP连接的建立、数据传输、保持和异常终止。尽管在大多数情况下,TCP连接会通过正常的四次挥手过程来关闭,但在这个例子中,连接被RST包异常终止了。
既然是终止了,网上百度一大堆:说什么的都有,但是最终没有解决问题

比较诡异的 同一个服务器 去请求同一个接口,数据报文短的能返回了

这就很诡异了,所以我猜测,长报文无法返回,需要网络排查哪里限制了第三次握手,服务端终止了客户端发送报文,并终端了链接
相关文章:
【开端】记一次诡异的接口排查过程
一、绪论 最近碰到这么一个情况,接口请求超时。前提是两台服务器间的网络是畅通的,端口也是通,应用代码也是通。意思是在应用上,接口没有任何报错,能正常返回数据。客户端到服务端接口也能通,但是接收不到服…...
jenkins最佳实践(二):Pipeline流水线部署springCloud微服务项目
各位小伙伴们大家好呀,我是小金,本篇文章我们将介绍如何使用Pipeline流水线部署我们自己的微服务项目,之前没怎么搞过部署相关的,以至于构建流水线的过程中中也遇到了很多自己以前没有考虑过的问题,特写此篇࿰…...
第2章 C语言基础知识
第2章 C语言基础知识 1.printf()函数 在控制台输出数据,需要使用输出函数,C语言常用的输出函数为printf()。 printf()函数为格式化输出函数,其功能是按照用户指定的格式将数据输出到屏幕上。 printf(“格式控制字符串”,[输出列表]); 格式控…...
鹭鹰优化算法SBOA优化RBF神经网络的扩散速度实现多数入多输出数据预测,可以更改数据集(MATLAB代码)
一、鹭鹰优化算法介绍 鹭鹰优化算法(Secretary Bird Optimization Algorithm, SBOA)是一种新型的元启发式算法,它于2024年4月由Youfa Fu等人提出,并发表在SCI人工智能二区顶刊《Artificial Intelligence Review》上。该算法的灵感…...
MySQL基础练习题48-连续出现的数字
目录 题目 准备数据 分析数据 题目 找出所有至少连续出现三次的数字。 准备数据 ## 创建库 create database db; use db;## 创建表 Create table If Not Exists Logs (id int, num int)## 向表中插入数据 Truncate table Logs insert into Logs (id, num) values (1, 1) i…...
webrtc学习笔记2
音视频采集和播放 打开摄像头并将画面显示到页面 1. 初始化button、video控件 2. 绑定“打开摄像头”响应事件onOpenCamera 3. 如果要打开摄像头则点击 “打开摄像头”按钮,以触发onOpenCamera事件的调用 4. 当触发onOpenCamera调用时 a. 设置约束条件,…...
Simple RPC - 06 从零开始设计一个服务端(上)_注册中心的实现
文章目录 Pre核心内容服务端结构概述注册中心的实现1. 注册中心的架构2. 面向接口编程的设计3. 注册中心的接口设计4. SPI机制的应用 小结 Pre Simple RPC - 01 框架原理及总体架构初探 Simple RPC - 02 通用高性能序列化和反序列化设计与实现 Simple RPC - 03 借助Netty实现…...
【深度学习】基于Transformers的大模型推理框架
本文旨在介绍基于transformers的decoder-only语言模型的推理框架。与开源推理框架不同的是: 本框架没有利用额外的开源推理仓库,仅基于huggingface,transformers,pytorch等原生工具进行推理,适合新手学习大模型推理流…...
电脑监控怎样看回放视频?一键解锁电脑监控回放,守护安全不留死角!高效员工电脑监控,回放视频随时查!
你是否曾好奇那些键盘敲击背后的秘密?电脑监控不仅是守护企业安全的隐形盾牌,更是揭秘高效与合规的魔法镜!一键解锁安企神监控回放,就像打开时间宝盒,让过去的工作瞬间跃然眼前。无论是精彩瞬间还是潜在风险࿰…...
【一起学Rust | 框架篇 | Tauri2.0框架】tauri中rust和前端的相互调用(rust调用前端)
文章目录 前言1. rust中调用前端2. 如何向前端发送事件3. 前端监听事件4. 执行js代码 前言 近期Tauri 2.0 rc版本发布,2.0版本迎来第一个稳定版本,同时官方文档也进行了更新。Tauri是一个使用Rust构建的框架,可以让你使用前端技术来构建桌面…...
deque容器
deque容器的基本概念 deque 是 C 标准库中的双端队列(double-ended queue)容器,提供了在两端进行插入和删除操作的功能。 deque与vector区别: vector对于头部的插入删除效率低,数据量越大效率越低。deque相对而言&am…...
Redis远程字典服务器(9)—— 类型补充
类型查询传送门:Understand Redis data types | Docs 一,stream类型 官方文档对于这个类型的解释是:streams是一个数据结构,它表现得像一个 “append-only log”,就是只能往后面添加,底层是字符串&#x…...
VMware虚拟机nat无法联通主机
VMware在nat模式下主机无法ping通虚拟机 原因: 虚拟机和对应的网卡不在一个网段 虚拟机开启了防火墙 解决方法: 首先判断虚拟机的网络ip是否和网卡在一个网段上 判断虚拟机使用的网卡 nat模式在VMware虚拟机中一般只有一个对应的网卡 如图笔者的nat网卡为VM…...
「字符串」详解AC自动机并实现对应的功能 / 手撕数据结构(C++)
目录 前置知识 概述 核心概念:fail指针 作用 构建 图示 Code 成员变量 创建销毁 添加词库 文本扫描 复杂度 Code 前置知识 在此前,你应该首先了解trie树(字典树)的概念: 「字符串」详解Trie࿰…...
freecad遭遇网络不同无法安装插件Addon Manager: Unexpected 0 response from server
16:31:18 Addon Manager: Unexpected 0 response from server 16:31:18 Failed to connect to GitHub. Check your connection and proxy settings. 打开freecad的插件管理器时候,有些地方,比如我在家里就不行,在公司就ok。 于是找到了解…...
Ruby模板引擎:构建动态视图的艺术
标题:Ruby模板引擎:构建动态视图的艺术 在Ruby on Rails的世界里,模板引擎是构建动态网页的基石。它们允许开发者将服务器端的逻辑嵌入到HTML中,实现数据的动态展示。本文将深入探讨Ruby中几种常用的模板引擎,包括ERB…...
HarmonyOS NEXT星河版零基础入门(3)
目录 1. 系统弹出框 2.interface转成class类 3.vp/fp 4. 写一个正方形 设置它的宽度 但不设定高度 不论屏幕怎么变实现他的宽高比 5.State 6.图片和资源 7.淘宝镜像 7.1windows 脚本禁用(操作策略 允许npm包的命令可执行) 8. es6&ArkTS中…...
第二十讲 python中的异常结构-try except-else-finally
目录 1.try... except 结构 2. try... 多个except结构 3. try...except...else结构 4. try...except...finally结构 5. return语句和异常处理问题 5.1 异常处理前的 return 5.2异常处理后的 return 5.3 finally 块中的 return 6.常见的异常 1.try... except 结构 try except 是…...
springer 投稿系统中返修注意点
初次提交 初次提交时, manuscript 提交的是 pdf 文件 返修后提交 在经过返修之后需要提交的是注意一下几点: 此时提交的Blined manuscript ,虽然名字没变,但不能再提交pdf 文件, 而需要提交的是可编辑的源文件 .te…...
CSS:display和visiblity
隐藏元素- display:none和visibility:hidden display 属性设置一个元素应如何显示,visibility 属性指定一个元素应可见还是隐藏。 隐藏一个元素可以通过吧display属性设置为“none”,或者把visibility属性设置为“hidden”。但是这两种会产生不同的结果…...
在Aspen Plus中用Linde - Hampson工艺液化CO₂:从燃煤电厂捕获气体的模拟探索
在 Aspen Plus 中使用 Linde-Hampson 工艺液化CO2该模拟使用 Aspen Plus 对从燃煤电厂捕获的富含二氧化碳的气体进行液化。在应对气候变化的征程中,二氧化碳捕获与封存(CCS)技术愈发关键。从燃煤电厂捕获富含二氧化碳的气体并将其液化&#x…...
3步实现专业级语音克隆:GPT-SoVITS技术原理与实践指南
3步实现专业级语音克隆:GPT-SoVITS技术原理与实践指南 【免费下载链接】GPT-SoVITS 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS GPT-SoVITS是一款基于GPT架构的少样本语音合成系统,通过结合SoVITS声学模型,仅需5秒…...
Ubuntu 20.04 LTS静态IP配置避坑指南:从NetworkManager到netplan的完整流程
Ubuntu 20.04 LTS静态IP配置深度解析:从NetworkManager到netplan的无缝迁移 在服务器管理和开发环境中,稳定的网络连接是基础中的基础。Ubuntu 20.04 LTS作为长期支持版本,其网络配置方式从传统的NetworkManager逐渐转向了更现代的netplan工具…...
通义千问3-Reranker-0.6B入门指南:app.py核心逻辑解析+自定义路由扩展
通义千问3-Reranker-0.6B入门指南:app.py核心逻辑解析自定义路由扩展 1. 引言 如果你正在寻找一个既轻量又强大的中文重排序模型,那么通义千问3-Reranker-0.6B绝对值得你花时间了解一下。这个只有6亿参数的模型,在文本检索和排序任务上的表…...
Bunker_mini_dev实战:多雷达(AVIA MID360)ROS1驱动融合与rviz点云同屏可视化
1. 多雷达ROS1驱动融合实战背景 最近在Bunker_mini_dev机器人开发平台上折腾多激光雷达融合,发现不少开发者对Livox AVIA和MID360这两款雷达的ROS1驱动配置存在困惑。我自己踩过不少坑,今天就把从驱动安装到rviz同屏显示的全流程梳理一遍。这种配置在自动…...
贝叶斯分位数回归实战指南:从理论到业务落地
贝叶斯分位数回归实战指南:从理论到业务落地 【免费下载链接】pymc Python 中的贝叶斯建模和概率编程。 项目地址: https://gitcode.com/GitHub_Trending/py/pymc 在数据科学实践中,我们常面临这样的困境:当预测用户行为、设备故障时间…...
终极指南:5个简单步骤用eqMac提升macOS音频体验 [特殊字符]
终极指南:5个简单步骤用eqMac提升macOS音频体验 🎧 【免费下载链接】eqMac macOS System-wide Audio Equalizer & Volume Mixer 🎧 项目地址: https://gitcode.com/gh_mirrors/eq/eqMac 想为你的Mac打造专业级的音频体验吗&#x…...
欲望与自感:表征关系分析
欲望与自感:表征关系分析---一、问题意识:为何分析欲望与自感的关系?在AI元人文的建构过程中,“自感”作为意义行为的源初感发,已经与多个哲学概念进行了划界——自感不是冲动、不是主体性、不是概念、不是生命、不是存…...
Python AI模型推理慢?3个被90%工程师忽略的代码级优化技巧,立竿见影提升3.2倍吞吐量
第一章:Python AI模型推理慢?3个被90%工程师忽略的代码级优化技巧,立竿见影提升3.2倍吞吐量避免动态类型推断导致的重复开销 Python 的动态类型在模型推理中常引发隐式类型转换和属性查找开销。尤其在循环内调用 model.forward() 时ÿ…...
简单几步:星图平台快速部署Qwen3-VL:30B,创建专属飞书智能机器人
简单几步:星图平台快速部署Qwen3-VL:30B,创建专属飞书智能机器人 1. 环境准备与镜像部署 1.1 选择合适的基础镜像 在星图AI云平台创建实例时,我们需要选择支持多模态大模型的专用镜像。Qwen3-VL-30B是目前最强的多模态模型之一,…...
