1.算法运行效果图预览
2.算法运行软件版本
matlab2022A
3.算法理论概述
网络流量能直接反映网络性能的好坏,网络流量的建模与预测对于大规模网络的规划设计、网络资源管理以及用户行为的调节等方面都具有积极意义。本课题首先介绍了网络流量的特征,在分析了小波理论的基础上提出了一种基于小波变换的网络流量预测模型。该模型采用小波分解把网络流量数据分解成小波系数和尺度系数,即高频系数和低频系数,将不同频率成分的系数单支重构为高频流量分量和低频流量分量。
网络特征测量是高性能协议设计、网络设备开发、网络规划与建设、网络管理与操作的基础,同时也是开发高效能网络应用的基础。网络特征测量可以为互联网的科学管理和有效控制以及为互联网的发展与利用提供科学的依据。网络流量特征是高性能通信协议与网络设备设计、网络性能分析、网络设计及其网络负载均衡等QoS保证和性能提升的基础,也是网络服务监控和异常、故障、安全攻击发现的重要手段。可以帮助人们设计更好的网络协议、更合理的网络拓扑结构、更高效的QoS保证手段、更智能的网络监控系统,保证网络高效、稳定、高性能安全地运行。
因特网的通信量连续地变化。不仅是通信量本身,通信量的组成、协议、应用以及用户等也都在改变。对现有网络收集的数据仅仅是在因特网演化过程中的一个“快照”。不能把通信量的结构视为不变的。
由于因特网的异构特性,描述聚合的网络流量特点很困难。在因特网中存在着大量不同类型的应用、多种协议、多种接入技术和多种接入速率,同时用户行为及因特网本身也是变化的。
流量是双向的,通常是不对称的。数据通常在两个方向流动,但两个方向的数据量往往相差很大(尤其是下载万维网的大文件)。多数应用都使用TCP/IP流量。
在因特网的分组流量中,TCP的份额占绝大部分,至今为止TCP协议一直是最重要的协议。即使目前IP电话和多播技术(这些应用是在UDP上运行)得到广泛应用,TCP仍处于主导地位。在可预见的未来仍是如此。正因为这样,许多研究仅关注TCP。
网络流量测量主要分为性能监测与分析、网络拓扑探测、网络的流量分析等三个方面。性能监测与分析,主要是通过监测网络的端到端的时延、抖动、丢包率等特性,了解网络的可达性、利用率以及网络负荷等。网络拓扑探测,主要是通过主动发送TCP包或UDP包,对某一段网络进行探测,以得到这一网段的大致拓扑结构。网络的流量分析,主要是对网络“流”的特性进行测量和分析,以掌握网络的流量特性,比如协议的使用情况,应用的使用情况,用户的行为特征等。网络测量技术总体上可分为主动测量、被动测量和基于SNMP的网络测量三种。由于方法实现方式的不同以及适用范围不同而各有利弊。
系统算法的基本流程如下所示:
4.部分核心程序
```%% 总流量数据
input(:,1)=data01(:,1);
input(:,2)=data02(:,1);
input(:,3)=data03(:,1);
input(:,4)=data04(:,1);
input(:,5)=data05(:,1);
input(:,6)=data06(:,1);
output =data07(:,1);
[ynn,error]=wavelet_func(input,output,input,output);
%结果分析
figure;
plot(ynn,'r*:')%画图
hold on
plot(output,'bo--')%画图
title('预测总流量','fontsize',12)
legend('预测总网络流量','实际总网络流量')
xlabel('时间点')
ylabel('总流量')
figure;
plot(error,'b-o');grid on;
%% 有效流量数据
input2(:,1)=data01(:,2);
input2(:,2)=data02(:,2);
input2(:,3)=data03(:,2);
input2(:,4)=data04(:,2);
input2(:,5)=data05(:,2);
input2(:,6)=data06(:,2);
output2 =data07(:,2);
[ynn2,error2]=wavelet_func(input2,output2,input2,output2);
%结果分析
figure;
plot(ynn2,'r*:')%画图
hold on
plot(output2,'bo--')%画图
title('预测有效流量','fontsize',12)
legend('预测有效流量','实际有效流量')
xlabel('时间点')
ylabel('有效流量')
figure;
plot(error2,'b-o');grid on;
%% 病毒流量数据
input4(:,1)=data01(:,4);
input4(:,2)=data02(:,4);
input4(:,3)=data03(:,4);
input4(:,4)=data04(:,4);
input4(:,5)=data05(:,4);
input4(:,6)=data06(:,4);
output4 =data07(:,4);
[ynn4,error4]=wavelet_func(input4,output4,input4,output4);
%结果分析
figure;
plot(ynn4,'r*:')%画图
hold on
plot(output4,'bo--')%画图
title('预测病毒流量流量','fontsize',12)
legend('预测病毒流量流量','实际病毒流量流量')
xlabel('时间点')
ylabel('病毒流量流量')
figure;
plot(error4,'b-o');grid on;
%%
figure
plot(ynn,'r-');hold on;
plot(ynn2,'k-');hold on;
plot(ynn4,'b-o');hold off;
legend('总流量数据','有效流量数据','病毒流量数据')
```