从微观世界的RST包文视角助力企业网络应用故障排查和优化

news2024/9/25 11:13:19

1. 前言

随着互联网的普及和发展,各行业的业务和应用越来越依赖于网络。然而,网络环境的不稳定性和复杂性使得出现各种异常现象的概率变得更高了。这些异常现象会导致业务无法正常运行,给用户带来困扰,甚至影响企业的形象和利益。因此,需要一种能够快速诊断和定位网络异常问题的解决方案。

网络抓包分析技术是一种常用的网络调试工具,它可以捕获网络数据包,并提供详细的数据分析和统计信息,帮助用户快速定位网络问题。其中,TCP RST报文是一种常见的网络异常现象,它通常表示连接被重置或中断,导致业务无法正常运行。

针对这种问题,NetInside全流量回溯分析解决方案(以下简称NetInside全流量),通过探针设备旁路收集和存储指定链路的全部流量数据,实现无人值守,对关键业务系统、应用和网络链路进行7×24小时、全方位的流量监控,智能学习关键性能指标的基线值,当出现网络异常、业务或网络相关状态达到阈值时,进行主动预警,并可以实时/事后对需要的原始包进行下载和分析解码,快速定位问题原因。

NetInside用以人为本的理念为信息部门量身打造了新一代全流量回溯分析系统,充分利用网络数据包建立覆盖重要链路、关键设备端口、核心服务的全面监控视图,并且按照网络部门的工作流程组织功能与操作,使其能够广泛适用于各种需要场景。

以服务为导向的全流量方法使NetInside系统能够直接体现网络基础架构对业务应用的支撑能力,提供实时故障诊断、告警触发、事后应用响应深度分析功能。整个系统从根本上简化了网络故障诊断、新应用和服务的部署以及降低了运营成本,并提供快捷的方式来实现故障定位。为分析网络攻击、定位异常,评估、判定用户体验、应用性能和网络服务质量提供可以信赖的数据依据。依托真实的网络流量,快速发现、定义应用,并提供数据正确性、变更结果验证能力,大大提升网络流量的可视化覆盖率和工作效率。运用先进的数据统计分析技术,发现、告警等功能极大简化了过去繁冗复杂的操作过程。

2. RST介绍

TCP RST(Reset)是一种TCP协议中的控制报文,位于TCP协议的传输层,用于终止TCP连接或拒绝非法连接。TCP RST通常由TCP连接的一方发送,它可以立即终止TCP连接,并通知另一方连接已经被重置。

TCP RST报文位于TCP报头中的控制位字段(Control Bits Field),该字段占据一个字节,它的第6位(RST)用来表示TCP RST报文。下面是一个TCP报头的示意图:

可以看到,TCP报头中的第13个字节(即控制位字段)的第6位表示TCP RST报文。当该位被设置为1时,表示发送TCP RST报文。

3. 常见产生RST的原因及确认方法

常见产生TCP重置数据包情况和原因有如下7种情况。需要注意的是,TCP重置数据包可能会对正常的TCP连接产生影响,因此应该谨慎使用。如果不确定是否应该发送TCP重置数据包,请先咨询网络管理员或安全专家。

3.1. 防火墙或网络设备对TCP连接的干预

防火墙或网络设备对TCP连接进行干预时,可能会发送TCP重置数据包来终止连接。

原因判断:可以通过查看防火墙或网络设备的日志,确认是否存在对TCP连接的干预行为。如果发现有TCP连接被终止且收到了TCP重置数据包,那么很可能是防火墙或网络设备发送的。

3.2. 端点认为该连接已经失效或存在异常

当TCP连接的一个端点认为该连接已经失效或存在异常情况时,它可以发送TCP重置数据包来终止连接。

原因判断:可以通过查看TCP连接的日志或网络抓包工具,确认是否存在TCP重置数据包。如果发现某一方发送了TCP重置数据包,那么很可能是该方认为连接已经失效或存在异常情况。

3.3. 攻击者可能会发送TCP重置数据包

在某些攻击中,攻击者可能会发送TCP重置数据包来终止连接或欺骗接收方。

原因判断:可以通过查看网络抓包工具,确认是否存在异常的TCP重置数据包。如果发现TCP重置数据包的源地址不明或与正常通信的IP地址不符,那么很可能是遭受攻击了。

3.4. 网络拥塞

