- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号CN101841470A
(43)申请公布日2010.09.22
(21)申请号CN201010134367.4
(22)申请日2010.03.29
(71)申请人东南大学
地址215123江苏省苏州市工业园区独墅湖高教区林泉街399号
(72)发明人裴文江刘荣伟郑麒麟张春王开孙庆庆
(74)专利代理机构南京经纬专利商标代理有限公司
代理人许方
(51)Int.CI
H04L12/56
H04L29/06
G06F12/08
权利要求说明书说明书幅图
(54)发明名称
一种基于Linux的底层数据包的高
速捕获方法
(57)摘要
本发明提供一种基于Linux的底层
数据包的高速捕获方法。本发明通过设定
虚拟捕获设备模块(VUKM模块)修改网卡
驱动程序,使到达网卡的数据包可以绕过
内核协议栈直接转交给后续模块处理,以
实现用户空间和内核空间的内存共享;并
由内核空间高速传递给上层协议分析处理
接口模块,为上层应用程序和网卡无冲突
的访问VUKM模块提供一种机制,对已捕
获的数据包作进一步处理,本发明可以在
千兆网络环境下,高速获取经过网卡的原
始数据包,可以克服传统的数据包捕获技
术的弊端,提高获取效率。
法律状态
法律状态公告日法律状态信息法律状态
权利要求说明书
1.一种基于Linux的底层数据包的高速捕获方法,其特征在于:包括准备步骤和工
作步骤:
(一)、准备步骤:
(I)、修改网卡驱动程序中的中断处理函数提交数据包部分的响应代码,使修改过的
网卡驱动程序能够满足到达网卡的网络数据包可以绕过内核协议栈直接转交给后续
构建的虚拟捕获设备模块,供上层协议分析子系统的用户空间进程获取;
(II)、构建虚拟捕获设备模块,向内核中注册虚拟捕获设备模块实现内存映射,使
内核和上层协议分析子系统的用户空间的应用程序共享内存;
所述虚拟捕获设备模块包括接收环、发送环、空闲环和数据缓冲区;其中:
数据缓冲区为在物理上和逻辑上均连续的链表结构,用于存放到达网卡的数据包,
以“零拷贝”方式向上层协议分析子系统的用户空间提供数据;
接收环用于上层协议分析子系统的用户空间获取已经填充的数据缓冲区结构;
空闲环用于将上层协议分析子系统的用户空间处理完毕的数据缓冲区结构归还给数
据缓冲区;
发送环用于将上层协议分析子系统的用户空间需要发送的数据填入数据缓冲区结构,
然后从网卡发送出去;
(III)、设置协议分析接口,用于提供上层协议分析子系统与虚拟捕获设备模块的接
口,使上层协议分析子系统对从虚拟捕获设备模块获取的底层数据包进行解析、识
别和分类等后续处理;
(二)、工作步骤:
A、初始化虚拟捕获设备模块,并向内核注册该模块,计算接收环、空闲环、发送
环和缓冲区数据缓冲区的大小,接收环、发送环、空闲环及数据缓冲区的大小均为
linux中页面大小的整数倍;
B、在内核空间,为接收环、发送环、空闲环和数据缓冲区分配内存空间,调用内
核函数将分配的所有内存页锁住,使这些内存页在系统运行的过程中不被换出内存;
C、将虚拟捕获设备模块的这些内存空间全部映射到用户空间中去;
D、在虚拟捕获设备模块中将一个数据缓冲区结构挂入接收环中;
E、当外部网络的数据包到达网卡,网卡以中断或者NAPI方式处理到达的数据包,
然后转交给虚拟捕获设备模块中的数据缓冲区,同时向协议分析接口发送信号,告
知有数据包到达;
F、虚拟捕获设备模块获取数据包后,将该数据包挂入接收环中的数据缓冲区结构;
G、协议分析接口将数据缓冲区的数据包封装为sk_数据缓冲区结构,并将sk_数
据缓冲区转交给上层协议分析子系统进行分析处理;
H、上层协议
文档评论(0)