基于Windows平台的网络流量统计及控制系统的设计与实现
网络流量监控与分析系统的设计与实现研究

网络流量监控与分析系统的设计与实现研究随着互联网和各种互联网应用的快速发展,网络流量的管理和控制已经成为了一个重要的话题。
网络流量分析系统可以帮助网络管理员了解网络状态、监测网络活动和提高网络管理的效率。
在这篇文章中,我们将介绍一个网络流量监控与分析系统的设计与实现研究,包括系统的功能,设计思路和技术实现。
一、系统功能网络流量监控与分析系统是一个用于管理和控制网络流量的工具,其功能包括:1、流量监测:从网络中捕获数据流并记录下来。
2、流量分析:对捕获的数据流进行过滤和分析,获取有用的信息。
3、流量控制:根据分析结果,对网络流量进行控制。
4、流量预测:结合历史流量数据,预测未来的流量趋势。
二、设计思路网络流量监控与分析系统的设计需要考虑到以下方面:1、数据捕获:需要通过网络抓包技术来获取网络数据。
2、数据处理:需要对抓到的数据进行清洗和过滤,将有用的数据提取出来,如源地址、目的地址、端口等信息。
3、数据存储:需要将处理后的数据存储到数据库中,以便后续的分析和查询。
4、数据分析和预测:需要进行统计和分析,以便更好地理解网络流量的趋势和特征。
5、用户交互:需要一个友好的用户界面,方便管理员使用和配置系统。
三、技术实现为实现上述的设计思路,我们选择了以下技术:1、数据捕获:使用tcpdump抓包工具,可以通过命令行来进行抓包操作。
2、数据处理:使用Python编程语言,通过过滤器等方式清洗和提取数据。
3、数据存储:使用MySQL数据库来存储数据。
4、数据分析和预测:使用Python的数据分析和机器学习库,如pandas、numpy和scikit-learn等,来进行数据分析和预测。
5、用户交互:使用Web框架Django来实现用户界面。
四、系统架构基于上述设计思路和技术实现方法,我们提出了以下的系统架构:1、数据采集和处理模块:负责从网络中获取数据,并将数据进行清洗和过滤,提取有用的信息。
2、数据存储模块:将处理后的数据存储到MySQL数据库中。
网络流量监测系统的设计与实现

网络流量监测系统的设计与实现随着互联网的不断发展,网络已经成为人们日常生活中不可缺少的一部分。
人们通过网络获取信息、进行交流、购物、娱乐等活动,而这些活动都会产生巨大的网络流量。
然而,网络流量的不断增长也带来了一些问题。
为了优化网络资源的利用以及保障网络安全,网络管理员需要对网络流量进行监测和管理。
而网络流量监测系统的设计与实现成为解决这些问题的重要手段之一。
网络流量监测系统的概念网络流量监测系统是指通过对网络流量的采集、分析和展示来帮助网络管理员对网络流量进行管理的系统。
网络流量监测系统可以实现对网络流量的监测和分析,可以统计和分析网络流量的来源、流向、传输速率、流量类型等信息,以及对网络异常情况进行实时监测。
通过这些分析和监测数据,网络管理员可以了解网络使用情况,并针对性地进行优化管理,同时也可以及时发现网络异常情况并采取相应的措施,保证网络的正常运行。
网络流量监测系统的设计与实现网络流量监测系统是一个涉及到多个方面的系统,它包括了网络流量的采集、处理、分析和展示等多个环节。
下面,我们一步步地分析这些环节,探讨网络流量监测系统的设计与实现。
1.网络流量采集网络流量采集是网络流量监测系统的第一步,它是指对网络流量的采集和存储。
网络管理员可以通过设置网络流量采集器,在网络设备的端口上进行网络流量的采集。
采集到的网络流量数据通常会被存储在数据库中,以供后续的数据处理和分析使用。
2.网络流量处理网络流量处理是网络流量监测系统的第二步,它是指对采集到的网络流量数据进行预处理和格式转换。
在网络流量采集器采集到的网络流量数据中,包含了大量的无意义数据和冗余数据,需要进行预处理和格式转换,以便后续的数据分析和展示。
网络管理员可以使用网络流量处理工具,对采集到的网络流量数据进行分类、去重和压缩等操作,从而提高数据的效率和精度。
3.网络流量分析网络流量分析是网络流量监测系统的核心环节,它是指对处理后的网络流量数据进行分析和统计。
计算机网络流量监控的设计与实现

