[发明专利]一种用于工业控制系统网络的数据包零拷贝获取方法有效
申请号: | 201410466615.3 | 申请日: | 2014-09-12 |
公开(公告)号: | CN104333533B | 公开(公告)日: | 2017-09-08 |
发明(设计)人: | 吴克河;安思成;丁雪伟;王晓翔;崔文超;李佳玮 | 申请(专利权)人: | 北京华电天益信息科技有限公司;华北电力大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 南京苏高专利商标事务所(普通合伙)32204 | 代理人: | 王云 |
地址: | 102200 北京市昌平*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 工业 控制系统 网络 数据包 拷贝 获取 方法 | ||
技术领域
本发明属于网络安全技术,特别涉及一种用于工业控制系统网络的数据包零拷贝获取方法。
背景技术
在工业网络系统中,系统的安全性非常重要,因此需要一些应用系统来保障系统的安全稳定,如入侵检测系统、安全审计系统等等。这些系统需要对网络中的数据包进行捕获、分析和记录,同时为了保证不影响系统的正常通信活动,通常将系统设计为一个数据链路层的旁路。
为了满足这一需求,通常的方法是通过libpcap接口库来抓包,libpcap的包捕获机制就是在数据链路层加一个旁路处理。当一个数据包到达网络接口,从网络设备物理层向操作系统提交时,libpcap首先利用POSIX标准的socket直接链路层访问接口(以不同的操作系统类型而有不同的具体实现)在数据经过链路层的过程中获得该数据包的拷贝,再将数据包发给过滤器。过滤器根据用户定义的过滤规则对数据包进行逐一匹配,匹配成功则放入内核中的缓冲区,并在用户请求时拷贝到用户态指定的缓冲空间,匹配失败则直接丢弃。如果没有设置过滤规则,所有数据包都将被缓冲并传递给用户。
随着硬件和网络技术的不断发展,网络的传输速率和吞吐量也逐渐变大,而libpcap的通过多次拷贝(至少两次以上)而进行抓包的方式也相应地成为了系统效率的瓶颈,以至于在高数据流量的网络环境下,采用libpcap抓包的系统的性能大大降低。
其中,工业控制系统网络的数据包一般情况下分为三类,第一为周期性数据,即一些传感器的周期性采集数据,这类数据量事先为可预知的且有严格时限限制;第二类为非周期紧急数据,包括一些报警和控制命令等,这些数据的发生是随机不可预知的,但是也有严格时限要求;第三类为非周期的一般数据,比如一些视频数据和历史数据库备份的数据流,这类数据虽不要求严格的时限,但是也要求不要丢包且数据无误。工业控制系统的网络数据流有严格的实时性限制,如平常的第一类和第二类数据,即使数据量不大的时候,对大部分数据包也有固定的时限(死期),所以网络设备或主机会预先分配资源且预留给这些实时性严格的数据,这时如果网络监测或采集的数据包获取程序运行在策略严格预置的枢纽主机上,很可能会影响性能及策略流量配置的主机的效率,甚至破坏数据包的实时性;当网络数据包瞬时流量非常大的时候,通常为第三类数据不定 期的出现的时候,可能网络个节点数据包速率非常快,这样即使数据包获取主机并联在网络中,但用传统pcap抓包内核用户态多次拷贝的方式也很有可能捕获速率低于网络数据包速率而产生丢包或乱序包,成为瓶颈。
发明内容
发明目的:本发明为了克服现有技术中存在的不足,本发明提供一种能够保证数据包实时性,并有效提高数据包捕获速度和质量的用于工业控制系统网络的数据包获取方法。
发明内容:为解决上述技术问题,本发明提供了一种用于工业控制系统网络的数据包零拷贝获取方法,包括以下步骤:
步骤1,加载内核模块,指定需要获取数据包的网络接口;即设定网卡名称;
步骤2,初始化内核模块,其中包括分配内核模块和用户程序的共享内存区域,所述共享的内存区域分配在用户态区;
步骤3,格式化和结构化共享内存区的数据模型,并将共享内存区的数据模型中各部分设置初始状态;
步骤4,创建用于用户态和内核模块之间通信交互的虚拟字符设备,并将字符设备返回给用户态以加载;
步骤5,用户程序通过虚拟字符设备通知内核模块,开始数据包零拷贝获取操作;
步骤6,内核模块经过准备工作后,开始获取网卡链路层数据包,并从网卡直接写到共享内存区域;
步骤7,内核模块把原始的链路层数据包进行TCP流表重组;如果数据包在TCP流表内组织为顺序包,那么作为就绪包处理,设置一定标志位。内核模块通知用户态就绪数据包已经到达,用户态取下数据包后,做应用处理;
步骤8,用户态处理完数据包后,通知内核模块数据包以处理完成,内核模块将处理完数据包从共享内存区中删除,将删除后的空间给后面的数据包获取过程使用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华电天益信息科技有限公司;华北电力大学,未经北京华电天益信息科技有限公司;华北电力大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410466615.3/2.html,转载请声明来源钻瓜专利网。