APP下载

基于哈希压缩算法的网络流量监控方法研究

2015-11-08李渊许鑫

计算机与网络 2015年14期
关键词:表项压缩算法网络流量

李渊 许鑫

(1中国电子科技集团第五十四研究所,河北石家庄050081)(2军械工程学院,河北石家庄050003)

基于哈希压缩算法的网络流量监控方法研究

李渊1许鑫2

(1中国电子科技集团第五十四研究所,河北石家庄050081)(2军械工程学院,河北石家庄050003)

介绍了网络流量监控的研究背景以及部分技术指标,对网络流量监测技术及网络流量监控系统的架构、形式以及应用现状进行了总结,进而提出一种基于哈希压缩算法的网络流量监控方法,详细介绍了该方法的实现框图和步骤,同时给出了该方法基于FPGA的硬件实现结构。

哈希压缩流量监控FPGA

1 引言

随着互联网技术的迅猛发展,整个社会的信息化程度不断提高,网络环境日趋复杂。伴随着网络应用的极大增长,无论是在网络业务种类方面,还是在流量规模上,都产生了飞速发展。但是在有限的带宽条件下,各种网络应用将对网络资源进行争夺,从而导致网络管理的难度。因此,需要对网络中的各种业务进行网络流量的监控,以便于网络性能的优化和提升。

目前,网络流量监控系统主要用于对网络性能、数据、话音和多媒体等业务的传输质量进行实时监测和分析评估,为网络服务支撑系统、承载网资源策略控制系统和网络运维管理系统提供技术参数。由于网络中存在着大量的数据流,如何准确的定位每一个数据流并进行相应的流量统计,成为实现网络流量监控的关键技术[1]。因此,本文提出一种基于哈希压缩算法的网络流量监控方法,该方法可以基于IP数据的五元组对每一条数据流进行精确的流量统计以及上报,同时又不占用太多FPGA资源,能够对数据流进行快速的匹配查找。

2 网络流量监控系统硬件架构研究

目前,主流的网络流量监控系统硬件架构如图1所示。

该硬件架构采用软、硬件协同处理的思路,发挥软件和硬件各自在数据处理方面的优势[2]。在硬件方面,利用FPGA并行处理特性,对数据进行包分类,包分流等加速预处理操作,以减轻CPU处理数据的负荷,增加数据处理的吞吐量;在软件方面,利用软件在报文DPI、DFI处理方面的优势,采用多线程设计方法,提高系统的协议识别能力[3],在FPGA内部主要由以下功能模块构成。

图1 网络流量监控系统硬件架构

⑴数据预处理模块

该模块实现前端以太网数据的采集、关键字段提取以及数据包转发功能,为后续的数据处理提供支持。

⑵数据包分析模块

该模块主要功能是用来实现数据包的关键字匹配和分类,通过对数据包中关键字的匹配来识别协议报文,并将协议报文送至CPU进行进一步的分析和识别。

⑶流量统计模块

该模块实现以太网数据的流量统计功能;模块内以IP数据流的五元组,即IP地址(32 bits)、源IP地址(32 bits)、目的端口号(16 bits)、源端口号(16 bits)以及协议类型字段(8 bits)为关键字来识别不同的数据流,并对网络中出现的不同流进行流量统计和分析[4]。

由于网络中存在大量的数据流,如何快速识别不同的数据流并对相应的数据流进行流量统计成为流量统计监测实现的关键[5]。因此提出了一种基于哈希压缩算法的网络流量监控方法,该方法以接收到IP报文的五元组作为流标识,并将该流标识通过哈希压缩算法,减少其位长度,从而确定哈希查找表的入口地址,大大节省了哈希表所占用的存储器空间,同时由于采用了哈希桶解决哈希冲突问题,因此降低了冲突解决的复杂度,减少了查表命中时间。

3 网络流量监控方法实现流程

基于哈希压缩算法的网络流量监控方法,具有占用内存空间少和查表命中时间短等特点。该方法的具体实现过程如下:

①将IP报文中的目的IP地址(32 bits)、源IP地址(32 bits)、目的端口号(16 bits)、源端口号(16 bits)以及协议类型字段(8 bits)提取出来作为流标识(104 bits),送入哈希压缩算法模块进行处理;

②哈希压缩算法模块以流标识(104 bits)作为关键字,通过HASH函数得到哈希表入口索引地址(12 bits),进行哈希表匹配查找;哈希压缩算法模块中的HASH函数选用CRC-12算法实现;该CRC-12算法的计算多项式为x12+x11+x3+x+1;其中,x为多项式因子;