当网络拥塞时,路由器或防火墙可能会丢弃部分数据包,从而导致TCP连接超时或失效。此时,连接的一方可能会发送TCP重置数据包来终止连接。

原因判断:可以通过查看网络抓包工具,确认是否存在丢失的数据包或TCP连接超时。如果发现TCP重置数据包是在网络拥塞期间发送的,那么很可能是因为连接的一方认为连接已经失效。

3.5. 程序异常

当应用程序或操作系统出现异常时,可能会导致TCP连接受损或失效。此时,连接的一方可能会发送TCP重置数据包来终止连接。

原因判断:可以通过查看应用程序或操作系统的日志,确认是否存在异常行为或错误信息。如果发现某一方发送了TCP重置数据包,那么很可能是由于程序异常导致的。

3.6. 超时

当TCP连接长时间没有活动时,可能会被认为已经失效。此时,连接的一方可能会发送TCP重置数据包来终止连接。

原因判断:可以通过查看TCP连接的日志或网络抓包工具,确认连接是否长时间没有活动。如果发现某一方发送了TCP重置数据包,且连接长时间没有活动,那么很可能是由于超时导致的。

3.7. 非法连接

当某些恶意程序或攻击者尝试建立非法的TCP连接时,连接的一方可能会发送TCP重置数据包来阻止该连接。

原因判断:可以通过查看网络抓包工具,确认是否存在非法的TCP连接请求或连接行为。如果发现某一方发送了TCP重置数据包,那么很可能是由于遭受非法连接请求导致的。

4. RST案例分析

下面将通过两个现场真实案例进行RST异常行为分析,快速帮助用户解决疑难问题。

4.1. 某省公安案例

4.1.1. 背景

集成指挥平台中有定时任务定时传输数据到总队,总队定时下发数据到市交警支队。市交警支队发现定时任务一直出现执行失败的错误。市交警支队和总队联系,说需要市交警支队排查一下自身网络,前两天在应用服务器上面抓了定时任务的数据包,发现在连接过程中一直被RST。现在不能确认在哪个环节被RST。

本次分析采用NetInside流量分析系统,已部署到业务环境,使用流量分析系统提供实时和历史原始流量。本次分析重点针对集成定时任务故障排查,以供设置取证、性能分析、网络质量监测以及深层网络分析。

4.1.2. 环境部署

市交警支队和交警总队采用专网专线方式互联,在市交警支队安全域集成指挥平台的核心交换机位置,将流量旁路方式镜像给NetInside流量分析系统,通过NetInside对定时任务流量进行采集和分析。

4.1.3. 分析时间

报告分析时间范围为:2023-05-19日白天工作时段。

4.1.4. 分析目的

针对集成指挥平台中定时任务出现执行失败原因进行分析,找出问题的根本原因,并采取相应的措施来解决这些问题。

通过分析,可以确定哪些因素导致了定时任务执行失败,如网络连接问题、系统故障、配置错误等。这样做可以帮助管理员及时发现和解决问题,确保集成指挥平台的正常运行。查找并验证确认是否存在业务系统健康问题。

4.1.5. 详细分析

以下对本次故障详细分析。

4.1.5.1. 流量传输存在明显时间间隔

通过分析系统秒级数据分布趋势发现,10.61.132.78(以下简称78)和服务器10.56.81.80(以下简称80)之间的数据传输存在明显的、有规律性的传输间隔现象。这极有可能受到某些未知因素的影响造成

4.1.5.2. 数据传输间隔现象深入分析

从分析系统下载对应的数据包,发现大量的RST报文,如下图。

随机查看上图中一个会话信息(基于5元组的对话),发现存在异常现象。

下图中,Frame 19695之前的所有报文是一个正常POST请求操作,但Frame 20756和20757明显与前面的连接没有关系。

继续分析。

正常数据传输中,80到78流向的数据包TTL为119,如下图。

再看Frame 20756,同样是80到78流向的数据包,但TTL却为124

同时,这个RST包还含有更多的应用层信息,可供参考。

而Frame 20757则是对上面这个RST报文的RST。

经过分析,在时长约43分钟的时间范围内,共出现了1846次类似的RST。

4.1.5.3. 异常RST对数据传输的影响

分析发现,当出现上述RST后,78会停滞一段时间,才会再次向80发起TCP握手请求,继而进行POST数据操作。

以下是随机查看的几个数据为证。

