网络监控系统的设计与实现.pdf

上传人:qwe****56 文档编号:74648864 上传时间:2023-02-27 格式:PDF 页数:4 大小:284.25KB
返回 下载 相关 举报
网络监控系统的设计与实现.pdf_第1页
第1页 / 共4页
网络监控系统的设计与实现.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

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

1、2 0 0 6年第 1 1 期 计算机与现代化 J S U A N J Y U X A N D K I H U A 总第 1 3 5 期 文章编号:1 0 0 6-2 4 7 5(2 0 0 6)1 1 0 0 5 5 0 4 网络监控系统的设计与实现 宋光慧(浙江大学宁波理工学院,浙江 宁波3 1 5 1 0 0)摘要:用 V C+设计并实现了局域网监控系统的原型系统,对主要的功能结构模块进行 了分析,探讨 了在客户端和服务 器端所运用的关键技术和实现方法,着重讲述了如何有效地解决客户端的监控和服务器端的网络通信问题。结果表明,该系统能够快速、实时、高效地实现对被控计算机的管理,达到了设计的

2、预期 目标。关键词:H O O KA P I;进程保护;多线程;I O完成端 口 中图分类号:哪 9 3 o 8 文献标识码:A De s i g n a n d Re a l i z a t i o n o f Ne t wo r k M o n i t o r i n g S y s t e m S O NG G u a n g h u i (N i ngb o I n s t i t u t e o f T e c h n o l o g y,Z h e j i a n g U m v e m i,N i n g b o 3 1 5 1 0 0,C h i n a)A b s t r l

3、:T h e p a p e r i n t r o d u c e s h o w t o d e s i g n a n d r e a l i z e th e n e t w o r k m o n i t o ri n g s y s t e m w i t h V C+,a n a l y z e s t h e m a j o r f u n c ti o n s and c o n s t r u c t i o n mo d e l o f t h e s y s t e m,d i s c u s s e s t h e k e y t e c h n o l o g i

4、e s a n d r e a l i z a t i o n me tho d s o n t h e c l i e n t and s e r v e r,a n d e x p l a i n s h o w t o s o l v e e ff e c ti v e l y t h e mo n i t o r i ng p r o b l e m o n the di e m a n d t h e n e two r k c o mmu n i c a t i o n p r o b l e m 0 n t h e s e r v e r T h e r e s u l t s

