一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种实现工控协议解析规则热切换的方法及网络设备与流程

2021-11-20 01:32:00 来源:中国专利 TAG:


1.本发明涉及工业控制系统网络技术领域,尤其涉及一种实现工控协议解析规则热切换的方法及网络设备。


背景技术:

2.目前,工业控制系统网络是由工业自动化生产设备组成的网络,不同于it网络的是,工控网络拥有专有的通信协议和通信机制,除了现有的工控协议,例如modbus协议、iec-104协议,还有很多工控协议是私有的或者是保密的。所以,这就造成了专门针对工控网络安全问题而设计的网络防护或者网络审计产品往往覆盖不到所有的工控协议,因此,在安全防护上对这些协议也就无能为力了。因此,目前很多专门针对工控网络安全问题而设计的网络防护或者网络审计产品都提出了使用描述语法来扩展工控协议的方法。
3.例如,公开号为cn105141596a的专利公开了一种扩展工控防火墙支持协议的方法,其通过用户的配置扩展安全网关检测的协议、使用配置文件定义协议特征以及检测的位置、能够保证协议升级过程中不停止安全业务;所述用户的配置是指用户根据自己网络流量的情况配置关键参数,所述关键参数是指待检测报文的ip地址、端口、传输层协议、报文的指纹特征、待检测内容的提取规则、待检测内容的合法值以及网关设备采取的相应动作,所述配置文件是指以一定的格式保存包含用户配置内容的文件。
4.但是,考虑到工控协议解析过程中,可能出现的报文缓存的情况,例如tcp报文分包传输的情况,在加载完解析配置文件后,直接切换配置内容可能造成缓存内容的错误,导致后续报文解析失败。
5.例如,现有技术通过以下方式实现协议解析规则热切换:网络安全设备准备n块(n一般为2)事先分配好的内存,其中有一块内存正在使用,记为m0,其他的内存作为备份内存,记为m1。当发起加载协议解析规则的请求后,网络安全设备使用任意一块备份内存m1加载规则,加载完成后,将使用的备份内存m1切换为主内存,之前的主内存m0切换为备份内存,同时m0内存的内容暂时不清空,待再次使用内存m0加载协议解析规则时再清空其内容。这样,新开始解析的流量使用m1内存上的规则进行协议解析。之前使用m0内存上的协议解析规则进行解析的流量,依然可以继续使用m0内存上的协议解析规则进行解析,直到解析出一个完整的结果后再进行切换。但这种切换方式存在的缺点是:加载协议解析规则的触发时间是不确定的,无法保证m0内存上的内容在整个流量的生命周期中一直有效。


技术实现要素:

6.针对上述现有技术中存在的不足之处,本发明提供一种实现工控协议解析规则热切换的方法,采用延时协议解析规则的方法,即在一个确定的时间以后才允许重新加载协议解析规则。这样,能够有效保证使用原主内存中的协议解析规则进行解析的流量可以全部解析完毕,从而可以将原主内存上的内容释放。同时,能够保证解析内容的完整和一致性。
7.所述工控协议解析规则热切换的方法包括加载协议解析规则流程,所述加载协议解析规则流程包括以下步骤:
8.当网络设备收到加载协议解析规则请求时,计算当前时间与上一次加载协议解析规则时间之间的时间间隔;
9.判断计算出的所述时间间隔和预设等待时长之间的大小;
10.当所述时间间隔大于所述预设等待时长时,则按照所述加载协议解析规则请求加载相应的协议解析规则;
11.当所述时间间隔不大于所述预设等待时长时,则提示加载失败,需等待。
12.进一步地,所述工控协议解析规则热切换的方法还包括:
13.在网络设备中创建一个流节点,所述流节点用于缓存具有相同五元组的报文的解析中间状态和该报文解析时所用的协议解析规则的版本号;
14.当在预设缓存时间内,网络设备中不再有某个五元组的报文进入时,则将该五元组对应的流节点上的内容清空并释放相应的存储空间;其中,所述预设缓存时间为流量老化时间t
age
,t
age
>0。
15.进一步地,所述预设等待时长的计算公式如下:
16.t=t
age
2t
continue
ε
17.其中,所述计算公式中的t表示所述预设等待时长;t
age
为流量老化时间,且t
age
>0;t
continue
为留给相应流节点中没有处理完毕的五元组的预设处理时间,且t
continue
>0;ε为误差修正参数,且ε≥0。
18.进一步地,所述工控协议解析规则热切换的方法还包括报文选择协议解析规则流程,所述报文选择协议解析规则流程包括以下步骤:
19.当待解析报文进入网络设备时,按照所述待解析报文的五元组找到其对应的流节点;
20.判断所找到的流节点上记录的所述待解析报文之前解析时所用的原协议解析规则的版本号是否跟主内存中加载的当前协议解析规则的版本号相同;
21.当所述原协议解析规则的版本号跟当前协议解析规则的版本号相同时,则继续使用原协议解析规则对所述待解析报文进行解析;
22.当所述原协议解析规则的版本号跟当前协议解析规则的版本号不同时,则判断是否第一次出现版本号不同的情况;
23.当第一次出现版本号不同的情况时,则将当前时间记录在相应流节点上,并继续使用原协议解析规则对所述待解析报文进行解析;
24.当不是第一次出现版本号不同的情况时,则计算当前时间与相应流节点上记录的第一次出现版本号不同时的时间点之间的时间差值;
25.当所述时间差值小于t
continue
时,则继续使用原协议解析规则对所述待解析报文进行解析;
26.当所述时间差值不小于t
continue
时,则清空相应流节点上的内容,并使用当前协议解析规则对所述待解析报文进行解析,同时将所述当前协议解析规则的版本号记录在所述待解析报文对应的流节点上。
27.可选地,上述方法中的预设处理时间t
continue
的取值在50秒~60秒之间,误差修正
参数ε的取值在0.5秒~7秒之间。
28.相应地,针对上述现有技术中存在的不足之处,本发明还提供一种实现工控协议解析规则热切换的网络设备,所述网络设备包括协议解析规则加载模块,所述协议解析规则加载模块包括:
29.第一计算单元,用于当网络设备收到加载协议解析规则请求时,计算当前时间与上一次加载协议解析规则时间之间的时间间隔;
30.第一判断单元,用于判断所述第一计算单元计算出的所述时间间隔和预设等待时长之间的大小;
31.加载单元,用于当所述时间间隔大于所述预设等待时长时,则按照所述加载协议解析规则请求加载相应的协议解析规则;
32.提示单元,用于当所述时间间隔不大于所述预设等待时长时,则提示加载失败,需等待。
33.进一步地,所述网络设备还包括:
34.流节点建立模块,用于在网络设备中创建一个流节点,所述流节点用于缓存具有相同五元组的报文的解析中间状态和该报文解析时所用的协议解析规则的版本号;
35.缓存清空模块,用于当在预设缓存时间内,网络设备中不再有某个五元组的报文进入时,则将该五元组对应的流节点上的内容清空并释放相应的存储空间;其中,所述预设缓存时间为流量老化时间t
age
,t
age
>0。
36.进一步地,所述预设等待时长的计算公式如下:
37.t=t
age
2t
continue
ε
38.其中,所述计算公式中的t表示所述预设等待时长;t
age
为流量老化时间,且t
age
>0;t
continue
为留给相应流节点中没有处理完毕的五元组的预设处理时间,且t
continue
>0;ε为误差修正参数,且ε≥0。
39.进一步地,所述网络设备还包括协议解析规则选择模块,所述协议解析规则选择模块包括:
40.查找单元,用于当待解析报文进入网络设备时,按照所述待解析报文的五元组找到其对应的流节点;
41.第二判断单元,用于判断所述查找单元所找到的流节点上记录的所述待解析报文之前解析时所用的原协议解析规则的版本号是否跟主内存中加载的当前协议解析规则的版本号相同;
42.第一解析单元,用于当所述原协议解析规则的版本号跟当前协议解析规则的版本号相同时,则继续使用原协议解析规则对所述待解析报文进行解析;
43.第三判断单元,用于当所述原协议解析规则的版本号跟当前协议解析规则的版本号不同时,则继续判断是否第一次出现版本号不同的情况;
44.第二解析单元,用于当第一次出现版本号不同时,则将当前时间记录在相应流节点上,并继续使用原协议解析规则对所述待解析报文进行解析;
45.第二计算单元,用于当不是第一次出现版本号不同时,则计算当前时间与相应流节点上记录的第一次出现版本号不同时的时间点之间的时间差值;
46.第三解析单元,用于当所述时间差值小于t
continue
时,则继续使用原协议解析规则
对所述待解析报文进行解析;
47.第四解析单元,用于当所述时间差值不小于t
continue
时,则清空相应流节点上的内容,并使用当前协议解析规则对所述待解析报文进行解析,同时将所述当前协议解析规则的版本号记录在所述待解析报文对应的流节点上。
48.可选地,上述网络设备中的预设处理时间t
continue
的取值在50秒~60秒之间,误差修正参数ε的取值在0.5秒~7秒之间。
49.本发明具有如下有益效果:
50.本发明采用延时协议解析规则的方法,即在一个确定的时间以后才允许重新加载协议解析规则。这样,能够有效保证使用原主内存中的协议解析规则进行解析的流量可以全部解析完毕,从而可以将原主内存上的内容释放。同时,能够保证解析内容的完整和一致性。从而可以在不加锁的情况下,实现协议解析规则的热切换,同时能够保证切换的安全性和解析的完整性。
附图说明
51.图1为本发明的第一实施例提供的报文选择协议解析规则流程示意图;
52.图2为本发明的第一实施例提供的加载协议解析规则流程示意图;
53.图3为本发明的第二实施例提供的实现工控协议解析规则热切换的网络设备的系统框图。
具体实施方式
54.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.现有技术通过以下方式实现协议解析规则热切换:网络安全设备准备n块(n一般为2)事先分配好的内存,其中有一块内存正在使用,记为m0,其他的内存作为备份内存,记为m1。当发起加载协议解析规则的请求后,网络安全设备使用任意一块备份内存m1加载规则,加载完成后,将使用的备份内存m1切换为主内存,之前的主内存m0切换为备份内存,同时m0内存的内容暂时不清空,待再次使用内存m0加载协议解析规则时再清空其内容。这样,新开始解析的流量使用m1内存上的规则进行协议解析。之前使用m0内存上的协议解析规则进行解析的流量,依然可以继续使用m0内存上的协议解析规则进行解析,直到解析出一个完整的结果后再进行切换。但这种切换方式存在的缺点是:加载协议解析规则的触发时间是不确定的,无法保证m0内存上的内容在整个流量的生命周期中一直有效。
56.针对上述现有技术中存在的不足之处,本发明提供一种实现工控协议解析规则热切换的方法,采用延时协议解析规则的方法,即在一个确定的预设等待时长t以后才允许重新加载协议解析规则。这样,能够有效保证使用原主内存中的协议解析规则进行解析的流量可以全部解析完毕,从而可以将原主内存上的内容释放,同时,能够保证解析内容的完整和一致性。
57.而为了实现这一技术方案,首先需要在网络设备中创建一个流节点来缓存相同五
元组的报文的解析中间状态。当在预设缓存时间内,网络设备中不再有某个五元组的报文进入时,则将该五元组对应的流节点内容清空并释放相应的存储空间,该预设缓存时间称为流量老化时间,其为系统的固定参数,记为t
age
,且t
age
>0。
58.另一方面,当某个五元组在新协议解析规则加载后,由于解析内容缓存的原因,依然需要使用旧内存中加载的协议解析规则。而且综合考虑到网络设备连续切换协议解析规则的要求和解析内容完整性的要求,网络设备不能无限期的等待上述五元组将缓存的内容处理完毕,同时也不应该将缓存内容立刻清空,而是可以留给没有处理完毕的五元组一预设处理时间t
continue
,t
continue
>0,如果在t
continue
时间内,该五元组依然还有缓存内容,则清空缓存,强制使用新的协议解析规则进行下一步的解析。同时,在流节点中增加一个字段用来保存报文之前解析时所用的协议解析规则的版本号,在该报文选择协议解析规则时,需要比对原版本号和现版本号,从而确定该报文使用哪种协议解析规则;具体请详见下列实施例:
59.第一实施例
60.请参阅图1和图2,本实施例提供一种实现工控协议解析规则热切换的方法,该实现工控协议解析规则热切换的方法包括报文选择协议解析规则流程,该报文选择协议解析规则流程如图1所示,其包括以下步骤:
61.s101,接收待解析报文,然后进入s102;
62.s102,按照待解析报文的五元组找到其对应的流节点,然后进入s103;
63.需要说明的是,五元组中包含有会话的源ip地址,源端口,目的ip地址,目的端口和传输层协议,根据五元组能够区分不同会话,并且对应的会话是唯一的;因此,本实施例中通过五元组来区分不同的报文。
64.s103,判断所找到的流节点上记录的待解析报文之前解析时所用的原协议解析规则的版本号是否跟主内存中加载当前协议解析规则的版本号相同;若原协议解析规则的版本号跟当前协议解析规则的版本号相同,则进入s104;否则,进入s105;
65.需要说明的是,此处原协议解析规则的版本号跟当前协议解析规则的版本号相同,说明设备没有进行协议解析规则切换;而原协议解析规则的版本号跟当前协议解析规则的版本号不相同,则说明设备已经切换了协议解析规则,也即,当前内存中已经加载了一种新的协议解析规则;而如果所接收的报文如果是在协议解析规则切换之前,已经开始解析,切换后需要继续对其进行解析;则需要在协议解析规则切换后,需要通过下列步骤为其选择相应的协议解析规则,以实现对该报文的完整解析。
66.s104,继续使用原协议解析规则对待解析报文进行解析;
67.此处说明设备并没有切换协议解析规则,因此报文继续使用原协议解析规则进行解析即可。
68.s105,判断是否第一次出现版本号不同的情况,若是第一次出现版本号不同的情况,则进入s106;否则进入s107;
69.s106,将当前时间记录在相应流节点上,并继续使用原协议解析规则对待解析报文进行解析;
70.s107,计算当前时间与相应流节点上记录的第一次出现版本号不同时的时间点之间的时间差值,然后进入s108;
71.s108,判断得到的时间差值是否小于t
continue
;当时间差值小于t
continue
时进入s109,否则进入s110;
72.需要说明的是,此处的t
continue
的取值需要根据相应的网络设备的性能确定,对于不同性能的网络设备,其取值不同;在此,本实施例给出其一可行性取值范围:50至60秒。当然可以理解的是,本实施例并不对t
continue
的取值作具体限定,该t
continue
的取值只需根据相应的网络设备的性能来适当设定即可。
73.s109,继续使用原协议解析规则对待解析报文进行解析;
74.s110,清空相应流节点上的内容,使用当前协议解析规则对待解析报文进行解析,并将当前协议解析规则的版本号记录在待解析报文对应流节点上。
75.上述s109是在留给没有处理完毕的五元组的预设处理时间t
continue
内,依然可以继续使用原协议解析规则对相应报文进行解析;而s110则是在超过留给没有处理完毕的五元组的预设处理时间t
continue
后,无论该五元组是否处理完毕,都强制性使用新的协议解析规则对相应报文进行解析,以免该五元组过长时间地占用系统资源。
76.进一步地,本实施例的实现工控协议解析规则热切换的方法还包括加载协议解析规则流程,该加载协议解析规则流程如图2所示,其包括以下步骤:
77.s201,接收加载协议解析规则请求,然后进入s202;
78.s202,计算当前时间与上一次加载协议解析规则时间之间的时间间隔,然后进入s203;
79.s203,判断计算出的时间间隔是否大于预设等待时长;当时间间隔大于所述预设等待时长时,进入s204,否则进入s205;
80.s204,按照加载协议解析规则请求加载相应的协议解析规则;
81.s205,提示加载失败,需要等待。
82.需要说明的是,对于上述预设等待时长,本实施例通过以下计算公式计算得到:
83.t=t
age
2t
continue
ε
84.其中,上述计算公式中的t表示预设等待时长;t
age
为流量老化时间,为系统默认值,且t
age
>0;t
continue
为留给相应流节点中没有处理完毕的五元组的预设处理时间,且t
continue
>0;ε为考虑到t
age
可能存在一定的误差,所引入的误差修正参数,ε≥0;且该ε的取值取决于对应的网络设备的性能;对于不同性能的网络设备,其取值不同;在此,本实施例给出其一可行性取值范围:0.5至7秒。当然可以理解的是,本实施例并不对ε的取值作具体限定,该ε的取值只需根据相应的网络设备的性能来适当设定即可。
85.通过等待经上述计算公式得到的预设等待时长t后再切换协议解析规则,可以在不用加锁的情况下,可保证没有一个五元组使用原内存上的规则进行报文解析,从而实现安全的切换。
86.本实施例的方法采用延时协议解析规则的方法,即在一个确定时间以后才允许重新加载协议解析规则。这样,能有效保证使用原主内存中的协议解析规则进行解析的流量可以全部解析完毕,从而可以将原主内存上的内容释放。同时,能够保证解析内容的完整和一致性。从而可以在不加锁的情况下,实现协议解析规则的热切换,同时能够保证切换的安全性和解析的完整性。
87.第二实施例
88.请参阅图3,本实施例提供一种实现工控协议解析规则热切换的网络设备3,该实现工控协议解析规则热切换的网络设备3包括协议解析规则加载模块30,该协议解析规则加载模块30包括:
89.第一计算单元301,用于当网络设备3收到加载协议解析规则请求时,计算当前时间与上一次加载协议解析规则时间之间的时间间隔;
90.第一判断单元302,用于判断第一计算单元301计算出的时间间隔和预设等待时长之间的大小;
91.加载单元303,用于当时间间隔大于预设等待时长时,则按照加载协议解析规则请求加载相应的协议解析规则;
92.提示单元304,用于当时间间隔不大于预设等待时长时,则提示加载失败,需要等待。
93.进一步地,本实施例中的网络设备3还包括:
94.流节点建立模块31,用于在网络设备3中创建一个流节点,该流节点用于缓存具有相同五元组的报文的解析中间状态和该报文解析时所用的协议解析规则的版本号;
95.缓存清空模块32,用于当在预设缓存时间内,网络设备3中不再有某个五元组的报文进入时,则将该五元组对应的流节点上的内容清空并释放相应的存储空间;其中,预设缓存时间为流量老化时间t
age
,t
age
>0。
96.此外,本实施例的网络设备3还包括协议解析规则选择模块33,该协议解析规则选择模块33包括:
97.查找单元331,用于当待解析报文进入网络设备时,按照待解析报文的五元组找到其对应的流节点;
98.第二判断单元332,用于判断查找单元331所找到的流节点上记录的待解析报文之前解析时所用的原协议解析规则的版本号是否跟主内存中加载的当前协议解析规则的版本号相同;
99.第一解析单元333,用于当原协议解析规则的版本号跟当前协议解析规则的版本号相同时,则继续使用原协议解析规则对待解析报文进行解析;
100.第三判断单元334,用于当原协议解析规则的版本号跟当前协议解析规则的版本号不同时,则继续判断是否第一次出现版本号不同的情况;
101.第二解析单元335,用于当第一次出现版本号不同时,则将当前时间记录在相应流节点上,并继续使用原协议解析规则对所述待解析报文进行解析;
102.第二计算单元336,用于当不是第一次出现版本号不同时,则计算当前时间与相应流节点上记录的第一次出现版本号不同时的时间点之间的时间差值;
103.第三解析单元337,用于当时间差值小于t
continue
时,则继续使用原协议解析规则对待解析报文进行解析;
104.第四解析单元338,用于当所述时间差值不小于t
continue
时,则清空相应流节点上的内容,并使用当前协议解析规则对所述待解析报文进行解析,同时将所述当前协议解析规则的版本号记录在所述待解析报文对应的流节点上。
105.本实施的实现工控协议解析规则热切换的网络设备3与上述第一实施例的实现工控协议解析规则热切换的方法相对应;其中的各模块所实现的功能与上述第一实施例中的
方法的各流程步骤一一对应,故在此不再赘述。
106.本实施例的设备采用延时协议解析规则的方法,即在一个确定时间以后才允许重新加载协议解析规则。这样,能有效保证使用原主内存中的协议解析规则进行解析的流量可以全部解析完毕,从而可以将原主内存上的内容释放。同时,能够保证解析内容的完整和一致性。从而可以在不加锁的情况下,实现协议解析规则的热切换,同时能够保证切换的安全性和解析的完整性。
107.此外,需要说明的是,本领域内的技术人员应明白,本发明技术方案可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或软件和硬件相结合的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
108.而且本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
109.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
110.当然可以理解的是,尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
111.还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
112.以上仅为本发明优选实施例而已,并不用于限制本发明,对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献