异常RST后,78等待8.19秒,才向80发起连接建立请求。

异常RST后,78等待13.14秒,才向80发起连接建立请求。

异常RST后,78等待34.34秒,才向80发起连接建立请求。

异常RST后,78等待58.43秒,才向80发起连接建立请求。

不再一一列举。

4.1.6. 分析结论

78与80之间数据传输时,会出现大量的未知系统或节点的RST数据包,该数据包同时会对78发起请求造成明显的时延作用。

4.1.7. 解决建议

由于异常数据包中含有地址及提示信息,可以根据这个信息定位发送RST的设备。也可以根据TTL信息,计算并定位该设备所处位置。

对发出异常RST的设备进行策略配置和优化。

4.1.8. 问题验证

针对异常RST进行分析,确定是由终端管控软件发出,管理人员对该软件做了相应设置,让其不再发出RST报文。

从NetInside流量分析系统中下载策略修改后,78与80之间的数据传输报文,打开查看,不再出现异常的RST报文。

同样,在一段时间内,一个异常RST都不再出现,如下图。

这说明终端管控软件策略设置有效。

4.1.9. 异常前后效率对比

最后,对异常前后,流量传输特征进行分析和比较。

4.1.9.1. 流量传输状况对比

以下是策略调整前78和80之间的数据传输情况。

以下是策略调整后78和80之间的数据传输情况。

通过对比可以看到,策略调整后,数据传输明显加快,且中间没有出现明显的间隔和空白等待时段。

4.2. 某电气化局案例

4.2.1. 背景

电气化局的用户反馈,近期视频系统在使用过程中出现频繁中断的情况,这种情况影响到用户的视频体验和工作效率。

针对此问题,我们将NetInside流量分析系统部署到电气化局机房,使用流量分析系统提供实时和历史原始流量。重点针对电气化局的视频系统进行故障分析,找出视频系统中断的具体原因。

4.2.2. 故障现象

通过用户反馈2023年2月8日7点20分出现视频中断情况,通过视频系统管理端看到视频流量有断开的情况,如下图:

4.2.3. 环境部署

在内网中心机房的视频区的汇聚交换机位置,将相关流量旁路方式镜像给NetInside流量分析系统,通过NetInside对所有视频流量进行采集和分析。

4.2.4. 故障分析

针对此问题,我们来进行详细分析。

4.2.4.1. 分析设备流量采集图

与现场网络人员沟通,了解真实网络结构,以下是视频会议的流量采集图:

流量采集图主要为:1台视频系统客户端,1台视频系统服务器,1台核心交换机;

视频系统客户端和视频系统服务器下方标注显示对应的MAC地址;

核心交换机分别标注显示对应的两个口的MAC地址;

核心交换机通过镜像方式将流量给到流量分析系统。

4.2.4.2. 分析思路

1、流量分析系统里找到异常数据包,下载数据包。

2、打开数据包,找到异常时间点的数据包内容。

3、分析视频数据包的协议和详细内容。

4.2.4.3. 详细分析

数据包下载

根据流量分析系统迅速找到异常节点,对数据包进行下载。

流量分析

流量分析系统对镜像后的流量进行去重功能,所以分析系统仅获取10.21.106.11发送到核心交换机的流量,及10.21.30.106发送到核心交换机上的流量。

正常传输

通过数据包分析看到,客户端10.21.106.11发给服务器10.21.30.106的mac地址为:Src:HuaweiTe_XX:XX:26 ————> dst:HuaweiTe_XX:XX:01。

通过数据包分析看到,服务器10.21.30.106发给客户端10.21.106.11的mac地址为:Dst:HuaweiTe_XX:XX:0f <———— src:EdgeCore_XX:XX:a8。

数据包内的TTL为64。

同时数据包带有VLAN协议,VLAN ID为59。

异常传输

通过数据包分析看到,视频中断时间点发现RST,数据包MAC地址异常,服务器10.21.30.106发给客户端10.21.106.11的mac地址为:src:HuaweiTe_XX:XX:01,dst:HuaweiTe_XX:XX:26,正常应为src:EdgeCore_XX:XX:a8,dst:HuaweiTe_XX:XX:0f。

数据包内的TTL为127。

未发现VLAN协议。

以上对比发现,异常数据包MAC地址异常,没有VLAN协议,TTL跳数异常。

4.2.5. 分析结论