5、h o w s t h a t t h i s s y s t e m m舢 g e s the c o mp u t e r c o n t r o l l e d with q u i c l(r l e s s,r e a l-m e,and e ff i c i e n c y a n d a c hie v e s t h e e x p e c t e d a i m o f the d e s i gn,Ke y wo r d s:HO OK AP I;p r o ces s p rot e c ti o n;mult i t h r e a d i n g;I O c o mp

6、 l e t i o n p o r t 0 引 言 网络监控系统是对控制技术和网络通信技术的 综合应用,分为客户端模块和服务器端模块。客户端 模块实现对被控计算机的控制、信息的获取和自身进 程的保护;服务器端模块主要负责网络通信的处理和 数据库的操作。随着信息化的快速发展,各种终止程序运行的软 件不断出现,为了防止客户端监控程序的运行进程被 恶意终止,系统采用的是 H O O K A P I 技术,并采用钩 子技术来屏蔽低级组合键(如:A l t+T A B、C tr l+E s c 等)以保证功能的完善。对于服务器端,目前局域网 内管理的计算机数量往往比较大,造成监控服务器网 络流量大、负

7、载高,针对被控计算机的控制实时性强、信息需求量大等特点,提出了基于 Win s o c k的 I 0完 成端口模型的网络构架,并采用了Wi n 3 2 多线程技术 进行数据库操作。同时系统又增加了管理端模块及支持刷卡功能 的模块来方便管理和操作,使系统具有最佳的网络性 能和可扩展性,使被控计算机能够快速、实时和高效 地进行响应。1 系统的体系结构 网络监控系统总体架构上分为服务器端、管理 端、客户端和刷卡端,四者都建立在网络通信技术基 础之上(如图 1 所示)。服务器端即网络监控服务器,是整个系统的核心部分,负责监听网络内客户端的请 求和对数据库的操作,其性能直接影响着整个系统,因此网络通信采

8、用了完成端口模型并用多线程进行 数据库操作。管理端大部分功能和信息都是通过服 务端获得,用来实现对被控端计算机进行监控和操 作,从通信方式上来说管理端也是服务器端的“客户 端”,通过服务器端与客户端通信,发送监控和操作命 令。管理端可在多个地点放置多台以方便管理。刷 收稿 日期-2 0 0 6 0 6 1 9 作者简介:宋光慧(1 9 r 7 8 ),男,辽宁北宁人,浙江大学宁波理工学院助教,硕士,研究方向:计算机网络与多媒体。维普资讯 http:/ 计算机与现代化 2 0 0 6年第 1 1 期 卡端也是作为服务器端的“客户端”,其作用是用户上 机前先刷卡通知服务端账户开始生效,然后到客户端

9、(被控计算机)输入账号登录后即可使用计算机,通过 多台刷卡端来管理账户更加安全方便,有利于信息的 综合利用,还可以防止如果直接通过客户端登录,客 户端出现异常所造成的账户无法注销的问题。客户 端结合了进程保护、远程控制、数据加密和图像处理 等多种技术,主要负责对被控计算机上的各种硬件信 息、系统信息和网络信息进行控制,并发送给服务端,同时对服务端发送的命令进行响应和自身监控模块 的保护等功能。2 系统功能及实现方法 系统的主要功能是由服务器端实现对客户端计 算机的远程监控和管理(流程图如图2 所示)。由 i 回 圃 圃 图 1 体系结构图 图 2 监控流程图 客户端开机后客户端监控程序自动运行

10、,可用设 置注册表的方法实现;程序首先实现界面控制,取得 客户机的控制权,进入监控状态,实现方法为程序界 面全屏显示并屏蔽系统组合键,同时监控进程进行 自 我保护,防止被用户终止,这里采用的是挂钩 A P I 技 术的实现方式;然后请求与服务器连接,若成功便将 客户端的各种硬件信息发送给服务器,以便于计算机 信息模块自动检查,实现客户端信息更新,同时服务 端接收到信息后立即将数据库中的客户端初始化信 息发送 给客户端,主要是通过基于 Wi n s o e k的网络通 信来实现(可用 A P I 函数 A f x E x t m c tS u b S tr i n g 来实现通 信字符串信息的分

11、割);之后要求用户登录,用户在刷 卡端登录后再在客户端计算机验证身份,若失败则锁 定计算机不允许用户使用,如果成功,取消锁定功能 允许用户使用计算机,同时各监控子模块启动。例如客户端进程监控模块,客户端可设置定时器 控件来定时检测系统中正在运行的进程,与服务端发 送的初始化数据中的进程信息进行比较查看是否合 法,如果是禁止运行的进程则用 T e r m in a te P r o c e s s A P I 函数终止该进程运行,直到用户刷卡退出。在服务器端主要是完成网络通信和数据处理的 功能。服务器始终在监听客户端的连接请求,从上述 分析中可以看出,服务端对每个客户端都要进行大量 的实时监控和

12、通信,系统运行的主要瓶颈在于服务器 端网络通信的性能,如果局域网内的计算机数量达到 5 0 0台左右,那么对于这么多数量套接字的管理,传 统的网络通讯模式已经不能满足要求,会时常发生服 务器因网络负担过重而死机的现象,所以为了保证对 客户端的通信能够有效同步地完成,使系统获得最大 的吞吐量,我们采用 了完成端 口模型。管理端、刷卡端和客户端都只与服务端通信,只 负责一个或几个套接字的管理,又因为是以 Win d o w s 为基础的应用程序,要进行窗口?肖 息的管理,因此采 用 WS A A s y n c S e l e e t(异步选择)模型。服务器端可以分为如下几个模块:账户管理模块 负

13、责对用户信息和用户权限进行管理,还可包括对用 户的上机时间和费用进行管理;进程监控模块主要的 目的是为了防止客户端运行被禁止使用的程序(如游 戏程序),从服务端能随时监控客户端的进程运行情 况并进行远程控制(如终止非法进程),并提取进程信 息加入到进程数据库中,从而有效地保证网络的安 全;网络监控模块对客户端计算机所访问的网站进行 控制,可以设定禁止访问的网址,也可 以设定禁止访 问的关键字,并可以对用户所访问过的网址等信息进 行记录存人数据库;计算机管理模块负责对客户端计 算机进行远程控制(如查看运行界面,发送警告消息,强制关机等)和对计算机运行状态的查询;计算机信 息模块用来存储每个客户端

14、的硬件信息和更新时间,从而使管理员在服务器端就可以掌握各个计算机的 设备情况。对服务器端的网络通信模块和数据处理模块都 创建了线程,这样提高了系统的网络通信性能和数据 处理能力。3 客户端关键技术解析 客户端监控功能实现的前提便是系统具有进程 自 我保护功能。解决这个问题采用的是挂钩 A P I 技 术(H O O K A P I)。3 1 HO OK A P I 技术简介 钩子(H O O K)是 Wi n d o w s 消息处理机制中的一个 监视点,应用程序可以在这里安装一个子程序(钩子 函数)以监视指定窗 口某种类型的消息,所监视 的窗 维普资讯 http:/ 2 0 0 6年第 1

15、I 期 宋光慧:网络监控 系统的设计与实现 5 7 口可以是其它进程创建的。当消息到达后,在目 标窗 口处理函数处理之前,钩子机制允许应用程序截获它 进行处理。而 H O O K A P I 就是指截获特定 的进程或系统对 某个 A P I 函数的调用,使得 A P I 的执行流程转向指定 的代码。挂钩 A P I 函数的类是由J e ff r e y R i c h te r 设计 的,本系统仅仅做了一些改动以使更适合自身使用。钩子的安装 与卸载是通过 S e t Wi n d o w s H o o k E x函数 以 动态链接库的方式安装到系统中的。3 2 进程 自我保护的实现 为了防止

16、监控进程被恶意地终止,必须对其加以 保护。实际上强制终止进程(如任务管理器中的“结 束任务”)所使用方法就是调用名为 T e n n i n a t e P r o c e s s 的 Win 3 2 A P I 函数。其定义为:B O O L T e r m i n a t e P r o e e s s(I-I A L E h o c e s s,将被结束进程的句柄 U I N T u E x i t C o d e 指定进程的退出码);如上所述,如果采用 H o o k A P I 技术 挂钩 T e n n i n a te P r o c e s s 函数,每次 T e r m i

17、n a te P r o c e s s 被调用的时候 先判断企图结束的进程是否是监控系统的进程,如果 是就返回一个错误提示。但要根据被结束进程的句 柄(h P e s s)判断它是否是监控系统进程的句柄就必 须在监控系统当中先获得自身进程的句柄,然而因为 句柄是一个进程相关的值,不同进程中得到的我的进 程的句柄的值在进程间进行比较是无意义的,所以这 种方法是不可行的。一个进程只有它的进程 I D是独一无二 的,操作 系统通过进程 I【)来标识一个进程,当某个程序要对 这个进程进行访问的话,它首先得用 O p e n P r o c e s s 这 个函数并传人要访问的进程 I D来获得进程的

