IEC104 S帧超时判定客户与服务端不匹配造成的异常链接问题分析

2、通过ss命令发现确有链接端口变化,与设备约一天一次的重连,通过抓包(tcpdump -vvv -nn port 1001 -w 0926.cap)分析得以下现象

2.1、异常情况时未对设备的I帧均匀的回S帧进行确认,正常情况时均匀的回S帧进行确认

2.2、长达23秒的缓存区满

2.3、发送报文中接收帧序列号错误

结论:该IEC104设备未关注暂无影响

    1. 不明原因链接断开

2.5、链接短时不稳定有多次各种原因的关闭与重连颠簸,完全恢复正常时间长

3、根据以上现象分析代码并增加日志,cs104_connection.c文件中关键函数static void* handleConnection(void* parameter)、static bool handleTimeouts(CS104_Connection self)

结合抓包得以下结论:

a异常情况时handleConnection线程未执行到(怀疑在进行链接异常关闭流程或Semaphore_wait卡住)receiveMessage,未及时从系统TCP缓存区中读取数据会导致2.2;

b异常情况时handleConnection线程未执行到(怀疑在进行链接异常关闭流程或Semaphore_wait卡住)confirmOutstandingMessages,未及时回S帧进行确认会导致2.1;

c根据抓包及日志I message timeout,判定104设备在变化上报遥测数据过程中,偶发不会或不能及时对worker发送的遥脉总召唤C_CI_NA_1的I帧进行I帧响应、S帧确认,会导致2.4;

d根据c结论将以下代码屏蔽删除,即不对104设备的S帧做超时判断,从而避免链接断开,恢复时间长影响数据采集。按协议标准规定应对S帧做超时判断,这里删除该逻辑对其它104协议设备应无影响(可能有报文时序不匹配的风险),具体待观察。

4、遗留问题

a本次修改后链接稳定性待观察;

b本次修改对其它104协议设备的影响待观察;

c以上有一些是怀疑与猜测故需对60870库、IEC104协议通信机制、worker代码细节进一步了解;

d反控反馈逻辑错误,不应使用send成功,而应使用send后的响应报文判断(asduhandle里处理);

f本协议关于控制规定有预发、执行、撤销三步,此处一步写入是否能兼容存疑。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT播放gstreamer命令(三)---使用QMediaPlayer

前文: 因为之前听说过,QMediaPlayer已经集成了gstreamer,但是并没有什么接口来例子来说明,根本看不出来有任何gstreamer的形式,于是在QT5助手里面搜了一下,发现确实有gstreamer的痕迹,但是例子写…

【数据结构】链表的概念 及 分类 (使用比喻解释概念)

一. 链表的概念及结构 概念:链表是一种 物理存储结构上非连续 、非顺序的存储结构,数据元素的 逻辑顺序 是通过链表中的 指针链接 次序实现的。 1.1 超级通俗的比喻 链表的结构跟火车车厢相似,淡季时车次的车厢会相应减少,旺季时车…

关于bypassuac的探究——思考

我们所使用的几个api,如RegCreateKeyExA、RegSetKeyExA都是直接修改注册表的操作,这种操作应该被归类为敏感操作,那么这里会不会被杀软拦截呢,去测试一下 windows defender正常上线 获取到的权限也是bypassuac后的权限 再看一下…

【计算机视觉】目标检测 |滑动窗口算法、YOLO、RCNN系列算法

一、概述 首先通过前面对计算机视觉领域中的卷积神经网络进行了解和学习,我们知道,可以通过卷积神经网络对图像进行分类。 如果还想继续深入,会涉及到目标定位(object location)的问题。在图像分类的基础上(Image classification)的基础上…

笔记本加装内存条

文章目录 一、拆前准备1.分析短板2.内存条选购3.工具准备 二、拆机实操1.拆后盖2.去静电、电源断电3.斜插45度,听到“嗒”的一声,说明成功了4.插回电源,开机测试 一、拆前准备 1.分析短板 内存、外存、显卡、CPU,提高短板不亚于…

【测试运维】web自动化全知识点笔记第1篇:什么是Web自动化测试(已分享,附代码)

本系列文章md笔记(已分享)主要讨论Web自动化测试相关知识。了解什么是自动化,理解什么是自动化测试以及为什么要使用自动化测试。具体包含:WebDriver的基本操作,WebDriver的鼠标、键盘操作,下拉选择框、警告…

【网络协议分析】利用Wireshark分析IP分片

一、实验目的 利用Wireshark软件抓包分析IP分片,了解IP分片的工作原理。 二、实验过程 1、网络拓扑 设备 IP地址 设备接口 MTU AR1 172.30.132.164 Ethernet 0/0/0 700 AR2 172.30.132.165 Ethernet 0/0/0 1200 2、实验过程 (1&#xf…

Juniper SRX防火墙HA Cluster更换故障设备

一、设备状态信息确认及备份 如果遇到整机挂掉,仅需要备份状态的设备,如果fpc状态异常RMA整机,最好是能做全部的备份,毕竟数据无价,多一分备份不会有坏处 登陆SRX node0和node1系统 1、配置进行备份 node0> conf…

类银河恶魔城学习记录1-1 Player状态机的搭建 P28

对状态机的介绍 什么是状态机?一篇文章就够了 - 知乎 说实话,目前并不能深入理解状态机的奇妙之处(当然,我觉得状态机作为教程的重要组成部分是不得不理解的,所以以下我会对游戏教程内的状态机做一些我认为的解释&am…

2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第5天

第 五 天 整个网站例 5.1 准备工作 项目目录与版心 base.css 5.2 网页制作思路 5.3 header 区域-整体布局 5.4 header区域-logo 5.5 header区域-导航 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…

【初中生讲机器学习】4. 支持向量机算法怎么用?一个实例带你看懂!

创建时间&#xff1a;2024-02-02 最后编辑时间&#xff1a;2024-02-03 作者&#xff1a;Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏&#xff0c;很高兴遇见你~ 我是 Geeker_LStar&#xff0c;一名初三学生&#xff0c;热爱计算机和数学&#xff0c;我们一起加…

0203-2-输入输出系统

第六章&#xff1a;输入输出系统 I/O系统的功能&#xff0c;模型和接口 I/O系统管理的对象是I/O设备和相应的设备控制器。 I/O系统的基本功能 隐藏物理设备的细节与设备的无关性提高处理机和I/O设备的利用率对I/O设备进行控制确保对设备的正确共享错误处理 I/O软件的层次结…