网络异常流量分析系统设计

article/2025/9/21 4:09:26

为什么要监测分析异常流量?

网络管理人员都希望在网络性能突然下降的时候找到“真凶”所在,并迅速解决问题。利用网络异常流量监测的方法,可以非常直观地看到网络流量是否有突然增长或者突然下降的现象,并进一步分析是那些用户产生了最多的流量、使用了那些应用以至于网络运转出现性能问题。并根据最终分析的结果,网络管理人员可快速解决掉网络异常问题,保证网络的正常运行。

现有的网络异常流量监测方案

  1. 基于网络流量分类
    基于端口、基于DPI、基于统计、基于行为

  2. 基于统计
    给出数据服从某种概率分布,通过不一致性发现异常数据
    方法:混合模型、信号处理、PCA

  3. 基于聚类
    基本思想:对正常数据进行聚类,与正常据类结果差别较大判为异常;正常数据离聚类的形心更近,可以用距离来度量;小的聚类和稀疏的聚类被视为异常
    方法:K-Means

  4. 基于信息论

基于动态基线(统计)

基线的定义

将一天分成多个时段并将每天相同时段的正常流量计算其平均值。这些连续不同时段的流量平均值便形成了流量基线。

基线的重要性

基线反映了网络正常行为下所呈现的流量变化趋势,是一项重要的流量指标。如果网络中有异常流量发生,将直接反映于流量变化上。

动态基线分析监测程序

  1. 决定基线分析的对象与单元
    网络进出流量所占带宽比率

  2. 计算对象的基线值
    b = a*y + (1-a)*b1

  3. 制定动态分级告警规则
    建立描述待检测流量和基线偏离程度的方程式:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 说明流量异常的信息(受感染网络的异常流量的大小强度、持续时间以及部分异常流量细节)
    首先计算流量偏离值;
    根据流量排序,选择贡献较多流量偏差的主机;
    累计偏离值,找出异常主机。

网络异常流量分析系统模型

流量异常检测
系统模型如图所示:
在这里插入图片描述
流量数据传输到预测器,输出流量预测值到检测器,检测器根据预测值以及数据分析后输出检测结果,如果有异常则发出警告。

预测器设计

预测方法:用线性回归方法预测流量值

预测模型首先对正常流量趋势进行拟合,当异常流量出现时能较好地做出反应,避免了样本不平衡与漏报的情况。但是由于流量波动的存在,导致某些正常的波动被识别为异常情况,阈值选取过大,可能会出现报警延迟或漏报;阈值选取过小,则可能会出现误报的情况。因此误报情况较多,该模型在初期实现了70%的准确率。

改进:被判定为异常值的值与正常值的最大值差距不大时,可能只是正常抖动,并非异常值,为了进一步解决误报情况,需要对误差值进行处理,采用了误差排序的方式,通过对误差进行降序排序E,对比误差序列间的差值情况D

检测器设计

残差 相对误差
使用基于残差的检测方法,需要我们针对不同的系统流量设置不同的阈值。

大部分系统白天流量大,相对波动小,下跌10%可能意味着比较严重的问题,而深夜流量小,相对波动较大,下跌30%才可能意味着存在系统故障。所以基于相对残差的检测方法也不能够设置统一的阈值来检测异常。

参考文献:
[1]郭炜. 基于动态基线的业务运营支撑网异常流量检测研究[C]//.2011年通信与信息技术新进展——第八届中国通信学会学术年会论文集.,2011:451-454.
[2]流量异常监测


http://chatgpt.dhexx.cn/article/40Ja4lHc.shtml

相关文章

国内首个开源网络流量可视化分析平台 -- 流影

流影:基于流量的网络行为高级分析平台 流影是一款基于全流量的高级网络行为分析平台,该系统是由深海鱼(北京)科技有限公司流影项目组研发设计,首发开源是1.0版本。 项目简介 深海鱼(北京)科技有限公司专注于为客户提供优质的数据分析相关服务,近年来立足于客户的数字安…

大数据综合项目--网站流量日志数据分析系统(详细步骤和代码)

文章目录 前言:基本概述Sqoop概述什么是Sqoop Flume概述什么是Flume为什么需要flume HIve概述什么是Hive 系统背景:模块开发数据采集使用Flume搭建日志采集系统 数据预处理实现数据预处理 数据仓库开发数据导出日志分析系统报表展示 前言: 提…

实战演习(四)——网络流量系统分析简介

笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为…

网络流量在线分析系统的设计与实现

编译环境:visual studio2019,安装并配置winpcap和pthreads库函数 1 配置环境 1.1 安装vscode 参考微信公众号 软件安装管家。 1.2 安装MinGW-w64 下载地址:添加链接描述 安装参考博客:MinGW-w64安装配置全过程 第一步&#xf…

时间范围查询

开发工具与关键技术: VS,条件查询 作者:卢惠圳 撰写时间:2019年8月16日 在页面的表格数据中会有要根据时间来作为查询条件的数据,一般是根据时间范围来进行查询所以这里也是时间范围的查询,先将表格和进行时间范围查询…

