C++基于Garch方法的网络流量预测.doc_第1页
C++基于Garch方法的网络流量预测.doc_第2页
C++基于Garch方法的网络流量预测.doc_第3页
C++基于Garch方法的网络流量预测.doc_第4页
C++基于Garch方法的网络流量预测.doc_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南大学毕业设计(论文) 第 页2010届毕业生毕业论文题 目: c+基于garch方法的网络流量预测 院系名称: 计算机学院 专业班级: 计算机应用技术06级03班 学生姓名: 学 号: 指导教师: 教师职称: 讲师 2010 年 6 月 2 日c+基于garch方法的网络流量预测摘要随着网络技术发展、网络带宽的不断增加、用户数量的急速膨胀以及业务类型的多样化,人们经常会遇到网络拥塞和服务质量低等一系列问题,加强网络管理和改善网络的运行已成为当务之急。掌握网络行为的基本特征,发现网络行为变化的基本规律,构造出反映网络行为的数学模型是流量预测的内在需求。本系统是基于广义自回归条件异方差garch(generalized autoregressive conditional heteroscedasty model)模型对流量进行预测。系统利用网络侦听原理通过套接字来实现对局域网流量的监控及截获并统计,再通过garch方法对网络实时流量计算,得出均值和条件方差来实现对网络流量的预测。系统经过测试,能够较好的预测出流量区间。最后,本系统还构建了以udp洪泛攻击的模拟测试实验,测试的结果系统正常显示由于攻击导致的流量异常,由此发出预警信息,告知用户可能受到网络攻击,从而做到自我保护,提高网络质量。关键字:预测,garch,异常,网络流量,套接字湖南大学毕业设计(论文) 第 49 页network traffic prediction based on garch modelabstractwith the development of network technology,increasing network bandwidth,the rapid expansion of the number of users and diversification of business types,people often encounter the problem of network congestion and low quality of service, strengthening the network management and improveing the operation of the network has become a top priority.mastering the basic characteristics of network behavior,finding the basic rule of changes in network behavior, creating a reflection of the mathematical model of network behavior is the inherent demand for network traffic prediction.the system is based on the generalized autoregressive conditional heteroscedasticity garch (generalized autoregressive conditional heteroscedasty model) model to predict traffic.the system uses the principle of the network through the listening socket to achieve the monitoring of lans traffic, interception of network traffic and statistics,then computing real-time traffic through garch model to obtain the average and conditional variance to achieve the prediction of the network traffic.the system tested, that can better predict the network traffics range.at last,we set up a experiment based on udp attacking to test the system.the results show that the outlier traffic which was caused by attack, informing the user may be subject to network attacks, in order to protective measures by yourself,improving network quality of service.keywords: prediction,garch,outlier,network traffic,socket目 录1 绪论11.1研究的背景和目的11.2国内外研究现状与研究成果11.3论文结构32相关理论知识与技术42.1 tcp/ip协议体系结构42.2 网络流量检测的基本方法52.2.1 网络侦听的原理52.2.2 嗅探器72.2.3 简单网络协议82.3 网络协议报文分析82.4 网络流量预测模型分析112.4.1 arima112.4.2 arch模型122.4.3 garch模型132.5 网络流量预测模型选择132.6 小结143系统总体设计与具体实现153.1 开发环境及工具153.1.1 操作系统153.1.2 vc+6.0环境153.2 需求分析与系统整体框架图153.2.1 初始化模块的功能163.2.2 网络数据获取模块的功能173.2.3 网络流量统计模块的功能173.2.4 网络流量预测模块的功能173.3 网络数据获取模块的实现183.3.1 数据包头文件解析183.3.2 原始套接字的实现193.3.3 显示接收原始数据包信息203.4 网络流量统计模块的实现213.4.1 定时器的实现213.4.2 统计协议的显示223.5 网络流量预测模块的实现223.5.1 garch模型的实现223.5.2 实时预测的显示233.6 小结244测试254.1界面功能254.2运行测试264.3 网络攻击行为分析284.4测试工具294.5异常测试304.6小结32结束语33致 谢34参考文献35附 录361 绪论1.1研究的背景和目的在通信网络技术发展的过程中,针对网络流量进行建模和预测研究一直备受人们关注。网络流量模型是进行网络性能分析和网络规划设计的基础,一个好的流量模型与预测方法对设计新一代网络协议、网络管理与诊断、设计高性能的路由器和负载均衡器等网络硬件设备以及提高网络的服务质量都有重要意义1。随着网络带宽的增加以及各种网络服务的出现, 以往的流量模型也难以满足对现有以及将来网络流量的精确描述及预测, 因此, 针对以往的流量模型以及预测方法的利弊, 为网络流量提供更为准确的模型和预测显得十分必要。具体在日益受人们关注的网络安全领域, 针对网络流量(用户网络行为)的建模以及预测对于改进入侵检测,提前发现网络的异常或者攻击行为提供了一个方向。本文研究的目的有一下几点:1.通过对套接字的编程来截获网络中的实时流量,同时掌握套接字编程的基本方法。2采用图表方式显示整个网络的流量情况和预测结果,从而进一步熟悉mfc图形用户界面程序的开发。3.对流量数据进行分类和统计,了解tcp/ip数据包的结构和多种网络协议。4.采用garch算法实现对网络流量的预测,能够利用数学建模思想和时间序列解决实际问题。1.2国内外研究现状与研究成果近年来,随着用户数量的急速膨胀和业务类型的多样化, internet呈爆炸性地增长,人们经常会遇到网络拥塞和服务质量低等一系列问题,加强网络管理和改善网络的运行已成为当务之急。这就需要掌握网络行为的基本特征,发现网络行为变化的基本规律,构造出反映网络行为的数学模型。另一方面,理解网络行为特征是网络规划与建设、网络安全、高性能协议设计等诸多研究工作的重要前提,而网络流量预测和分析是研究网络行为的基础,通过预测和分析,可以为网络行为特征的理解提供真实有效的分析数据。因此网络流量的预测一直为国内外学者和研究机构所关注1。通信网络中的流量模型可以分为稳定的和不稳定的两种,其中,稳定的流量模型又分为长相关(long- range dependent,lrd)和短相关(short-range dependent,srd)两类,短相关模型仅仅对于小的时间尺度范围内存在显著的相关结构,而长相关在很宽广的范围内都存在,即具有长期的依赖性。短相关模型主要包括马尔可夫(markov)过程和自回归模型(ar),长相关模型主要包括分形自回归求和滑动平均模型(f-arima)和分形布朗运动模型(fbm)等。回归模型说明随机序列中下时刻的随机变量是由过去一个特定时间窗口中的随机变量以及一个白噪声滑动平均值来决定的2,因而经常通过一个有关过去随机变量的函数来定义下一时刻的随机变量。回归模型比较容易生成,而且经常可以用马尔可夫模型来近似化,因而在网络流量模拟中应用较多。由于网络流量中的相关性,在流量模型的建立以及预测中,拥有一个自回归组件是很重要的。主要研究成果为:1. 自相似网络流量预测网络自相似过程概念被首次3提出以来,针对网络自相似特性展开了大量研究。研究证明了不同网络环境传输和不同协议下网络流量自相似现象存在的普遍性自相似现象增加队列长度、缓冲需求容量、端到端延迟以及丢包率,延长拥塞周期等等,这些性能指标的恶化程度与度量自相似程度的hurst参数成正比。研究了降低hurst参数改善网络性能指标的方法。通过自相似网络流量预测来提高网络响应能力。在基于自相似特性的网络流量预测时,往往由于自相似计算过程复杂,计算量大而导致其在实际过程中无法满足实时预测应用的要求本文在对当前自相似网络流量预测进行综述和研究的基础上,根据网络自相似流量特性提出了一种自相似网络流量预测算法。分析表明,该算法在不明显降低预测效果的情况下,可显著减少计算量4。2. 基于小波变换的网络流量预测模型近年来对网络流量研究发现,实际流量不能简单地用传统的possion分布进行刻画,而是表现出明显的尺度特性在人尺度上表现出自相似,在小尺度上表现出多重分形5。所以,大多是基于线形模型来近似处理流量的发展趋势,主要有基自回归(ar)或自回归滑动平均(arma)的预测模型,这些模算法比较简单,短期预测有较高的精度,但不适用于长期预测。实际流量往往具有分形特性,建立自相似基础上的预测模型farima可以同时刻画长相关与短相关特性,在小尺度与多步网络预测上有较好的精度,但是计算量比较大。而小波变换在经济预测方面有了较深入的研究,将其应用到网络流量中来会有一种新的突破。小波是一种时频域变换方法,小波变换对具有长程依赖性的流量起到了去相关作用,在时域不容易解决的问题可以转化到频域中来。通过小波变换信号可以一层一层地分解到不同的频域上,分解后的信号在频域上比原始信号单一,并且对信号作了平滑,因此分解后信号的平稳性比原始信号好得多。对于某些非平稳时间序列,其小波分解后的流量可以平稳时间序列来处理,这样就可以采用传统的预测方法对分解后的时问序列进行预测,从而为某些非平稳时间序列的预测提供一种新的方法。另外“压缩性”(compression)是小波变换的基本特性之一,即小波变换系数相比原来的信号变得“稀疏”,能量主要集中在少数系数上,因而具有明显的非高斯性6。1.3论文结构 本论文解释和分析了网络流量预测系统的设计,具体结构如下:第一章 绪论:阐述了网络流量预测系统在显示生活中应用的背景,开发系统的研究目的,以及讲解了国内外研究现状与研究成果。第二章 系统需求分析:分析了网络流量预测系统的功能需求和性能需求。讲解了系统需求的前提所需要的理论知识,包括侦听原理和方法,网络协议报文分析,模型分析和模型选择等。第三章 系统总体设计与具体实现:说明了系统的总体设计,包括开发环境,系统总体框架,各个模块的功能和流程图。阐述了各个模块的具体实现和相应的代码。第四章 测试:测试网络流量预测系统的运行情况,分析各个模块和功能是否实现成功。最后对整个系统和论文作出总结。2 相关理论知识与技术2.1 tcp/ip协议体系结构1.应用层应用层提供给利用tcp/ip协议进行通讯的程序。应用指的是一台主机上的用户进程与另一台主机上的进行协作(仅仅在一台主机上通信也有好处)。应用的例子包括telnet和文件传输协议(ftp)。在应用层和传输层之间的接口是以端口号和套接字来定义。2.传输层传输层从一个应用程序向它的远程端传输数据以提供首位相接的数据传输。可以同时支持多个应用。用得最多的传输层协议是传输控制协议(tcp),它提供面向连接的可靠的、完整性检查的数据传输、拥塞控制河流控制。还有一个数据传输协议是用户数据报协议(udp),它提供无连接的、不可靠的传输。结果,当应用使用udp协议时,如果他们非常希望的话,不得不自己提供首尾连接的完整性、流控制和拥塞控制。通常,udp应用于一些需要快速的传输机制和允许一些数据丢失的场合。3.网络层网络层(internetwork layer)也称作internet layer或network layer,它提供“虚拟”的网络(这个层把更高的层与比它地得物理网络结构隔开)。ip协议是这层最重要的协议,它是一个无连接的协议,它并不保证比它低的层的可靠性。ip协议并没有提供可靠性、流控制、或错误恢复,这些功能必须由更高的层来提供。ip协议提供了路由功能,它负责传送需要传送的信息到它的目的地。在一个ip网络中的信息单元称之为ip数据报,这是通过tcp/ip网络传输信息的基本单元。其他的网络层协议有ip,icmp等。4.网络接口层网络接口层也被称为连接层(link layer)或数据连接层(data-link layer),它是真正的网络迎接的借口。这个接口可能提供可靠的数据传输,也可能不提供,它可能是面向数据流的或者数据包的。事实上,tcp/ip在这里并没有制定任何协议,但是可以利用几乎所有的可用的网络接口,它加强ip层的适应性。tcp/ip规范中并没有强制性的为网络层描述或定制一个标准,它们紧紧是定制了一个从网络接口层访问这些协议的方式。tcp/ip协议体系结构如图2.1所示:图2.1 tcp/ip协议体系结构图tcp/ip协议的核心部分是传输层协议(tcp、udp),网络层协议(ip)和物理接口层,这三层通常是在操作系统内核中实现。编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函数。前者为核内实现,后者为核外实现。用户服务要通过核外的应用程序才能实现,所以要使用套接字(socket)来实现。图1.2 tcp/ip协议与应用程序关系图2.2 网络流量检测的基本方法2.2.1 网络侦听的原理以太网(ethernet)协议的工作方式是将要发送的数据包发往连接在一起的所有主机。在包头中包括有应该接收数据包的主机的正确地址,因为只有与数据包中目标地址一致的那台主机才能接收到信息包,但是当主机工作在监听模式下的话不管数据包中的目标物理地址是什么,主机都将可以接收到。许多局域网内有十几台甚至上百台主机是通过一个电缆、一个集线器连接在一起的,在协议的高层或者用户来看,当同一网络中的两台主机通信的时候,源主机将写有目的的主机地址的数据包直接发向目的主机,或者当网络中的一台主机同外界的主机通信时,源主机将写有目的的主机ip地址的数据包发向网关。但这种数据包并不能在协议栈的高层直接发送出去,要发送的数据包必须从tcp/ip协议的ip层交给网络接口,也就是所说的数据链路层。网络接口不会识别ip地址的。在网络接口由ip层来的带有ip地址的数据包又增加了一部分以太祯的祯头的信息。在祯头中,有两个域分别为只有网络接口才能识别的源主机和目的主机的物理地址这是一个48位的地址,这个48位的地址是与ip地址相对应的,换句话说就是一个ip地址也会对应一个物理地址。对于作为网关的主机,由于它连接了多个网络,它也就同时具备有很多个ip地址,在每个网络中它都有一个。而发向网络外的祯中继携带的就是网关的物理地址。 以太网(ethernet)中填写了物理地址的祯从网络接口中,也就是从网卡中发送出去传送到物理的线路上。如果局域网是由一条粗网或细网连接成的,那么数字信号在电缆上传输信号就能够到达线路上的每一台主机。再当使用集线器的时候,发送出去的信号到达集线器,由集线器再发向连接在集线器上的每一条线路。这样在物理线路上传输的数字信号也就能到达连接在集线器上的每个主机了。当数字信号到达一台主机的网络接口时,正常状态下网络接口对读入数据祯进行检查,如果数据祯中携带的物理地址是自己的或者物理地址是广播地址,那么就会将数据祯交给ip层软件。对于每个到达网络接口的数据祯都要进行这个过程的。但是当主机工作在监听模式下的话,所有的数据祯都将被交给上层协议软件处理。 当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网的时候,那么要是有一台主机处于监听模式,它还将可以接收到发向与自己不在同一个子网(使用了不同的掩码、ip地址和网关)的主机的数据包,在同一个物理信道上传输的所有信息都可以被接收到。 在unix系统上,当拥有超级权限的用户要想使自己所控制的主机进入监听模式,只需要向interface(网络接口)发送i/o控制命令,就可以使主机设置成监听模式了。而在windows9x的系统中则不论用户是否有权限都将可以通过直接运行监听工具就可以实现了。 在网络监听时,常常要保存大量的信息(也包含很多的垃圾信息),并将对收集的信息进行大量的整理,这样就会使正在监听的机器对其它用户的请求响应变的很慢。同时监听程序在运行的时候需要消耗大量的处理器时间,如果在这个时候就详细的分析包中的内容,许多包就会来不及接收而被漏走。所以监听程序很多时候就会将监听得到的包存放在文件中等待以后分析。分析监听到的数据包是很头疼的事情。因为网络中的数据包都非常之复杂。两台主机之间连续发送和接收数据包,在监听到的结果中必然会加一些别的主机交互的数据包2.2.2 嗅探器嗅探器(sniffer)是一种基于被动侦听原理的网络分析方式。使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息。当信息以明文的形式在网络上传输时,便可以使用网络监听的方式来进行攻击。将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获。sniffer技术常常被黑客们用来截获用户的口令,据说某个骨干网络的路由器网段曾经被黑客攻入,并嗅探到大量的用户口令。但实际上sniffer技术被广泛地应用于网络故障诊断、协议分析、应用性能分析和网络安全保障等各个领域。嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。2.2.3 简单网络协议简单网络管理协议(snmp)首先是由internet工程任务组织(internet engineering task force)(ietf)的研究小组为了解决internet上的路由器管理问题而提出的。它可以在ip,ipx,appletalk,osi以及其他用到的传输协议上被使用。 简单网络管理协议(snmp)是最早提出的网络管理协议之一,它一推出就得到了广泛的应用和支持,特别是很快得到了数百家厂商的支持,其中包括ibm,hp,sun等大公司和厂商。目前snmp已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于snmp的。2.3 网络协议报文分析 1ip(rfc-791)7ip(internet protocol,网络之间互连的协议),也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。正是因为有了ip协议,因特网才得以迅速发展成为世界上最大的、开放的计算机通信网络。因此,ip协议也可以叫做因特网协议。通俗的讲:ip地址也可以称为互联网地址或internet地址。是用来唯一标识互联网上计算机的逻辑地址。每台连网计算机都依靠ip地址来标识自己。就很类似于我们的电话号码样的。通过电话号码来找到相应的使用电话的客户的实际地址。全世界的电话号码都是唯一的。ip地址也是一样。版本:长度4位,标识了报文的ip版本号,比如ipv4(ipng),ipv6等,这个4位字段的值通常为二进制表示,比如ipv4=0100。报头长度:字段长度为4位,它表示ip报头的长度(即报文头的长度,而不包含具体数据长度),设计报头长度字段的原因是报文的选择项字段大小会发生变化。服务类型:字段长度为8位,它用来指定特殊的报文处理方式。服务类型字段又被划分为了2个部分:优先权和tos。总长度:字段长度为16位,它的指整个ip报文的长度,以8bit字节为单位,其中包括ip报头。我们只需要用ip总长度减去ip报头长度就能知道了报文实际数据的大小。16位长度的二进制数用十进制表示最大可以为65535,所以ip报文的最大长度是65535。标识符:字段长度为16位,通常与标记字段和分片偏移字段一起用于ip报文的分片。分片偏移:字段长度为13位,给分片的文件进行重新排序,避免混乱。生存时间:字段长度为8位,也就是跳数的大小。协议:字段长度位8位,它主要是标识出传输层的地址或协议号,也就是说表示数据要进行什么样的上层服务。报头校验和:字段长度16位,针对ip报头进行纠错。源地址和目标地址:也就是两端的地址,比如ip地址。可选项:主要用于测试。填充:该字段通过在选择字段后面添加0来补足32位,保证报文长度是32比特的倍数。2tcp(rfc-793) 8tcp是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(transport layer)通信协议,由ietf的rfc 793说明(specified)。在简化的计算机网络osi模型中,它完成第四层传输层所指定的功能。tcp报文格式源端口(source port):16位。目端口(destination port):16位。序列号(sequence number):32位,分配给报文的序号,用于跟踪报文通信顺序,确保无丢失。确认号(acknowledgement number):32位,所期待的下一个tcp报文的序列号,并表示对此序列前报文正确接收的确认。报头长度(hlen):报文头部的字节数。保留域(reserved):6位,设置为0 。编码位(code bits):控制功能(如tcp连接的建立和终止)。窗口(window):16位,发送者同意接收的字节数。校验和(checksum):16位,报头和数据字段的校验和。紧急指针(urgent pointer):指示紧急数据段的末尾。选项(option):当前定义tcp段的最大值。数据(data):上层协议数据 。3udp(rfc-768)9udp协议是英文user datagram protocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用udp协议。与我们所熟知的tcp(传输控制协议)协议一样,udp协议直接位于ip(网际协议)协议的顶层。根据osi(开放系统互连)参考模型,udp和tcp都属于传输层协议。数据报的长度是指包括报头和数据部分在内的总的字节数。因为报头的长度是固定的,所以该域主要被用来计算可变长度的数据部分(又称为数据负载)。数据报的最大长度根据操作环境的不同而各异。从理论上说,包含报头在内的数据报的最大长度为65535字节。不过,一些实际应用往往会限制数据报的大小,有时会降低到8192字节。udp协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此udp协议可以检测是否出错。这与tcp协议是不同的,后者要求必须具有校验值。udp报文格式源端口(source port):16位。目端口(destination port):16位。报头长度(hlen):报文头部的字节数。校验和(checksum):报头和数据字段的校验和。数据(data):上层协议数据。4icmpicmp(internet control message protocol,即internet控制报文协议),它是tcp/ip协议族的一个子协议,用于在ip主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。icmp报文格式响应应答不可到达源抑制重定向响应请求超时参数失灵时间戳请求时间戳应答地址掩码请求地址掩码应答2.4 网络流量预测模型分析2.4.1 arimaarima模型全称为自回归移动平均模型(autoregressive integrated moving average model,简记arima),是由博克思(box)和詹金斯(jenkins)于70年代初提出的一著名时间序列预测方法,所以又称为box-jenkins模型、博克思-詹金斯法。其中arima(p,d,q)称为差分自回归移动平均模型,ar是自回归, p为自回归项; ma为移动平均,q为移动平均项数,d为时间序列成为平稳时所做的差分次数。arima模型的基本思想:arima模型的基本思想是:将预测对象随时间推移而形成的数据序列视为一个随机序列,用一定的数学模型来近似描述这个序列。这个模型一旦被识别后就可以从时间序列的过去值及现在值来预测未来值。现代统计方法、计量经济模型在某种程度上已经能够帮助企业对未来进行预测。arima模型预测基本程序1.根据时间序列的散点图、自相关函数和偏自相关函数图以adf单位根检验其方差、趋势及其季节性变化规律,对序列的平稳性进行识别。一般来讲,经济运行的时间序列都不是平稳序列。 2.对非平稳序列进行平稳化处理。如果数据序列是非平稳的,并存在一定的增长或下降趋势,则需要对数据进行差分处理,如果数据存在异方差,则需对数据进行技术处理,直到处理后的数据的自相关函数值和偏相关函数值无显著地异于零。 3.根据时间序列模型的识别规则,建立相应的模型。若平稳序列的偏相关函数是截尾的,而自相关函数是拖尾的,可断定序列适合ar模型;若平稳序列的偏相关函数是拖尾的,而自相关函数是截尾的,则可断定序列适合ma模型;若平稳序列的偏相关函数和自相关函数均是拖尾的,则序列适合arma模型。 4.进行参数估计,检验是否具有统计意义。 5.进行假设检验,诊断残差序列是否为白噪声。 6.利用已通过检验的模型进行预测分析。arima模型中的一种arima(p,d,q)模型公式为: (2.1)其中 (2.2)并且 (2.3) 我们称为自回归算子,为移动平均算子。2.4.2 arch模型arch模型由美国加州大学圣迭哥分校罗伯特恩格尔(engle)教授1982年在计量经济学杂志(econometrica)的一篇论文中首次提出。此后在计量经济领域中得到迅速发展。 所谓arch模型,按照英文直译是自回归条件异方差模型。粗略地说,该模型将当前一切可利用信息作为条件,并采用某种自回归形式来刻划方差的变异,对于一个时间序列而言,在不同时刻可利用的信息不同,而相应的条件方差也不同,利用arch 模型,可以刻划出随时间而变异的条件方差10。一个最简单的arch模型: (2.4) 误差项的方差由两部分组成:一个常数项和前一时刻关于变化量的信息。用前一时刻的残差平方表示(arch项)。在这个模型中存在为条件的异方差。 由于值依赖于前一时刻的变化量,我们记这个模型为arch(1)。更一般的,方差依赖于任意多个滞后变化量,我们记arch(p): (2.5)2.4.3 garch模型garch模型全称为广义自回归条件异方差模型(genralizd autoregressive conditional heterosccdasticity model)。garch模型认为预测的误差值与许多时刻之前的变化量相关, garch模型其中一种为garch(1,1)模型11: (2.6)误差项的方差分为3个部分:一个常数项,前一时刻变化量(rach),以及前一时刻的方差。一般情况下,我们可以有多个arch项和garch项。grach(p,q)模型代表下面的的方程: (2.7)2.5 网络流量预测模型选择 1.arima模型arima模型在数据充分的情况下有较高的精度,但不足之处也是处在的,例如,此类模型是基于过去流量的变化规律来推断或预测未来值,只利用了网络流量的历史数据,没有考虑其他任何影响因素(如没有考虑用户的正常操作的影响),而网络流量和很多因素有关的,所以当流量急剧变化时,预测结果与实际结果可能存在较大出入。 2arch模型arch模型被认为是最集中反映了方差的特点而被广泛应用于时间序列分析模型。但与garch模型比较,arch模型并不能反映出方差的过去变化对预测值的影响,并且为了准确预测下一时刻的值,往往把参数设置的很大。3garch模型garch模型是在arch模型上的推广,在arch模型上增加了一个garch项(过去方差值),从而可以个好的预测网络流量。 在局域网中,用户的合法操作不会对网络流量产生很大的影响,只有当遭到网络攻击或用户的非法操作才会产生很大的波动,同时网络流量会随时间的推移而持续递增或递减,所以我们选择了garch模型。2.6 小结 本章主要阐述了系统功能需求,以及系统需求的前期理论知识的预备工作,其中包括流量的检测方法、网络协议报文分析、网络流量预测模型分析和模型选择等。3 系统总体设计与具体实现3.1 开发环境及工具3.1.1 操作系统microsoft windows 2000/xp/server或者以上版本3.1.2 vc+6.0环境visual c+ 不仅仅是一个编译器。它是一个全面的应用程序开发环境,使用它你充分利用具有面向对象特性的 c+ 来开发出专业级的 windows 应用程序。visual c+作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。在使用visual c+开发应用程序的过程中,系统为我们生成了大量的各种类型的文件。visual c+采用的框架是mfc。mfc不仅仅是人们通常理解的一个类库。你如果选择了mfc,也就选择了一种程序结构,一种编程风格。mfc 是一个很大的、扩展了的 c+ 类层次结构,它能使开发 windows 应用程序变得更加容易。mfc 是在整个 windows 家族中都是兼容的,也就是说,无论是 windows3.x、windows95 还是 windows nt,所使用的 mfc 是兼容的。每当新的 windows 版本出现时,mfc 也会得到修改以便使旧的编译器和代码能在新的系统中工作。mfc 也回得到扩展,添加新的特性、变得更加容易建立应用程序。使用 mfc 的最大优点是它为你做了所有最难做的事。mfc 中包含了上成千上万行正确、优化和功能强大的 windows 代码。你所调用的很多成员函数完成了你自己可能很难完成的工作。从这点上将,mfc 极大地加快了你的程序开发速度。由于mfc编程方法充分利用了面向对象技术的优点,它使得我们编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大功能足以完成我们程序中的绝大部分所需功能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调试性。3.2 需求分析与系统整体框架图随着网络环境的复杂化,需要一个网络流量管理的系统来方便用户对网络流量的获取及分析。作为一个网络流量预测的系统,提供给用户除了要显示实时流量和预测流量值外,还要有一个预警的功能,从而可以提醒用户可能受到网络攻击,做到自我防护,为了知道网络的真实情况,系统还要提供数据包头文件分析处理出的信息以供用户参考。功能需求如下:1、初始化模块:函数和数据的初始化,mfc自带框架程序等。2、网络数据获取模块:创建原始套接字,数据包的获取,显示获取数据包的信息。3、网络流量统计模块:实现一个定时器,显示统计协议,其中包括tcp/udp/icmp。4、网络流量预测模块:利用garch模型进行网络流量预测,显示预测结果以及流量异常显示。根据功能需求,下面给出了网络流量预测系统构架图,如图3.1所示:图3.1 网络流量预测系统构架图3.2.1 初始化模块的功能初始化模块主要是实现某些函数和数据的初始化,包括mfc自带框架程序等,其主要是系统自动完成。3.2.2 网络数据获取模块的功能网络数据获取模块主要实现对套接字的创建、绑定、设置参数,利用rev()函数来接收流经网卡的数据包,实现数据包的捕获,对捕获的数据包头利用自定义的数据包头文件进行解析,同时传给网络流量统计模块必要的信息,并且显示获取数据包的信息。其实现的流程图如下: 图3.2 网络数据获取模块流程图3.2.3 网络流量统计模块的功能网络流量统计模块的实现,是将网络数据获取的信息按照时间存储到时间队列中,需要一个定时器,它是通过ontmier()函数实现的。把接收到的数据传给流量预测模块后,对历史流量进行计算。其实现的流程图如下: 图3.3 网络流量统计模块流程图3.2.4 网络流量预测模块的功能网络流量预测模块在流量统计的基础上建立一个数学模型,通过对数据进行处理,得到一个预测区间,显示得到的预测结果,接着根据得到的实际流量进行判断,看流量是否在预测区间内,如果在区间内则说明流量是正常的,否则说明流量是异常的。其实现的流程图如下。 图3.4 网络流量预测模块流程图3.3 网络数据获取模块的实现3.3.1 数据包头文件解析 原始套接字捕获数据包不仅仅是单纯的数据流,还包括了ip头等,对此进行分析。在这里介绍了ip报文头和tcp报文头。ip报文头: byte version;/版本 byte hdrlen;/ihl byte servicetype;/服务类型 word totallen;/总长 word id;/标示 word flags;/标志 word fragoff;/分段偏移 byte timetolive;/生命期 byte protocol;/协议 word hdrchksum;/头校验和 dword srcaddr;/源地址 dword dstaddr;/目的地址byte options;/选项tcp报文头: word srcport;/源端口 word dstport;/目的端口 dword seqnum;/顺序号 dword acknum;/确认号 byte dataoff;/tcp头长 byte flags;/标志 word window;/窗口大小 word chksum;/校验和 word urgptr;/紧急指针3.3.2 原始套接字的实现在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的的数据包。所以我们要想实现截获流经网络设备的所有数据包,就要采取一点特别的手段了:将网卡设置为混杂模式。这样一来,该主机的网卡就可以捕获到所有流经其网卡的数据包和帧。但是要注意一点,这种截获仅仅是数据包的一份拷贝,而不能对其进行截断,要想截断网络流量就要采用一些更底层的办法了,不在本文的讨论范围之内。在创建了原始套接字后,需要用wsaioctl()函数来设置一下,具体实现如下所示:recvbuf = new char65535;/缓冲区大小szlocalname = new char 256;/开启socket接口if (wsastartup(makeword(1,1), &wsd) != 0) afxmessagebox(wsastartup() failed !);return ; /创建原始套接字 socket=wsasocket(af_inet, sock_raw,ipproto_ip,null,0,wsa_flag_overlapped);/获取本机ip地址char far name128;gethostname(name, sizeof(name);struct hostent far * phostent;phostent = gethostbyname(name);lpstr lpaddr = phostent-h_addr_list0;struct in_addr inaddr;memmove (&inaddr, lpaddr, 4);cstring str = inet_ntoa (inaddr);setdlgitemtext(idc_static_ip,本机地址:+str);/填充sockaddr_in结构的内容sockaddr_in sa;sa.sin_family = af_inet;/ 端口号可以随便改,当然与当然系统不能冲突sa.sin_port = htons(6000); /绑定memcpy(&(sa.sin_addr),phostent-h_addr,phostent-h_length);bind(socket,(lpsockaddr)&sa,sizeof(sa);/置ioctl来接收所有网络数据dword dwbufferlen10 ;dword dwbufferinlen = 1 ;dword dwbytesreturned = 0 ;wsaioctl(socket, sio_rcvall,&dwbuffer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论