S的网络监控管理系统的设计与实现.pdf
华侨大学硕士学位论文基于C/S的网络监控管理系统的设计与实现姓名:郑燕生申请学位级别:硕士专业:计算机应用技术指导教师:吴金龙20060601基于 C/S 的网络监控管理系统的设计与实现-2-摘要随着计算机网络应用的日益广泛局部网络的管理已经成为网络管理的重要内容本文在详细研究和分析了局部网络管理需求和实现的关键技术的基础上提出了集网络控制管理以及管理者和用户交流功能于一体的网络管理新概念并且以 Windows 2000 操作系统为开发平台在 Visual C+6.0 环境下开发了基于 C/S 的网络监控管理系统第一章介绍了网络监控系统的发展现状和本课题研究的主要内容 第二章介绍了本系统采用的关键技术多线程技术进程间通讯技术网络通讯技术Windows 系统的鼠标和键盘消息模拟技术屏幕抓取技术图像编码和解码技术等同时介绍了网络通信协议的选择WinSock 的网络编程基本原理和一些在软件开发过程中用到的网络编程接口函数 第三章介绍了系统的设计与实现包括系统的设计要求系统的功能划分以及系统每个模块的具体实现过程和技术 第四章讲述了系统安全部分的设计与实现通过对传输信息的加密与解密保证了信息的秘密性和可靠性 第五章介绍了系统的调试运行结果并对结果进行了分析最后对该系统进行了总结和展望关键字网络监控套接字Client/Server 模型Browser/Server模型CryptoAPI基于 C/S 的网络监控管理系统的设计与实现-3-AbstractWith the extensive application of computer network,the management of localnetwork becomes the important content of network management.By researching andanalysis of local network management requirement and key technology of implementin detail,this article introduces a new network management concept combing networkmonitoring,control and management,communication function.And then a networkmonitoring software based on Windows 2000 is developed in the environment ofMicrosoft Visual C+6.0.In the first chapter,the thesis introduces the present situation of networkmonitoring system and the research content for this topic.In the chapter 2,the thesis introduces the key technologies:technology ofmultithreading,communication between procedures,network communication,themessage simulation of mouse action and keyboard in Windows 2000 system,capturingthe screen of remote computer,the encoding and decoding of images and so on.Theseare discussed in detail:the selection of network communication protocol,the principleof WinSock network programme and the important API functions.In the chapter 3,the thesis introduces the design and implement of thesystem,including designing requirement,the systematic functions,and the detailedimplement and technology of each module of system.In the chapter 4,the thesis tells the design and implement of the safe part of thesystem.Through encrypting and decrypting information,the system guarantees thesecret and dependability of the information.In the chapter 5,the thesis introduces the debugging operation result of thesystem,and analyses the result.Finally,Summarize this system and look into the distance.Key words:Network monitoring and control;Sockets;Client/Server Model;Browser/Server Model;CryptoAPI基于 C/S 的网络监控管理系统的设计与实现-6-第一章 绪 论1.1 引言当今的信息社会网络技术的快速发展使得人类社会的各个方面发生了巨大的变化人们已经不再仅仅局限于使用一台单独的计算机网络互联及网络化的管理应用极大地提高了效率在娱乐通讯信息服务等社会生活领域以及金融邮电等各种生产服务部门都有自己的网络并且日益完善而部门与部门之间也相互连接实现资源的共享借此增强部门内部的信息交流以及各个部门之间的协同工作因此网络已经成为政府和企业不可或缺的一个组成部分 目前对于企业或单位局域网的管理者来说网络用户比较复杂网络使用情况不容易控制使用者可能滥用网络或者从事与工作学习无关的活动影响企业或单位生产经营的效率造成企业或单位成本的过量的开销据统计公司员工的上网活动 50%以上与工作无关比如在上班时间浏览与工作内容无关的网站使用 QQ 聊天涉及网络游戏等不仅给公司造成巨大损失而且也败坏了内部风气另外计算机的用电量也占企业或单位经营成本的一部分但一些员工的节约意识比较薄弱没有养成人走关机的习惯无形中也造成了极大的资源浪费因此网络监控管理软件的研发就成了众多的软件企业与科研机构的主要研发热点之一这种应用软件因其具有极其广泛的应用领域如网络多媒体教室网络管理与控制网络服务在线技术支持等使得它具有非常良好的发展前景与商业价值1.2 网络监控管理系统概述1.2.1 网络监控管理的概念网络监控管理指的是通过计算机网络对分布在网络上的计算机实现远程监控管理工作这种监控管理是通过对基于网络通讯的标准通讯协议和对目标主机的准确控制来实现的网络监控管理就是建立在现代的计算机技术通信技术控制技术以及图形技术上的一个新的应用它采用多元的信息传输监控管理和一体化的集成实现了消息资源和任务的共享达到了监控的实时快速和有效并能够跟其他的计算机网络系统互联向用户提供了一个更高效更全面更安全更快捷的服务方式改变了传统的监控模式 随着计算机网络的迅猛发展全球信息化已经成为人类未来发展的大趋势基于 C/S 的网络监控管理系统的设计与实现-7-网络监控管理也必将对人们提高工作效率实现信息和资源共享打破空间限制和实现技术革新等各个方面起到积极的作用而且也将对信息安全等网络安全领域防止网络犯罪等领域的技术发展提供有益的技术支持所以对于网络监控管理技术的研究分析具有深远的意义1.2.2 网络监控管理系统的工作模式 信息技术的高速发展推动了应用程序结构不断更新从单机时代的主机/终端模式文件服务器时代的共享数据模式客户机/服务器时代的 Client/Server模式简称 C/S 模式到电子商务时代的 Browser/Server模式 简称 B/S 模式应用程序的体系结构已经发生了巨大的变化采用主机/终端模式的应用系统的缺点是事务处理数据管理都要由主机实现而客户机仅能对主机上的数据库进行简单的操作因此主机负担过重C/S 模式克服了主机/终端模式的缺点但是应用逻辑安装在每个客户机上如果系统要升级就只能对客户机逐一进行如果客户机分布在不同的地点维护和升级任务将非常繁重B/S 模式是一种以 Web 技术为基础的新型的系统平台模式把 C/S 模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器构成一个三层结构的客户服务器体系它克服了主机/终端模式和 C/S 模式的缺点但由于客户通过浏览器就可以访问数据库若系统的安全权限管理不严密容易出现不安全的因素1.2.3 网络监控管理系统的分类根据网络监控通信中所使用的传输信道的不同网络监控管理系统可以分为有线系统和无线系统两类(1)有线系统根据信道的运营方式不同可以分为公用网和专用网常用的公用网包括公用电话交换网公众数据网等公用电话交换网Public Switching TelephoneNetwordPSTN基于电路交换它的设计主要用于语音通信在各个网络之间完全互联网络在本地环路部分是模拟的在主干线路是数字的数字数据网Digital Data NetworkDDN是采用数字信道传输信号的数据传输网一般用于向用户提供专用的数字传输信道或提供将用户接入公用数据交换网的接入信道传输链路有光纤微波等具有传输质量高速度快等优点利用公用网作为网络监控管理的通信信道由于现在大部分电话网采用的是时分多路复用技术(Time-Division MultiplexingTDM)因而传输速率受到一定的影响误码率也比较高线路可靠性较差基于 C/S 的网络监控管理系统的设计与实现-8-相对于公用网来说专用网是国防铁道等专业部门自己建立的或者向电信部门租用线路构成的网络比如电力系统的线路有线电视网等利用专用网作为网络监控管理的通信信道成本较高两端(监控端和受控端的设备)不容易移动资源浪费比较严重(2)无线系统无线系统是指通过无线信道传输信息的系统常用的无线系统主要是电信部门提供的公用无线网络如 GSMCDMA 等无线系统以开放式传播来传递信息打破了一定要有全封闭式传输线路的限制并将通信方式从静态推广至可移动式的准动态其代价是牺牲了全封闭式的优质人造信道换取了无需采用固体介质专用线路的开放式传输的灵活性但是信道的开放性必然会引起信道的时变性和随机性从而大大降低了通信容量和质量在网络监控管理系统中无线传输适合于那些不便于布线或者需要移动的场合能够发挥其无需布线的优势但是容易受干扰安全性较差传输距离对环境的依赖性较大总体成本较高因为两端都需要无线发射和接收装置1.3 网络监控管理系统的国内外研究现状与发展前景1.3.1 国内外的研究现状 在计算机技术电子技术和通讯技术迅猛发展的过程中监控系统的技术水平也从初期的模拟信息传输和监控飞速发展到了数字化网络化信息传输和监控作为现代工业技术的一个重要支撑技术与组成要素网络监控管理技术近几年越来越受到人们的重视许多新的监控方法不断涌现出来如智能监控在线监控和远程监控等 目前网络监控管理系统已经在安全监控生产过程监控住宅小区等领域得到广泛应用网络监控管理系统以其远距离监控管理的独特优势逐渐赢得广大客户的青睐对其进行研究将会带来巨大的社会效益和经济效益针对网络监控管理国内外都有不同程度的研究相对来说由于西方国家在信息技术和计算机控制技术发展上的优势他们在研究网络监控管理方面相对早一些而且有些公司也有相关的产品问世比如在基于因特网的网络监控方面美国伯克立大学研制的 Telegarden 是一个通过因特网远程控制的种植花草的工业机器人手臂用户通过机器人手臂上的摄像机所传输的图像对这个花园内进行简单的操作如种植花草浇水等国内由于计算机技术与通讯技术的飞速发展近几年也开始积极开展这方面的研究目前国内不少高校及科研单位已投入大量技术力量和资金设计和开发各类网络监控系统比如西安交大电子信息学院开发的三峡大坝分布式网络监控系统上层采用标准以太基于 C/S 的网络监控管理系统的设计与实现-9-网底层网络采用 RS-485 协议总线技术加上服务器监控工作站构成一个适合工业现场的局域网监控系统国内的哈尔滨工业大学正在研制基于因特网控制的机器人另外由西安交通大学开发的基于因特网的快速成型和快速加工技术只要用户安装了 WWW 浏览器就可以通过 HTTP 获得远程服务部TSB(Tele-Service Bureau)的在线技术支持和数据交换1.3.2 发展前景 (1)家庭办公将成为时尚 Gartnet Group 公司预言到 2006 年全世界将有 2 亿以上的人经常不在办公室内工作 (2)远程技术支持的流行 通常技术支持必须依赖技术人员和用户之间的口头交流来进行这种交流既耗时又容易出错许多商业用户对计算机知之甚少然而当遇到问题时他们必须向技术人员提供故障情况并获得相关操作比如向无法看到计算机屏幕的技术人员描述问题的症状按技术人员的提示精确地描述屏幕上的内容在尝试解决问题时技术人员可能指导用户执行一系列复杂的过程而这些过程对用户来说或许完全不熟悉如果用户不能正确地按要求操作反而可能使问题恶化以上这些情形既费时又费事工作效率很低网络监控管理软件能使技术人员直接操作远程计算机就像操作本地机器一样无须用户介入技术人员就能得到问题的第一手资料从而加快问题的解决 (3)远程教学的发展 在远程教学中需要大量使用计算机远程教学软件通过这种软件师生可以进行实时的交流对话和传递文件因此网络监控管理软件在远程教学中将大有作为 (4)企业内部管理 现在很多企业开始使用监控系统用摄像的方式来监控员工的行为但是这种监控系统对员工的敲键发送邮件等细小的行为依然无能为力网络监控管理软件却能轻松地管理这些细节问题因此网络监控管理软件在企业的内部管理上将发挥很大的作用1.4 本文选题及研究的主要内容网络监控管理是一个具有重要的研究价值的课题它在工业国防等各方面有着广泛需求随着网络技术的进一步发展网络速度越来越快家庭办公基于 C/S 的网络监控管理系统的设计与实现-10-将成为未来的时尚远程技术支持将逐渐占据技术支持的主流远程教学和培训也将快速发展企业规模将迅速扩大所有这些发展都为网络监控管理软件提供了一个广阔的天地根据 IDC 预计网络监控软件市场将从 1998 年的 6.77亿美元发展到 2002 年的 19 亿美元年增长率达 31.5%是软件技术支持消费中第 3 个增长最快的领域但是许多网络监控管理软件都需配有硬件设备这不仅使得实际应用的成本升高而且也使实施应用增加了技术障碍本文利用网络通信技术WinSock 技术实现了一个基于 C/S 的网络监控管理系统 程序的开发采用面向对象的开发技术 利用 Visual C+6.0 在WindowsXP平台上开发程序的界面和框架利用 MFCMicrosoft Foundation Class实现远程监控部分采用基于客户机/服务器的模式开发网络通信部分采用面向连接的传输控制协议(Transmission Control ProtocolTCP)利用 WinSock 接口开发整个系统采用开放的分层的面向对象的体系结构可以根据不同需求和环境进行灵活的组合和配置是一个简单实用高效的监控系统 论文主要进行了以下工作(1)研究 Winsock 的网络编程原理用 Winsock API 实现了网络通信模块 (2)研究多线程编程技术 (3)研究进程间通讯技术 (4)用哈夫曼算法实现图像压缩 (5)在 Visual C+6.0 中实现鼠标和键盘的消息模拟 (6)在 Visual C+6.0 中用 CryptoAPI保证数据通信的安全基于 C/S 的网络监控管理系统的设计与实现-11-第二章 网络监控技术的基本原理2.1 TCP/IP体系结构TCP/IP 起源于 20 世纪 60 年代末美国政府资助的一个分组交换网络研究项目现在已经发展成为计算机之间最常应用的组网形式它是一个真正的开放系统因为其协议组件的定义及多种实现可以不用花钱或花很少的钱就可以得到需要说明的是TCP/IP 协议不是单个协议而是一组协议它们用分层的方式开发以协作方式完成在具体物理介质上的通信功能TCP/IP 协议体系在和开放系统互联Open System InterconnectionOSI的竞争中取得了决定性的胜利得到了广泛的认可成为事实上的网络协议体系标准2.1.1 TCP/IP分层模型 网络协议通常分不同层次进行开发每一层分别负责不同的通信功能TCP/IP 通讯协议采用了 4 层的层级结构每一层负责不同的功能其层次结构如图 2-1 所示1应用层传输层互联网层网络接口层图 2-1 TCP/IP 参考模型(1)网络接口层该层通常包括操作系统中的设备驱动程序和计算机中对应的接口卡它们一起处理与电缆或其他任何传输媒介的物理接口细节该层包含的协议主要有地址解析协议Address Resolution ProtocolARP和反向地址解析协议Reverse Address Resolution ProtocolRARP(2)互联网层该层主要负责解决路由跨网络传送等问题把 IP 报文从源端传送到目的端该层协议采用非连接传输方式不保证 IP 报文顺序到达在 TCP/IP 协议体系中互联网层是由网际协议Internet ProtocolIPInternet 控制报文协议Internet Control Message ProtocolICMP以及 Internet组管理协议Internet基于 C/S 的网络监控管理系统的设计与实现-12-Group Management ProtocolIGMP等组成(3)传输层该层主要为两台主机上的应用程序提供端到端的通信在 TCP/IP 协议体系中有两个互不相同的传输协议TCP 和用户数据报协议User DatagramProtocolUDPTCP 为两台主机提供高可靠性的数据通信它保证源端发送的字节流毫无差错地按顺序到达目的端UDP 则为应用层提供一种非常简单的服务它只是把称作数据报的分组从一台主机发送到另一台主机但不保证该数据报能到达另一端任何必需的可靠性必须由应用层来提供(4)应用层该层负责处理特定的应用程序细节几乎各种不同的 TCP/IP 实现都会提供下面这些通用的应用程序远程连接服务的标准协议 Telnet 文件传输协议 FileTransfer ProtocolFTP简单邮件传输协议Simple Mail Transfer ProtocolSMTP简单网络管理协议Simple Network Management ProtocolSNMP2.1.2 传输层协议(1)UDP UDP 协议提供的是一种不可靠的无连接的数据报传输的服务UDP 提供协议端口可以为一台机器上的多个应用程序提供数据传输的多路复用同时也提供用户数据报端到端的数据验证 UDP 利用 IP 协议来传送报文它既不对所传送报文实行端到端的确认也不保证报文按序到达同时也没有提供流量控制等手段控制两站点间数据传输的流量3 不管怎样UDP 仍然具有相当广泛而且相当灵活的应用实际上现代通信网络具有很高的可靠性UDP 为此提供了尽可能的最小控制开销有时为了可靠地传递少量的数据而浪费大量的控制信息是很不值得的即使由于某种原因通信质量下降也能够由程序控制重传或者切换到另一个可能的服务器上正因为如此有许多常见的应用是采用 UDP 协议来实现的比如说为其他 TCP/IP 应用提供名字解析服务的域名解析系统(Domain Name ServerDNS)单纯文件传输协议(Trivial File Transfer ProtocolTFTP)SNMP 等都采用 UDP 协议传输数据同时 UDP 还具有实时传递数据的特性因此许多应用程序都使用 UDP 传送音频和视频等大量的多媒体数据例如实时传输协议Real-time Transport ProtocolRTP在因特网上的实现就是利用 UDP 来实时传递数据的基于 C/S 的网络监控管理系统的设计与实现-13-(2)TCP IP 协议建立了 TCP/IP 网络无连接不可靠的最基本数据报传送服务UDP利用 IP 协议来传送报文这样就增加了同一台主机上多个应用同时传输数据的多路复用功能然而 UDP 和 IP 协议一样 也只能提供无连接和不可靠的服务3 和 UDP 不同TCP 虽然也是建立在 IP 协议之上但 TCP 却能提供面向连接可靠的流传输为此它也付出了相当大的开销TCP 在进行数据传输前首先会在源端点和目的端点之间建立一条连接如果连接建立失败源端点和目的端点之间就不再会有数据传送对于传输的每个报文TCP 都需要源端点向目的端点发送确认信息如果在适当的间隔内源端点收不到确认源端点会重新发送未被确认的报文不管下层的 IP 数据报是否按序到达目的主机TCP都会保证数据按照原有的发送顺序传递给应用程序另外TCP 还提供了流量控制和拥塞控制避免了因接收缓冲区溢出或者网关拥塞而导致的大量数据重传 TCP 提供了非常可靠的数据传输服务这非常方便编程使用因而有大量的应用采用它2.1.3 TCP和UDP协议的比较 使用 UDP 时每个数据报中都给出了完整的地址信息因此无须建立发送方和接收方的连接对于 TCP 协议由于它是一个面向连接的协议在进行数据传输之前必然要建立连接所以在 TCP 中多了连接建立的时间 一般情况下TCP 和 UDP 共存于一个 Internet 中前者提供高可靠性服务后者提供高效率服务高可靠性的 TCP 用于一次要交换大量报文的情形比如文件传输远程登录等高效率的 UDP 用于一次传输交换少量报文尤其是交易型应用比如数据库查询的情形其可靠性由应用程序提供因为交换次数不多即便发生传输错误必须重传应用程序也不会为此付出太大的代价 总之TCP 在网络通信上具有极强的生命力例如 Telnet 和 FTP 都需要不定长度的数据被可靠地传输相比之下UDP 操作简单而且仅需要较少的维护因此通常用于局域网中高可靠性的应用程序对于 TCP 来说可靠的传输是要付出代价的确认与超时重传等机制必然要占用计算机的处理时间和网络的带宽因此 TCP 传输的效率不如 UDP 高因此对于不需要保证严格的传输可靠性的应用比如视频会议系统并不要求音频视频数据绝对正确而只要保证连贯性就可以了这种情况下显然使用 UDP 会更合理一些2.2 网络监控管理系统的基本体系结构信息技术的高速发展推动了应用程序结构不断更新从单机时代的主机/终基于 C/S 的网络监控管理系统的设计与实现-14-端模式文件服务器时代的共享数据模式客户机/服务器时代的 C/S 模式到电子商务时代的 B/S 模式应用程序的体系结构已经发生了巨大的变化主机/终端模式由于硬件选择有限硬件投资得不到保证已被逐步淘汰而文件服务器时代的共享数据模式只适用小规模的局域网对于用户多数据量大的情况就会产生网络瓶颈特别是在互联网上不能满足用户要求因此网络监控管理系统平台模式主要考虑的是 C/S 模式和 B/S 模式2.2.1 C/S结构C/S 结构是常用的网络设计模型网络通信要求在两台计算机或互相对话的两个程序之间建立网络连接网络连接包括通信进程的两端以及它们之间的通道(1)C/S 结构的概念按照计算机体系结构的观点可以把 C/S 结构分为硬件的 C/S 结构和软件的 C/S 结构硬件的 C/S 结构是指将给定的处理任务在两台或多台机器之间进行分配其中客户机用来提供用户接口客户机使用的各种资源有硬件服务器提供把提供服务的一方称为硬件服务器如打印服务器文件服务器等软件的 C/S 结构是指一个软件系统或应用系统按照逻辑功能分成若干个组成部分再根据相对角色的不同将其分别定义为客户端软件和服务器端软件客户端软件能够请求服务器端软件提供服务服务器端软件则专门用于处理客户端请求服务器端软件常提供下列类型的服务数据库服务远程过程调用和应用程序服务C/S 结构将网络应用程序分为两部分客户端部分和服务器端部分网络连接的客户端请求服务器端提供服务和信息服务器端对客户端的请求做出响应也就是说在 C/S 结构中网络应用程序完成两个独立的和定义好的功能请求信息和对请求信息做出响应请求信息是客户端应用程序对请求信息做出响应的程序充当服务器端程序(2)C/S 结构的特点 C/S 应用系统基本运行关系体现为请求/响应的应答模式每当用户需要访问服务器时就由客户端发出请求服务器接受请求并响应然后执行相应的服务将执行结果送回给客户端由它进一步处理后再提交给用户 C/S 结构被设计成两层模式显示逻辑和事务处理逻辑部分均被放在客户端数据处理逻辑和数据库放在服务器端5从 C/S 意义上来讲一层就代表一个具有定义好的特定功能平台在一个两层系统中第一层包含一个运行主基于 C/S 的网络监控管理系统的设计与实现-15-应用程序的客户工作站这个客户程序除了系统所要求的所有逻辑功能外还拥有用户接口功能因为客户程序负责这么多核心的功能所以在两层结构的环境中的客户端应用程序通常被称为胖客户具体的说胖客户是指加载了应用程序的核心功能的一个两层客户/服务器环境中的一个客户机这种结构如图2-2图 2-2 两层 C/S 模式结构 两层 C/S 结构的特点如下所列?具有成熟的设计开发方法和工具经过多年的积累基于 C/S 模式的系统设计开发方法已被用户所熟悉和掌握?C/S 开发和维护的成本较高对不同客户端要开发不同的程序编程工作量大如果应用程序要进行安装和升级均需要在所有的客户机上进行复杂而且麻烦?C/S 的客户端具有显示与处理数据的功能负载较重应用系统的功能越来越复杂客户端的应用程序也变得越来越庞大而不断提高客户机的配置又加重了投资的成本?C/S 系统模块中每一部分的变动均要关联到其他模块的变动灵活性差?C/S 系统中的客户机直接同服务器相连数据库的事务处理逻辑包含在客户端应用程序中未经授权的用户可以很容易的通过应用程序侵入系统2.2.2 B/S结构 随着 Internet/Intranet 技术的不断发展尤其是基于 Web 的信息发布和检索技术导致了整个应用系统的体系结构从 C/S 的主从结构向灵活的分布式结构演变在当今以 Web 技术为核心的信息网络中这一演变给体系结构的应用赋予了新的内涵这种新型的分布式结构就是 B/S 结构B/S 模式结构如图 2-3 所示客户机服务器请求响应基于 C/S 的网络监控管理系统的设计与实现-16-图 2-3 B/S 模式结构 B/S 模式是一种以 Web 技术为基础的新型的系统平台模式把传统 C/S 模式中的服务器部分分解为一个数据服务器与一个或多个应用服务器Web 服务器构成一个三层结构的客户服务器体系 第一层客户端浏览器是用户与整个系统的接口客户端的应用程序精简到用一个通用的浏览器软件如微软公司的 IE 等浏览器将 HTML 代码转化成图文并茂的网页网页还具备一定的交互功能允许用户在网页提供的申请表上输入信息提交给后台并提出处理请求这个后台就是第二层的 Web 服务器 第二层Web 服务器将启动相应的进程来响应这一请求并动态生成一串HTML 代码其中嵌入处理结果返回给客户端的浏览器如果提交的请求包括数据的存取Web 服务器还需与数据库服务器协同完成这一处理工作 第三层数据库服务器的任务是负责协调不同的 Web 服务器发出的请求管理数据库 B/S 模式具有以下优势 (1)简化了客户端它无须象 C/S 模式那样在不同的客户端上安装不同的客户应用程序客户端只要安装有浏览器软件即可使用系统这样不但可以节省客户端的硬盘空间与内存而且使安装过程更加简便网络结构更加灵活用户只需通过浏览器查询和处理相关的数据其次它简化了系统的开发和维护系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序只需把所有的功能都实现在 Web 服务器上然后按照不同的功能为各个组别的用户设置权限就可以了各个用户通过 HTTP 请求在权限范围内调用 Web 服务器上不同处理程序从而完成对数据的查询或修改 相对于 C/SB/S 的维护具有更大的灵活性当形势变化时它无须再为每一个现有的客户应用程序升级而只需对 Web 服务器上的服务处理程序进行修订这样不但可以提高企业的运作效率还省去了维护时协调工作的不少麻烦客户端浏览器Web 服务以网页格式返回用户请求 客户网页请求 数据请求 数据应答数据库基于 C/S 的网络监控管理系统的设计与实现-17-如果一个企业有上千台客户机且分布在不同的地点那么便于维护将会显得尤为重要 (2)使用户的操作变得更简单对于 C/S 模式客户应用程序有自己特定的规格使用者需要接受专门培训而采用 B/S 模式时客户端只是一个简单易用的浏览器软件无论是决策层还是操作层的人员都无须培训就可以直接使用B/S 模式的这种特性还使系统维护的限制因素更少2.2.3 C/S模型与B/S模型的比较 在 C/S 结构模式的网络中用户界面业务功能数据处理和信息查询等的完成基本上都在客户端该模式下所有的客户机与服务器相连服务器负责数据的处理客户端负责与用户的交互向后台的服务器发出请求其数据业务流程如图 2-2 所示C/S 结构的数据交互性强能够处理大量的数据流存取安全处理速度快界面友好根据该特点C/S 模式适合于固定小范围安全性要求高处理数据量大的领域 在 B/S 结构模式中Internet 客户端不再与数据相关联的服务器直接相连而是通过 Web 服务器与数据库服务器相连用户的请求先送到 Web 服务器再由 Web 服务器通过中间件送到数据库服务器而 Web 服务器负责将处理结果格式化为 HTML 格式最后再反馈给客户其数据业务流如图 2-3 所示在该模式下数据处理在数据库服务器上完成业务功能由 Web 服务器完成用户界面就是客户端的浏览器该模式的客户端程序简单而统一以浏览器作为统一的用户界面操作简便系统开发和维护费用少软件更新仅涉及到服务器端的软件更新由于其客户端不直接与数据库服务器相连接提高了数据库的安全但是由于客户端不需安装其它的软件客户通过浏览器就可以访问数据库若系统的安全权限管理不严密容易出现不安全的因素根据这个特点该模式适合于在安全性和数据交互性不高地点灵活的广域范围内 本系统主要针对局域网中的网络监控并且监控端与受控端之间存在大量的数据流因此本系统采用两层 C/S 结构作为应用程序的结构2.3 基于Winsock的网络通信原理 套接字(Sockets)最初是由加利福尼亚大学 Berkeley 分校为 UNIX 操作系统开发的网络通信接口随着 UNIX 操作系统的广泛使用套接字成为当前最流行的网络通信应用程序接口之一套接字是通信的基石是支持 TCP/IP 协议的网络通信的基本操作单元可基于 C/S 的网络监控管理系统的设计与实现-18-以将套接字看作不同主机间的进程进行双向通信的端点每个网络对话包括两个端点本地主机(或进程)和远端主机(或进程)它构成了在单个主机内及整个网络间的编程界面4套接字存在于通讯域中通讯域是为了处理一般的线程通过套接字通讯而引进的一种抽象概念套接字通常和同一个域中的套接字交换数据Winsock 规范支持单一的通讯域即 Internet 域各种进程使用这个域互相之间用 TCP/IP 协议体系来进行通讯套接字可以根据通讯性质分类这种性质对于用户是可见的应用程序一般仅在同一类的套接字间通讯不过只要底层的通讯协议允许不同类型的套接字间也照样可以通讯根据网络通信的特性套接字可分为两类流套接字和数据报套接字流套接字提供了双向有序的无重复并且无记录边界的数据流服务数据报套接字支持双向的数据流但并不保证是可靠有序无重复的流和数据报套接字编程时序图分别如图2-4 和图 2-5 所示图 2-4流套接字编程时序图 图 2-4 说明服务器必须先启动直到它执行完 accept 调用进入等待状态后才能接受客户请求假如客户先启动则 connect将返回出错代码连接不成功面向连接的服务器处理的请求往往比较复杂不是一来一去的请求应答所能解决的而且往往是并发服务器利用 Winsock 编程可划分成以下几项内容 (1)初始化 Winsock 资源 在使用 Winsock 之前必须对其进行初始化使用 WSAStartup 函数可对Socket()Bind()Listen()Accept()Read()Write()Closesocket()阻塞等待客服务器Socket()Connect()Write()Read()Closesocket()客户机建立连接请求数据应答数据基于 C/S 的网络监控管理系统的设计与实现-19-Winsock 库进行初始化操作(2)创建套接字并绑定 调用 socket 函数创建一个待使用的套接字通过这个函数的参数定义了套接字的类型网络地址类型和使用的协议使用 bind 函数绑定套接字通过它将创建好的套接字与本地地址和本地端口联系起来一个完整的网络通信必须具备协议本地地址本地端口远端地址和远端端口 5 个基本要素在创建套接字时确定了协议类型而在绑定套接字时确定本地地址和本地端口远端地址和远端端口的确认需要通过下面讨论的连接和通信类函数实现 (3)建立 socket连接 在客户端使用 connect 函数和服务器建立连接而在服务器端则使用 listen监听来自客户的连接请求并通过调用 accept 函数接受客户的连接请求 (4)通过套接字进行网络通信 发送数据使用 writewritevsendsendto 和 sendmsg 函数其中前三个用于面向连接的数据发送另外两个用于无连接的数据发送接收数据使用 readreadvrecvrecvfrom和 recvmsg他们和上面的发送函数是一一对应的(5)关闭套接字 释放 Winsock 资源在通信结束后使用 closesocket 关闭不再使用的套接字并调用 WSACleanup 释放底层的资源图 2-5数据报套接字编程时序图图 2-5 说明无连接服务器也必须先启动否则客户服务请求就传不到服务Socket()Bind()Readfrom()处理服务请求Sendto()Closesocket()阻塞等待客服务器Socket()Bind()Sendto()Readfrom()Closesocket()客户机服务请求服务应答基于 C/S 的网络监控管理系统的设计与实现-20-器进程无连接服务器一般都是面向事务处理的一个请求一个应答就完成了客户程序与服务程序之间的相互作用2.4 Winsock下网络通信的编程实现22.4.1应用程序与Winsock的关系目前通信网的协议多采用 TCP/IP但是所开发的网络通信应用程序并不能直接与 TCP/IP 核心打交道而是与网络应用编程接口 Winsock API 打交道Winsock API 则可直接与 TCP/IP 核心进行沟通Winsock API 在继承了 Berkeley套接字主要特征的基础上又对它进行了重要扩充如提供了异步处理函数增加了符合 Windows 消息驱动特性的网络事件异步选择机制这些扩充有利于应用程序开发者编写符合 Windows 编程模式的软件它使在 Windows下开发高性能的网络通信程序成为可能5应用程序调用 Winsock API 实现相互之间的通讯Winsock 又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作这样就隐藏了网络底层复杂的结构和协议应用程序在网络上传输接收的信息都通过这个 SOCKET 接口来实现在应用程序中就像使用文件句柄一样可以对 SOCKET 句柄进行读写操作应用程序与 Winsock 的关系如图 2-6 所示图 2-6 应用程序与 Winsock的关系2.4.2 Winsock网络编程接口函数在 VC 中进行 Winsock 的