【华为】报文统计的技术NetStream

news/2025/2/23 3:42:01

什么是NetStream

NetStream是一项基于“流”来提供报文统计的技术。它根据报文的目的IP地址、目的端口号、协议号、源IP地址等关键值来区分流信息,并针对流信息进行数据流统计,再将统计信息发送至服务器供分析。通过分析这些统计信息,网络管理员可以确定流量的来源、目的地、占用的出口带宽等内容,进而为计费、网络管理、网络优化等应用提供依据。

NetStream的系统组成

NetStream系统由网络流量输出器NDE(NetStream Data Exporter)、网络流量收集器NSC(NetStream Collector)和网络流量分析器NDA(NetStream Data Analyzer)三部分组成。

NetStream系统组成示意图

  • NDE:负责对网络流量进行分析处理,提取符合条件的流进行统计,并将统计信息输出给NSC。输出前也可对数据进行一些处理,比如将相同的流量统计信息进行合并。

  • NSC:负责存储来自NDE的报文,把统计数据收集到数据库中,可供NDA进行分析。NSC可以采集多个NDE设备输出的数据,对数据进行进一步的处理。

  • NDA:是一个网络流量分析工具,它从NSC中提取统计数据,进行加工处理后生成报表,为各种应用(比如计费、网络管理、网络优化)提供依据。通常,NDA具有图形化用户界面,使用户可以方便地获取和分析收集到的数据。

在实际的应用中,网络设备在NetStream系统中担任NDE角色,NSC和NDA一般集成在同一台NetStream服务器上。

NetStream是如何工作的

NetStream的工作过程如下:

  1. NDE把采集到的关于流的详细统计信息定期发送给NSC。

  2. 信息由NSC初步处理后发送给NDA。

  3. NDA对数据进行分析,以用于计费、网络管理、网络优化等应用。

下图显示了设备作为NDE的NetStream处理过程。


NDE的NetStream处理过程

  1. 设备按照采样方式对业务流量进行NetStream采样。

  2. 设备根据关键值对采样报文进行NetStream流建立。

  3. 设备按照老化方式对流进行NetStream流老化。

  4. 设备按照输出方式进行NetStream流输出。

NetStream的关键技术

NetStream采样

通过设定适当的采样间隔,只针对样本报文进行流信息统计分析,收集到的统计信息可以基本正确地反映整个网络流的状况,同时也能降低使能NetStream功能对设备性能的影响。

NetStream采样有以下四种方式:

  • 随机报文间隔采样:在设置的数量间隔内随机采样报文。

举例:数量间隔设置为100,则每100个报文随机采样1个报文。

  • 固定报文间隔采样:在设置的数量间隔内周期采样报文。

举例:数量间隔设置为100,假设在第5个报文被采样后,则每100个报文都会再次采样,如第105个报文会再采集一次,以此类推采样下去。

  • 随机时间间隔采样:在设置的时间间隔内随机采样报文。

举例:时间间隔设置为100,则每100毫秒随机采样1个报文。

  • 固定时间间隔采样:在设置的时间间隔内周期采样报文。

举例:时间间隔设置为100,假设在第5毫秒进行第一次采样后,则每隔100毫秒都会再次采样,如第105毫秒时会再采集一次,以此类推采样下去。

NetStream流建立

通过在设备的接口配置适当的采样方式对业务流量进行采样,获取采样报文后,NetStream模块依据报文中的关键值建立NetStream流,相同关键值的报文标识为同一条NetStream流。

不同报文类型形成NetStream流的关键值如下:

NetStream流老化

NetStream流老化是设备向NSC输出流统计信息的前提。设备启用NetStream功能后,NetStream流首先会被存储在设备的缓存区中,当缓存区中的NetStream流达到老化条件时,设备会把缓存区中的NetStream流发送给NSC。

NetStream流老化分为以下几类:

  • 活跃流老化

活跃流指从第一个报文开始,一条流在指定的时间内一直能被采集到。当流活跃时间超过设定的时长后,就需要输出该流的统计信息,称为活跃流的老化。

这种老化方式主要用于持续时间较长的流量,定期输出统计信息。

  • 非活跃流老化

非活跃流指从最后一个报文开始,一条流在指定的时间内没有被采集到,设备会向服务器输出该流的统计信息,称为非活跃流的老化。

这种老化方式主要用于短时流量,及时清除缓存区中的无用表项,节省内存空间。

  • 由TCP连接的FIN和RST报文触发老化

当采样的报文中有FIN或RST的报文时,设备会对统计信息进行老化。

  • 超流表规格老化

当NetStream的流表数超过流表规格限制时,为了保证统计信息的正确性,系统会立即自动把该流老化掉。

  • 超字节统计限制老化

当缓存区中的NetStream流的字节数统计超过限制时,如果继续进行累加统计将会发生溢出进而导致统计发生错误。所以设备在检测到某条流的字节数统计超过限制时,设备会立即自动把该流老化掉。

  • 命令行强制老化

用户可以通过执行命令强制将缓存区中所有NetStream流老化。

该功能主要用于老化条件尚未满足,但又需要最新的统计信息,或者NetStream业务发生异常,导致流缓存区中某些流始终不老化。

NetStream流输出

