基于Windows平台的网络流量统计及控制系统的设计与实现.pdf

上传人:asd****56 文档编号:70471018 上传时间:2023-01-19 格式:PDF 页数:6 大小:300.87KB
返回 下载 相关 举报
基于Windows平台的网络流量统计及控制系统的设计与实现.pdf_第1页
第1页 / 共6页
基于Windows平台的网络流量统计及控制系统的设计与实现.pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《基于Windows平台的网络流量统计及控制系统的设计与实现.pdf》由会员分享,可在线阅读,更多相关《基于Windows平台的网络流量统计及控制系统的设计与实现.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、http:/-1-基于基于 Windows 平台的网络流量统计及控制系统的设计与实现平台的网络流量统计及控制系统的设计与实现 夏义三 北京邮电大学信息工程学院,北京(100876)E-mail: 摘摘 要:要:介绍了一种 Windows 平台下的针对个人微机的网络流量统计及控制系统的总体设计及各个功能模块的实现,给出了系统的架构、软硬件环境以及部分程序代码。关键词:关键词:流量统计,流量控制,传输服务提供者 中图分类号:中图分类号:TP393 1.引言引言 在网络管理过程中,网络流量监控是一个重要部分。有效的网络流量监控不仅能够让网络管理人员及时了解网络的运行状态,并且能够对网络出现的问题做出

2、及时调整和排除。目前,绝大多数的网络流量监控系统都部署在一个网络的出口处,有串联和旁路两种方式,这是对全网流量进行统计和控制的常用方法。本文所讲的网络流量统计与控制系统立足于Windows 平台的用户终端上,通过中央服务器进行控制,为企业网络管理员提供后台监控和保护敏感信息的手段,以便保障企业的网络运行和信息安全。本文对该系统的原理、设计进行了介绍和分析,并给出了一种切实可行的实现办法。2.系统的设计原理系统的设计原理 在个人微机上实施网络流量统计与控制的方法有很多,可以在 TCP/IP 协议栈的多个层来实现。在各个层上实现的方法不同,实现的难度和执行情况也不同。本系统以 COM 技术为基础,

3、综合运用了 DOM,SPI 等技术,采用插件式架构,具有低耦合,自更新的特点,适用于分布式网络。系统包括客户端和服务器两个部分,客户端实现流量统计和控制功能,服务器负责存储客户端上报的流量数据,以便管理员查询,管理员还可通过服务器下发具体的流量控制策略。2.1 客户端的设计原理客户端的设计原理 流量统计功能在 TCP/IP 协议栈的数据链路层实现,具体原理是建立一个原始套接字并将其绑定到网卡上,之后就可以通过该套接字的接收缓存获得经过网卡的数据包,从而进行流量的分析和统计工作。流量控制功能在 TCP/IP 模型的应用层实现,具体原理是利用 Windows 系统的 SPI(传输服务提供者接口)来

4、截获上层应用程序所发的 Winsock 调用,Winsock 调用包括WSPSocket、WSPCloseSocket、WSPBind、WSPAccept、WSPConnect、WSPSend、WSPSendTo、WSPRecv、WSPRecvFrom1。从这些 Winsock 调用中可以取得在该 socket 上进行发送和接收的数据,对这些数据进行分析处理,确定它们所属的业务类型及连接信息,将这些信息与从服务器端下发的流量控制策略匹配,得到控制动作,实施控制行为,从而实现流量控制的功能。http:/-2-2.2 服务器端的设计原理服务器端的设计原理 为了能定量的观察和控制各用户终端的网络行为

5、,该系统还包含服务器端。所有安装了该系统客户端的用户终端都会注册到本服务器,并将流量数据及流量控制的记录上报给服务器,系统管理员在登陆到服务器之后,可以通过 WEB 浏览器管理企业用户信息、查询企业内各用户终端的流量,并可配置流量控制策略并实时更新到各终端。服务器与客户端的工作情况用以下原理图表示:Internet/Internatserverclientclientclient 图 1 服务器与客户端工作原理图 Fig1 working principle of server and client 3.系统的各模块介绍系统的各模块介绍 由于该系统分客户端和服务器两个部分,且二者必须实时通信。

6、为了保证客户端程序在本地运行的可靠性,以及应对随时可能出现的问题,综合诸多因素,决定将客户端程序按功能划分成几个功能单元,不同功能单元(称为服务)通过这些服务之间定义良好的接口联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。以下是系统模块通信示意图:http:/-3-server 图 2 系统模块通信示意图 Fig2 communication between system modules 各模块均被设计成 COM 组件的形式,都以 EXE 形式存在,模块之间的通信依靠定制的接口

7、。在用户终端上安装本客户端后,每当终端上的 Windows 系统启动完成,由加载程序将核心模块加载进内存,然后由核心模块启动通信模块、流量统计模块以及流量控制模块,通信模块与流量统计/控制模块级别相同,但启动顺序优先。模块之间使用标准的服务接口连接,组件之间较小的数据传输使用内部消息传递,较大的数据传输使用共享内存或者临时文件方式。以下简要介绍各模块的功能。核心模块主要是负责系统的基本服务,如系统启动停止、消息的转发、进程状态监视等。核心模块由于始终运行于系统内存中,要实时监控其他程序运行,因此要求设计精简,最大化的与其他模块独立,只提供基本的服务。核心模块按功能又划分为组件管理器、消息转发器

