[发明专利]防火墙芯片数据包缓存管理方法有效
申请号: | 200610156168.7 | 申请日: | 2006-12-30 |
公开(公告)号: | CN101212451A | 公开(公告)日: | 2008-07-02 |
发明(设计)人: | 王万亭;曾涛 | 申请(专利权)人: | 北京天融信网络安全技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/56 |
代理公司: | 信息产业部电子专利中心 | 代理人: | 周奇 |
地址: | 100085北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 防火墙 芯片 数据包 缓存 管理 方法 | ||
技术领域
本发明涉及网络安全和组网技术,尤其涉及一种防火墙芯片数据包缓存管理方法。
背景技术
随着网络技术的不断发展,人们对网络的响应速度、数据包吞吐量和网络安全的要求越来越高,需要延迟小、流量大的安全防火墙。这就需要芯片(FPGA/ASIC)来实现硬件加速提高防火墙的性能,芯片主要实现收发数据包的解析、过滤和转发。这就需要对出入芯片的数据包缓存进行缓存管理。
目前,防火墙加速芯片实现数据包缓存管理的方法是:每个内部处理模块都分给一块内存,用来存储待处理的数据包,处理模块按照一定的顺序取出数据包,然后对这个数据包进行分析和处理,然后把处理结果转移到下一个处理模块的对应的内存中以便下一个模块进行处理。这种数据包缓存管理的方法比较简单,但数据包在内存中搬移多次,效率低,占用内存很多,每个数据包在芯片内处理时间较长。
发明内容
因此本发明所要解决的技术问题是提供一种通过建立处理和回收数据包标签实现防火墙芯片数据包缓存管理的方法,该方法能够避免数据包在芯片内部频繁搬移,提高数据包处理效率。
本发明具体是这样实现的:
1、一种防火墙芯片数据包缓存管理方法,包括如下步骤:
1-1、在芯片内部分配一块内存,这块内存又分成若干同样大小的块,每块可以存放一个数据包,叫做数据包块;
1-2、建立一个空闲内存标签队列,每个标签对应存放一个数据包块的起始地址;
1-3、如果有数据包进入,则从空闲内存标签队列中取出一个标签,按照该标签指示的数据包块起始地址,将数据包放入到数据包块中;
1-4、解析数据包,建立数据包标签,该标签中包含数据包块起始地址、数据包长度、数据包特征和处理结果;
1-5、确定处理该数据包的处理模块,将该数据包标签写入到该模块的数据包标签队列中;
1-6、模块从本模块的数据包标签队列中取出数据包标签,分析数据包标签,根据数据包标签中的内容作相应处理,实现一般防火墙具有的功能,处理完后,将处理结果写到数据包标签的存放处理结果的区域中;
1-7、确定处理该数据包的下一处理模块,将包含处理结果的数据包标签写入到下一个模块的数据包标签队列中;
1-8、下一处理模块从步骤1-6开始向下执行,直到每个模块对数据包的处理完成。
2、如1所述的数据包缓存管理方法,所述步骤1-3中,对于从芯片外部进入的数据包,首先检查数据包内存是否已满,如果数据包内存已满,则等待出现空闲数据包块,直到满足分配数据包块的条件,才执行后面步骤。
3、如1所述的数据包缓存管理方法,所述步骤1-6中,根据数据包标签中的内容,如果需要修改数据包,则根据数据包标签中的起始地址从数据包块中找到数据包并修改数据包,然后再作相应处理,实现一般防火墙具有的功能。
4、如1所述的数据包缓存管理方法,所述步骤1-6中,模块作相应处理实现一般防火墙具有的功能后,根据数据包标签的标志,如果该数据包需要丢弃,则释放该数据包占用的内存。
5、如4所述的数据包缓存管理方法,根据数据包标签,得到数据包块起始地址,然后写一个空闲内存标签到相应的空闲内存标签队列中,通过释放空闲内存标签来释放该数据包占用的内存。
6、如1所述的数据包缓存管理方法,所述步骤1-6中,模块作相应处理实现一般防火墙具有的功能后,根据数据包标签的标志,如果该数据包需要转发,则转发该数据包,待转发完成后释放该数据包占用的内存。
7、如6所述的数据包缓存管理方法,首先根据数据包标签中的处理结果修改数据包包头包尾,然后转发该数据包。
8、如6所述的数据包缓存管理方法,根据数据包标签,得到数据包块起始地址,然后写一个空闲内存标签到相应的空闲内存标签队列中,通过释放空闲内存标签来释放该数据包占用的内存。
9、如1至8中任意一项所述的数据包缓存管理方法,所述步骤1-5或1-7中,确定处理该数据包的处理模块后,如果有两个以上的模块同时写入数据包标签,则采用仲裁机制使其中任意一个模块写入操作有效,将该数据包标签写入到该模块的数据包标签队列中,其他模块处于等待状态,等待正在写入的模块完成写入。
10、如5或8所述的数据包缓存管理方法,写入或读出一个空闲内存标签到相应的空闲内存标签队列中时,如果有两个以上的模块同时写入或读出空闲内存标签队列,则采用仲裁机制使其中任意一个模块写入或读出操作有效,其他模块处于等待状态,等待正在写入或读出的模块完成写入或读出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京天融信网络安全技术有限公司,未经北京天融信网络安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610156168.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种实现一卡多号短消息业务的装置及方法
- 下一篇:室内基站系统