通过以上系统分析发现,出现视频中断时,网络里出现异常的RST的数据包,致使通信双方TCP连接中断。

4.2.6. 建议

通过对电气化局的视频数据分析,发现网络上存在异常报文,建议结合网络实际情况做进一步分析。

5. 总结

除了网络抓包分析技术,还有其他的方法可以帮助企业快速诊断和定位异常现象,例如基于人工智能和机器学习的异常检测技术。这种技术可以通过对业务数据进行分析,学习正常的业务模式和规律,然后检测出异常数据,并进行相应的处理。这种方法具有高精度和高效率的优势,可以帮助企业快速发现和解决问题。

综上所述,网络异常问题是各行业都可能遇到的问题,需要一种能够快速诊断和定位的解决方案。网络抓包分析技术是一种常用的解决方案,它可以帮助用户快速定位网络问题。除此之外,还有其他的方法可以帮助企业快速诊断和定位异常现象,例如基于人工智能和机器学习的异常检测技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/638271.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Appium 测试微信小程序和微信公众号方法

由于腾讯系QQ、微信等都是基于腾讯自研X5内核&#xff0c;不是google原生webview&#xff0c;需要打开TBS内核Inspector调试功能才能用Chrome浏览器查看页面元素&#xff0c;并实现Appium自动化测试微信小程序和微信公众号。 前提条件Appium环境搭建&#xff0c;这里不多说了&…

银行的程序员需要了解的一些简单知识

学习《简明银行会计 程序员视角》 会计与银行会计什么是会计&#xff1f;会计假设包括哪些内容&#xff1f;商业银行的业务分类&#xff1f;商业银行的运作过程&#xff1f;银行降准会产生什么效果&#xff1f; 左右开弓的记账法什么是会计恒等式&#xff1f;什么是T字图&#…

echarts画四川地图并交互

先看成果&#xff0c;点击地图中间点位做相应交互&#xff08;如弹框详细信息等&#xff0c;这里不做演示&#xff09; 具体步骤如下 一、具体在DataV.GeoAtlas地理小工具系列 (aliyun.com)这个地址获取数据如图即可下载出对应地址的json数据 二、vue中template里相关代码 &l…

传统测试将被取代?AI测试现状及发展之思

近年来&#xff0c;我一直关注AI相关的测试&#xff0c;并积极参与多个全国性测试社区和社群。在这些社区中&#xff0c;我与不同公司和领域的测试专家交流探讨AI测试相关话题&#xff0c;包括业界顶尖公司的专家和国内知名测试学者。我也参加了多个大会&#xff0c;聆听了许多…

【c++】动态联编和静态联编

动态联编和静态联编 动态联编条件&#xff1a;虚函数 基类指针/引用 静态联编条件&#xff1a;重载 动态联编代码 class A { public:virtual void print(){cout << "void printA()" << endl;} protected:int a; };class B :public A { public:void pri…

制作 initramfs 后,缺少部分驱动,可能导致系统无法启动

问题现象&#xff1a; 通过 mkinitrd 制作出来的 initrd.img 镜像&#xff0c;替换到 ISO 中&#xff0c;系统无法正常启动&#xff0c;从日志上看 mount ‘iso9668’ 失败&#xff0c;怀疑是小系统中缺少 isofs 驱动导致 问题复现&#xff1a; 装机报错&#xff0c;等一会&am…

KW 新闻 | KaiwuDB 亮相数字中国并发布离散制造场景解决方案

4月26-30日&#xff0c;以“加快数字中国建设&#xff0c;推进中国式现代化”为主题的第六届数字中国建设峰会在福州市圆满召开。KaiwuDB 受邀亮相大会参展并发布“离散制造场景解决方案”&#xff0c;旨在以数字化方案驱动生产方式、治理方式变革&#xff0c;推进离散制造业物…

vue 使用JSON 编辑器: vue-json-editor

这里写目录标题 1、安装插件2、引入插件并注册3、使用示例4、实现效果 1、安装插件 npm install vue-json-editor --save 2、引入插件并注册 import vueJsonEditor from vue-json-editor export default {components: { vueJsonEditor }, }3、使用示例 <template><…

Jackson、gson官方文档以及下载地址

