[发明专利]基于神经网络的ModbusTcp通讯深度包检测方法有效
申请号: | 201610055875.0 | 申请日: | 2016-01-27 |
公开(公告)号: | CN105743735B | 公开(公告)日: | 2018-12-18 |
发明(设计)人: | 辛晓帅;单海超;邹见效;徐红兵;彭超;张健 | 申请(专利权)人: | 电子科技大学 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L12/24;H04L29/06 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 温利平;陈靓靓 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于神经网络的ModbusTcp通讯深度包检测方法,采用训练样本训练得到BP神经网络来进行检测,训练样本的获取方法为:提取得到N对数据包,对数据包中的请求包和响应包分别提取出源端口号和功能码,将两组源端口号和功能码组成样本数据队列,根据源端口号的取值范围和功能码一致性来得到该样本数据队列的判定值,对样本数据队列进行归一化后作为BP神经网络的输入,对应判定值作为输出;在检测时,提取得到请求包和响应包的检测数据队列并进行归一化后输入BP神经网络,判断当前通讯是否正常。本发明采用数据包的源端口号和功能码作为检测依据,采用BP神经网络作为检测模型,实现对ModbusTcp通讯时双向数据交互中所出现问题的准确检测。 | ||
搜索关键词: | 源端口号 功能码 队列 样本数据 数据包 检测 深度包检测 通讯 神经网络 训练样本 归一化 请求包 响应包 判定 双向数据交互 检测数据 准确检测 两组 输出 | ||
【主权项】:
1.一种基于神经网络的ModbusTcp通讯深度包检测方法,其特征在于,包括以下步骤:S1:根据ModbusTcp通讯双方设备的IP地址从通讯网络中提取得到双方通讯的数据包,根据数据包帧头的信息对请求包和响应包进行匹配,得到N对数据包;S2:根据数据包格式,从N对数据包中的请求包和响应包中分别提取出源端口号和功能码,将两组源端口号和功能码组成一个样本数据队列Dn={Pn1,Cn1,Pn2,Cn2},其中Pn1表示第n对数据包中请求包的源端口号,Cn1表示第n对数据包中请求包的功能码,Pn2表示第n对数据包中响应包的源端口号,Cn2表示第n对数据包中响应包的功能码,n的取值范围为n=1,2,…,N;S3:根据请求包和响应包各自的源端口号的取值范围以及请求包和响应包的功能码一致性,确定各个样本数据队列Dn所对应的请求包和响应包是否正常,如果正常,设置对应的判定值Vn=1,否则Vn=0;S4:对样本数据队列的源端口号和功能码进行归一化处理得到归一化后的样本数据队列dn={pn1,cn1,pn2,cn2},其归一化公式为:![]()
其中,Pmax表示协议中规定的端口号最大值,Cmax表示协议中规定的功能码最大值;S5:构建BP神经网络,输入层结点数量为4,输出层结点数量为1,隐含层结点数量K根据需要确定;将N个样本数据队列dn={pn1,cn1,pn2,cn2}作为样本输入,对应的判定值Vn作为输出,训练得到BP神经网络;S6:在两个设备进行ModbusTcp通讯时,从请求包和响应包中提取得到源端口号和功能码,将两组源端口号和功能码组成一个检测数据队列D′={P′1,C′1,P′2,C′2},其中P′1表示请求包的源端口号,C′1表示请求包的功能码,P′2表示响应包的源端口号,C′2表示响应包的功能码;对检测数据队列D′={P′1,C′1,P′2,C′2}进行归一化,得到归一化后的检测数据队列d′={p′1,c′1,p′2,c′2};将归一化后的检测数据队列d′作为训练好的BP神经网络的输入,得到对应的输出yo,如果yo>T,T表示预设的阈值,取值范围为0<T<1,则判定当前通讯正常,否则不正常。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610055875.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种弹力限位式全通径开关滑套
- 下一篇:空调室内机