18、句柄,其定义为:H A N D L E o p 肌P I D c e s s(D WO R D d w D e s i r e d A c c e s s,访问权限 B O O L b l n h e r i t H a n d l e,句柄继承权限 D WO R D d w P r o c e s s I d 要访问的进程 I D);因此 在调用 T e r m in a te P r o c e s s之 前,必先调用 O p e n _P r o c e s s,而 O p e n P r o c e s s的参数表 中的 d w P r o c e s s l d 是在系统范围内唯一确

19、定的。所以最终系统要 H o o k 的函数不是 T e r m i n a te P r o c e s s 而是 O p e n _P r o c e s s,在每次 调用 O p e n P r o e e s s()的时候,我们先检查 d w P r o c e s s I d 是 否为我的进程的 I【)(利用进程间通讯机制),如果是 就返回一个错误码,要终止进程的程序得不到监控系 统进程的句柄,就无法结束监控系统的进程。由挂钩 T e n n in a te P r o c e s s 到 挂钩 O p e n _P r o c e s s 的这个过程,是 客户端进程 自 我保护功能

20、实现的一个难点。4 服务器端关键技术解析 在服务器端涉及到的主要技术有数据库的应用:采用 A D O的数据库连接方式;多线程的使用;但最重 要和最基础的还是网络通信技术的实现方式。前两 种技术比较简单,本文着重介绍完成端口模型的网络 通信方式。由于以往在局域网内要管理的计算机数量不是 很多,实现的功能有限,因此多采用简单套接字 I 0 模型便可满足系统需要,但是随着计算机数量和功能 需求的增加,服务器端已经无法应付繁重 的网络请 求。对于一些大型的网络应用程序,需要同时为大量 套接字 I 0 请求提供服务(如 We b 服务器、在线网络 游戏和即时通讯软件等),通常在服务器端采用重叠 I O模

