流的老化
由于网络上的流是阵发性的,在几秒时间就会产生数万条流,而NDE(NetStream Data Exporter)设备内存的容量是一定的,这样就需要把当前的部分流删除,为后面到来的流提供内存空间,这个过程称为老化。
流老化的分类:
定时老化
对非活跃时间(从最后一个报文到达到当前的时间)超过非活跃老化时间,或活跃时间(从第一个报文流过到当前的时间)超过活跃老化时间的流进行老化。当在流缓存区中的流超过活跃老化时间时,系统不会将流立刻进行老化,直到一个新的流到来时,系统对流进行老化;在超过非活跃老化时间后,系统立即对流进行老化,而不管此时是否仍然处于活跃老化时间内。
活跃老化时间主要用于持续时间较长的流量,定期输出统计数据;
非活跃老化时间主要用于短时流量,流量停止则立即输出统计数据,节省内存空间。
由TCP连接的FIN和RST报文触发老化
对于TCP连接,当有标志为FIN或RST的报文发送时,表示一次会话结束。因此当一条已经存在的TCP协议NetStream流中流过一条标志为FIN或RST的报文时,可以立即把相应的NetStream流老化掉。
对于TCP连接的FIN和RST报文,系统默认的处理是立即老化。但如果需要对不同TCP-flag的流量进行统计,则可以通过命令配置为FIN和RST报文不触发老化。
统计字节超过限制时老化
流缓存区中的流需要记录流过的报文字节数,当字节数量超过定义的变量上限时,缓存区就会溢出。所以系统在检测到某条流的字节统计超过限制时,为了避免计数错误,系统会立即自动把该流老化掉。
强制老化
用户可以通过配置将当前流缓存区中的原始流全部老化掉。该功能主要用于老化条件尚未满足,但又需要最新的统计信息,或者NetStream业务发生异常,导致流缓存区中某些流始终不老化。