于天成,冯 旭
(91550部队92分队,大连 116023)
IP网应用技术的飞速发展的确带给了我们很多方便快捷,使我们拥有了更多的业务处理和选择的能力。但是同时也带来了一些问题。我们不得不经常面对网络拥堵,数据业务的传输指标无法达到我们的要求等诸多问题。这些都对网络的设计、管理和应用提出了严峻的挑战。由于我们对网络协议的分布、网络流量特征、用户与网络行为缺乏准确的理解与精确的描述,并不能精确定位,无法顺利解决问题。因此,网络测量技术也应运而生。网络测量的基本目的是通过对提取的网络的性能指标参数进行分析,从中发现影响网络性能的瓶颈及潜在危险,为优化网络配置、评价网络服务质量、提高网络运行效率和解决网络故障提供决策依据,为网络安全性运行提供可靠的技术平台。网络性能的测量与分析已成为当今网络研究技术人员普遍关注的焦点之一,越来越得到重视。
网络测量技术总体上可分为主动测量、被动测量和基于SNMP的网络测量三种。主动测量是通过向网络发送一些探测包,观察其在网络中实际传输的路径及延迟和排队情况,从而推出网络当前的工作状况。被动测量技术是对通过测量点的流量进行记录和分析,并对网络的正常运行几乎没有影响。可以得到有关网络端到端性能指标,如延迟、吞吐量、延迟抖动和丢包率等,而且还可以得到被测链路上的网络流量特征,如流量的数字特征、流量的分布、协议分布、链路利用率和用户使用网络的信息等。基于SNMP的测量是通过读取相关网络设备的管理信息库(MIB)来得到反映网络状况的性能指标,读取到的MIB中的信息传递到测量点时将占用网络的带宽。
网络性能测量内容通常包括以下几方面:一是网络流量测量:获得网络的流量特性,例如协议的使用情况、用户的行为特征等,网络流量测量涉及4个基本要素:端点、方向、时间粒度和协议层次;二是网络负载压力测量:网络实际传输速率受诸多因素影响,包括网络设备性能、链路质量、终端设备数量、网络应用系统等。通过网络压力测量,可以在一定程度上定量评估网络实际传输速率和网络交换设备的转发能力;三是网络协议分析:随着网络服务内容的扩充和服务要求的提高,网络协议体现出空间分布性、并发性、异步性、不稳定性和多样性。通过网络协议分析,可以发现网络潜在安全隐患、快速准确地定位故障原因,找出引起故障的网络节点,以最快的速度恢复网络的正常运行;通过分析网络通信情况以及网络连接状况,可以对网络性能和资源的合理分配,为规划及调整网络提供可靠依据;四是应用系统测量:通过仿真单个用户的通信性能,分析客户端数据流入流出的情况,对网络总体带宽需求做出评估,为合理配置网络带宽、均衡网络负载提供部分决策依据。
网络测量方法应该满足三方面的要求:一是稳健性,被测网络的轻微变化不会使测量方法失效;二是可重复性,在同样的网络条件下,多次测量结果应该一致;三是准确性,测量结果应能反映网络的真实情况。
针对网络测量的特点和我们实际的需求,提出了一个典型的分布式网络测量系统的架构,如图1,为该系统的理想结构体系。系统主要功能可以分为4个模块:
(1)网络测量需求。为支持跨平台可安装要求,控制中心程序系统可采用Java语言开发。通过用户操作接口可定制网络测量任务和系统管理。如图1所示,通过测量探针上的相应网络端口,控制中心向测量探针下发测量任务,并可控制测量任务的开始和停止。如果有多个控制中心,可以在测量探针上设置相应数量的网络端口。控制中心与测量探针之间的通信采用TCP协议,保证测量任务的可靠传输。测量任务可动态配置。通过用户操作接口上主动和被动测量任务模板,定制不同的网络测量任务,用户可以选择不同的测量指标,动态地构造测量任务,控制中心在每次测量时对测量探针也可进行动态选配。控制中心可同时启动多个测量。在测量设施不互相冲突的情况下,控制端可以同时启动探针执行多个网络测量任务。系统也可同时为多个用户服务。这些任务将在测量探针上的任务队列中进行排队,来避免测量任务之间操作冲突。
(2)网络测量与数据采集。测量探针的功能是接收、管理和运行测量任务。测量探针受控于控制中心。测量任务队列记录和调度控制中心下发的测量任务,在测量任务需要启动测量时,提供给测量程序模块相应的测量任务参数。控制中心可以下发不同的测量任务,这些测量任务按照在队列中的排队顺序依次被执行。通过添加、删除队列中的任务来实现测量任务队列管理。测量结果数据采集:如图1所示,测量探针通过不同的网络接口可以同时发起多个测量。测量数据通过相应网络接口在测量探针的本地数据库中进行存储。对性能指标(如单向时延、可用带宽、丢包率等)的测量主要采用主动测量方法。主动测量易于控制,这里要根据测量要求定制探测分组序列(协议类型、分组序号、发送间隔、分组大小等)。对网络流量的测量主要靠被动测量,通过PF_RING技术来捕获数据包。被动测量可以根据测试需求定制数据采集的粒度和需要监控的信息,以减轻网络的开销。
(3)数据管理。对于主动测量得到的原始数据返回数据存储服务器之前需要进行压缩以减轻网络传输负荷,为保证数据传输安全,在测量探针和数据存储服务器之间的通信采用了SCTP协议,减少大量数据对网络带宽的占用,保证传输的效率。对于被动测量得到的业务量数据在传向数据库前已基于IPFIX模板进行了预处理,去掉了一些冗余信息。数据存储服务器根据数据的类型采取相应的数据存贮、维护和检索策略。
(4)数据分析与可视化。在数据存储服务器上实现了测量数据的分析、统计功能,并用Web Service技术进行发布。测量人员通过本地的浏览器即可打开数据显示界面,从所监测的网段导出网络流量信息,并查看每一次被动测量的统计数据,还可以查看某个IP地址或通过某个特定网络接口发送和接收的包、字节的数量等。
图1 网络测量系统结构体系图
(1)多任务调度方法。解决测量过程的多任务情况更多采用的是多线程技术,各个线程之间则是采用了互斥锁和条件变量互补的方法进行通信协调。使用时,条件变量被用来阻塞一个任务执行线程,当条件不满足时,任务线程往往解开相应的互斥锁,并等待条件发生变化。一旦其它的某个任务执行线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程,这些线程将重新锁定互斥锁并重新测试条件是否满足。
(2)基于流的被动测量技术。基于流的技术已逐渐被用于网络传输流量的分析与计费设施中,另外在设置QoS策略、部署网络应用和进行容量规划等方面都有更新的应用。根据RFC3917-IPFIX标准,以思科教程为基础,利用源IP地址、目的IP地址、源端口、目的端口、3层协议类型、服务类型字节、输入逻辑接口等特征来定义流,这里还包括时间戳、时间同步、流终止、数据包分段等诸多信息规则。
(3)表示层应用程序开发。系统数据分析与可视化部分采用了B/S结构。但是浏览器作为客户端,对终端用户的体验和拓展带来了一定的局限性。随着RIA(Rich Internet Application)技术的不断发展,突破了体统HTML应用程序的设计限制和互动约束。对本系统来说,RIA的最大优点体现在,只传输页面上变化的部分数据,有效减少访问数据存储服务器带来的网络流量开销,而且由于页面是 flash格式,流量的动态显示效果十分突出。
(1)时间同步。由于IP网络传输数据的实时性是关键点,因此在设计加入测量系统后更要考虑网络的时间同步问题。虽然IEEE1588标准精确时间协议已经成型,并作为一种关键技术列入IP网络实时数据传输的研究重点,但是实际使用过程中IP网络及测量系统的时间同步问题都需要进一步的明确。
(2)安全性。IP网络测量系统建立依赖的基础技术之一就是被动测量,被动测量技术可以将测量链路传输的数据进行拆解和解码,因此就会存在信息泄密的问题,虽然从理论上讲,被动测量只是对数据包中与用户内容无关的部分进行记录和分析,但是仍然会存在IP地址和端口号内容泄露,易被攻击。
(3)技术融合。网络测量系统会随着网络规模和传输流量的增加而处理的信息内容也会增加,这就进一步增加了网络运行的压力,如何将网络测量技术压缩后运用于网络中也是一种复杂的技术,降低网络的复杂性,增强网络的兼容性都将是一个各种技术融合的复杂过程。
IP网络传输实时数据是我们所关注的焦点,也是发展的趋势,但是网络的复杂性和融合性决定了在这方面还是存在或多或少的问题,如何尽我们的能力去了解网络,用数据说明网络的情况,解决传输中出现的问题,是我们建立网络测量系统所要解决的主要问题。网络性能测量系统是一个复杂的系统,网络性能测量中有许多关键技术值得研究。随着网络性能相关理论、测量方法和分析模型研究的逐渐深入,各种测量工具的不断出现及大型测量项目的不断开展,人们对网络的认识会越来越深刻,从而不断地推动网络性能测量技术向前发展。
[1] 谢希仁.计算机网络.北京:电子工业出版社,2003.
[2] 李永利,唐家鹤,王昊.IP承载网络性能测试技术.电信网技术,2007.
[3] 马维旻,王俊峰,叶晨.一种分布式的被动测量系统设计.计算机应用研究,2004.