[发明专利]一种用于工业控制系统网络的数据包零拷贝获取方法有效
申请号: | 201410466615.3 | 申请日: | 2014-09-12 |
公开(公告)号: | CN104333533B | 公开(公告)日: | 2017-09-08 |
发明(设计)人: | 吴克河;安思成;丁雪伟;王晓翔;崔文超;李佳玮 | 申请(专利权)人: | 北京华电天益信息科技有限公司;华北电力大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 南京苏高专利商标事务所(普通合伙)32204 | 代理人: | 王云 |
地址: | 102200 北京市昌平*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种用于工业控制系统网络的数据包零拷贝获取方法,本发明使用经过改进优化的零拷贝技术,通过减少接口数据的拷贝次数以及一些控制结构,提高了数据包获取过程的效率和实时性。通过绕过系统协议栈,直接从网卡物理层到用户应用的“零拷贝”技术可以轻松的实时获取超高速率下的网络数据包;同时本发明的数据包捕获主机位于网络其他主机的侧面并联的方式,既采集了数据,又不影响网络原有数据包流转,实现了数据的高效捕获。 | ||
搜索关键词: | 一种 用于 工业 控制系统 网络 数据包 拷贝 获取 方法 | ||
【主权项】:
一种用于工业控制系统网络的数据包零拷贝获取方法,其特征在于:包括以下步骤:步骤1,加载内核模块,指定需要获取数据包的网络接口;步骤2,初始化内核模块,其中包括分配内核模块和用户程序的共享内存区域,所述共享的内存区域分配在用户态区;步骤3,格式化和结构化共享内存区的数据模型,并将共享内存区的数据模型中各部分设置初始状态;步骤4,创建用于用户态和内核模块之间通信交互的虚拟字符设备,并将虚拟字符设备返回给用户态以加载;步骤5,用户程序通过虚拟字符设备通知内核模块,开始数据包零拷贝获取操作;步骤6,内核模块经过准备工作后,开始获取网卡链路层数据包,并从网卡直接写到共享内存区域;步骤7,内核模块把原始的链路层数据包进行TCP流表重组,这其中用到序列号和应答号信息;如果数据包在TCP流表内组织为顺序包,那么作为就绪包处理,设置一个定标志位;内核模块通知用户态就绪数据包已经到达,用户态取下数据包后,做应用处理;如果数据包在TCP流表内组织不为顺序包,由TCP流表重组功能暂时缓存,等待直到后面数据包到达后可以组成顺序包,再进行就绪处理;步骤8,用户态处理完数据包后,通知内核模块数据包以处理完成,内核模块将处理完数据包从共享内存区中删除,将删除后的空间给后面的数据包获取过程使用。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华电天益信息科技有限公司;华北电力大学,未经北京华电天益信息科技有限公司;华北电力大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410466615.3/,转载请声明来源钻瓜专利网。