一种网络流量监控系统的设计与实现
【摘 要】提出一种能够适用于空管信息网络的网络流量监控系统,该系统基于TCP/IP网络的SNMP管理协议,通过visual2010平台进行C#设计,能够实现对网络数据的获取、流量分析与记录,并以此同时提供记录文件进行数据记录。
【关键词】网络流量监控;C#;SNMP协议;网络数据
0.引言
空管信息网络承担着包括OA系统、共享服务以及相关业务系统在内的重要网络业务,提供信息化的同时,给技术保障维护人员带来一定的保障压力。根据相关工作经验及实际实验数据,网络设备端口流量异常是导致故障发生的重要原因,因此,对于网络流量的监控显得更加重要。随着空管信息化要求的逐日提高,网络规模也日益变大,对于网络流量监控的工作也更加繁重。本文从空管网络流量监控的实际情况出发,提出一种基于C#的网络流量监控,能够实现对网络数据进行获取、流量记录与分析。系统在实际运行中效果良好,可以为相关网络监控设计提供一种可行的借鉴。
1.总体设计
SNMP即网络管理协议(Simple Network Management),在TCP/IP协议族中可以对网络进行管理,这种管理既可以是本地的也可以是远程的。而基于SNMP网络协议的本系统,可以实现对网络数据的获取与实时监控的功能,实现上具有通用、实时、多线程、维护性强及扩展性强的特点。实现在数据链路层和网络层上任意节点的数据获取。加之记录功能的辅助,系统能实现在应用层的数据回放,以满足空管安全事件调查以及系统维护对历史工作状况的评估。
SNMP协议中,一个网管基站可以实现对所有支持SNMP协议的网络设备的监控(随着网络技术的发展,目前绝大部分网络设备是可支持的),包括监视网络状态、修改网络配置、接收网络事件告警等等网络监控功能。在实现上主要包括远程文件访问、流量数据记录、流量监视以及系统的IP定位。其中流量监视是系统实现的核心,将在下一部分进行介绍。另外,系统还提供了日志文件记录实现对系统操作、监控数据以及告警信息的记录。
2.C#的实现
对于系统的C#实现,主要采用的C/S模式,因此在系统的实现上尽量简单、快捷、高效为主。因此自定义相关函数与类,在记录数据和日志方面采用文本文件记录。
2.1网络监控类与网络适配类的设计
为了提高系统的模块化程度及软件的封装性,系统在实现过程中定义了两个主要的类。分别是用于网络监控的NetWorkMonitorClass以及网络适配类NetWorkMatch,网络监控类主要实现系统的网络监控功能,而网络适配类则提供了一个安装在计算机上的网络适配器,该类可用于获取网络中的流量。两者功能及结构如下:
在实际工作中网络监控类NetWorkMonitorClass通过定义一个Timer计时器进行计时器时间执行,以每隔2S刷新适配器,并与此同时刷新上传下载速度。与此同时通过ArryList列表定义了所监控设备的适配器以及当前控制的适配器。在构造函数NetWorkMonitorClass()中则通过,定义两个ArrayList(),其中一个(adapterlist)来保存获取到的计算机的适配器列表,一个(monitoradapters)代表有效的运行的适配器列表。
NetAdapterShow ();
Timer = new System.Timers.Timer(2000);
Timer.Elapsed += new ElapsedEventHandler(timer_ElapsedClick);
其中,NetAdapterShow ()为列举出安装在该计算机上面的适配器,具体实现可以通过C#的foreach()语句进行编写如下:
PerformanceCounterCategoryPCCCategory=new PerformanceCounterCategory(”Network Interface”);
foreach (string InstanceName in PCCCategory.GetInstanceNames()) {
if (InstanceName == “MS TCP Loopback interface”)
continue;
// 创建一个实例Net workAdapter类别,并创建性能计数器它
MyNetWorkMatchClassmyMNWMadapter=new MyNetWorkMatch
Class(InstanceName);myMNWMadapter.m_Performance_Down=new PerformanceCounter(”Network Interface”, “Bytes Received/sec”, InstanceName);
myMNWMadapter.m_Performance_Up=newPerformanceCounter(”Network Interface”, “Bytes Sent/sec”, InstanceName);
m_AdaptersList.Add(myMNWMadapter);
}
当然,在类中也定义了StartWorking以及StopWorking等控制函数对类的工作状态进行控制。另外timer事件也通过构造函数进行加入,如上所述。
网络适配类NetWorkMatch则主要计算网络的各种数据,如计算上传速度、下载速度、控制适配器等函数的封装,减少网络监控类的功能耦合度。
2.2具体实现
在窗体加载函数中,系统首先做自我初始化如下:首先定义上述设计的网络监控类,并实例化monitor = new NetWorkMonitorClass();与此同时通过类函数遍历获取所有计算机适配列表,m_MNWMadapters = monitor.Adapters; ,Adapters()为网络监控类封装好的函数。并将函数返回结果通过Items.AddRange()函数将其显示在listbox控件中,以实现友好的人机交互界面。其次,在timer定时器中对选中监控的适配器进行独立监控。至此,系统实现了独立监控与全面监控的所有设计。
3.结语
本文提出一种基于SNMP协议分析的网络监控系统,该系统应用于空管信息网络。在实现过程,主要采用C#进行开发,通过编写自我的网络监控类和网络适配类进行网络数据的流量监控,可以推广应用于信息网络维护工作较为繁重的行业,提供一种智能网络流量监控手段。
【参考文献】
[1]宫婧,孙知信,陈二运.一种基于流量行为分析的P2P流媒体识别方法[J].计算机技术与发展,2009(09).
[2]王珊,陈松,周明天.网络流量分析系统的设计与实现[J].计算机工程与应用,2009(10).
[3]李万鹏.网络流量控制及流量分析[D].北京邮电大学,2011.
[4]韩耀明.基于DPI技术的VoIP流量检测系统的设计与实现[D].北京邮电大学,2010.
因篇幅问题不能全部显示,请点此查看更多更全内容