[发明专利]一种访问存储海量并发TCP流的流记录的方法或系统有效
申请号: | 201010140863.0 | 申请日: | 2010-04-02 |
公开(公告)号: | CN101841438A | 公开(公告)日: | 2010-09-22 |
发明(设计)人: | 阮元;杨卫兵;刘兴奎;窦晓光;赵晓芳;陈明宇 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L12/56;H04L29/06;H04L12/24 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 访问 存储 海量 并发 tcp 记录 方法 系统 | ||
技术领域
本发明涉及信息安全技术领域,特别是涉及一种访问存储海量并发TCP流的流记录的方法和系统。
背景技术
随着电脑的广泛应用和网络的不断普及,来自网路内部和外部的危险和犯罪也日益增多。而当前流行的网络攻击方式和种类逐步向网络上层延伸,攻击行为常常掩藏在7层应用的数据流中,大量的攻击数据流都是封装在标准的应用协议数据流中,通过通用的端口,进行伪装,欺骗无法TCP流重组和协议分析的网络安全产品。所以不管是基于旁路监听的入侵检测系统(IDS)、能够实现数据转发的入侵防护系统(IPS)、还是将多种网络安全功能融合在一起的统一威胁管理技术,为了提升检测的性能和准确性,都已将TCP流重组列入产品必需具备的功能。
常见的入侵检测系统如libnids和snort,在实现TCP流重组的时候都采用了相似的方式,具体过程如下:将报文的四元组信息作为输入,经过一个hash函数计算出一个值,用这个值作为访问全局hash表的索引获得一个hash表项。然后遍历该hash表项所指的线性链表,比较链表上各TCP流记录存储的四元组和待处理报文的四元组,直到发生匹配,就找到了待处理报文相关的TCP流记录,然后就可以依照TCP协议所规定的内容进行这条TCP流的重组处理。
骨干网络是众多局域网的“聚合点”,骨干网络上的安全防护是非常重要的一个环节,是能给所有的网络分支和用户都带来好处,综合防护、提升全社会网络安全环境的重要手段。采用上面描述的传统TCP流重组方法的入侵检测防护系统,对于普通场景下的应用,如办公楼,住宅小区的网络出入口,是可以胜任的。但当面对骨干网络上面的高速网络数据,在海量并发TCP流时,基于链表保存TCP流记录就会遇到困难。这是由于报文到来速度过快,系统来不及访问TCP流记录造成的。一个TCP流记录一般需要64字节或更多,当系统需要维护百万规模的海量并发TCP流时所需存储空间很大,TCP流记录只能存储在动态随机存储器(Dynamic Random Access Memory,DRAM)中。而系统维护的并发TCP流越多,被放到同一条线性链表上的TCP流记录就越多。所以在获取待处理报文相关的TCP流记录时可能需要读取多个TCP流记录。而且系统建立和关闭一条TCP流时需要新建和删除一个TCP流记录,为了维护TCP流记录所处的线性链表,还需要访问链表上临近的TCP流记录,修改对应指针。也就是说每处理一个报文都很可能要访问多个不同的TCP流记录。而基于链表保存TCP流记录,每个TCP流记录在DRAM中的位置是随机分布的,基于DRAM的实现原理,对于访问非连续的地址无法通过突发(burst)提高访问带宽,所以每次访问一个TCP流记录花费的时间都相当于访问一次DRAM所需的延迟,一般为几十到一百纳秒。
通过统计骨干网上的真实流量获知骨干网上的平均报文长度为300字节左右,这意味着系统如果想要处理10Gpbs的网络流量,就必须平均每300纳秒内处理完一个报文。可以发现即使不计算TCP流重组具体操作的开销,光是获取每个报文的TCP流记录对于基于链表保存TCP流记录的系统都是很困难的任务,更不用去考虑实现骨干网流量的入侵检测和防护。
发明内容
本发明的目的在于提供一种访问存储海量并发TCP流的流记录的方法和系统。其能够实现海量并发TCP流的流记录的存储和访问,为TCP流重组提供帮助。
为实现本发明的目的而提供的一种访问存储海量并发TCP流的流记录的方法,所述方法,包括下列步骤:
步骤100.初始化模块构建用于存储TCP流记录的二维TCP流记录表存储于DRAM中,DRAM中的每一个存储阵列存储TCP流记录表的若干行TCP流记录,根据所述TCP流记录表建立流记录索引表存储于SRAM中,构建用于保存最近访问的发生数据传输的TCP流的TCP流记录缓存存储于SRAM中;
步骤200.报文接收模块根据接收到的报文的四元组进行哈希运算,根据运算结果选择一个与所述DRAM中的存储阵列对应的报文先入先出队列存储所述报文,并相应更新所述流记录索引表;
步骤300.报文提取模块轮询访问所有所述报文先入先出队列,从中读取待处理报文;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010140863.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:带宽调整方法和宽带接入服务器
- 下一篇:一种命令行的修正方法及装置