8、、运行时监视器。每次核心模块启动后,组件管理器负责遍历所有的模块目录,生成模块树,按依赖顺序启动模块,然后在内存中生成模块名与模块编号相对应的模块状态表,以供其他模块查询。模块间的消息通信由消息转发器负责传递。定时对各个模块的运行状态进行轮询,并根据需要启动、关闭或更新某些进程。当在系统运行中启动或者终止某些插件时,应以广播方式通知所有模块。通信模块由核心模块启动,主要为流量统计和控制模块提供一些基础服务,如将这两个模块的日志上传给服务器,以及将从服务器下发的流量控制策略实施到流量控制模块。流量统计模块对用户的网络流量进行统计及上报。通过建一个原始套接字并将其绑定到网卡上,之后就可以通过调用标

9、准的 recv 函数2,从该函数对应的接收缓存中取出经过网卡的每个标准的 IP 数据包;然后对每个 IP 数据包进行分析。这不仅仅是统计出一个总流量,还要按类型统计,具体类型有浏览网页、WEB 杂项、BT 下载、QQ 聊天、网易泡泡、雅虎通聊天、FTP 下载等。因此需要对 IP 包的包头和数据部分进行分析。分析的结果存入哈希表,在核心模块规定的上报时间内上报给服务器。流量控制模块对用户的网络流量进行检测,提取出需要监控的业务类型,并根据服务器下发的策略对这些网络通信进行控制。主要是基于 SPI 技术,SPI 以动态链接库(DLL)的形式存在,它工作在应用层,为上层 API 调用提供接口函数。讲

10、自己编写的 SPI 程序安装http:/-4-到系统之后,所有的 Winsock 请求都会先发送到这个程序并由它完成网络调用。所以,我们在这里可以得到所有 socket 的信息,并对它们进行分析,得到五元组信息3,并确定它们所属的业务类型。本系统可以根据报文四元组(目的 IP、协议类型、目的端口、源端口)以及业务类型(QQ 聊天、BT 下载、网易泡泡、雅虎通聊天等)进行控制,决定其是通过还是被阻止。4.系统的实现系统的实现 4.1 开发平台开发平台 本系统是基于面向服务思想的,虽然独立于编程语言,但由于该系统主要运行于 WIN32环境中,出于兼容性和效率两方面的考虑,所以客户端使用 C/C+和

11、 XML 语言,开发工具是 Microsoft Visual Studio 2005,服务器端使用 Java/JSP 和 SQL 语言。客户端的运行环境为:Windows NT+Microsoft.NET Framework 2.0;服务器的运行环境为:Windows NT+JRE5.0+Tomcat+MySQL;硬件环境:要求客户端和服务器端可以访问互联网。管理员在登陆服务器之后,可以通过 WEB 浏览器管理各用户信息、查询客户端所在的用户终端流量,并可下发流量控制策略。以下是整个系统的开发框架:图 3 系统开发框架图 Fig3 system development framework 4.

12、2 部分程序部分程序 为简化模块的调用过程,将所有模块设计成 COM 组件的形式。所有模块使用统一接口,使用 uuid 区分不同模块的接口。当初始化成功后,模块就通过统一的消息传递来与其他模块通信,通过消息的解析来完成相应的功能。部分程序如下:(1)建原始套接字,并将其绑定到网卡 SOCKET sock=socket(AF_INET,SOCK_RAW,IPPROTO_IP);char LocalName100;gethostname(LocalName,sizeof(LocalName);hostent*pHost;pHost=gethostbyname(LocalName);http:/-5

13、-SOCKADDR_IN addr_in;addr_in.sin_addr=*(in_addr*)pHost-h_addr_list0;addr_in.sin_family=AF_INET;addr_in.sin_port=htons(56789);bind(sock,(PSOCKADDR)&addr_in,sizeof(addr_in);(2)安装及卸载分层服务提供者的函数 WSCInstallProvider(&ProviderGuid,pwszPathName,&LayeredProtocolInfo,1,&nError);WSCDeinstallProvider(&ProviderGu

14、id,&nError);(3)初始化模块信息的结构体 typedef struct int num;char pluginNameMAX_PLUGIN_NAME_LEN;char pluginVersionMAX_PLUGIN_VERSION_LEN;ModuleInfo;(4)向服务器上报消息的结构体 typedef struct char filenameMAX_FILE_NAME_LEN;char pluginnameMAX_PLUGIN_NAME_LEN;char commandMAX_COMMAND_LEN;char optionMAX_COMMAND_LEN;DataReport;

15、(5)接收服务器消息的结构体 typedef struct char commandMAX_COMMAND_LEN;char para1MAX_COMMAND_LEN;char para2MAX_COMMAND_LEN;char fileMAX_FILE_NAME_LEN;DataReceive;5.结论结论 本文给出了一个网络流量统计及控制系统的设计与实现,基于该系统框架的软件已经开发出来,实际使用结果表明本文所述的系统设计是可行的,能够满足一般规模的网络测量的需要。本系统还可以改进的地方是可以把记录流量控制策略的数据结构改成哈希结构,这样能够缩短匹配策略的时间。这将在后续的开发中根据需要改

16、进。http:/-6-参考文献参考文献 1 朱雁辉 Windows 防火墙与网络封包截获技术 M.北京:电子工业出版社,2001 2 王艳平,张越 Windows 网络与通信程序设计 M.北京:人民邮电出版社,2005 3 W.Richard StevensTCP/IP 详解 卷 1:协议 M.范建华,胥光辉,张涛,等译北京:机械工业出版社,2005 Design and Implementation of a Net flow Statistic and Controlling System Based on Windows Flat Xia Yisan School of Informat

17、ion Technology,Beijing University of Posts and Telecommunications,Beijing(100876)Abstract This paper introduces the general design of a net flow statistic and controlling system based on Windows flat,including the implementation of each function modules.Also gives a description of the framework,software and hardware environment and some source code.Keyword:flow statistic,flow controlling,SPI 作者简介:夏义三,男,1982 年生,硕士研究生,主要从事网络流量监控方法的研究和应用。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