高速网络论文:被动测量的高速网络管控系统透析

时间:2022-08-18 04:02:37

高速网络论文:被动测量的高速网络管控系统透析

作者:李常春 黄鹂声 王康年 刘红云 单位:重庆通信学院 电子科技大学计算机科学与工程学院

系统各部分功能①流量采集仪:安装在专用PC服务器上,通过端口镜像的方式采集分析网络流量,自动发现IP子网和主机设备,并将主机上网日志保存到数据库,将实时流量监控数据发送到应用服务器;②数据库服务器:接收流量采集仪发来的所需存储的数据信息,并将信息存入数据库中,同时提供给监控终端所需的流量日志、网络拓扑结构和网络行为记录等历史数据信息;③应用服务器:接收流量采集仪发来的流量监控信息,并将信息分发给监控终端,如果采用分布式结构,该服务器还要将各个流量采集仪所测得的各项流量指标汇聚成宏观的指标,并以直观的方式显示;④监控终端:监控终端安装在各个工作站上,访问数据库服务器,对流量日志进行查询,并从应用服务器实时读取监控数据,并依据所得数据绘制成各种图形。

高速网络管理系统中的关键技术

高速流采集技术在大规模流量环境中,基于软件(主要是基于Libpcap抓包工具)的测量方案一直被认为是效率不高的一种方案,基于PC服务器和抓包软件的流量分析系统存在严重的性能问题,比如丢包严重、分析不及时、误报漏报等问题。因此,又采取一些特殊方式来提高效率,最直接的方式,也是国内外研究成果最多的方式,就是采用基于硬件的流量分析设备。但是,由于硬件设备大多基于微系统/嵌入式系统,在缓存、总线、CPU计算能力方面均远远低于普通PC服务器,因此无法完成一些高级分析功能,只能完成一些相对固定的协议分析、流量统计功能。这些限制导致基于硬件的测量系统功能非常有限,而难以扩展和进行二次开发。针对上述问题,提出并开发完成了一种新的流量测量工具TMTK(TrafficMeasurementToolKit)[9],该程序基于Windows操作系统内核,使用PC服务器的纯软件架构来实现Gbps级的高速流量采集和实时处理。其主要实现原理如下图2所示。TMTK能够从如下方面提升流量测量系统的性能:①内部采用了拷贝技术,节省了内存拷贝带来的开销;②数据帧不再被传递到应用程序,系统不再频繁地在核心态和用户态之间切换;③取消timestamp功能可提高抓包效率;④对网络帧的实时分析功能全部在核心态完成,不再受操作系统进程调度的约束,其性能非常稳定。为了验证设计性能,将同一套流量分析代码分别加入不同的编译工程,分别以“TMK+管理器”方式和“Libpcap+应用程序”方式编译,在900Mbps峰值的网络流量环境下同时运行并进行对比观测,同时部署流量生成工具,生成测试流量以验证丢包率。用于试验的硬件平台为GCPU的PC服务器,内存为2G,操作系统为WindowsXPProfessional,开发编译工具为VC6.0。经过连续测试,高速流分类技术对实现对网络的动态管理,即IP子网的自动发现,主机的自动识别,流量统计,均需要以流分类算法为基础。该算法的目的是对网络包进行分类、整理,并进一步分析网络,同时,流量分类问题是被动模式网络测量和分析的基础。在测量系统中,为了实现分析和协议解释功能,往往需要对单个TCP连接进行状态跟踪,这就需要为每个TCP连接建立跟踪数据结构,为了实现快速查找和定位,目前通常采取的技术手段是哈希链表。文章提出了“回溯式二阶段统计”方法[9]。其主要数据结构。所有TCP连接仍以HASH链表的方式建立协议跟踪数据结构,在多规则集合并的基础上,为所有流量分类表建立一个公用的中间阶段统计表T,每个TCP连接都可以通过分类ID,回溯到统计表T中的某个单元,修改其统计数据,这样,对每个数据包,都可以O(1)的时间开销来完成初步的流量指标统计。统计表各单元存放的临时统计结果,又可以被回溯到流量分类表中,根据需要被再次统计,从而成为不同流量分类的汇总统计结果。回溯式二阶段统计方法的空间复杂度仅为O(M*K),其中M为统计指标数量,K为流分类规则集合并后的子域数量;时间复杂度也较低,第一阶段为O(1),第二阶段为O(M*K),适合于被动测量环境。高速流跟踪技术针对网络流量的跟踪问题,提出一种基于动态Hash树的流量跟踪算法DHT(DynamicHashTree)[10]。根据IP流的本地特性,网络流量可视为由“本地网络流量”和“远程网络流量”组成,事实上绝大部分网络流量其实是由少部分“本地网络”上的主机产生的。DHT算法利用以上特性,首先按照双方IP子网的不同,建立静态的“根Hash表”(简称RH)以统计各个子网间的流量;然后依据网络会话的长时稳定性,学习实际环境流量,为一些活动频繁、网络会话数较多的本地子网生成动态的子Hash表(简称CH),形成一个具有明显本地化特征的动态Hash树,避免某个RH表目对应的冲突链表IC过长。DHT算法通过以下4个步骤来完成:①建立RH:首先建立静态的RH,大小为1K,Hash值为双方IP地址中某些位累加的结果(根据实际情况不同,可以调整位的选择窗口,取第14-23位用于大致标识两个IP子网之间的流量)。根Hash函数定义为:F(SA,DA)=((SA>>8)&0x03FF+(DA>>8)&0x03FF)&0x03FF所有网络会话都可以通过一次Hash运算,被定位到RH内的某个表目,并在表目对应的会话链表中保持一个node。每个RH表目中包含三个字段:冲突数量(简称IN)、指向下级Hash表CH的指针(PCH)、指向冲突链表的指针(PIC)、指针描述符;②RH学习:一旦RH被建立后,就可以在实际环境中进行学习,学习目的是为各个表目填写冲突数量字段IN。根据在一段时间内某个表目中新增的网络会话数量(aps),来估算正常状态下各个RH表目所应有的冲突数量。计算公式为:IN=aps×pat其中aps定义为每秒命中某个RH表目的新网络会话,pat为经过统计学习得到的网络会话平均持续时间长度,以秒为单位。经过试验证明,RH学习时间越长,得到的aps值越趋于稳定,而pat值在经过一个稳定期后会缓慢增长。得到的IN值表示该RH表目应该能够维护的平均并发会话数量,当某个RH表目的IN值较大,则说明该表目是“高冲突点”,将会持续产生大量并发网络会话,应该参考IN值为其建立相应的子Hash表CH;反之,则说明该表目利用频度不高,可以直接挂接冲突链表,而不必为其建立CH;③建立CH:当RH通过一段时间的学习,绝大部分表目的IN值趋于稳定的时候,就可以为IN值比较大的表目建立CH。考虑到网络上存在大量的长时会话和半关闭会话,一个RH表目对应的CH,其大小应该大于该表目所记载的IN值。CH采用双方端口与IP地址低位混合的结果作为Hash值,Hash函数定义为:F(SA,DA,SP,DP)=(SA&0x00FF×DA&0X00FF+SP&0x00FF×DP&0x00FF)&(length)其中length值就是CH的大小,由本CH对应RH表目的IN值乘以调整因子而来:length=IN×adjust根据环境的不同,adjust有所变化,经过在Cernet网上的反复试验,adjust取值为4-5比较合适;④建立与维护IC:通过以上3个步骤,由RH和CH构成的Hash树已经能够在较大程度上减少Hash冲突,但Hash冲突仍然存在,解决方式仍然是冲突链表IC。实验表明,DHT算法的空间复杂度和时间复杂度均优于Hash链表算法,由于Hash树的构造符合网络实际环境,因此在网络并发会话数量较高的情况下,可以减少IC链表检索开销。在骨干网络环境下,丢包率很低,其综合效率是传统算法的数倍。

系统部署及应用结果

系统在电信运营管理中心得到正式应用,电信IDC中心的部署按照方式,增加一个流量采集仪,系统通过对网络流量的分布式测量,了解和挖掘网络中的流量流向情况、网络应用情况、用户分布、安全态势、性能状况等,为网络管理提供多层次的基础数据,从而实现网络的精细化运营。

结束语

文章采用被动测量模式,利用分布式纯软件架构,实现了对高速网络的动态管理。但针对不断出现的各类网络应用和私有协议,目前还无法完全进行解析和监管。下一步将研究一种可定制的通用模型,使系统能够智能化识别新的应用和协议模式,减少对开发和管理人员的依赖,实现更加智能化的网管。

上一篇:传感器管控论文:当代传感器的网络管控透析 下一篇:路由管理论文:路由交换的网络管理透析