IEC‑60870‑5‑104协议报文监控方法技术

技术编号:16974807 阅读:112 留言:0更新日期:2018-01-07 09:41
本发明专利技术涉及一种IEC‑60870‑5‑104协议报文监控方法,包括初始化变量、创建报文解析线程、创建决策线程,能够简单方便的对104链路状态进行判断,对实时报文结构进行分析,对遥控和遥信过程进行监控,立即报告严重错误,定期上送统计信息,实现了104协议的全方位监控,提高了通信可靠性。

【技术实现步骤摘要】
IEC-60870-5-104协议报文监控方法
本专利技术涉及智能变电站网络报文分析领域,尤其涉及通信协议的报文分析
,具体是指一种IEC-60870-5-104协议报文监控方法。
技术介绍
智能变电站是智能电网的关键环节,通信平台网络化是其重要特征,传统变电站的电缆直连通信方式由交换机和网线替代。站内二次设备之间通过网络报文的方式进行数据交换。随着站内智能设备和设备产生的数据越来越多,二次设备调试和维护越来越困难,智能变电站网络报文分析系统通过镜像抓取并在线分析站内网络报文,实现了对二次设备的实时监控,有效提高了变电站运行效率。智能变电站内设备类型较多,对通信实时性要求不同,导致站内设备间通过多种协议进行通信。传统网络报文分析仪基本覆盖了站内常见的通信协议,如IEC61850标准中使用的SV-9-2、GOOSE、MMS等。但是,目前对变电站与调度系统之间的通信协议监控的较少。变电站与调度系统之间一般通过IEC60870-5-104(简称104)协议进行通信,104以TCP/IP系列协议为底层通信协议,技术成熟,使用方便。但是,由于TCP/IP协议延迟不固定等问题,在具体实现上除了控制网络流量之外,还需要对104协议的报文进行监控。现有技术中,一类通过定时发送测试报文判断链路连接状态,无法对实时报文结构错误进行判断;一类利用端口镜像方法抓取实时报文,对报文结构进行仔细的检查,但是通过报文长度判断报文类型,容易出错,且该方法只能分析报文结构,对于涉及到多条报文的控制过程无法监控;其他方法通过镜像抓取全站报文,对报文结构和各种命令进行了多维的统计,但是计算太过复杂,实现难度较大,实用性较差。
技术实现思路
为解决以上问题,本专利技术提供了一种可大大提高通信可靠性的IEC-60870-5-104协议报文监控方法。为了实现上述目的,本专利技术的IEC-60870-5-104协议报文监控方法如下:该IEC-60870-5-104协议报文监控方法,其主要特点是,所述的方法包括以下步骤:(1)初始化变量;(2)创建报文解析线程;(3)创建决策线程。较佳地,所述的步骤(1)中的初始化为:将相关变量初始化为零,并清空TCP连接映射表map_link和控制过程映射表map_ctl,其中,所述的相关变量包括报告周期定时器t_rpt、链路通信状态定时器t_commuState、遥测刷新状态定时器t_rfhState[n],其中n表示遥测点数量,主站关闭TCP连接次数n_masterclose、子站关闭TCP连接次数n_slaveclose、遥测数据无效次数n_teleMesInvalid、遥测数据溢出次数n_teleMesOv和遥信数据无效次数n_teleSigInvalid。更佳地,所述的步骤(2)中的创建报文解析线程为:(2.1)读取报文,并取出报文中的链路层报文;(2.2)在链路层对该链路层报文进行分析,获取网络层报文,并判断该网络层报文是否为IP报文,若是,则进入步骤(2.3),否则返回步骤(2.1);(2.3)在网络层对该IP报文进行分析,获取传输层报文,并判断该传输层报文是否为TCP报文,若是,则进入步骤(2.4),否则返回步骤(2.1);(2.4)在传输层对该TCP报文进行分析,获取应用层报文,并判断该应用层报文是否为IEC-60870-5-104报文,若是,则进入步骤(2.5),否则返回步骤(2.1);(2.5)在应用层对该IEC-60870-5-104报文进行分析,并保存分析结果,返回步骤(2.1)。尤佳地,所述的步骤(2.3)包含以下步骤:(2.3.1)在网络层对该IP报文进行网络层分析,获取该IP报文的源IP地址和目的IP地址,并解析IP报文获取传输层报文;(2.3.2)解析出该传输层报文的传输层协议类型,并根据传输层协议类型进一步判断其是否为TCP报文。尤佳地,所述的步骤(2.4)中包括以下步骤:(2.4.1)在传输层对该TCP报文进行分析,获取该TCP报文的TCP头信息,并判断是否存在TCP连接,若不存在,则新建TCP连接。甚佳地,所述的TCP连接中包括以下在新建TCP连接时要进行初始化清零的相关变量:客户端建立请求变量establish_req、服务端确认变量establish_ack、客户端确认变量establish_ackself、释放请求变量release_req、释放确认变量release_ack、释放再次请求变量release_req2和释放再次确认变量release_ack2、客户端端口号变量port_client、服务端端口号变量port_serv、连接关闭者变量closer;新建TCP连接时进行初始化的变量还包括超时计时器t_timeout、客户端IP地址ip_client、服务端IP地址ip_serv,其中,对客户端IP地址ip_client和服务端IP地址ip_serv的初始化均为置空,对超时计时器t_timeout的初始化为将当前时间置为超时计时器t_timeout的初始值。极佳地,所述的客户端建立请求变量establish_req、服务端确认变量establish_ack、客户端确认变量establish_ackself、释放请求变量release_req、释放确认变量release_ack、释放再次请求变量release_req2和释放再次确认变量release_ack2的值与各变量对应的事件是否发生相关,若各变量对应的事件发生,则置1,否则置0,其中,客户端建立请求变量establish_req对应TCP连接中发生客户端建立请求这一事件;服务端确认变量establish_ack对应TCP连接中发生服务端确认这一事件;客户端确认变量establish_ackself对应TCP连接中发生客户端确认这一事件;释放请求变量release_req对应TCP连接中发生释放请求这一事件;释放确认变量release_ack对应TCP连接中发生释放确认这一事件;释放再次请求变量release_req2对应TCP连接中发生连续两次释放请求时发生第二次释放请求这一事件;释放再次确认变量release_ack2对应TCP连接中发生连续两次释放请求时发生第二释放确认这一事件;所述的连接关闭者变量closer的值与该TCP连接的连接情况相关,若该TCP连接正常,置0;若该TCP连接由客户端关闭,置1;若该TCP连接由服务端关闭,置2。绝佳地,所述的步骤(2.4.1)后还包括以下步骤:(2.4.2)将超时计时器t_timeout更新为当前时间,并根据获取的TCP头信息,判断当前报文是否为TCP连接建立或释放时的特殊报文,若是,则将TCP连接中的相应变量置1后进入步骤(2.4.3),否则直接进入步骤(2.4.3);(2.4.3)判断当前TCP连接中的释放再次确认变量release_ack2是否被置1,若是,则进入步骤(2.4.4),否则进入步骤(2.4.5);(2.4.4)判断当前报文源端口号是否等于客户端端口号变量port_client,若是,则将连接关闭者变量closer置1,否则将连接关闭者变量closer置2;(2.4.5)根据TCP头信息判断该应用层报文是否为IEC-60870-5-10本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/62/201710760832.html" title="IEC‑60870‑5‑104协议报文监控方法原文来自X技术">IEC‑60870‑5‑104协议报文监控方法</a>

