网络系统与人体系统一样,会生病,会出现各种故障。因此,我们需要了解网络的运行环境、网络应用和服务的实际工作状况,为应用和技术的改进提供参考,以此提高网络服务和应用的效率和效果。
随着网络技术的日新月异,网络的性能也不断提高,用户和网络应用逐渐增多。然而,这种扩张使网络在可扩展、安全、服务质量和创新性的应用等方面也面临新的挑战。目前,与网络的蓬勃发展不相符的是,对网络运行的客观规律的研究还缺乏系统的概念和方法,因此无法对网络性能和功能的改善提供可量化的依据。
究竟如何为网络“把脉”呢?目前,可以通过对网络行为进行测量和分析的手段,去了解网络运行环境的网络应用和服务的实际工作状况,为应用和技术的改进提供参考,从而提高网络服务和应用的效率和效果。
掌握了网络规律和运行情况,就能够帮助ISP或ASP根据网络的性能更好地为用户提供服务; 了解网络系统存在的不足和问题,就可以及时了解和排除网络设备或软件出现的故障,例如,对路由病理的研究等。
本文介绍网络测量方法和主动测量的数据分析方法。
1.网络测量方法
网络测量方法主要分为两种:被动测量和主动测量。
被动测量和主动测量的区别在于,前者是被动地在网络上接收流经的数据包,而不会对网络造成任何的负载;后者则是主动地向对方发出测试数据包,根据数据包在网络上的传输情况来判断网络的性能。被动测量提供了单独连接或者节点的性能描述,而主动测量则是针对位于一条路径上的几个连接和节点的性能。
被动测量组件包括了报文sniffer工具、边缘路由器所生成的流级别的流量统计表,以及另外一台用于查询路由信息的空闲的顶级路由器。
主动测量组件则包括了由那些被置于主路由器中心的测量机器组成的网络。这些机器交换测试流量,并收集全天的丢包率、延迟和连通性统计。然后将这些测量数据存入一个高性能数据仓库。这些数据可以被用于流量工程、性能调试、网络操作和以性能为目的所进行的测试。
被动测量方法的实现相对简单,在此不做更多介绍。
而主动测量方法因为要涉及到测试位置的选取、测量机器的安置、数据采集的选择、高性能数据仓库的设计、数据挖掘和各性能参数的关联等数据分析过程,以及最终结论的定义,所以实施起来相对复杂。
2.主动测量
主动测量数据分析技术是由AMP(Active Measurement Project)组织提出的数据分析方法,其目标是对主动测量数据提供基本的了解和分析,并利用这些数据对网络的连通性有更好的理解。
主动测量是基于RTT测量,而不是对单程延迟的测量。因为RTT测量更易于实现,而且不会依赖外部设备去同步两台监视器的时间。另外,有的测量方法是使用全球定位系统(GPS)接收器来同步主机的时间。但是这些系统过于昂贵而且难于安装,并且获得的额外信息也很有限,因此并不普及。
具体来说, RTT测量是通过类似Ping的程序,每隔一定时间进行一次。该程序对每台主机发送ICMP响应包,然后等待ICMP的回应包,记录每个站点的测量延迟。
发现或者诊断一个站点故障的最好方法之一就是,查看RTT图标的起伏状况。这些起伏表明了路由或者配置上的变化所引起两个站点间RTT的改变情况。
另外一点,就是要查看丢包率。如果一个站点的丢包率过高,那么它可能出现硬件损坏,这种分析是非常基本的。如果要对一个站点的性能有进一步理解,就要通过比较它同其他站点的连通性来获得。
比如,你的日常链路出现的拥塞是否也同样出现在其他站点上?你的连接回程时间是多少?它们是否相当好或者在你的本地网络出现某些问题导致RTT不稳定?另外,还需要查看拥塞曲线的形状:它们是否平滑?它们是否比其他站点的拥塞更大?如果图中显示拥塞曲线,那么它是如何影响你的流量的?
通常我们认为,高性能网络应当具备低RTT值和不太显著的拥塞曲线。需要检查的一个环节是TCP堆栈内的TCP窗口尺寸,它会对在这些网络上进行高速通信的可行性产生极大影响。再有,你还应考虑到,在周五中午,日常连接同vBNS连接有多大的区别?
摘自《计算机世界》