[发明专利]一种基于FPGA实现的高速高效网络数据包捕获方法在审
申请号: | 201210058545.9 | 申请日: | 2012-03-06 |
公开(公告)号: | CN102594624A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 刘大红 | 申请(专利权)人: | 上海纳轩电子科技有限公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 200233 上海市杨*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 实现 高速 高效 网络 数据包 捕获 方法 | ||
【技术领域】
本发明涉及局域网、广域网等网络测试技术领域,特指一种基于FPGA实现的根据用户设定的条件从数据网络系统中捕获数据包的方法。
【背景技术】
今天,互联网已经成为我们日常生活中必不可少的一部分,Email、电子商务、搜索引擎、视频分享、SNS社区等的大量使用和普及让我们对互联网更加依赖,但是在享用互联网给我们带来的便捷时,网络运营商和用户都会关心几个问题:这个网络安全吗?它的性能怎样?万一出现故障怎么办?服务质量如何保证?而这一系列问题的解决都依赖于网络测试,依赖于从网络系统中提取与之相关的数据包进行分析。但是宽带网络系统发展迅猛,万兆已经普及,10万兆(100G)已开始应用,40万兆(400G)正在研发,其发展甚至超越了“摩尔定律”预测的速度。而传统的基于MCU或者PC的设置指定字节和包模板来捕获数据包进行分析的方法无论从速度还是复杂性都已经不能满足需求:
从速度上看,当网络速度达到10G后,目前主流的PC或者MCU已经不具有如此高速的处理能力,40G和100G就更不用提及。
从复杂性上看,三网合一和越来越多的应用使得网络系统越来越复杂,传统的抓包方法由于MCU和PC处理能力的限制不可能支持多个设置条件下的线速数据包处理。我们大家熟知的sniffer抓包软件就只能支持有限的几个简单的过虑条件,而这对于现代复杂的网络系统来说,无论是网络安全分析还是故障定位,都是远远不够的。
所以,业界迫切需要一种能支持复杂设定条件下在10G及更高速度的高速网络系统中线速网络数据包捕获方法。
【发明内容】
针对现有技术的不足,本发明提供了一种基于大规模可编程逻辑器件(FPGA)来的硬件实现方法。FPGA的特点是使用非常灵活,可以通过VerilogHDL语言像软件一样对FPGA编程来实现用户需要的功能,同时又具有硬件电路的高速,能多路并行处理的优点,很好的克服了CPU由于线程的限制而带来的处理能力的不足。利用该方法可以支持复杂设定条件下在10G及以上的高速网络系统中以线速将网络数据包捕获出来。
为了达到上述目的,本发明采用了如下技术方案:
本发明采用基于FPGA的硬件编程实现方式,也可以改为由ASIC来实现。
本发明包括4个模块组件:
FPGA内建一个规则制定模块,规则的制定包括比较规则和应用规则两个部分:
比较规则的宽度为N bit(N取值范围为2到64),每个比较规则包括标志,应用,偏移,掩码,最大值和最小值六个参数,比较规则可以有M个(M的取值范围为1到64),每个比较规则的宽度和其他六个参数都可以不同。
每个比较规则六个参数的含义分别是:标志用于指示该比较规则是否使用,1表示使用,0表示不使用;应用表示该比较规则是应用于解析出来的数据包的哪一个部分;偏移表示规则应用的起始位置;掩码用于表示是否屏蔽相应的规则位,1表示不屏蔽,0表示屏蔽,不参与比较;最大值表示符合条件的最大值;最小值表示符合条件的最小值。
每个应用规则包括标志,应用,比较规则指示三个参数组成,应用规则可以有X个(X取值范围为1到32),每个应用规则的参数均可不同。
每个应用规则的三个参数的含义分别是:标志用于指示该规则是否使用;应用表示使用该规则的用途,如抓包,统计,直方图统计等;比较规则指示的位宽和比较规则的个数M相同,每一个bit位和一个规则相对应,用来指示该规则是否参与应用规则的比较。
FPGA内建一个网络数据包解析,用于对接收到的以太网数据包进行解析,将每个网络数据包的前导码、MAC源地址、MAC目的地址、IP源地址、IP目的地址、类型、长度、协议以及IP协议相关的各个参数用寄存器输出。
FPGA内建一个规则比较模块,用于对来自网络数据包解析出来的数据包的各个参数运用比较规则进行比较,然后将比较结果输出。
FPGA内建一个规则应用模块,用于对来自规则比较模块输出的比较结果和规则应用的各个参数进行匹配,输出数据包捕获的指示。
本发明的一种基于FPGA实现的高速高效网络数据包捕获方法,因为采用了灵活的个数不限的比较规则和应用规则与从网络数据解析出来的各个参数进行匹配比较,所以能最大限度的满足各种复杂的应用,由于采用了FPGA或者ASIC来实现,所以能多个比较规则和应用规则同时使用,满足从高速数据网络系统中线速捕获各种用户感兴趣的包的应用需求。
【附图说明】
图1是本发明实施例中基于FPGA实现的高速高效网络数据包捕获方法硬件系统结构示意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海纳轩电子科技有限公司,未经上海纳轩电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210058545.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:工作在UHF全频段的平面单极内置天线
- 下一篇:船用螺旋式转弯装置