System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及工控环境数据传输领域,尤其涉及一种工控流量采集环境中socket数据的传输方法。
技术介绍
1、随着信息技术的快速发展,工业控制系统(ics)在国民经济和社会生活中的重要性日益增强。这些系统不仅承载着重要的生产任务,还涉及国家安全和民生保障。因此,保护工业控制系统,特别是作为关键信息基础设施的工业控制系统,已成为国家网络安全工作的重要组成部分。
2、在工业控制系统的保护中,实现全方位的态势感知是保障安全的关键。态势感知系统需要对生产环境中不同区域(如控制区、非控制区和信息管理区)的各类控制设备、网络安全设备及网络流量数据进行全面的采集和分析。流量数据采集能力的强弱直接影响到采集设备的性能,进而影响整个系统的安全防护能力。因此,设计一种能够提升数据采集性能的方案,以满足不同流量场景的需求,成为了一个长期且重要的目标。
3、现有的通用数据采集和转发方案普遍采用传统的socket发送数据的方式。这种方案依赖于通用操作系统,并通过网络协议栈进行数据的发送。虽然这种通用网络协议栈旨在满足广泛的使用需求,但在工控环境的特定应用中,其冗余处理过程导致了显著的cpu资源浪费,并未能在数据采集后的转发性能上提供优势。
4、具体而言,传统socket数据发送方案在处理采集到的数据时,依赖于通用内核协议栈进行频繁的路由查找,这一过程极大地消耗了cpu资源。在工业控制环境中,流量采集设备的应用场景相对单一,避免冗余处理的设计能够显著节省cpu资源,提升数据采集性能。因此,亟需开发一种新颖的方案,以提高流量采
技术实现思路
1、本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
2、为此,本申请的第一个目的在于提出一种工控流量采集环境中socket数据的传输方法。
3、本申请的第二个目的在于提出一种电子设备。
4、本申请的第三个目的在于提出一种计算机可读存储介质。
5、本申请的第四个目的在于提出一种计算机程序产品。
6、为达上述目的,本申请第一方面实施例提出了一种工控流量采集环境中socket数据的传输方法,包括:
7、通过工控环境中部署的流量采集设备,在工控环境内部采集数据;
8、通过自定义的传输层znrhudp通信协议的发送函数,将采集的数据打包为网络报文,并将所述网络报文转发到工控平台或其他指定目的地,其中,所述znrhudp通信协议负责在传输层处理数据报文的构造、路由绑定及传输。
9、所述流量采集设备在工控环境内部采集的数据包括工业控制系统中各类控制设备、安全设备的控制命令、设备状态、通信协议数据及网络流量信息。
10、所述znrhudp通信协议的注册过程,包括:
11、注册struct proto结构,定义面向协议层的操作行为,包括协议的打开、关闭和建立连接;
12、注册struct proto_ops结构,面向用户空间提供套接字系统调用接口的实现,支持套接字的创建、绑定、发送和接收操作;
13、注册inet_protosw结构,将struct proto结构和struct proto_ops结构赋值为其成员,并将znrhudp协议类型设置为sock_dgram类型和自定义协议号,确保内核协议栈能够识别和处理znrhudp协议报文;
14、通过内核模块的框架初始化函数znrhudp_init将上述注册的结构注册到内核中。
15、所述znrhudp通信协议的发送函数的发送流程,包括:
16、在首次发送采集的数据时,通过用户空间提供的目的ip地址执行路由查找,缓存查找到的路由条目至全局缓存变量,并在后续的数据传输过程中直接使用该缓存路由条目,避免每次发送报文时重复进行路由查找;
17、为采集的数据分配内核报文结构,通过填充采集的数据内容和自定义的协议头部信息,构造znrhudp协议报文;
18、调用内核协议栈的相关函数,将构造好的znrhudp协议报文发送至网络,并通过协议栈的分片功能和网卡驱动完成数据的传输。
19、所述路由查找的过程,包括:
20、定义ipv4的路由查找结构flowi4,所述路由查找结构flowi4根据网络报文的目的ip地址、协议类型及端口号进行赋值;
21、调用路由查找函数ip_route_output_key,基于路由查找结构flowi4的定义内容进行路由查找,以获取相应的路由条目,所述路由条目包含将网络报文传输至目的ip地址所需的网络路径信息;
22、查找成功后,将获取的路由条目存储到全局缓存变量cached_rt。
23、所述为采集的数据分配内核报文结构,通过填充采集的数据内容和自定义的协议头部信息,构造znrhudp协议报文,包括:
24、使用内核函数alloc_skb分配socket buffer内核报文结构,并填充要发送的采集数据;
25、使用内核函数skb_dst_set,将缓存的路由条目绑定到分配的socket buffer内核报文结构;
26、为socket buffer内核报文结构添加自定义的znrhudp协议头部信息,得到znrhudp协议报文,所述znrhudp协议头部信息包括目的ip地址和自定义的znrhudp协议号。
27、所述调用内核协议栈的相关函数,将构造好的znrhudp协议报文发送至网络,并通过协议栈的分片功能和网卡驱动完成数据的传输,包括:
28、调用内核函数ip_send_skb,将构造完成的znrhudp协议报文提交到ip层进行处理;
29、在ip层中,协议栈将根据所述znrhudp协议报文的报文大小进行分片操作,如果报文长度超过网络最大传输单元,ip层会自动将所述znrhudp协议报文分割为多个较小的片段;
30、分片完成后,协议栈调用网卡驱动程序,通过适配的网络接口将报文片段发送至物理网络中,完成数据的传输。
31、为达上述目的,本申请第二方面实施例提出了一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
32、所述存储器存储计算机执行指令;
33、所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面中任一项所述的方法。
34、为达上述目的,本申请第三方面实施例提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面中任一项所述的方法。
35、为达上述目的,本申请第四方面实施例提出了一种计算机程序产品,该计算机程序被处理器执行时实现第一方面中任一项所述的方法。
36、本申请提供的一种工控流量采集环境中socket数据的传输方法、电子设备及存储介质,通过内核层面的编程,在本文档来自技高网...
【技术保护点】
1.一种工控流量采集环境中socket数据的传输方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述流量采集设备在工控环境内部采集的数据包括工业控制系统中各类控制设备、安全设备的控制命令、设备状态、通信协议数据及网络流量信息。
3.根据权利要求1所述的方法,其特征在于,所述ZNRHUDP通信协议的注册过程,包括:
4.根据权利要求3所述的方法,其特征在于,所述ZNRHUDP通信协议的发送函数的发送流程,包括:
5.根据权利要求4所述的方法,其特征在于,所述路由查找的过程,包括:
6.根据权利要求5所述的方法,其特征在于,所述为采集的数据分配内核报文结构,通过填充采集的数据内容和自定义的协议头部信息,构造ZNRHUDP协议报文,包括:
7.根据权利要求6所述的方法,其特征在于,所述调用内核协议栈的相关函数,将构造好的ZNRHUDP协议报文发送至网络,并通过协议栈的分片功能和网卡驱动完成数据的传输,包括:
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
...【技术特征摘要】
1.一种工控流量采集环境中socket数据的传输方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述流量采集设备在工控环境内部采集的数据包括工业控制系统中各类控制设备、安全设备的控制命令、设备状态、通信协议数据及网络流量信息。
3.根据权利要求1所述的方法,其特征在于,所述znrhudp通信协议的注册过程,包括:
4.根据权利要求3所述的方法,其特征在于,所述znrhudp通信协议的发送函数的发送流程,包括:
5.根据权利要求4所述的方法,其特征在于,所述路由查找的过程,包括:
6.根据权利要求5所述的方法,其特征在于,所述为采集的数据分配内核报文结构,通过填充...
【专利技术属性】
技术研发人员:张鹏飞,张曼,鲍树楠,黄智健,丁兴军,邓志玮,朱江,赵硕,刘群峰,姬忠平,李志刚,邵艳强,张明青,
申请(专利权)人:中能融合智慧科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。