计算机网络流量监控的设计与实现一、计算机网络流量监控的设计和实现1.1监控系统管理模块计算机网络流量监控系统管理模块作为基础模块,主要包括了:管理功能以及系统的配置功能。
其中管理功能利用密码与用户名来阻止非系统人员的错误操作或是使用流量监控系统。
这里所说的用户指的是超级管理人员以及系统管理人员这两级用户。
超级管理人员能够增加管理人员的用户、修改管理人员的权限、删除管理人员的用户以及修改自身的密码等。
用户能够修改自身的密码。
系统的配置功能主要是用于完成整个系统的使用设置以及监控的网关地址等。
1.2流量采集模块和站点流量的管理模块(1)流量的采集模块作为关键模块,其主要负责计算机网络设备中的采集流量数据,并预处理收集到的流量数据,再将指定的流量数据存储到数据库中。
(2)站点流量的管理模块是以管理站点作为基础单位。
将被访问的站点根据新闻型站点、影视型站点、聊天型站点以及娱乐型站点等进行分类,并将这些站点的设置信息存储到服务器的数据库中,从而增强分类监控管理。
1.3实时流量与性能的监控模块实时的流量与性能监控模块也属于关键模块,其是基于端口的流量监控来完成监控管理工作。
以流量采集模块为前提,能够对端口的实际流量情况进行实时地监控,并利用图表形式来直观地选择端口的流量状况。
流量监控主要包括了:(1)指定IP和IP区段之间的流量监控。
(2)协议端口处的流量监控。
(3)指定AS和AS之间的流量监控。
实时流量与性能的监控模块还能够对计算机网络性能发出报警信号。
报警主要分成两类:(一)流量堵塞报警。
当流量上升时,就会达到设定域值。
(二)计算机网络堵塞报警。
当计算机流量增加时,丢包、交换机、路由器的中央处理器与内存储能力会发生严重性故障。
报警对性能管理、安全管理以及故障管理有着重要的影响。
二、计算机网络流量监控实现的核心技术要求计算机网络流量监控实现的核心技术是实时的数据采集技术。
这种技术是由Cisco企业研发的一种计算机交换技术,主要是利用对通过计算机网络设备中的的IPFlow实行统计与检测。
计算机网络流量监控的设计与实现

Network World ・网络天地Electronic Technology & Software Engineering 电子技术与软件工程• 29【关键词】网络监控 流量测量 采集技术 技术构架 局域管理伴随着计算机技术的飞速发展,以网络连接为主导的科技力量逐渐增强,并形成了多点传输、兼容运行的管理机制,视频、下载、多播等技术手段日益丰富。
然而在网络应用不断扩大,线路错综、流量范围不断复杂的今天,网络连接不流畅、流量堵塞、链接速度缓慢、网络病毒传播等现象凸显出来,影响到我们的正常使用。
因此,加强网络流量监控,合理规划流量布置,调整网络运用时差,有效控制网络病毒传播,研发新型网络流量监控系统势在必行。
1 分析计算机网络流量监控技术现状传统的网络流量监控技术,是建立在某一区域内,点对点的直线传输和管理的,它的监控原理是:通过控制数据端口和输出端口的IP 流量,来检测系统内的流量,分析网络资源。
基于人们对现代网络技术的发展需求,开发设计新型网络流量监控系统,可高效、快捷的进行局域网络管理,调节网络流量资源,达到快速上网和减少病毒传播的目的,同时可借鉴传统流量监控技术,合理设计局域网络监控系统。
这类设计应用的特点是:通讯流量大、种类繁多、无固定服务端口、特征变化迅速和可控制管理等。
其监控系统应具有的技术功能:TCP/IP 协议,建设网络的基础单元;数据采集和流量测量技术,网络监控管理的必备条件等。
2 计算机网络流量监控的设计与实现2.1 计算机网络流量监控系统设计的技术构架为满足人们日益增长的网络需求,实现快速、高效的网络链接,合理调节资源配置,有效防范病毒传播,进行可控的网络管理,对局域网络流量监控进行设计(如图1)。
由图可知,局域网络流量监控系统是由系统管理、流量采集、实时性能监控、站点流量管理、P2P 流量计算机网络流量监控的设计与实现文/赵韬及分析统计模块组成,它们相互促进,协调管理,共同完成网络流量监控。
Windows的oS工具管理实现网络流量