21、型和完成端口模型,以开发出可伸缩高性能的 服务器。为此我们将完成端口模型应用到网络监控系 统中来,使系统具有良好的网络性能和可扩展性。4 1 完成端 口模型的工作流程 I O 完成端口模型是一个适用于高负载服务器的 技术,它利用多个线程帮助平衡 I O请求所引起的负 载,这样的构架特别适合应用在能够随着增加内存、磁 盘空间和C P U个数而提升应用程序效能的系统中。完成端口 模型虽然结构比较复杂,但如果一个系 统要管理成百上千个套接字,那么采用完成端口模型 可以获得最佳的网络性能。完成端 口实际是操作 系 统 自身的一种 I O构造机制,创建一个 Wi n d o w s 完成 端口对象之后,

22、通过指定数量的线程对重叠 I O请求 进行管理,以便为已经完成的重叠 I O请求提供服 务。完成端口 模型的处理过程如下:加载 Wi n s o c k 2 2,创建一个完成端 13。第四个参数为 O,指定在完成端1 3上,每个处理器一次只允许执行一个服务 器工作者线程 S e r v e r Wo r k e r T h r e a d()。根据系统中处理器的个数来创建服务器工作者线程的 个数,线程的个数要根据线程内部的具体操作而定。通常,数 量=C P U个数*2+2;并通过参数将完成端 口和该线程相关 联,让一个或多个服务器工作者线程在完成端口上等待。创建一个监听套接字,绑定 I I)地

23、址和端口,开始监听。在 w h i l e 循环中调用 a c c e p t 函数等待接受进入的连接 请求。新连接建立 以后,把这个新的套接字句柄用 C r e a t l o C o m p l e t i o n P o r t()函数关联到完成端1 3,然后发出一个异步的 WS A S e n d 或 WS A R e c v 调用,因为是异步函数,所 以 WS A S e n d WS A R e c v 操作会马上返回,实际的发送或者接收数据的操作 由 Wi n d o w s 系统去做。维普资讯 http:/ 计算机与现代化 2 0 0 6年第 1 1 期)主进程继续下一次循环,

24、阻塞在 A c c e p t 这里等待客户 端连接。W i n d o w s 系统完成 A S d wS A R e c v 的操作,把任 何客户端发出操作请求,生成 I O c o m p l e t i o n p a c k e t,发送到完 成端口。服务器工作 者线程始终在循 环调 用 G e t Q u e u e d C o m p l e fi o n S t a t u s()函数从完成端 口得到步骤中 I O c o m p l e t i o n p a c k e t 操作结果。作为回应,完成端 口释放一个等待中的线 程,如果目前没有线程正在等待,它不会为这个请求服务

25、的客 户端产生新的线程,当执行中的线程处理完毕相应客户端的 I 0 请求后,将返回完成端口进行等待。请求服务客户端这时 才能够被处理,这样就保证了服务器工作者线程总是保持一 个稳定的数量(C P U个数*2+2)。在服务 器工作者线程里对这些数据进行处理(如果处理过 程很耗时,需要新开线程处理),然后接着发出 S e n d A R e c v 操作,并继续下一次循环继续处理未来的 I 0请求,阻塞在 Cot Q u e u e d con d e t io r u s 0 这里等待(执行过程如图3 所示)。w l l i k(r R I I E)A c c e p t=WS A A c c

