网络故障分析案例:如何定位和解决网络丢包问题-阿里云开发者社区

开发者社区> 技术小牛人> 正文

网络故障分析案例:如何定位和解决网络丢包问题

简介:
+关注继续查看

如何解决网络丢包问题?网络丢包怎么解决?网络丢包通常是比较难以排查的问题,因为造成网络丢包的原因很多,排查此类问题需要很长的时间。本案例中,通过对网络通信数据进行比对分析,我们找到了引起网络丢包的问题根源。

1.1   问题描述

可编程逻辑控制器(PLC),是一种采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。PLC实质是一种专用于工业控制的计算机。

某集团公司PLC设备近期出现异常,设备经常报告连接故障,公司网络运维人员通过Ping测试发现该设备存在丢包现象(丢包率约1~2%)。为了寻找问题原因,避免再次出现类似问题,在科来网络分析专家的协助下在出问题的PLC设备接入交换机处旁路部署了科来回溯分析系统进行数据包级分析。PLC网络环境及分析设备部署示意图如下

wKiom1mIJACQKqVtAAHln0CSrjU149.png-wh_50

通过交换机端口双向流量镜像分别采集故障PLC和正常PLC的通信数据进行比对分析,以下是详细分析过程及分析结论。

1.2  分析过程

1.2.1 故障PLC单网卡数据分析

首先,我们镜像故障PLC问题最严重网卡(IP XX.XX.8.4)的接口双向流量,在采集数据的同时公司技术人员配合从核心交换ping XX.XX.8.4。从采集到的ICMP协议报文数量可以看到,测试期间共捕获124个ping请求包(Echo Req),但只捕获122个ping应答包(Echo Reply)

wKiom1mIJVqS6P4jAAFil31E_dw279.png-wh_50

可以看出从故障PLC设备到边缘交换机接口就存在丢包现象,故障PLC有1.6%的包没有传输到边缘交换机。同时,在测试期间XX.XX.8.4的TCP通信中存在明显的丢包现象.

通过以上数据,我们可以初步判断造成丢包现象的原因出自从故障PLC到接入交换机之间,可能的问题点包括:

  • 接入交换机接口故障;

  • 故障PLC接入网线故障;

  • 故障PLC设备自身网卡或其他硬件故障。

1.2.2  故障PLC全部网卡数据分析

第二步,我们镜像了故障PLC的全部三个网卡连接的交换机接口双向流量,发现三个网卡都有丢包现象,而且丢包量基本相当

wKioL1mIJYHBDFufAAGXUlcgcGU892.png-wh_50

这说明丢包并不是XX.XX.8.4一个网卡的问题,而是故障PLC三个网卡的都有的现象。从其TCP会话统计来看也都是从PLC设备发送到接入交换机时出现的丢包。

由于三个网线或三个交换机接口同时存在问题的可能性很小,所以我们基本可以判断是故障PLC设备自身硬件问题导致的丢包现象。

1.2.3  正常PLC数据分析

第三步,我们镜像在同一边缘交换机的正常PLC设备(XX.XX.9.172)接口的流量,从采集数据中我们只看到了很少量的TCP重传,并且这些重传都是与XX.XX.8.4相关的通讯导致的

这说明正常PLC设备到接入交换机之间并没有明显的丢包迹象,进一步验证了之前的分析结论。

1.3 分析结论

通过以上数据分析,我们判断存在丢包问题的PLC设备极有可能是由于该PLC设备自身硬件问题导致数据包没有正常的从网卡发送到网络中所致;网线和接入交换机接口导致丢包现象的可能性非常小。

建议用户在非生产时段用PC机接入到故障设备的网线上,配置相同IP地址,通过ping测试是否还存在丢包现象,如果没有出现丢包或丢包率远小于1%即可完全排除网络原因。

1.4  价值

通过网络分析技术通过对传输的数据流进行深入分析,从多种可能原因中快速定位问题根源,使网络丢包不在困扰网络管理员。

本文转自  ChinaUnicom110  51CTO博客,原文链接:http://blog.51cto.com/xingyue2011/1954237

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Docker发布libnetwork,着手解决网络问题
本文讲的是Docker发布libnetwork,着手解决网络问题,【编者的话】5月1日,Docker发布了自家的容器网络管理项目libnetwork,libnetwork使用Go语言编写,目标是定义一个容器网络模型(CNM),并为应用程序提供一致的编程接口以及网络抽象。
1025 0
VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结
Background MSDN中对于在不同的配置下Link的LIB作了说明: C Runtime Library: 开关 对应的库 版本 /MD MSVCRT.
918 0
IPerf——网络测试工具介绍与源码解析(5)
本篇随笔讲述一下TCP协议下,双向测试模式和交易测试模式下客户端和服务端执行的情况; 双向测试模式: 官方文档的解释 Run Iperf in dual testing mode. This will cause the server to connect back to the client ...
896 0
解决TCP网络传输“粘包”问题
当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。
1140 0
记一次远程协助分析rac问题的案例
今天通过微信群和qq帮助一个网友分析了一个rac节点性能的问题,征得这位朋友的同学,和大家分享一下。 最开始这位朋友是在微信群中留言,说有一个rac的问题,现在已经严重影响在线业务了,希望我能够帮忙看看,有什么好的建议没,这对我来说着实是一个提高自己,分析问题的好机会,因为在地铁上,自己就简单确认了下环境,然后让他提供一些基本的错误日志或者报告。
759 0
针对不同手机系统的LBS地图定位解决方案
原文:针对不同手机系统的LBS地图定位解决方案 摘要: 针对目前的三种手机系统:Android安卓、S60塞班、IOS苹果,做出的三种不同的手机地图应用解决方案。 查阅了多数地图API对手机的支持情况,发现并没有一家能完全覆盖到这三个平台。
1485 0
闲鱼神探——线上问题定位与快速解决
线上问题排查,找神探就够了
1542 0
IPerf——网络测试工具介绍与源码解析(1)
IPerf是一个开源的测试网络宽带并能统计并报告延迟抖动、数据包丢失率信息的控制台命令程序,通过参数选项可以方便地看出,通过设置不同的选项值对网络带宽的影响,对于学习网络编程还是有一定的借鉴意义,至少可以玩上一段时间。
993 0
IPerf——网络测试工具介绍与源码解析(3)
【线程的生成】   生成线程时需要传入一个thread_Settings类型的变量,thread_Settings包含所有线程运行时需要的信息,命令行选项参数解析后所有得到的属性都存储到该类型的变量中,作为线程生成的传入值能够决定当前线程扮演的角色。
734 0
3320
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载