全称IP Flow Information Export,即IP流信息输出,是网络流量监测的国际标准。IPFIX是IETF的一个工作组,它的主要工作就是制订用于IP网络中的流信息测量标准协议,称为IPFIX协议。因IETF在因特网行业的权威性,IPFIX制订的一系列RFC形式的标准,是专业网络流量监测产品及其企业,都应参考的重要文献。
Netflow 技术于1996年由思科公司发明,于同年5月注册为专利。NetFlow首先用于网络设备对数据交换进行加速,并同步实现对高速转发的IP数据流进行测量和统计。经过多年的技术演进,NetFlow原来用于数据交换加速的功能已经逐步由网络设备中的专用ASIC 芯片实现,而对IP数据流进行测量和统计的功能也已更加成熟,形成了一种专用流交换技术。NetFlow已集成到大多数厂商的路由器和交换机内成为流量监测的事实标准,广泛应用于网络管理。配置方便,安装简单,不需要增加额外设备。
一般定义:流是一系列通过网络中某一观察点的具有相同属性的数据包。属性包括端点、方向、时间粒度、协议层次;端点指的是流的起点和终点;方向可以是单向或双向;时间粒度指数据包的发送起始时间和终止时间;协议层次包括网络各层协议。流记录:一条记录,包含了一个流的有用信息。
IPFIX对流的定义:在一定时间间隔内,经过观察点的一系列IP包。属于同一个流的IP包具有以下一些共同属性:
1. 某些IP层头字段(例如目的IP地址)、传输层头字段(例如目的端口)、或应用层头字段(例如RTP头字段);
2. 包自身的某些特征(例如MPLS标签号);
3. 跟路由器对包处理方式相关字段(例如下一跳IP地址、输出接口)。
Netflow的流定义:流是在两个终端间数据包的单向序列。 Netflow通过以下7个字段定义一个流:源IP地址、目的IP地址、源端口号、目的端口号、传输协议类型、IP Type of Service(即TOS ,DSCP)、输入接口 (ifIndex)。DSCP(Differentiated Services Code Point):区分服务代码点,它定义不同级别的服务,是“优先位”和“服务类型”字段的组合。
每当路由器/交换机收到一个数据包,都会扫描流的字段来判断数据包是否属于一个存在的流。若流已经存在,进行字节和包的累加操作;若流不存在,缓存中生成一个新的流,初始化字节和包数;若判断流已经结束,那么以相应的格式上报流记录。
流的开始时间容易判断,即新流第一个包的时间。如何判断流的结束时间则比较困难。NetFlow流结束时间判断方式:①传输协议出现连接结束标志(TCP FIN or RST );②无流量超过15秒 (用于UDP协议,或TCP双方掉线情况);③流缓存每30分钟过期,对于长期存在的活动流,周期性输出流记录,保证及时输出流信息(15秒 /30分钟是路由器缺省的定时时间);④缓存满了。
得到流记录后,进行分类和汇聚,压缩数据量。