③每个哈希表入口地址对应一个桶深为4的哈希桶,在得到哈希表入口地址后,进入其对应的哈希桶中以流标识为匹配对象进行匹配查找,该哈希表的结构如图2所示,如果哈希桶中存在匹配项,进入第④步;如果哈希桶中不存在匹配项,进入第⑤步;

图2 哈希表的结构示意图

④当哈希桶中存在匹配项时,将匹配项中的流量统计表地址提取出来,进入流量统计表进行流量统计更新,该流量统计表的结构如图3所示;

图3 流量统计表的结构示意图

⑤当哈希桶中不存在匹配项且哈希桶中表项未被占满时,按照表项0、1、2、3的优先级顺序在未被占用的表项中新建匹配项,并在新建匹配项中分配新的流量统计表地址,同时在该地址对应的流量统计表中新建流量统计信息;

⑥为了防止哈希桶占用溢出情况的发生,对哈希表的表项建立老化删除机制;每隔2 s对流量统计表进行一次轮询,当流量统计表中有表项中的字节统计数2 s内没有增加时,其对应哈希表中的表项将进行删除操作,同时释放该流标识所占用的流量统计表地址,至此完成基于哈希压缩算法的网络流量统计监控功能。

4 网络流量监控方法硬件实现

在对基于哈希压缩算法的网络流量监控方法进行分析后,使用可综合的Verilog HDL对该方法的硬件实现模型进行了RTL级的描述[6],其总体结构如图4所示。

图4 网络流量监控系统硬件结构示意图

⑴哈希压缩运算模块

该模块以流标识为关键字,采用CRC-12算法为哈希函数,对104 bits位宽的流标识进行哈希运算,运算结果即为哈希表的入口地址。

⑵哈希表查询模块

该模块以哈希运算结果为索引,进行流标识匹配查找。采用了哈希桶结构解决哈希冲突问题,查询匹配命中后,可以得到该数据流对应的流量统计表地址。

⑶流量统计更新模块

该模块根据哈希表查询模块的查询结果,将数据流对应的流量统计信息进行更新,同时定期将所有表项的流量信息上报至CPU;另外,为了节省表项资源,每一表项采用了老化删除机制,将2 s时间间隔内流量无变化的表项进行删除操作。

5 结束语

与现有技术相比,本文提出的基于哈希压缩算法的网络流量监控方法在硬件实现上占用存储器资源少;由于采用哈希压缩算法实现对IP数据流的快速识别和匹配,极大的提高了网络流量统计性能;该方法适合于对低功耗,低成本和稳定性要求高的场合。

[1]张卫东,王伟,韩维恒.网络安全监控技术的研究[J].计算机应用,2009(4):30-32.

[2]郭春宇.基于应用层网络流量监控的研究[D].上海:复旦大学,2008.

[3]黄伟强,林南晖,孟克勋.校园网上sFLOW网络流量监控设计[J].华南师范大学学报,2007(3):57-61.

[4]胥京宇.高性能统计引擎加强网络流量的监控管理[J].世界电子元器件,2006(3):109.

[5]于磊.网络流量的测量与分析的关键技术研究[D].哈尔滨:哈尔滨工业大学,2008.

[6]夏宇闻.Verilog数字系统设计教程[M].北京:北京航天航空出版社,2003.

Network Traffic Performance Monitoring Method Based on Hash Compression Algorithm

LI Yuan1,XU Xin2
(1 The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)(2 Ordnance Engineering College,Shijiazhuang Hebei 050003,China)

This paper introduces the research background and some technical parameters of the network traffic performance monitoring;summarizes the technique,architecture,form and application status of the network traffic performance monitoring system,then puts forward a kind of network traffic performance monitoring method based on Hash compression algorithm and introduces the diagram and implementation steps of the method in detail;its hardware architecture based on FPGA is also provided.

Hash compression;network traffic performance monitoring;FPGA

TP391.4

A

1008-1739(2015)14-52-3

定稿日期:2015-06-26

猜你喜欢

表项压缩算法网络流量
基于多元高斯分布的网络流量异常识别方法
一种改进的TCAM路由表项管理算法及实现
基于神经网络的P2P流量识别方法
基于ARMA模型预测的交换机流表更新算法
基于参数识别的轨道电路监测数据压缩算法研究
AVB网络流量整形帧模型端到端延迟计算
SDN数据中心网络基于流表项转换的流表调度优化
PMU数据预处理及压缩算法
网络流量监控对网络安全治理的重要性
曲线数据压缩方法与实现