APP下载

上网流量监测管理软件设计与实现

2016-03-08凌高源朱琳

软件 2016年1期
关键词:网络流量数据库

凌高源++朱琳

摘要:网络监控是为了收集网络行为与状态信息的操作,是网络管理的主要组成部分,其主要功能是为了收集网络的相关信息,包括了动态信息与静态信息,并具有收集网络事件的统计信息的功能。网络流量监测是一个从网络设备上采集数据、解码数据、分析数据的过程。它从网络中采集一些具体的指标性数据,并反馈给监测者。这些数据对网络的资源分配、容量规划、服务质量分析、错误监测与隔离、安全管理都十分重要。这些数据可以用来作为分析网络性能、了解网络运行动态、诊断可能存在的问题,甚至预测可能出现的问题。本文从计算机网络监测的背景和意义出发,首先对计算机网络流量的相关课题背景进行研究,分析了网络流量监控的研究现状,提出了论文主要内容和研究目标;接着介绍了网络流量监控系统业务的概念与发展,描述了系统实现的开发环境。其次,研究了网络流量监控系统的功能需求与性能需求。

关键词:上网监测系统;网络流量;.NET技术;数据库;流量监测

中图分类号:TP311

文献标识码:A DOI: 10.3969/j.issn.1003-6970.2016.01.012

0 引言

在网络管理的过程中,上网流量监控是整个网络管理的一个重要部分,对于一个网络管理工作者来说,有效的网络流量监控不仅能够让网络管理相关人员能够及时的了解网络的运行过程和运行状态,并且能够对网络出现的问题做出及时的调整和排除。

1 课题研究的意义和需求

研究上网流量监测的意义大致归为以下几点:(1)实时了解网络性能(2)研究网络技术的基础(3)补充网络管理的能力。论文总共分成四章,章节安排如下:第一章:介绍了网络流量监控的选题背景和论文研究的主要目的和意义。第二章:分析了网络流量监控系统的技术与开发环境。第三章:网络流量监控系统需求分析。第四章:进行网络流量监测系统的详细设计。

2 相关概念和技术

2.1 网络流量概述

网络流量就是网络上传输的数据量。网络流量分类基于以下三个层面的:(1) Packet-Ievel的流量分类:主要关注数据包(packet)的特征及其到达过程,如数据包大小分布、数据包到达时间间隔的分布等;(2) Flow-Ievel的流量分类:主要关注流(flow)的特征及其到达过程,可以为一个TCP连接或者一个UDP流。其中,流通常指一个由源IP地址、源端口、目的IP地址、目的端口、应用协议组成的五元组:(3)Stream-Ievel的流量分类:主要关注主机对及它们之间的应用流量,通常指一个由源IP地址、目的IP地址、应用协议组成的三元组,适用于在一个更粗粒度上研究骨干网的长期流量统计特性。在上述三个层面的流量分类中,使用最广泛的是Flow-Ievel的流量分类。本课题就是根据第二类来展开讨论与研究的。

2.2 网络流量监测原理

网络监测是用检测工具对目标网络的运行参数进行收集,在此基础上建立一般模型,并在此网络以后的运行中实时地抽取网络运行参数,以某种算法对参数和模型进行匹配和分析,以确定网络的运行状态。网络检测从关键技术和检测方式来看,可以分为主动检测和被动检测。主动检测就是应用某种网络管理协议,通过被检测的网络设备了解它们的运行情况,当发生异常,网络设备采用陷阱(TRAP)的方式通知检测服务器。这种检测方式的优点在于能够及时发现大型网络故障和异常位置,并具有较高的安全性,不会对用户的数据包进行拆包检查;当然这种检测也有缺点,它的主要缺点在于不能够分析网络故障和异常的原因,在检测过程中产生新的数据流量,占据一定的网络带宽。被动检测只是安装设备上的网络接口使用捕获器对流经该接口的网络流量进行拆包和分析,也就是包拦截和包信息读取。这种检测方式的优点在于能够详细的分析被检测接口的网络流量,发现故障和异常的原因,运行过程中,基本不产生网络流量,对网络性能没有影响;缺点在于单设备的局限性和用户数据隐私问题。

2.3 上网流量监测系统设计技术

2.3.1 WinPcap控件

WinPcap是Windows平台下一个专业的网络数据包捕获开发包,其目的是为Win32程序提供访问网络底层的能力,核心功能是捕获网络数据包,其它功能还还包括数据包过滤,数据包发送,数据包存储等。

2.3.2 DotNet技术与c#语言

.NET是一个微软开发的编程环境,里面可以使用C#、VB等多种编程语言。C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。

2.3.3

SQL Sever 2008数据库工具

SQL Server 2008是Microsoft公司推出的SQLServer数据库管理系统,它具有使用方便、可伸缩性优和与相关软件集成程度高等优点,可以在多种系统平台中运行和使用。

3 上网流量监控系统的设计

3.1 总体结构设计

为了使本系统结构清晰,便于调试,易于实现。整个系统划分为三大功能模块:IP数据包抓取功能模块、系统后台流量统计模块和用户查询界面模块。见下图3.1所示

IP数据包抓取模块:完成网络接口数据的捕获、解析和显示,可以根据用户定义条件组合来进行捕获,如只监视采用TCP或UDP协议的数据包,也可以监视用户希望关注的相关IP地址的数据包。

系统后台流量统计模块:完成统计功能,如根据IP地址统计出某IP地址的TCP协议流量流出流量值和流入流量值、UDP协议流量流出流量值和流入流量值以及其他协议的流出流量值流入值,最后还要有某IP地址的流量总流出值、总流入流量值以及总值。同时,系统按照日、周的颗粒度进行数据存储,自动进行数据整理并更新数据表。 流量使用查询模块:完成总流量、输入流量、输出流量等的显示;可随意查询某日或某一周的流量使用情况并可设定流量限额,对超流量限额的数据或日期进行标记。