Windows的oS工具管理实现网络流量在企业网络管理中我们要想实现流量控制管理、上网行为管理,一般都会选择使用专业的网管软件设备,例如我们熟知的小草上网行为管理软路由。
往往忽视了Windows 7系统中的流量控制功能。
如果你正在使用Windows 7,而你又非常期待你的用户在带宽有限的情况下能够流畅的欣赏Hulu上面的精彩节目,那么Windows系统内建的基于URL 服务质量(QoS)的网络流量管理就非常符合你的需要了。
长期以来,Windows一直采用的QoS网络流量管理使用应用程序、IP地址和端口号来确定流量优先级。
但是对你的商业网络来说,这些方式都可能太复杂了。
从最新的Windows开始,你可以根据网址来设置流量优先级。
这样,网络管理员要做的事情变得非常简单,仅仅需要为网址设置策略,而不再需要围绕IP地址浪费时间。
比如说,你可以把ZDNet设为高优先级(high-priority),同时锁定ESPN。
怎么才能做到这些?首先,你需要在Server 2008 R2中设置QoS策略。
最简单的做法就是使用GPMC(组策略管理面板)。
使这一切成为现实的技术是差分服务代码点(DSCP,Differentiated Services Code Points)。
它来源于互联网网络标准RFC-2474,该标准定义了TCP/IP包头值的设置方法。
它被用于决定在网络中数据包的优先级别。
一般来说,你给一个网站的DSCP值越高,它的流量优先级就越高。
打个比方,如果你给自己公司网站DSCP赋值为63(赋值范围为0-63),则该网站的流量会比ESPN(假如赋值为0)快的多。
对不起,希望ESPN能原谅我这样做,不过大多数公司网络带宽有限,这也是不得已而为之。
实际上,一个网站的流量具体有多少并不仅仅取决于DSCP。
在GPMC中,你同时还需要设置该网站被允许的具体带宽(单位可以是KB/S或者MB/S)。
一旦在策略面板中你设置好DSCP值和相应的限制速度,你就可以将他们指定到各个URL中。
网络流量测量软件的设计与实现(课程设计)