26、e p t(L i s t e n e r,N U L L,0);C r e a t e I o C o m p l e fi o n P o r t(H A N D L E)A c c e p t C o m p l e fi o n p o r t,(D WP R D)P e r H a n d D a ta,0);WS A S e l 1 d WS A R e c v Wi n d o w s 系统 I 0重叠机制处理 i D w 0 f u)WI N A P I S e r v e r W o r k T h r e a d();w h i l e(T R U E)G e t Q u

27、e u e d C o m p l e fi o n S t a t u s(C o m p l e ti o n,);j(数据处理);ws A s e n d e c v 返回步骤;i 服务器工作者线程;_ -。-_-图 3 完成端口模型 因此完成端E l 的总体执行过程就是:主进程不断 循环接 收客户端的请求,发送异 步的 WS A S e n d W S A R e c v I O操作,具体的 I O处理过程由 Win d o w s 系统完成,W i n d o w s 系统完成实际的I O 处理后,把结 果送到完成端口上(如果有多个 I O都完成了,那么 就在完成端口那里排成一个队列

28、)。我们在完成端口 上调用等待的服务器工作者线程,在线程 中调用 G e t Q u e u e d C o m p l e t io n S t a t u s()函数从完成端口不断地取 出 I 0操作结果,进行数据处理,然后根据需要再发 出 WS A S e n d WS A R e c v I O操作。4 2 对完成端口模型的进一步改进 在系统中我们将完成端口模型封装成一个通用 的 c+类,来实现模块化和使其具有面向的特性。为了进一步提高系统的总体 I O性能,可以利用 以下的方法来进一步提高完成端 口的工作效率:(1)改变一个大的套接字缓冲区为多个小的缓冲区,这样 可以提供对多个 I

29、O请求的支持,以改善 I O性能和 应用程序的扩展能力。特别是在多处理器的计算机 上可以同时处理多个 w s A S e n d 厂 rS A R e c v 请求;(2)在 套接字上使用 S O R C V B U F和 S O S N D B U F选 项来关 闭系统缓冲区。这样 Win s o e k 便会在重叠 I 0调用 中直接使用应用程序的缓冲区,避免了进行一次缓冲 区的复制。但只有在一段时间内存在着多个 I 0请 求时才会产生积极的作用;(3)使用 A c c e p tE x A P I 调 用代替 a c c e p t 来进行连接请求的处理,A c c e p t E x函

30、数 是微软的 Wi n s o c k扩展函数,它与 a c c e p t 的区别在于:a c c e p t 是阻塞的,直到有客户端请求连接后才返 回,而 A c c e p t E x 是异步的,可以直接返回。此外,如果客 户端一连接成功就会发送数据,那么可以随 A c c e p t E x 投递一个 B U F F E R进 去,这样一旦连接成功,就可 以 接收客户端发出的数据到 B U F F E R里。如果这样使 用,应用程序只需通过一次A P I 调用,便可为一次接 受请求和数据的接收提供服务,从而减少了单独进行 a c c e p t 和ws A R e c v 调用造成的开

31、销。在本系统中大 量客户端请求连接服务器成功以后,服务端要接收客 户端发送的计算机信息,并返回给客户端进程数据库 的内容,这个特点正好可以利用 A c c e p t E x 提供的服 务,来提高系统的性能。5 结束语 我校的计算中心现有计算机 8 0 0台,目前网络监 控系统能够很好地对其进行管理和监控,运行十分稳 定,达到了预期的设计目标。参考文献:1 J e ff r e y R i c h t e r W i n d o w s 核心编程(第 3 版)M 北京:机 械工业出版社,2 0 0 0 2 J i m B e v e r i d g e,R o b e r t W i e n e r W i n 3 2 多线程程序设计(第 2 版)M 武汉:华中科技大学出版社,2 0 0 2 3 A n t h o n y J o n e s W i n d o w s 网络编程(第 2 版)M 北京:清 华大学出版社,2 O O O 4 王艳平 W i n d o w s 程序设计 M 北京:人民邮 电出版 社,2 0 0 5 维普资讯 http:/

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

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

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

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