计算机实验室网络流量统计系统设计
2013-07-19于健,唐轩,雷霆,张旭,吕方
于 健,唐 轩,雷 霆,张 旭,吕 方
(天津大学a.计算机科学与技术学院;b.软件学院,天津300072)
0 引 言
网络流量统计系统是大规模机群和局域网常见的一种系统,目的在于为局域网中的客户提供必要的服务和帮助。由于各局域网服务器系统及配置不相同,局域网中的每台终端设备也不尽相同,局域网管理者常根据自身网络情况选择合适的设计方法[1-2]。本文为高校公共计算机机房设计了网络流量统计系统,用于管理学生上网信息,以便管理人员进行有效管理[3-10]。
1 需求分析
对于系统的使用者,首先要能对监控的计算机进行管理,即有选择性地决定对哪些计算机进行监控,必须实现对监控计算机列表的添加、修改、删除等操作。
对于截获的数据包,系统使用者应该可以以多种自选方式对截获的数据包进行查询操作,并决定是否对某些数据包进行分析统计。对于数据包统计后的流量信息,系统使用者也应可以便利地对该信息进行查询操作。同时应实现对数据库的操作,如导入导出等。
经过调查分析得到以下功能需求:①管理员能对监控的机器信息进行管理,至少包括添加、修改和删除;②管理员可以查看和管理截获的数据包信息,并对满足一定条件的数据包信息进行搜索;③管理员可以查看和管理每台机器的流量统计系统,并对满足一定条件的流量记录信息进行搜索;④管理员可以对后台数据库直观地进行管理和操作;⑤管理员可以根据需要更改流量统计系统的设置。
系统用例如图1 所示,参与者为“管理员”,用例包括导入数据库,导出数据库,截获数据包,停止截获,数据包管理,流量管理,机器管理。其导入导出数据库用于已收集数据的数据交换;截获数据包用于监控所选择的计算机;机器管理包括添加机器、修改机器、删除机器、批量添加机器、批量修改机器、批量删除机器等操作。数据包管理包括导入数据库、导出数据库、刷新、流量统计、清空数据库、按IP 查找数据包、按时间查找数据包、按机房查找数据包等操作。流量管理包括导入数据库、导出数据库、刷新、清空数据库、按IP查找流量、按时间查找流量、按机房查找流量等操作。
图1 系统用例图
2 系统设计
2.1 系统结构设计
在系统中,所有机房通过一台UNIX 操作系统的代理服务器上网,代理服务器的一端连接Internet,另一端连接一个用于整个实验楼的主交换机,主交换机连出的各个分交换机分布于各个机房。机房中的机器分为学生机与教师机两大类,每个机房中的学生机使用一个IP 段,而整个局域网所有的教师机使用一个IP段,连接于对应的分交换机,从而形成机房网络局域网,系统结构图如图2 所示。
图2 系统结构图
设计中,系统安装在与学生机级别并列的控制机上,以便获得整个局域网的数据流量信息。
2.2 模块结构设计
该网络流量统计系统主要分成三个部分:网络数据包截获、数据库和界面。
网络数据包截获部分对整个网络的数据信息进行截获,并解析数据包,将其中重要信息保存于数据库。
数据库部分用来存储局域网中的机器信息、系统运行过程中截获的数据包信息及分析这些数据包后得到的统计。存储过程部分则为定义的对数据库的所有操作。
系统中的界面是联系用户和系统的接口。用户能够以直观、便捷的方式发出命令,和系统进行交互,完成预期的操作。
按照结构化的系统设计方法,根据网络流量统计系统的功能将系统划分为网络数据包截获模块、数据库信息管理、界面模块,如图3 所示。
图3 网络流量统计系统模块划分
(1) 系统管理。是对系统全局的操作,可以通过可视化操作的方法,在主界面上完成导入数据库、导出数据库、开始截获数据包、停止截获数据包、数据包管理、流量管理、机器信息管理等。功能图如图4 所示。
图4 系统管理功能
(2) 局域网信息管理。系统可以对局域网中指定的计算机实现数据包管理,因此管理员必须建立并维护机器信息表,通过添加、修改、删除机器信息的方式决定对哪些机器的数据包进行截获统计。功能见图5。
图5 局域网信息管理功能
(3) 数据包管理。当数据包被截获时,数据包信息会被提取到数据包表中,用户可以通过可视化的方式导入、导出数据包表,通过不同的方式查看数据包信息,或手动进行流量统计。功能如图6 所示。
图6 数据包管理功能
(4) 流量管理。和数据包管理类似的,用户可通过可视化的方式导入、导出数据包表,通过不同的方式查看流量信息,刷新或清空数据表。功能如图7 所示。
图7 流量管理功能
2.3 数据库设计
系统中的主要数据表共有三个表:机器信息表、数据包信息表、流量信息表。
(1) 机器信息表。用来存储局域网中各台机器的信息,包括为其分配的IP 地址、所属机房、机器类型。如表1 所示。
表1 机器信息表
(2) 数据包信息表。用来存储本系统在局域网截获的尚未统计到流量信息的数据包中含有的信息。如表2 所示。
表2 数据包信息表
(3) 流量信息表。用来存储局域网每台机器访问过的不同网站,以及访问的流量和最后的访问时间。如表3 所示。
表3 流量信息表
2.4 功能模块设计
本节叙述数据包截获模块及界面模块设计[11-15]。
2.4.1 网络数据包截获模块
(1) 功能。监控整个局域网的数据通信状态,实现包的截取,从中提取具体数据信息,存入指定数据库。
(2) 性能。系统的稳定性。系统代码中,对每一个关键代码块都设有异常捕获部分,可以保证即时获得系统错误,并保证系统的稳定、长期的运行。
(3) 工作效率。每秒截获数据包的数量,数据包的丢包率。
(4) 输入项目。到达该局域网的数据包。
(5) 输出项目。到达本机的包的各种信息,包括:发送数据包的IP 源地址及目的地址、包的大小、包的内容、源端口及目的端口、数据包的类型等。
(6) RawSocket. cs 文件。实现RawSocket 类,它包含了系统实现数据包监视的核心技术。
(7) LANInformation.cs 文件。用来获得局域网中在线的机器列表信息。
2.4.2 界面模块设计
(1) 功能。该模块是联系用户和系统的接口。使用户能够以直观、便捷的方式发出命令,和系统进行交互,完成预期的操作。
(2) 性能。交互界面能否以简单的方式提示用户的操作,简洁的操作能否达到用户预想的目的,界面的安排是否符合一般用户的使用习惯。
(3) 输入项目。对按钮、标签、菜单的点击等操作,文本框输入等。
(4) 输出项目。界面样式改变、可视化的查询结果等。
(5) MoniterWindow. cs 文件。系统的初始界面。该界面是系统的入口,界面在初始化时会检测整个局域网中在线的计算机,获取他们的信息,并将其显示于界面中。
(6) CaptureWindow.cs 文件。将“数据包信息”表中的数据信息以不同的方式显示于界面中,以便用户对其进行一些必要的人工分析。
(7) StatisticWindow.cs 文件。将“流量信息”表中的数据信息以不同的方式显示于界面中,以便用户对其进行一些必要的人工分析。
(8) LANManagement. cs 文件。用于管理员通过界面对“机器信息”表进行操作。
3 结 语
为高校公共机房设计了具有系统管理、机器管理、数据包管理、流量管理功能的网络流量统计系统,实现了对计算机访问网络的信息的管理、通过IP 地址、所属机房等信息对截获的数据包进行查看等操作,完成流量信息的保存和数据分析,使管理员可以方便地进行数据管理和维护,从而提高机房管理能力和效率。
[1] 朱 航,须 德. 基于SIP 的多媒体业务穿越网络地址转换/防火墙研究与设计[J].北京交通大学学报(自然科学版),2005,29(2):26-30.
[2] LI Xin. Stateful Inspection Firewall Session Table RocesSing[J].International,2005(2):615-620.
[3] 董 光,王 哲,张俊鹏.数据包截获与分析技术浅析[J]. 吉林省经济管理干部学院学报,2006,20(2):54-56.
[4] 熊安萍.基于Winsock 技术的数据包解析研究[J].计算机科学,2006,33(12):81-82.
[5] 蒋 波.数据包的截获与网络协议分析[J].重庆三峡学院学报,2006,22(3):26-27.
[6] 秦根建,张秉权. 网络数据包截获机制研究[J]. 兵工自动化,2003,33(3):34-36.
[7] 陈永辉,向科峰,吕 琳.基于Winsock2SPI 的网络封包截获[J].兵工自动化,2006,2(3):55-56.
[8] 马武瑜.局域网络技术的发展与展望[J].广西民族学院学报(自然科学版),1998,4(3):43-45.
[9] Anthony Jones.Windows 网络编程技术[M].北京:机械工业出版社,2000:267-270.
[10] W Richard Stevens.TCP/IP 详解(卷2 实现)[M]. 北京:机械工业出版社,2000.249-255.
[11] AShao1981. 初探数据包分析程序设计[EB/OL]. http://blog.csdn. net/ashao1981/archive/2004/04/12/22352. aspx,2004-04-12.
[12] Anthony Jones,Jim Ohlund.Windows 网络编程技术[M].北京:机械工业出版社,2001:113-119.
[13] Douglas EComer. Computer Networks and Internets with Internet Applications[M].北京:电子工业出版社,2004:189-193.
[14] 侯俊杰.深入浅出MFC[M].2 版. 武汉:华中科技大学出版社,2001:134-139.
[15] 管章全,唐晓卫.Visual C+ + 6.0 编程实例详解[M]. 北京:电子工业出版社,1999:201-210.