类型:课程设计题目:网络流量测量软件的设计与实现目录摘要 (1)Abstract (2)前言 (4)第一章绪论 (5)1.1 TCP/IP协议及其协议分析方法 (5)1.1.1 分层 (5)1.1.2 IP地址 (6)1.1.3 端口 (6)1.1.4 TCP/IP协议在Windows中的实现 (7)1.2 Winsock编程 (7)1.3 网络流量测量的程序实现原理 (8)第二章TCP/IP协议集 (9)2.1 TCP/IP协议简介 (9)2.2 IP协议 (9)2.3 TCP协议 (10)2.3.1 TCP服务模型 (10)2.3.2 TCP数据段头 (11)2.3.3 TCP协议的建立 (12)2.4 UDP协议 (13)第三章WINSOCK编程概述 (14)3.1 套接字的概念 (14)3.2 套接字的种类 (14)3.3 套接字的建立 (14)第四章网络流量测量的程序实现 (16)4.1 网卡初始化 (16)4.1.1 N etBios概述 (16)4.1.2 利用NetBios来初始化网卡 (16)4.2 原始套接字的设置 (16)4.3 IP包的协议分析 (17)4.4 结果与测试 (19)结论 (21)结束语 (22)参考文献 (23)第一章绪论1.1 TCP/IP协议及其协议分析方法TCP/IP起源于60年代末美国政府资助的一个分组交换网络的研究项目,到现在90年代已发展成为计算机之间最常用的组网形式。
它是一个真正的开放系统,因为协议组件的定义及其多种实现可以不用花钱或花很少的钱就可以公开地得到。
它成为被称作“全球互联网”或“因特网”(Internet)的基础。
1.1.1 分层协议分层的概念的提出是为了减少协议设计的复杂性,每一层都建立到它的下层之上,每一层的目的就是为了向上一层提供特定的服务。
一台机器的第n层向另一台机器的第n 层会话,通话的规则称为协议。
分层和协议构成了网络体系结构。
网络流量监控与分析系统的设计与实现
网络流量监控与分析系统的设计与实现近年来,随着网络技术的发展,人们对网络流量的监控和分析越来越重视。
尤其是在企业、机构和政府部门等组织中,网络流量监控和分析更是必不可少的一项工作。
因此,如何设计一套高效、精准的网络流量监控和分析系统成为了许多人探讨的热点话题。
一、网络流量监控系统的设计网络流量监控系统主要是用来实时监测网络流量的状态和趋势,以及分析流量的来源和去向,帮助管理员及时发现网络异常和安全威胁,并采取相应的措施。
一个完备的网络流量监控系统需要具备以下几个方面的功能:1. 数据采集和流量分析网络流量监控系统最基本的功能就是采集网络流量数据并分析。
数据采集可以通过网络流量镜像、抓包等方式实现。
流量分析则需要对采集到的数据进行深度解析,提取关键信息,并通过相关算法进行处理和分析。
2. 异常检测和告警网络流量监控系统需要能够实时检测网络流量的异常情况,如流量峰值、网络拥堵、恶意流量等,并及时发送告警通知给管理员。
告警通知可以通过邮件、短信等方式实现。
3. 可视化统计和报表网络流量监控系统需要将采集到的数据进行可视化展示,包括流量趋势图、数据统计图表等。
此外,还需要提供定制化报表和数据查询功能,以方便管理员进行数据分析和决策。
二、网络流量监控系统的实现对于一个网络流量监控系统的设计,除了需要考虑系统的功能和性能之外,还需要根据实际情况选择合适的技术和工具进行实现。
下面是一个简单的流量监控系统的实现过程:1. 数据采集和存储网络流量数据的采集可以使用流量镜像或网络抓包等技术,常见的网络流量抓包工具有Wireshark、tcpdump等。
采集到的数据可以存储在关系型数据库或NoSQL数据库中,如MySQL、MongoDB等。
2. 流量解析和处理对于采集到的网络流量数据,需要进行解析和处理,提取出关键信息,如目标IP、源IP、端口号、协议等。
常见的流量解析工具包括Bro、Snort等。
此外,还可以通过Python等编程语言自行开发流量解析程序。
网站流量统计系统的设计与实现
返回主目录
3,研究现状:
到我做这个系统的这个时间节点,做这方面的最全面的就是百 度做的司来说,他们的这个系统太复杂了,太多了,
甚至于说不需要这么全面,因此我做了这个系统来缓解这一现象。我 觉得我的系统更简洁更便利于一些网站管理员。
网站流量统计系统的设计与实现
毕业答辩
目录: 1,选题原因 2,研究背景 3,研究现状 4,主要研究内容 5,最后预期成果 6,参考文献 7,致谢
返回首页
1,选题原因:
这是一个网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站, 在网站上做了些什么,有了这些信息,可以帮助用户改善访客在用户的网站上的使
[4]周刚,赵永军,方小伟.PowerBuilder项目开发实践[M].中国铁道出版社,2003 [5]陈亦强. 资料室图书管理系统的开发和应用[ J ].苏州大学学报(工科版) . 2002年05期 [6]tephen Haag,Maeve Cummings, James Dawkins.Management Information Systems for the imformation age[J], Chi na mchine Press,2000
返回主目录
6,参考文献:
[1]Michael J.Hernandez.Database Design for Mere Mortals[M].中国电力出版社,2003 [2]Graeme Malcolm.SQL Server 2000 with XML[M].清华大学出版社,2003
[3]徐松林,路斌,王冬春.PowerBuilder数据库应用开发教程[M].清华大学出版社,2003
用体验,不断提升网站的投资回报率。这有利于网络管理员对当前网站的管理,因
网络流量统计与分析系统搭建方案制定
网络流量统计与分析系统搭建方案制定在当今互联网高速发展的时代,网络流量的统计和分析对于各类组织和企业来说都具有重要的意义。
通过对网络流量的实时监测和详细分析,我们可以更好地了解网络使用情况,优化网络结构,提高网络性能,保障网络安全。
本文将针对网络流量统计与分析系统的搭建方案进行详细讨论。
一、需求分析在制定网络流量统计与分析系统的搭建方案之前,首先需要明确系统的具体需求。
一般而言,网络流量统计与分析系统应该能够满足以下几个方面的需求:1. 实时监测:能够实时监测网络中各个节点的流量情况,包括入站流量和出站流量,以及各个应用程序的流量占比。
2. 统计分析:能够对网络流量进行统计和分析,包括流量的总量、分时段的流量变化、流量的来源和去向等。
3. 通知报警:能够通过邮件、短信等方式及时通知管理员,当网络流量出现异常或达到预设阈值时能够自动报警。
4. 数据存储:能够将监测到的流量数据进行长期存储,以备后续的分析和查询。
二、系统设计根据上述需求,我们可以设计出如下的网络流量统计与分析系统搭建方案:1. 硬件设备选型:选择适合的硬件设备,包括网络交换机、路由器、服务器等,以满足实时监测和统计分析的需求。
设备的性能和稳定性是选择的关键指标。
2. 网络部署:根据实际情况部署监测点,确保能够全面覆盖组织或企业的网络,以便准确地捕获和统计流量数据。
3. 流量数据采集:在每个监测点处设置流量数据采集设备,将流量数据采集到服务器上进行进一步的处理和分析。
4. 数据存储和处理:选择适合的数据库技术和存储方案,将采集到的流量数据进行长期存储。
同时,建立数据处理模块,对流量数据进行实时分析,并生成各类报表和图表。
5. 报警机制设置:根据预设的阈值设置报警机制,当流量异常或达到预设阈值时,系统能够自动发送邮件或短信通知管理员。
6. 用户界面设计:设计简洁明了的用户界面,使管理员能够方便地查看流量统计和分析结果,并进行相关配置和操作。
基于WinPcap的网络流量统计模块的设计
基于WinPcap的⽹络流量统计模块的设计收稿⽇期:2010-11-16;修订⽇期:2011-03-10作者简介:刘洋(1976-),男,⼭东莱阳⼈,⼯程硕⼠,讲师,主要从事⽹络⼯程管理与安全⽅向研究。
0前⾔我国信息化进程不断推进,Internet 在我国迅速的发展和普及,新鲜的问题越来越突出,许多单位和个⼈不同程度地受到过⿊客的⼊侵和破坏。
同时,由于没有及时有效的应对措施,在受到攻击后不知道如何处理,造成较⼤的损失。
要保证⽹络运⾏的稳定、可靠,⽹络管理和维护者承担着巨⼤的责任和压⼒,必须借助于各种⼯具和⼿段,实时对⽹络进⾏监测,及时发现正在发⽣的和潜在的⽹络故障,并且及时排除,避免故障的蔓延和扩散造成不必要的损失。
1WinPcap 介绍1.1WinPcap 的功能WinPcap (Windows Packet Capture )是为Libp -cap 在Windows 平台下实现数据包的捕获⽽设计的⼀个专业⽹络数据包捕获开发包。
WinPcap 是在BSD 许可证下发布的,在设计WinPcap 时参照了Libpcap ,使⽤⽅法与Libpcap 相似。
它主要由加利福尼亚⼤学的Lawrence Berkeley Laboratory 开发。
使⽤WinPcap 有很多好处,主要体现在以下⼏个⽅⾯。
(1)捕获包括在共享⽹络上各主机发送/接收的以及相互之间交换的数据WinPcap 结构等原始数据包。
(2)在⽹络上发送原始的数据包;(3)在数据包发往应⽤程序之前,按照⾃定义的规则将某些特殊的数据包过滤掉。
(4)收集⽹络通信过程中的统计信息。
1.2⽹络驱动程序接⼝规范(NDIS )⽹络驱动程序接⼝规范(NDIS ,Network Driver Interface Specification )是由微软公司和3Com 公司共同制定的⽹络接⼝驱动规范。
它在Windows 操作系统中的位置如图1所⽰。
NDIS 位于⽹卡与协议层之间,它提供了⼀个接⼝,为上层的协议提供服务,并且屏蔽了下层各种⽹卡的差别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Windows平台的网络流量统计及控制系统的设计与实现夏义三北京邮电大学信息工程学院,北京(100876)E-mail:bupt.ip@摘要:介绍了一种Windows平台下的针对个人微机的网络流量统计及控制系统的总体设计及各个功能模块的实现,给出了系统的架构、软硬件环境以及部分程序代码。
关键词:流量统计,流量控制,传输服务提供者中图分类号:TP3931. 引言在网络管理过程中,网络流量监控是一个重要部分。
有效的网络流量监控不仅能够让网络管理人员及时了解网络的运行状态,并且能够对网络出现的问题做出及时调整和排除。
目前,绝大多数的网络流量监控系统都部署在一个网络的出口处,有串联和旁路两种方式,这是对全网流量进行统计和控制的常用方法。
本文所讲的网络流量统计与控制系统立足于Windows平台的用户终端上,通过中央服务器进行控制,为企业网络管理员提供后台监控和保护敏感信息的手段,以便保障企业的网络运行和信息安全。
本文对该系统的原理、设计进行了介绍和分析,并给出了一种切实可行的实现办法。
2. 系统的设计原理在个人微机上实施网络流量统计与控制的方法有很多,可以在TCP/IP协议栈的多个层来实现。
在各个层上实现的方法不同,实现的难度和执行情况也不同。
本系统以COM技术为基础,综合运用了DOM,SPI等技术,采用插件式架构,具有低耦合,自更新的特点,适用于分布式网络。
系统包括客户端和服务器两个部分,客户端实现流量统计和控制功能,服务器负责存储客户端上报的流量数据,以便管理员查询,管理员还可通过服务器下发具体的流量控制策略。
2. 1 客户端的设计原理流量统计功能在TCP/IP协议栈的数据链路层实现,具体原理是建立一个原始套接字并将其绑定到网卡上,之后就可以通过该套接字的接收缓存获得经过网卡的数据包,从而进行流量的分析和统计工作。
流量控制功能在TCP/IP模型的应用层实现,具体原理是利用Windows系统的SPI(传输服务提供者接口)来截获上层应用程序所发的Winsock调用,Winsock调用包括WSPSocket、WSPCloseSocket、WSPBind、WSPAccept、WSPConnect、WSPSend、WSPSendTo、WSPRecv、WSPRecvFrom[1]。
从这些Winsock调用中可以取得在该socket上进行发送和接收的数据,对这些数据进行分析处理,确定它们所属的业务类型及连接信息,将这些信息与从服务器端下发的流量控制策略匹配,得到控制动作,实施控制行为,从而实现流量控制的功能。
2. 2 服务器端的设计原理为了能定量的观察和控制各用户终端的网络行为,该系统还包含服务器端。
所有安装了该系统客户端的用户终端都会注册到本服务器,并将流量数据及流量控制的记录上报给服务器,系统管理员在登陆到服务器之后,可以通过WEB浏览器管理企业用户信息、查询企业内各用户终端的流量,并可配置流量控制策略并实时更新到各终端。
服务器与客户端的工作情况用以下原理图表示:client client client图1 服务器与客户端工作原理图Fig1 working principle of server and client3. 系统的各模块介绍由于该系统分客户端和服务器两个部分,且二者必须实时通信。
为了保证客户端程序在本地运行的可靠性,以及应对随时可能出现的问题,综合诸多因素,决定将客户端程序按功能划分成几个功能单元,不同功能单元(称为服务)通过这些服务之间定义良好的接口联系起来。
接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。
这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
以下是系统模块通信示意图:图2 系统模块通信示意图Fig2 communication between system modules各模块均被设计成COM组件的形式,都以EXE形式存在,模块之间的通信依靠定制的接口。
在用户终端上安装本客户端后,每当终端上的Windows系统启动完成,由加载程序将核心模块加载进内存,然后由核心模块启动通信模块、流量统计模块以及流量控制模块,通信模块与流量统计/控制模块级别相同,但启动顺序优先。
模块之间使用标准的服务接口连接,组件之间较小的数据传输使用内部消息传递,较大的数据传输使用共享内存或者临时文件方式。
以下简要介绍各模块的功能。
核心模块主要是负责系统的基本服务,如系统启动停止、消息的转发、进程状态监视等。
核心模块由于始终运行于系统内存中,要实时监控其他程序运行,因此要求设计精简,最大化的与其他模块独立,只提供基本的服务。
核心模块按功能又划分为组件管理器、消息转发器、运行时监视器。
每次核心模块启动后,组件管理器负责遍历所有的模块目录,生成模块树,按依赖顺序启动模块,然后在内存中生成模块名与模块编号相对应的模块状态表,以供其他模块查询。
模块间的消息通信由消息转发器负责传递。
定时对各个模块的运行状态进行轮询,并根据需要启动、关闭或更新某些进程。
当在系统运行中启动或者终止某些插件时,应以广播方式通知所有模块。
通信模块由核心模块启动,主要为流量统计和控制模块提供一些基础服务,如将这两个模块的日志上传给服务器,以及将从服务器下发的流量控制策略实施到流量控制模块。
流量统计模块对用户的网络流量进行统计及上报。
通过建一个原始套接字并将其绑定到网卡上,之后就可以通过调用标准的recv函数[2],从该函数对应的接收缓存中取出经过网卡的每个标准的IP数据包;然后对每个IP数据包进行分析。
这不仅仅是统计出一个总流量,还要按类型统计,具体类型有浏览网页、WEB杂项、BT下载、QQ聊天、网易泡泡、雅虎通聊天、FTP下载等。
因此需要对IP包的包头和数据部分进行分析。
分析的结果存入哈希表,在核心模块规定的上报时间内上报给服务器。
流量控制模块对用户的网络流量进行检测,提取出需要监控的业务类型,并根据服务器下发的策略对这些网络通信进行控制。
主要是基于SPI技术,SPI以动态链接库(DLL)的形式存在,它工作在应用层,为上层API调用提供接口函数。
讲自己编写的SPI程序安装到系统之后,所有的Winsock请求都会先发送到这个程序并由它完成网络调用。
所以,我们在这里可以得到所有socket的信息,并对它们进行分析,得到五元组信息[3],并确定它们所属的业务类型。
本系统可以根据报文四元组(目的IP、协议类型、目的端口、源端口)以及业务类型(QQ聊天、BT下载、网易泡泡、雅虎通聊天等)进行控制,决定其是通过还是被阻止。
4. 系统的实现4. 1 开发平台本系统是基于面向服务思想的,虽然独立于编程语言,但由于该系统主要运行于WIN32环境中,出于兼容性和效率两方面的考虑,所以客户端使用C/C++和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 framework4. 2 部分程序为简化模块的调用过程,将所有模块设计成COM组件的形式。
所有模块使用统一接口,使用uuid区分不同模块的接口。
当初始化成功后,模块就通过统一的消息传递来与其他模块通信,通过消息的解析来完成相应的功能。
部分程序如下:(1)建原始套接字,并将其绑定到网卡SOCKET sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP);char LocalName[100];gethostname(LocalName, sizeof(LocalName));hostent *pHost;pHost = gethostbyname(LocalName);SOCKADDR_IN addr_in;addr_in.sin_addr = *(in_addr *)pHost->h_addr_list[0];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(&ProviderGuid, &nError);(3)初始化模块信息的结构体typedef struct{int num;char pluginName[MAX_PLUGIN_NAME_LEN];char pluginVersion[MAX_PLUGIN_VERSION_LEN];}ModuleInfo;(4)向服务器上报消息的结构体typedef struct{filename[MAX_FILE_NAME_LEN];charchar pluginname[MAX_PLUGIN_NAME_LEN];char command[MAX_COMMAND_LEN];char option[MAX_COMMAND_LEN];}DataReport;(5)接收服务器消息的结构体typedef struct{char command[MAX_COMMAND_LEN];char para1[MAX_COMMAND_LEN];char para2[MAX_COMMAND_LEN];char file[MAX_FILE_NAME_LEN];}DataReceive;5. 结论本文给出了一个网络流量统计及控制系统的设计与实现,基于该系统框架的软件已经开发出来,实际使用结果表明本文所述的系统设计是可行的,能够满足一般规模的网络测量的需要。
本系统还可以改进的地方是可以把记录流量控制策略的数据结构改成哈希结构,这样能够缩短匹配策略的时间。
这将在后续的开发中根据需要改进。
参考文献[1] 朱雁辉.《Windows防火墙与网络封包截获技术》[M].北京:电子工业出版社,2001.[2] 王艳平,张越.《Windows网络与通信程序设计》[M].北京:人民邮电出版社,2005.[3] W.Richard Stevens《TCP/IP详解卷1:协议》[M]. 范建华,胥光辉,张涛,等译.北京:机械工业出版社,2005.Design and Implementation of a Net flow Statistic and Controlling System Based on Windows FlatXia YisanSchool of Information Technology,Beijing University of Posts and Telecommunications,Beijing(100876)AbstractThis 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年生,硕士研究生,主要从事网络流量监控方法的研究和应用。