什么是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的工作过程如下:
下图显示了设备作为NDE的NetStream处理过程。
NDE的NetStream处理过程
-
设备按照采样方式对业务流量进行NetStream采样。
-
设备根据关键值对采样报文进行NetStream流建立。
-
设备按照老化方式对流进行NetStream流老化。
-
设备按照输出方式进行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网络管理】">