3.2 系统数据库设计

3.2.1 E-R图

在数据库表的设计之前,首先应该设计数据库的E-R图,如图3.2到3.3所示。

3.2.2 数据库表设计

计算机的网络流量监控系统,包括了当日实时流量表(CurrentDataPackages)、日流量表(DayTrafficStatistics)、周流量表(WeekTrafficStatistics)。各个表的字段设计如表3.1至表3.3所示。

3.2.3 界面设计

在总体设计中,根据功能需求设了三个模块,分别为:IP数据包抓取模块、系统后台流量统计模块、流量使用查询模块。

在IP数据包抓取模块中,需要有捕捉、停止按钮,而且需要有选择网络适配器和条件过滤的功能(默认过滤条件为tcp and ip and port not 80)0界面设计如图3.6所示。

在系统后台流量统计模块中,因为全程都是在数据库中利用存储过程和调度来完成的,所以没有相关界面的设计。

在流量使用查询模块里,可以按照日或者周来查询某IP的流量使用情况,并可以设定流量额度,对超过流量额度的记录进行标记。界面设计如图3.7所示。

4 上网流量监控系统的详细设计

4.1 IP数据包抓取模块

数据包的抓取程序采用Win32平台下的专业的数据包捕获开发包-WinPcap来进行开发。该系统关键在于数据的获取,而基于WinPcap的数据包捕获就是其中的关键技术。

IP数据包捕获界面包含选择网络适配器以及条件过滤功能。见图4.1。

条件过滤功能的书写规则,需要着重说明一下。规则如下:(1)该条件过滤功能可以过滤协议和端口。(2)不同条件用“and”隔开。(3)若过滤条件为协议,则直接写出协议的英文缩写;若过滤条件为端口,书写格式为“port端口号;(4)点击捕获按钮后,开始抓取IP数据包,并将抓取解析后的数据存放到数据库表中保存。IP数据包抓取程序运行流程如图4.2所示:

4.2 系统后台流量统计模块

此模块功能全部在数据库中实现。主要功能包括:当日实时表的更新和维护、日流量表记录的定时导入、周流量表记录的定时导入。当日实时表的更新和维护功能是指把每日24点前的数据存放在一张表中,供给用户查看流量,零点过后则把前一天的数据清除,即当日实时表里最多只存放一天的数据。日流量表的定时导入功能关键在于如何把当日实时表的数据按照IP地址进行统计,分别计算出某IP地址的TCP协议流量流出流量值和流入值、UDP协议流量流出流量值和流入流量值以及其他协议的流出流量值流入值,最后还要计算出某IP地址的流量总流出值、总流入流量值以及总值,并且将这些数据定时整理后导入日流量表。日流量表的数据导入是利用存储过程来完成的,该模块的程序流程图如图4.3所示。流量表的定时数据导入是利用SQL Sever代理完成的,需要新建一个作业,然后设置每日零点执行一次,执行的命令为数据导入的存储过程,这样数据就会定时自动导入到日流量表当中了。周流量表的定时导入功能关键在于如何将日流量表一周七天的的数据统计后导入到周流量表中,并且将这些数据定时整理后导入周流量表。周流量表的数据导入同样是利用存储过程来完成的,程序流程图如图4.4所示:

4.3 流量使用查询模块

用户可查看当日的实时统计结果、每日的统计结果以及每周的统计结果。

当日的实时统计结果即是查看根据数据库中当日实时流量表统计后的数据,包括某IP地址的TCP协议流出流量值和流入流量值、UDP协议流量流出流量值和流入流量值以及其他协议的流出流量值流入流量值以及某IP地址的流量总流出流量值、总流入流量值以及总值,并根据设定的流量上限对超出限额的IP地址进行红色标注。

每日的统计结果即是查看数据库中的日流量表,根据表的字段,可以查看除当日外的某一天的某IP地址的TCP协议流量流出流量值和流入值、UDP协议流量流出流量值和流入流量值以及其他协议的流出流量值流入流量值以及某IP地址的流量总流出值、总流入流量值以及总值,并根据设定的流量上限对超出限额的IP地址进行红色标注。

每周的统计结果即是查看数据库中的周流量表,根据表的字段,可以查看每周某IP地址的TCP协议流量流出流量值和流入流量值、UDP协议流量流出流量值和流入流量值以及其他协议的流出流量值和流入流量值以及某IP地址的流量总流出流量值、总流入流量值以及总值,并根据设定的流量上限对超出限额的IP地址进行红色标注。

4.4 运行结果

本设计在Win7环境试运行下,编译后经过实际执行,可抓取数据包,写入数据库,并可以将数据统计分析后写入相应的数据库表中,显示界面良好,系统运行正常,基本达到设计目标,运行结果比较良好。演示结果如图4.5所示。

5 总结与展望

论文对于计算机的网络流量监控系统的设计技术的研究,还存在一定的不足地方,例如对于互动信息数据采集的方式分析不足等,这些问题在以后的研究中将会进一步地去解决。总而言之,论文对于计算机的网络流量监控系统建设的研究,已经基本完成了系统设计需求,已达到预期设计目标,由于时间与技术水平的不足,系统中存在一定的缺陷,这些将在以后的进一步研究中去研究和探讨。

猜你喜欢

网络流量数据库
基于多元高斯分布的网络流量异常识别方法
大数据驱动和分析的舰船通信网络流量智能估计
基于神经网络的P2P流量识别方法
AVB网络流量整形帧模型端到端延迟计算
网络流量监控对网络安全治理的重要性
3月CERNET网络流量同比略高