1. 官网文档 json中文官网&#xff1a;http://www.json.org/json-zh.html json官网&#xff1a;http://www.json.org/ json参考手册&#xff1a;(译) JSON-RPC 2.0 规范(中文版) Jackson官网地址&#xff1a;https://github.com/FasterXML/jackson Jackson文档地址&#xff1a…

【电路】电路与电子技术基础 课堂笔记 第15章 时序逻辑电路的分析与设计

15.1 时序逻辑电路的分析 第一步&#xff0c;写方程&#xff1a;时钟方程、驱动方程和状态方程&#xff08;将驱动方程代入特征方程中得到&#xff09; 第二步&#xff0c;列出状态表&#xff0c;画状态转移图 第三步&#xff0c;根据提供的时钟图像&#xff0c;画出时序图 第四…

android adb 获取电池信息以及设置

本文主要包含 1、设置adb 无线调试桥连接步骤 2、打印设备电池状态(当前电量、充电状态、充放电电流大小、电池种类等&#xff09; 3、更改电池充电状态、电量百分比、电池还原命令 4、断开adb 远程调试桥 -----------------------------------------------------------------…

软件测试最重要的事之【编写用例】

软件测试用例得出软件测试用例的内容&#xff0c;其次&#xff0c;按照软件测试写作方法&#xff0c;落实到文档中&#xff0c;两者是形式和内容的关系&#xff0c;好的测试用例不仅方便自己和别人查看&#xff0c;而且能帮助设计的时候考虑的更周。 一个好的测试用例必须包含…

windows 服务程序和桌面程序集成(四)桌面程序

系列文章目录链接&#xff1a; windows 服务程序和桌面程序集成&#xff08;一&#xff09;概念介绍windows 服务程序和桌面程序集成&#xff08;二&#xff09;服务程序windows 服务程序和桌面程序集成&#xff08;三&#xff09;UDP监控工具windows 服务程序和桌面程序集成&…

试用了市面上95%的报表工具,终于找到这款万能报表工具,太牛了!

经常有粉丝问我有“哪个报表工具好用易上手&#xff1f;”或者是“有哪些适合绝大多数普通职场人的万能报表工具&#xff1f;” 从这里我大概总结出了大家选择报表工具最期望满足的3点&#xff1a; &#xff08;1&#xff09;简单易上手&#xff1a;也就是所谓的学习门槛要低…

上位机开发:必备的关键知识和技能

上位机开发涉及多个方面的知识和技能。以下是您在学习上位机开发时可能需要关注的一些关键领域&#xff1a; 编程语言&#xff1a;选择一种适合上位机开发的编程语言。常用的选择包括C/C、Python和Java等。您需要学习该语言的语法、数据结构、面向对象编程等基本概念。 界面设…

Mysql8.0常用命令

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、登录二、查看端口三、修改端口四、重启Mysql五、创建新用户六、修改密码七、给指定用户分配权限八、删除用户九、远程链接 访问权限 安装参考的&#xff1a;添加…

C++ 超市商品管理系统

题目3 超市商品管理系统设计 1、问题描述 超市中商品分为四类&#xff0c;分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称价格、库存量和生产厂家、品牌等信息 主要完成对商品的销售、统计和简单管理 2、功能要求 (1) 销售功能。购买商品时&#xff0c;先输入类别&…

Linux基础知识点1

Linux概述 Linux的特点&#xff1a; 多用户多任务、开源、安全、稳定 Linux系统的开发模型&#xff1a; 集市模型 Linux的版本&#xff1a; 内核版本和发行版本 内核版本和发行版本含义或区别&#xff1f; 答&#xff1a; 内核版本&#xff1a;Linux 操作系统的内核程序版…

【深入探讨】区块链是工业物联网发展的基石

发表时间&#xff1a;2023年4月6日 区块链技术能否成为工业物联网的基石&#xff1f;最近在巴厘岛举办的物联网和智能系统&#xff08;IoTAIS&#xff09;活动上&#xff0c;nChain首席科学家Craig S. Wright博士解答了这个问题。 Wright博士谈到了在BSV交易账本上运行的工业互…

VirusTotal——您身边的企业安全专家

【本文由 Cloud Ace 整理发布。Cloud Ace 是谷歌云全球战略合作伙伴&#xff0c;拥有 300 多名工程师&#xff0c;也是谷歌最高级别合作伙伴&#xff0c;多次获得 Google Cloud 合作伙伴奖。作为谷歌托管服务商&#xff0c;我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证…