oracle语句查询时间范围

oracle语句查询时间范围 参考网址 : https://blog.csdn.net/weixin_36436373/article/details/116541220?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167930069316800188562500%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%25…

VUE时间范围选择的组件

最近手写了一个框选时间的组件,可以按半个小时为单位选择时间 代码部分 <template><div><div class"byted-schedule"><table :key"itemKey" class"byted-schedule-calendar-table"><thead><tr><th rows…

Mysql获取指定时间范围数据

MySQL获取某个时间范围内的数据 TO_DAYS(date)函数。 to_days()&#xff1a;返回从0000年至当前日期的总天数。 目录 1、今天(TO_DAYS()) 2、今天昨天(TO_DAYS()) 3.近7天(DATE_SUB()) 5.本月(DATE_FORMAT()) 6.上一月(PERIOD_DIFF()) 7.本季度 8.上季度 9.本年 ​1…

Mybatis-Plus时间范围查询

方式一 通过apply方法&#xff0c;来实现时间范围查询&#xff0c;该方法可用于数据库函数&#xff0c;动态入参的params对应前面applySql内部的{index}部分&#xff0c;这样是不会有sql注入风险的&#xff0c;反之会有! apply(String applySql, Object... params) apply(boo…

elementui DateTimePicker组件 限制时间范围(包含时分秒)

1、基础范围控制&#xff08;只控制日期&#xff0c;不含时分秒&#xff09; <template><el-date-pickertype"datetime"v-model"startDate"value-format"yyyy-MM-dd HH:mm:ss"placeholder"选择开始时间"size"mini"…

MongoDB查询某个时间范围

MongoDB 时间范围查询目前有两种方式&#xff1a; DateISODate MongoDB条件对应关系 (>) 大于 - $gt(<) 小于 - $lt(>) 大于等于 - $gte(< ) 小于等于 - $lte Date方式 例如查询时间段为2023.01.03<日期<2023.01.05可翻译为&#xff1a; "日期字段名&…

移动端时间范围选择

div模块 <div className"choseDate"><div className"range"><input classNamestartTime onClick{()>{this.setState({startVisible:true})}} placeholder"请选择开始日期" value{this.state.startTime} /><DatePickert…

sql查询时间范围数据

mapper.xml >查询一定时间范围 条件:年月日 时分秒 <if test"creatAt ! null and creatAt ! "><![CDATA[and DATE_FORMAT(ride_order.created_at, %Y-%m-%d %h-%m-%s)> DATE_FORMAT(#{creatAt}, %Y-%m-%d %h-%m-%s) ]]></if><if test&qu…

JAVA判断当前时间在时间范围内

我们在日常开发的时候肯定有围绕时间选择的一些功能, 今天给大家分享一个java如何判断当前时间是否在所选择时间范围内的一个小demo public static void main(String[] args) throws ParseException {SimpleDateFormat ft new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss&q…

JavaScript 时间范围

当前时间往前的时间范围&#xff08;六个月之前&#xff09; 效果图 js文件代码片 /*查询日期区间&#xff08;当前时间往前&#xff09; Add By Vivian 2020/12/04 */ //rangeVal:两个日期的间隔符 num&#xff1a;隔多少 timeType&#xff1a;相隔时间类型 function funGet…

JavaScript如何判定一个给定的时间区间在哪些时间段范围内?

作者 | 十方 来源 | https://segmentfault.com/a/1190000041958661 有这样的一个场景&#xff1a;给定一个时间区间&#xff0c;需要判定这个时间区间在哪些时间段范围内. 比如时间段范围如下&#xff1a; [["00:00","01:00"],["01:00","02…

Impala-shell命令参数

文章目录 1. impala-shell外部命令2. impala-shell内部命令 1. impala-shell外部命令 所谓的外部命令指的是不需要进入到impala-shell交互命令行当中即可执行的命令参数。impala-shell后面执行的时候可以带很多参数。你可以在启动 impala-shell 时设置&#xff0c;用于修改命令…

Impala和Hive的关系(详解)

Impala和Hive的关系 Impala是基于Hive的大数据实时分析查询引擎&#xff0c;直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中。并且impala兼容Hive的sql解析&#xff0c;实现了Hive的SQL语义的子集&#xff0c;功能还在不断的完善中。 Hive hi…

impala理论篇之三:impala介绍

简介 Impala是Cloudera公司主导开发的新型查询系统&#xff0c;是Google Dremel的开源实现。它提供SQL语义&#xff0c;能够查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义&#xff0c;但是由于Hive底层执行使用的是MapReduce引擎&#xff…

Impala优化

作为铺垫&#xff0c;本文首先对Broadcast Join和Partitioned Join进行简要介绍。 Broadcast Join 顾名思义&#xff0c;Broadcast Join就是广播的方式进行Join。以下图为例&#xff0c;假设Join操作为SELECT A JOIN B ON A.idB.id&#xff0c;Broadcast Join就是将B表&#…