[发明专利]一种基于零拷贝技术的高速网络数据包捕获方法有效
申请号: | 200810097512.9 | 申请日: | 2008-05-09 |
公开(公告)号: | CN101267361A | 公开(公告)日: | 2008-09-17 |
发明(设计)人: | 范兵;薛鹏 | 申请(专利权)人: | 武汉飞思科技有限公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L12/56 |
代理公司: | 北京捷诚信通专利事务所 | 代理人: | 魏殿绅;庞炳良 |
地址: | 430000湖北省武汉市东湖开发区*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 拷贝 技术 高速 网络 数据包 捕获 方法 | ||
技术领域
本发明涉及网络流量监测分析领域,具体地说是一种基于零拷贝技术的高速网络数据包捕获方法。
背景技术
流量指标是网络运行和维护过程中重要的指标之一,它是网络规划设计、协议设计、业务部署、流量工程实施、攻击检测、故障诊断等的基础。通过网络流量的监测和分析可以获得网络性能信息,网络服务状况以及网络中存在的攻击或者弱点。流量监测和分析技术被广泛应用到防火墙、入侵检测和协议解码以及流量监测系统中,数据包捕获是流量监测和分析的前提和第一步骤,它决定了基于流量监测和分析的系统的性能,通常数据包捕获是由数据包捕获程序通过网卡捕获数据包。目前绝大部分的流量分析监测系统都是借助libpcap等函数库完成数据包的捕获,在低速网络的情况下可满足需求。
然而,随着网络技术的不断发展,网路链路的速率迅猛增长,已经开始从Mbit/s迈向Gbit/s,在不久的将来还可能会发展至40Gbit/s甚至是Tbit/s。千兆网卡和千兆交换机已经开始逐步进入主流市场,几乎每个新的局域网用户都会采用此项技术,一个普通家庭用户所能够获得的带宽比几年前一个公司获得的带宽还要大。网络应用的普及与网络技术的发展,导致网络流量也日益庞大。面对高速网络,传统的流量监测和分析技术所依赖的数据包捕获方法遇到了诸多瓶颈问题,如PCI总线吞吐量、存储容量、内存访问速度、磁盘阵列访问的速率、内存拷贝的开销、系统调用的开销、中断开销以及操作系统的任务调度机制等都对高速网络数据包捕获产生一定的影响。因此,使得可以满足低速网络的传统的数据包捕获方法无法应用到高速网络中。
图1给出了现有的低速网络的分布式网络数据包捕获方法流程示意图,如图所示,在低速网络中,硬件层的网卡通过DMA方式将收到的数据包传递给内核层的网卡驱动程序,网卡驱动程序再转发到内核层的协议栈,数据包在协议栈中排队等待处理,用户层的数据包捕获程序通过拷贝方式获取协议栈内的数据包。所说的拷贝方式大多通过操作系统提供的socket套接字接口完成。上述的数据包捕获方法不但要为数据包动态的分配和释放缓存,而且需要将数据包从内核层拷贝到用户层,这些操作均需要耗费大量的系统资源,因此无法用于高速网络数据包的捕获。
目前,为了克服PCI总线吞吐量、存储容量、内存访问速度、磁盘阵列访问的速率、内存拷贝的开销、系统调用的开销、中断开销以及操作系统的任务调度机制等都对高速网络数据包捕获的限制和影响,一些研究人员和硬件产商已经开始了一番探索。有些采用网络处理器替代通用硬件平台来实现数据包捕获并完成部分的流量监测和分析功能,但是采用网络处理器的方法价格非常昂贵,且开发和升级的周期较长,大量部署不太现实;有些试图通过专门硬件来实现数据包捕获来实现数据包捕获进而完成被动流量监测和分析,然而基于专门硬件的实现方式同样价格昂贵,且系统缺乏足够的灵活性,很难跟上当今瞬息万变的网络发展状况和流量监测分析的需求。
流量监测和分析,尤其是高速网络的流量监测分析逐渐成为一个热门的领域。高速网络数据包捕获的方法在流量监测和分析技术中具有重要的应用价值。
发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种基于零拷贝技术的高速网络数据包捕获方法,以通用硬件平台为基础,基于零拷贝技术实现高速网络数据包捕获,具有系统开销小,捕获效率高,改造成本低廉的优点。
为达到以上目的,本发明采取的技术方案是:
一种基于零拷贝技术的高速网络数据包捕获方法,包括以下步骤:1)网卡初始化,2)数据包捕获程序初始化,3)开始数据包捕获,其特征在于:所说的开始数据包捕获的步骤为:a.硬件层的网卡通过DMA方式将收到的数据包传递给内核层的网卡驱动程序,b.用户层的数据包捕获程序通过映射方式获取网卡驱动程序收到的数据包。
在上述技术方案的基础上,所说的网卡初始化的具体步骤为:
a.加载网卡驱动并为每块网卡分配连续的内存块,
b.创建至少包括以下信息的DEVICE_EXTENSION结构体:为每块网卡分配的内存块的地址信息,网卡打开方式标志,指向网卡结构体net_device和adapt结构体的指针,
c.在每块网卡的adapt结构体中增加指向DEVICE_EXTENSION结构体的指针,
d.创建一个虚拟字符设备,初始化其file_operations结构,初始化与该虚拟字符设备对应的打开(open)方法、关闭(close)方法、控制(ioctl)方法、映射(mmap)方法。
在上述技术方案的基础上,所说的数据包捕获程序初始化的步骤为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉飞思科技有限公司,未经武汉飞思科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810097512.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:超声波探头安装盒
- 下一篇:双光束在线实时测量光学薄膜应力的装置及其测量方法