网络测量的体系结构
网络测量的体系结构从层次上说,是一个数据工程。从高层到低层依次为数据表示,数据分析,数据管理,数据采集。
数据采集:数据采集是关键,包括主动测量采集,被动测量采集。利用主动测量易于控制的优点,合理地设置测量分组;同时也利用被动测量不影响系统性能的优点,适当选择测量探针的位置(包括考虑通过测试点的业务)。数据采集着重考虑以下几个问题:一是数据采集时,尽量照顾到各种性能指标;二是提供一个向第二层统一的访问接口;三是数据采集的粒度要满足所测指标的需求,尽量减轻网络的开销;四是采样间隔的选择,这应视具体情况而定。
数据管理:由于测量得到的数据是非常庞大的,需要合适的数据存贮方法,维护,检索策略。为便于分析,还需要将数据格式化。考虑到数据共享,一般运用数据库技术,同时考虑到灵活性,也采用文件存贮方式,在数据存贮以前,作必要的预处理,以压缩存贮量。
数据分析:数据分析需要研究如何定义每个行为指标,分析其包含的因素,如算法,误差来源,测量单位等,还要考虑测量环境,测量方法,测量工具的影响。将所有这些影响因素量化描述,即对应一个指标。由基本的性能指标能组合出新的指标,还可定义反映网络整体性能的综合指标。在测量得到原始数据后,首先对某一指标的大量样本采用统计学的方法进行分析,得出均值,方差等基本统计量;其次由一些数学模型(如时间序列预测,回归分析,判断预测,小波分析等)作出性能趋势预测;进而采用数据挖掘(DataMining)技术进行关联分析,得出网络本质的行为规律。经过这些步骤,通过归纳,综合分析,演绎对每一个指标给出合理的定义和分析算法。
数据表示:数据表示即直观形象地表示出测量结果,发挥艺术想像力,可借鉴网管软件采用的方法,也可征求网管人员和用户的意见。采用图形用户界面GUI,以直方图,二维,三维坐标曲线,扇形图,报表等形式。
基本概念
首先,给出链路可用带宽的“可用”定义:
定义1.论文所说的某一时刻单一链路“可用”含义就是该链路的开始节点处于空闲状态。
我们可以借助一个状态阶跃函数来描述节点在某一时刻所处的状态。
定义2. 定义t时刻 (1≤i≤N)的状态函数如下:
(1-1)
相应的 Linki(表示 和 之间的链路,1≤i≤N)在某一时段[t1,t2]的链路空闲率可以表示为
(1-2)
而 Linki在某一时段[t1,t2]的可用带宽就可以表示为(假定该链路的容量为 Ci)
(1-3)
显然,当 Linki处于空闲状态时,对于一个新到来的报文, 可以立即转发该报文。也就是说,当 Linki处于空闲状态时,报文在 所经历的排队时延为 0。考虑到实际应用中,不存在“同时发生”的网络事件,因此有如下推论:对于一个新到来的报文,若该报文在 所经历的排队时延为0,则说明在该报文被 接收的时刻,Linki处于空闲状态。
假设一条网络路径由 N 段首尾相连的存储转发链路组成(从 到 ),可用带宽最少的链路出现在网络链路的第b段,Linkb的容量为 ,则该网络路径在某一时段[t1,t2]的可用带宽为
(1-4)
1.2.2 现有技术分析
现有的可用带宽测量方法基本上都是基于网络瓶颈分隔原理。众所周知的包对法就是对该原理的应用。其具体做法是,首尾相连地发送两个长度为 L 的数据包,如果该路径中瓶颈链路的处理能力为 C,在没有其他流量的情况下,这两个包到达目的地的时间间隔应为Δ=L/C。那么,接收方就可以根据测得的时间间隔Δ来计算该路径中瓶颈链路的处理能力,也就是瓶颈带宽。包对法是非常经典的一种测量方法,它对后来的可用带宽测量方法产生了深远的影响。可以说,目前绝大多数可用带宽的测量方法都是对包对法的改进。但是遗憾的是,包对法本身测量的却不是可用带宽,而是瓶颈带宽。原因在于,Jacobson[7]没有考虑到网络中的其他流量对测试包的影响。
Keshav[8]也在拥塞控制的背景下对此进行了研究,结论是,只有当路由器采用一种公平排队(fair queuing)策略时,包对法才能用于测量可用带宽。而在先进先出(FCFS)的排队策略下,包对法无法测出可用带宽。现在所提到的Cprob可以说是第1个用于测量可用带宽的工具。Cprob用包队列代替了包对,通过一组首尾相连的包队列中第 1个和最后一个报文的到达时间以及报文长度来计算可用带宽。
pipecha采用的也是相似的方法。然而,研究表明,Cprobe 测量的并不是可用带宽,而是另外一种完全不同的参数,目前称为 ADR(asymptotic dispersion rate)。TOPP(trains of packet pairs)的基本思想是:以递增的速率向目的节点发送包对组成的队列,根据不同包对的输入输出速率之间的关系来判断可用带宽。SLoPS(self loading periodic streams)基于的原理是:当发送速率高于可用带宽时,报文的单向延迟会有上升的趋势。基于 SLoPS 的思想实现了可用带宽测量工具 pathload.虽然 TOPP 和 pathload 可以测出相对比较准确的可用带宽,但是它们都需要发送大量的探测报文。在无线网络等带宽非常有限的网络环境中。这么多的探测报文完全可能造成网络的阻塞。另外,研究表明,pathload 会高估可用带宽。而 IGI(initial gap increasing)和 PTR(packet transmission rate)通过发送一系列报文间隔逐渐增大的包队列,并探测输出间隔和初始间隔的差别来确定可以用来计算可用带宽的包队列。然而,该算法在网络的利用率较大时对带宽变化的反应非常迟钝。Spruce和IGI一样,都是基于探测间隔模型的,但其测量所需的探测流量要高于IGI。
上述方法所测量的带宽都不能超过源节点的最大发送速率,因此无法在高带宽环境中使用。另外,目前的可用带宽测量理论均没有考虑背景流的不同路由对测量结果所产生的影响。
基于SLOPS和TOPP及类似原理。已有一些研究机构开发出了测量端到端可用带宽的工具,其中Cprobe工具是第一个测量端到端可用带宽的工具,Cprobe 在源端连续发送 8个最大长度分组组成的分组链(packet train)通过在接收端测量分组链到达的时间间隔来推测路径的瓶颈带宽和可用带宽。然而,最近Dovrolis 等学者已经研究发现这个工具在理论上存在缺陷,实际测量得到的是ADR(asymptotic dispersion rate 渐进分散速率),而不是端到端路径的可用带宽。