【技术保护点】
一种IEC‑60870‑5‑104协议报文监控方法,其特征在于,所述的方法包括以下步骤:(1)初始化变量;(2)创建报文解析线程;(3)创建决策线程。

【技术特征摘要】
1.一种IEC-60870-5-104协议报文监控方法,其特征在于,所述的方法包括以下步骤:(1)初始化变量;(2)创建报文解析线程;(3)创建决策线程。2.根据权利要求1所述的IEC-60870-5-104协议报文监控方法,其特征在于,所述的步骤(1)中的初始化为:将相关变量初始化为零,并清空TCP连接映射表map_link和控制过程映射表map_ctl,其中,所述的相关变量包括报告周期定时器t_rpt、链路通信状态定时器t_commuState、遥测刷新状态定时器t_rfhState[n],其中n表示遥测点数量,主站关闭TCP连接次数n_masterclose、子站关闭TCP连接次数n_slaveclose、遥测数据无效次数n_teleMesInvalid、遥测数据溢出次数n_teleMesOv和遥信数据无效次数n_teleSigInvalid。3.根据权利要求2所述的IEC-60870-5-104协议报文监控方法,其特征在于,所述的步骤(2)中的创建报文解析线程为:(2.1)读取报文,并取出报文中的链路层报文;(2.2)在链路层对该链路层报文进行分析,获取网络层报文,并判断该网络层报文是否为IP报文,若是,则进入步骤(2.3),否则返回步骤(2.1);(2.3)在网络层对该IP报文进行分析,获取传输层报文,并判断该传输层报文是否为TCP报文,若是,则进入步骤(2.4),否则返回步骤(2.1);(2.4)在传输层对该TCP报文进行分析,获取应用层报文,并判断该应用层报文是否为IEC-60870-5-104报文,若是,则进入步骤(2.5),否则返回步骤(2.1);(2.5)在应用层对该IEC-60870-5-104报文进行分析,并保存分析结果,返回步骤(2.1)。4.根据权利要求3所述的IEC-60870-5-104协议报文监控方法,其特征在于,所述的步骤(2.3)包含以下步骤:(2.3.1)在网络层对该IP报文进行网络层分析,获取该IP报文的源IP地址和目的IP地址,并获取传输层报文;(2.3.2)解析出该传输层报文的传输层协议类型。5.根据权利要求3所述的IEC-60870-5-104协议报文监控方法,其特征在于,所述的步骤(2.4)中包括以下步骤:(2.4.1)在传输层对该TCP报文进行分析,获取该TCP报文的TCP头信息,并判断是否存在TCP连接,若不存在,则新建TCP连接。6.根据权利要求5所述的IEC-60870-5-104协议报文监控方法,其特征在于,所述的TCP连接中包括以下在新建TCP连接时要进行初始化清零的相关变量:客户端建立请求变量establish_req、服务端确认变量establish_ack、客户端确认变量establish_ackself、释放请求变量release_req、释放确认变量release_ack、释放再次请求变量release_req2和释放再次确认变量release_ack2、客户端端口号变量port_client、服务端端口号变量port_serv、连接关闭者变量closer;新建TCP连接时进行初始化的变量还包括超时计时器t_timeout、客户端IP地址ip_client、服务端IP地址ip_serv,其中,对客户端IP地址ip_client和服务端IP地址ip_serv的初始化均为置空,对超时计时器t_timeout的初始化为将当前时间置为超时计时器t_timeout的初始值。7.根据权利要求6所述的IEC-60870-5-104协议报文监控方法,其特征在于,所述的客户端建立请求变量establish_req、服务端确认变量establish_ack、客户端确认变量establish_ackself、释放请求变量release_req、释放确认变量release_ack、释放再次请求变量release_req2和释放再次确认变量release_ack2的值与各变量对应的事件是否发生相关,若各变量对应的事件发生,则置1,否则置0,其中,客户端建立请求变量establish_req对应TCP连接中发生客户端建立请求这一事件;服务端确认变量establish_ack对应TCP连接中发生服务端确认这一事件;客户端确认变量establish_ackself对应TCP连接中发生客户端确认这一事件;释放请求变量release_req对应TCP连接中发生释放请求这一事件;释放确认变量release_ack对应TCP连接中发生释放确认这一事件;释放再次请求变量release_req2对应TCP连接中发生连续两次释放请求时发生第二次释放请求这一事件;释放再次确认变量release_ack2对应TCP连接中发生连续两次释放请求时发生第二释放确认这一事件;所述的连接关闭者变量closer的值与该TCP连接的连接情况相关,若该TCP连接正常,置0;若该TCP连接由客户端关闭,置1;若该TCP连接由服务端关闭,置2。8.根据权利要求7所述的IEC-60870-5-104协议报文监控方法,其特征在于,所述的步骤(2.4.1)后还包括以下步骤:(2.4.2)将超时计时器t_timeout更新为当前时间,并根据获取的TCP头信息,判断当前报文是否为TCP连接建立或释放时的特殊报文,若是,则将TCP连接中的相应变量置1后进入步骤(2.4.3),否则直接进入步...

【专利技术属性】
技术研发人员:袁同浩王力陈浩黄保莉高玉宝沈永良赵德基陈鹏狄军峰黄小倩刘裕桦邬军军张漪
申请(专利权)人:上海许继电气有限公司许继集团有限公司国家电网公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1