NetStream流输出是指缓存区里面的流老化后把流统计信息输出到指定的NSC,以便后续进行更为详尽的分析。

  • 原始流输出方式

指在流老化时间超时后,每条流的详细统计信息都要输出到NSC。

  • 聚合流输出方式

指对聚合关键项完全相同的原始流信息进行汇总,从而得到对应的聚合流信息,再将聚合流信息输出到NSC。这种输出方式可以明显减少网络带宽的占用。

目前设备支持的聚合方式如下:

  • 灵活流输出方式

指用户根据自身需要自定义NetStream建流的条件,对自定义的流进行分类统计,再将统计信息发送给NSC。灵活流方式相比原始流方式减少了流量占用的带宽。

  • 二层流输出方式

指对网络中流量的二层信息进行统计,并将统计信息发送到NSC。

NetStream输出的报文主要有V5、V8、V9三个版本。所有版本的报文都是通过UDP协议传递统计信息。

  • V5:根据七元组产生原始的数据流,但报文格式固定,不易扩展。

  • V8:支持聚合输出格式,但报文格式固定,不易扩展。

  • V9:基于模板方式,使统计信息的输出更为灵活,可以用来灵活输出各种组合格式的数据。

NetStream流输出是按照流输出方式和版本格式组合而成,具体实现如下:

NetStream的应用场景

NetStream技术是对网络中的业务流量进行统计和分析,因此网络的接入层、汇聚层、核心层都可以部署NetStream。

NetStream技术的应用场景有以下几种:

  • 计费

NetStream可以为基于时间、带宽、服务、应用等资源的计费提供了精细的数据。如企业客户可以使用这些资源信息计算部门费用或分配成本,以便有效利用资源。

NetStream可以为网络管理提供关键信息,如网络流量情况,以便优化网络规划,实现以最小的运营成本达到最优的网络性能和可靠性。

通过在网络的出口部署NetStream,实时监控网络流量,可以获得各种业务占用出口带宽的情况。网络管理员可以根据带宽信息尽早发现网络中不合理的网络规划,及时调整网络资源的合理分配,保障网络的业务稳定可靠运行。

更多网络技术文章 

 点击查看 →【华为】报文统计的技术NetStream网络管理】">


http://www.niftyadmin.cn/n/5862937.html

相关文章

C++面试题,进程和线程方面(1)

文章目录 前言进程和线程有什么不同进程,线程的通讯方式什么是锁为什么说锁可以使线程安全加锁有什么副作用总结 前言 这是个人总结进程和线程方面的面试题。如果有错,欢迎佬们前来指导!!! 进程和线程有什么不同 进程…

【每日论文】TESS 2: A Large-Scale Generalist Diffusion Language Model

下载PDF或阅读论文,请点击:LlamaFactory - huggingface daily paper - 每日论文解读 | LlamaFactory | LlamaFactory 摘要 我们推出了TESS 2,这是一种通用的指令跟随扩散语言模型,其性能优于当代的指令调整扩散模型,有…

数据结构:动态数组vector

vector 是 C 标准库的动态数组。 在C语言中一般初学者会使用malloc,int[n]等方式来创建静态数组,但是这种方式繁琐且容易出错。我们做算法题一般使用动态数组vector, 并且在刷题网站的题目给的输入一般也是vector类型。 示例:vect…

【GPU驱动】OpenGLES图形管线渲染机制

OpenGLES图形管线渲染机制 OpenGL/ES 的渲染管线也是一个典型的图形流水线(Graphics Pipeline),包括多个阶段,每个阶段都负责对图形数据进行处理。管线的核心目标是将图形数据转换为最终的图像,这些图像可以显示在屏幕…

在VSCode中接入deepseek

注册就送14元2000万tokens。 https://cloud.siliconflow.cn/i/rnbA6i6U各种大模型 下面介绍我是如如接入vscode的 左边生成一个key,呆会vscode要用,不然401. 打开vscod,电脑能上网。下插件。 下好要配置 点它一下。 要配置,全…

关于es6-module的语法

ES6(ECMAScript 2015)引入了模块化的概念,旨在使 JavaScript 更加模块化、可维护和可重用。ES6 模块允许我们在不同的文件中组织和管理代码,使得不同模块之间的依赖关系更加清晰。 1. 导出(Export) 1.1 命…

在华为云部署应用,通过阿里云代理调用第三方接口的利弊与解决方案

以下是一篇针对“在华为云上部署应用,通过阿里云代理服务器调用第三方接口”所做的问答与分析整理而成的博文示例,供您发布或分享。内容涵盖了方案现状、主要弊端以及详细的优化与解决思路。 在华为云部署应用,通过阿里云代理调用第三方接口的利弊与解决方案 一、背景介绍 …

SSE/Fetch API+Stream/WebSocket实时流式接收Node后端传来的处理过后的Coze API数据

SSE与Websocket详解,SSE实现对话框流式输出 用户可能在使用Server-Sent Events(SSE)时遇到了困难,特别是在尝试发送POST请求时遇到了限制。我需要确认SSE是否支持POST方法,并解释为什么常见做法是使用GET,同时提供替代方案。 首先,我需要回忆SSE的工作原理。SSE是服务器…