1 绪论
1.1 研究背景与意义
当今越来越发达的互联网,宽带业务普及速度越来越快,不断增长的用户数量使网络流量迅速地增长,大量的新型业务如 VoIP、P2P、IPTV 等的出现,对网络运营产生了重大的影响。而传统包月计费的模式对于各大运营商而言已经越来越落后于时发表展了,网络病毒泛滥所引起的安全问题随之也越来越严重[1-3]。随着互联网高速的发展,为用户提供的带宽更高,所支持的业务也越来越多,而传统的流量统计方式(比如 SNMP、端口镜像等),因为流量统计方式比较死板、只能提供比如带宽利用率等粗粒度的统计数据或是需要投资特定的服务器等等,所以无法获得带宽利用的具体数据、无法掌握客户和应用对带宽使用的数据、也无法获知异常带宽的产生因素。现有的传统流量统计方式已经远远不能满足现有的业务发展趋势、网络建设、安全管理、以及灵活的流量计费方式,所以需要一种新的技术来更好的支持新的网络流量统计应用[4-5]。目前主流的流量统计应用有以下几种:计费:提供了关于网络资源(比如线路、时段、带宽等)的占用信息计费的精细的信息。为了达到有效地使用网络资源的目的,通过分析这些信息,客户可以分配成本或计算费用。Internet 运营商可以利用基于时间、带宽、应用、服务质量等信息来实行灵活的计费方式。网络监控:通过在出口部署具有流量统计功能的交换机或路由器,来实时流量监控接入到 Internet 网络的接口,可以获得各种业务的流量占用信息。网络管理人员根据这些流量信息判断网络运行情况,尽快发现网络拓扑结构中不合理之处或者是性能瓶颈之处,方便网络管理人员进行更好的网络规划和分配网络的各种资源。
……………
1.2 国内外研究概况
报文统计的方式多种多样,取决于当前所使用的网络设备、所在的网络环境,目前在国内外主要有 NetFlow、sFlow 以及 NetStream 等多种报文统计方式。由于互联网迅猛的发展,IPv6 和 IPv4 协议共存,P2P 技术广泛应用等等,挑战了传统的统计数据流信息方式[6]。Netflow 技术最早是 1996 年由思科公司的 Darren Kerr 和 Barry Bruins 发明的。Netflow 技术最先被运用于加速数据流的交换,并且可以同步测量和统计正高速转发中的 IP 数据流(Flow)。随着多年技术革新,该技术以前加速数据流交换的功能已经渐渐地由网络设备中 ASIC 集成芯片代替,而对流经网络设备 IP 数据流的测量与流统计技术也迅速的发展,Netflow 技术已经是现在公认的行业标准。Netflow 可以细致地对通信流量进行行为模式分析和统计,并生成了详细的统计数据[7-8]。NetFlow 技术的提出,为这个领域注入了新的活力。通过该技术,网络设备能主动将经过该设备转发的报文流量统计信息传送到用户指定的信息收集系统。目前网络流量统计信息的收集问题,已经基本解决,从而可以更有效收集网络流量数据信息,并从这些数据中分析网络状态。近几年以来,随着该技术的流行,一些公司逐步地在自己开发的网络设备上支持 NetFlow 技术[9-10]。sFlow 技术在 2001 年是由 FoundryNetworks、InMon 和 HP 提出的一种网络监测技术,一方面可以提供完整的数据链路层到传输层,甚至全网络覆盖范围之内的流量统计信息;另一方面在海量网络流量环境(比如大于 10Gbit/s)下可以正常地进行流量分析,这样网络管理人员能对网络流量的性能、趋势以及存在问题进行实时、详细地分析解决[11]。
……………
2 NetStream 技术简介
2.1 NetStream 基本概念
当用户启用流老化功能后,设备会通过特定版本的统计输出报文格式把存储的流统计信息输出到特定的目的主机。流老化有以下三种机制。按时老化:按时老化分为不活跃的流老化和活跃的流老化。不活跃的流老化:从最后一个报文开始,该流在设置的不活跃时间内没有被采集到,那么设备会向目的主机输出该流的统计信息,这种老化称为不活跃的流老化。活跃的流老化:从第一个报文开始,该流在设置的活跃时间内一直能被采集到。流的活跃时间超过用户配置的活跃时间后,需要输出该流的统计信息,这种老化称为活跃的流老化。强制老化:可以强制将所有的存储统计信息进行流老化,并且释放缓冲区中的内存空间;或者根据实际需要,有选择地进行流老化。TCP 的 FIN 或 RST 触发老化:标志为 FIN 或 RST 的 TCP 报文的发送表示该 TCP连接结束。当已存在的该连接流表项要处理一条标志为 FIN 或 RST 的该连接的 TCP报文时,就立刻输出对应的所存储的统计信息。
…………
2.2 NetStream 支持的报文格式
网络设备在网络流统计时,会将获取到的统计信息按照用户所配置的标准格式封装成 UDP 报文,一个统计输出报文中可以记录多条统计信息表项。目的主机在收到网络设备输出的统计报文后,首先判断统计报文的格式版本,不同的格式版本会有不同的报文格式。如图 2-2 所示,NetStream 数据部分是 NetStream 头和 NetStream流统计数据组成的,通过头部的 Version 字段,可以区分出流统计数据部分是采用何种结构的数据[20]。目前统计输出报文主要有 5、8、9 三个版本。版本 5:依据流统计处理产生原始的数据信息,可以把所有字段信息都输出给目的主机,但报文格式固定,且不可扩展,统计的数据量大,目的主机无法长期保存。版本 8:只支持聚合输出格式,可以将聚合流统计信息输出给目的主机,但报文格式固定,不易扩展。版本 9:用户能根据实际需求设计该报文模板,使统计信息(包括普通流统计数据和聚合流统计数据)的输出更为灵活。版本 9 支持对 BGP 下一跳、MPLS 等统计输出。V8 报文头格式各字段大多数与 V5 报文头格式各字段含义一致,可参考 V5 报文头格式各字段意义,对于 V8 版本的输出报文格式版本编号(NS Version 字段),为 0x08。另外其他的字段,Aggregation Type 表示聚合类型,Aggregation version 表示输出的聚合版本号,为 0x02。
………
3 系统的需求分析………..(17)
3.1 系统的运行环境 ..... (17)
3.2 普通流统计......... (21)
3.3 流聚合功能......... (25)
3.4 统计报文输出流量控制 ........(29)
3.5 本章小结........ (30)
4 系统功能的设计及实现
4.1 NetStream 总体设计及实现 ....... (31)
4.2 流统计处理......... (38)
4.3 配置数据处理 .... (46)
4.4 系统事件处理 .... (50)
4.5 本章小结........ (52)
5 系统测试……….(54)
5.1 测试网络环境 .... (54)
5.2 测试内容........ (56)
5.3 测试工具与总结 ..... (59)
5.4 本章小结........ (60)
5 系统测试
5.1 测试网络环境
针对不同测试用例,设计了三种测试网络环境,搭建小型测试网络进行模拟测试。测试完成后,在大型实际的公司网络上进行测试。IPv4 普通报文包括:单播、组播报文和分片报文。如图 5-1 给出的一个简单网络,包括作为目的主机的 PC 机、作为 NetStream 数据采集设备的核心路由器和打入IPv4 网络普通报文流的 SMB 设备。在路由器上配置 NetStream 入方向统计和出方向统计,并将统计报文发送到目的主机 40.0.0.2/16 的 5000 端口。该网络主要是测试对 IPv4 普通报文进行 NetStream分类统计、统计报文输出等基本功能。如图 5-2 给出一个由三台核心路由器组成的网络,路由器均支持 MPLS,路由器之间建立了标签交换路径 LSP(Label Switched Path),运行的路由协议为 OSPF。标签分发协议 LDP(Label Distribution Protocol)利用 OSPF 的路由信息建立 LSP。路由器 A 和路由器 C 作为 MPLS 网络中边缘路由器,路由器 B 作为 MPLS 网络中核心路由器。另外还包括作为目的主机的 PC 机和打入 IPv4 网络普通报文流的 SMB 设备。
……………
结论
论文主要工作基于在华为 3com 公司参与的 NetStream 开发项目,研究包括两大部分:NetStream 统计输出报文格式、NetStream 系统的设计与实现。本文结合NetStream 技术,对网络流量采集方法、网络流量统计系统设计与实现、LINUX 内核机制进行了深入的研究,主要的工作成果如下:
(1)对网络流量统计及相关技术进行了分析与研究。主要内容有对网络流量采集的几种方法进行了研究和对比分析,深入的分析研究了 NetStream 技术原理。
(2)对路由器系统平台进行较深入地研究。主要内容有包括通知链、NetLink、EPOLL 机制、内核同步、定时器软中断、进程调度和 slab 分配器技术等 LINUX 内核机制,另外也对路由器软件系统进行初步的研究,了解了 IP 转发、接口管理、IPv4地址管理相关模块的实现,还初步的研究了分布式路由器体系结构。
最后设计实现了一个基于 NetStream 技术的网络流量统计系统,实现了数据采集、流统计、流聚合和统计报文发送功能,并在实际的网络环境测试中获得了较好的效果。
……………
参考文献(略)