[发明专利]一种基于FPGA实现的高效网络数据包存储方法在审
申请号: | 201210058567.5 | 申请日: | 2012-03-06 |
公开(公告)号: | CN102646084A | 公开(公告)日: | 2012-08-22 |
发明(设计)人: | 刘大红 | 申请(专利权)人: | 上海纳轩电子科技有限公司 |
主分类号: | G06F13/16 | 分类号: | G06F13/16 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 200233 上海市杨*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 实现 高效 网络 数据包 存储 方法 | ||
【技术领域】
本发明涉及数据网络通讯技术领域,特指一种基于FPGA实现的将根据用户需要捕获的各种网络数据包(数据包的种类大于1)存储到外部存储器的实现方法。
【背景技术】
今天,互联网已经成为我们日常生活中必不可少的一部分,Email、电子商务、搜索引擎、视频分享、SNS社区等的大量使用和普及让我们对互联网更加依赖,但是在享用互联网给我们带来的便捷时,网络运营商和用户都会关心几个问题:这个网络安全吗?它的性能怎样?万一出现故障怎么办?服务质量如何保证?这一系列问题的解决都依赖于网络测试,依赖于从网络系统中提取与之相关的数据包进行分析。而在对这些数据包进行分析之前,由于数据量较大以及PC处理能力的限制,都需要将这些数据缓存到外部存储器中。
传统的方法是将捕获后的数据直接存储到外部存储器中,这样做的好处就是简单,因而,这种方法在网络系统简单,网络速度较低的时候是可行的。但是,三网合一和越来越多的应用使得网络系统越来越复杂,也因此很容易出现一个网络数据包符合用户设定的多个条件的情况。我们假定用户设定了A、B两个条件,数据需要存储到外部存储器中,那么一个数据包过来后就有四中可能:符合条件A、符合条件B、条件A和B都符合、条件A和B都不符合。这样除了第四种不需要存储外,另外三种都需要存储,这样就需要3倍的存储带宽去存储捕获的数据;如果用户设定ABC三个条件后,就需要7倍的存储带宽去存储捕获的数据;四个条件对应的是15倍的存储带宽。n个条件对应的实2n-1倍的存储带宽需求。在网络速度已经高达100Gbps,400Gbps的网络系统也正在研发之中的今天,在网速为100G的时候,15倍存储带宽就意味着1500Gbps,显然,使用这种方法存储用户捕获的数据包正显得越发困难,即使最终实现了,也会因为成本高昂而失去实用价值。
所以,业界迫切需要一种更高效、更经济的将用户根据需要捕获的各种数据包存储到外部存储器中的方法。
【发明内容】
针对现有技术的不足,本发明提供了一种基于大规模可编程逻辑器件(FPGA)的硬件实现方法。FPGA的特点是使用非常灵活,可以通过VerilogHDL语言像软件一样对FPGA编程来实现用户需要的功能,同时又具有硬件电路的高速的优点。利用该方法可以以不超过网络速度的存储带宽将用户捕获的数据包存储到外部存储器中。
为了达到上述目的,本发明采用了如下技术方案:
本发明采用基于FPGA的硬件实现方式,也可以改为由ASIC来实现。
本发明采用的和FPGA连接的外部存储器包括但不限于DDR RAM,QDR RAM和RLDRAM。
本发明包括3个模块组件:
FPGA内建一个数据读写控制器模块,当收到写数据请求后,根据写请求信息分别将包信息和数据包送到存储信息缓存区的指定区域;当收到读数据请求后,根据读请求信息将读请求送到存储信息缓存区模块的指定区域。
FPGA内建一个数据信息缓存区,其特征在于内有N个子模块,N的取值范围为2到63,每个子模块和外部存储器的一个分区相对应,用于控制外部存储器的分区、每个分区的数据的缓存、计算并存储每个分区存储的有效数据包个数,每个包的长度,每个包在外部存储的起始地址信息。
FPGA内建一个外部存储器控制器模块,分为读写两个部分:进行写操作时,根据写入口地址,写数据长度将数据存入指定地址的外部存储器中;进行读操作时,根据读入口地址,读数据长度将数据从指定地址的外部存储器将数据读出,并加上包头包尾信号输出。
本发明因为采用了由内部控制逻辑根据用户设定的捕获条件多少对外部存储器进行分区并实现数据的存储方法,所以其对存储带宽需求最大也不会超过网络带宽,这样就大大的节省了外部存储带宽需求,从而极大的降低了实现难度,也节约了实现成本;由于采用了通过Verilog HDL语言通过FPGA编程或者ASIC来实现,所以能利用当今最先进的半导体技术将高达100G或者以上的宽带网络上捕获的各种网络数据包进行数据存储操作。
【附图说明】
图1是本发明实施例中一种基于FPGA实现的高效网络数据包存储方法逻辑处理系统框图。
图2是本发明实施例中一种基于FPGA实现的高效网络数据包存储写数据控制示意图。
图3是本发明实施例中一种基于FPGA实现的高效网络数据包存储写数据控制信息更新示意图。
图4是本发明实施例中一种基于FPGA实现的高效网络数据包存储方法数据读示意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海纳轩电子科技有限公司,未经上海纳轩电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210058567.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:涡轮机故障分析
- 下一篇:发动机控制的方法和系统