基于模式识别的自适应检测时钟重置的方法

文档序号:7652164阅读:137来源:国知局
专利名称:基于模式识别的自适应检测时钟重置的方法
技术领域
本发明涉及一种网络测量中检测时钟重置的方法,确切地说,涉及一种基于模式识别的自适应检测时钟重置的方法,属于通信网络的时延测量技术领域。
背景技术
随着互联网规模的迅速扩大和网络结构的日益复杂,网络测量已经成为研究互联网特性,评价和监控网络的重要手段。
单向时延是主动网络测量中反映网络路径特征、影响和评价网络中端到端性能的一项重要指标,同时也是测量时延抖动、带宽等其他网络性能指标的基础。端到端单向时延测量广泛应用于网络性能监测、行为分析及应用设计等领域。因特网工程部IETF的IP性能测量工作组IPPM已经制定了一系列相应的请求评论RFC来描述端到端的单向时延等重要网络性能参数。
单向时延是指数据包经过特定网络路径的传输时间。单向时延测量必须由源端测量主机S和目的端测量主机D两者的共同参与。定义测量样点集为Ω={vi=(ti,di)|i=1,2,3,...,N},其中自然数i为测量序号,ti是源端主机S在发送时刻在第i个测量包打上的时间戳,di为测得时延,即目的端主机D接收第i个测量包的时刻减去源端主机S发送该包的时刻所得到的差值。由于实际网络中两个主机时钟存在误差,故di并非真实的单向时延,其原因主要有下述两个(1)通常,两个终端主机S/D在测量初始时刻的时间不同,且分别按照不同的频率运行,它们之间的频率差被称为时钟频率偏差(clock skew),简称频差。如果时钟频率偏差为常数,则测量时延曲线类似于图1中的测得时延样点的下延,该时延曲线近似于一条倾斜直线d(ti)=αti+β,其中β是两个主机的时钟在测量初始时刻的时间偏差,α是两个主机的时钟频差导致测量时延的下沿随着测量时间的推移而线性增加或减小的斜率,测得时延的抖动是由于拥塞程度不同造成的。
(2)测量主机S/D在测量过程中调整了自身的系统时钟。例如,主机的时钟可能被cron进程(UNIX操作系统中一种用于定时启动任务的进程)重新调整校准,这种校准可能在一天内发生多次;或者由于主机运行了网络时间协议NTP或使用全球定位系统GPS定期与外部时钟进行校准而对本地时钟进行微调(调整的时间粒度较小)。由于上述原因,使得实际测量的时延曲线出现突变,通常称之为时钟重置(clock reset)。
时钟重置分为两种方式。例如,在NTP最常见的客户端/服务器端(Client/Server)同步模式中,主机就有两种不同方式来调整自身时钟参见图2(a),介绍第一种调整方式NTP客户端根据NTP服务器对自身时钟值作瞬时调整(step phase adjustments)。从图2(a)中可以看到单向时延的测量值在测量进行到100秒到150秒间、200秒到250秒间和300秒到350秒间分别发生了跳变的现象,这种现象即是瞬时调整时钟值方式的时钟重置。
参见图2(b),介绍第二种调整方式NTP客户端根据其与NTP服务器的时钟差值(offset),对自身时钟速率进行调整(gradual phase adjustments)。从图2(b)中可以看到在测量进行到250秒到750秒间、1500秒到1750秒间分别发生单向时延的测量值由较平缓的直线变成斜线的现象,这种现象是调整时钟速率方式的时钟重置。两条斜线对应的测量时间区间即是时钟速率调整区间。
在时钟差值的大小不超出一定范围的情况下,NTP同步时默认采用第二种方式,且调整耗时与时钟差值的大小成正比。在Linux系统中,上述两种NTP时钟调整分别通过settimeofday()和adjtimex()系统调用完成。
此外,在网络测量中,时钟重置具有发生的不定时以及次数未知的特征。
由上可知,时钟频差和时钟重置现象是导致单向时延测量误差的主要原因。单向时延测量的关键任务就是要在不了解两个主机的时钟特性情况下,消除时钟频率偏差和时钟重置带来的误差。目前,已经研制出通过测得时延数据来估计时钟频差的有效方法,但是时钟重置的检测问题,至今尚未得到很好的解决。
现在,有些文献针对瞬时调整时钟值方式的时钟重置进行了探讨。例如文献《对数据报传输时间测量的校正》(《On calibrating measurements of packettransit times》刊于98年ACM SIGMETRICS会议记录)的方法是通过观察路径上正、逆两个方向的测量数据来识别时钟重置,当两个方向上的单向时延数据呈现方向相反、偏移量相同的变化趋势时,认为发生了时钟重置。文献《网络测量的时钟同步算法》(《Clock Synchronization Algorithms for NetworkMeasurements》刊于2002年INFOCOM)提出的“分而治之”(Divide And Conquer,DAC)方法是基于凸分析的思想来识别时钟重置点。文献《一种基于模糊聚类的消除时钟频差和时钟重置的方法》(《A fuzzy-based approach to remove clockskew and reset from one-way delay measurement》刊于IEEE Transactions onNeural Networks,2005)提出的“基于模糊聚类的单向时延校正”方法是采用模糊聚类的方法检测时钟重置。
时钟速率调整的检测要比时钟值瞬时调整的检测更具有难度。上述文献中只有《网络测量的时钟同步算法》提出的“前进”(Marching)方法涉及了调整时钟速率方式的时钟重置的检测,“前进”方法同样是基于凸分析的思想。
从检测时利用的原始单向时延数据集合、能否自适应检测时钟重置点、检测何种方式的时钟重置三个角度对以上四种时钟重置检测方法进行比较的结果如下面的表1所示。

从表1中可以看出,以上方法均不能自适应识别两种不同类型的时钟重置。同时,文献《对数据报传输时间测量的校正》方法和“前进”方法在检测时钟重置时需要利用测量路径上两个方向的单向时延测量数据集。然而,由于许多应用场景中(例如使用了防火墙等)只能得到一个方向上的数据,以及网络路径的非对称性,使得这些现有的测量方法不能广泛应用于网络测量中。
在文献《一种基于模糊聚类的消除时钟频差和时钟重置的方法》中,通过大量实验验证了“基于模糊聚类的单向时延校正”方法较之其它方法具有较高的准确度和较好的鲁棒性,算法复杂度较低。但是,因其无法自适应检测多个时钟重置点,且只能检测瞬时调整时钟值方式的时钟重置,限制了使用范围。
由于实际的网络测量场景中,时钟重置具有发生时间的不确定性、重置方式的不确定性和发生次数未知等特征。从前述分析中可以获知,现有的各种时钟重置检测技术均不能自适应识别两种不同方式的时钟重置,且其中某些方法不能自适应检测多个时钟重置点或时钟重置区间,从而使得这些方法在通信网络的测量系统中的应用受到很大局限。

发明内容
有鉴于此,本发明的目的是提供一种基于模式识别的自适应检测时钟重置的方法,本发明基于模式识别的概念,对最大最小距离聚类算法进行改进,并用于检测时钟重置,从而实现了自适应检测调整时钟速率方式和瞬时调整时钟值方式两种不同类型的时钟重置,还能够判断时钟重置发生的次数,有效提高时钟重置检测的准确性和自适应性。
为了达到上述目的,本发明提供了一种基于模式识别的自适应检测时钟重置的方法,其特征在于包括下列操作步骤(1)对模式识别中的最大最小距离聚类算法进行改进;(2)进行单向时延检测,获取测量数据集Ω={vi=(ti,di)|i=1,2,3,...,N},其中,自然数i为测量序号,ti是源端测量主机在第i个测量包上的发送时刻时间戳,di为在目的端测量主机测得的原始单向时延;(3)假设在测量过程中只有一端主机可能发生时钟重置时,采用所述改进的最大最小距离聚类算法自适应检测是否发生调整时钟速率方式的时钟重置;(4)采用所述改进的最大最小距离聚类算法,自适应检测是否发生时钟值瞬时调整方式的时钟重置。
所述步骤(1)进一步包括下列操作内容(11)参数初始化设输入的待识别的特征向量集合为X={xi|i=1,2,...,N},这些特征向量的聚类结果为C={Cj|j=1,2,...,m},m为聚类结果数;则初始化聚类结果数m=1,并任选一个特征向量x1作为第一个聚类中心,即C1={x1};(12)判断聚类中心设X中未被判断为聚类中心的特征向量组成集合A={ai|i=1,2,...,N-m},则聚类中心组成的集合B=X-A={bj|j=1,2,...,m},式中B中的数据个数为聚类结果数m,且A和B的并集即为待识别的特征向量集合X;再分别计算A、B间的豪斯多夫Hausdorff距离H(A,B),若H(A,B)大于阈值θ,则认为使H(A,B)取最大值的特征向量ai是一个新的聚类中心,即聚类结果数为m+1,并产生一个新的聚类集合Cm+1={ai};其中,阈值θ是根据不同网络的具体运行环境设定的经验值,ai是集合A中的某个元素;(13)对剩余的、未被判断成聚类中心的各个特征向量逐一进行聚类在完成对输入的所有待识别的特征向量进行聚类中心的判断,共得到m个聚类中心后,再将剩余的、未被判断成聚类中心的各个特征向量逐一进行聚类或归类处理;具体方法是分别计算待归类特征向量xi与每个聚类中心的欧几里得距离,假设该特征向量xi与某个聚类Cj(j=1,2,...,m)的聚类中心的欧几里得距离最小,则判断该特征向量xi属于该聚类集合Cj,即将xi并入集合CjCj=Cj∪{xi}。
所述步骤(3)进一步包括下列操作内容(31)计算原始单向时延的时钟频差值从测量的起始时间开始,采用“滑动窗”技术,即选取窗口时间长度为w1并计算该窗口内单向时延数据的时钟频差值,然后,将窗口向前滑动w1/2,再计算新窗口的时钟频差值;如此重复进行,直到滑动窗到达测量时间的末端,最终得到时钟频差值集合S={si|i=1,2,3,...,n},式中,n是最终计算得的时钟频差值个数;(32)使用步骤(1)中描述的改进的最大最小距离聚类算法对该n个原始单向时延测量数据的时钟频差值进行聚类处理,得到的聚类集合为Sj(j=1,2,...K),式中,K是聚类结果个数;(33)对聚类结果进行分析当聚类结果个数大于1时,寻找其中数据个数最多的两个聚类Sp和Sq,若它们能够同时满足下述两个条件Sp和Sq的数据均能被分为若干段,且每一段的数据在时序上是连续的;以及Sp和Sq中均至少能找到一段,其中数据的数目不小于阈值θ1,该阈值θ1是一个经验值;此时,可判断发生了时钟速率调整方式的时钟重置;否则,未发生时钟速率调整;(34)检测时钟速率的调整区间因为在测量刚开始时时钟速率调整的发生概率极小,故假设此时没有发生时钟速率调整;若聚类Sp中数据要比聚类Sq中数据在时序上更早地大量连续出现,则认为Sq中数据为调整时钟速率时的时钟频差值,即在Sq中数据所对应的时间区间发生了时钟速率调整;然后,对Sq中的数据逐段进行下述判断若某段中的数据个数不小于上述阈值θ1,则认为该段数据所对应的时间区间为时钟速率调整区间,藉此得到所有的时钟速率调整区间。
所述时钟频差值si的计算公式是si=(dq-dp)/(tq-tp);式中,第i个窗口覆盖的时间区间为[tp,tq],则(tp,dp)为该第i个窗口的第一组数据tp为源端测量主机发包时间,dp为测得的原始单向时延;(tq,dq)为该第i个窗口的最后一组数据tq为源端测量主机发包时间,dq为测得的原始单向时延。
所述步骤(4)进一步包括下列操作内容(41)为提高数据处理精度,按设定的时间间隔w2将测量数据集Ω分成若干数据子集,再对每个子集分别进行重置点检测设源端测量主机发送探测数据包的速率为c,则除了最后一个时间段以外,每个子集中的测量数据个数为w2c,且最终获得L个测量数据子集Ωi(i=1,2,...,L),其中Ω1={vj=(tj,dj)|j=1,...,w2c;},Ω2={vj=(tj,dj)|j=w2c+1,...,2w2c},......,ΩL={vj=(tj,dj)|j=(L-1)w2c+1,...,N}
由此将L个测量子集Ωi(i=1,2,...,L)中的原始单向时延值dj分别组成一维特征向量集合Di(i=1,2,...,L)D1={dj|j=1,...,w2c},D2={dj|j=w2c+1,...,2w2c},......
DL={dj|j=(L-1)w2c+1,...,N};(42)对原始单向时延数据进行聚类处理使用改进的最大最小距离聚类算法分别对该一维特征向量集Di(i=1,2,..,L)中的原始单向时延数据进行聚类处理,再根据聚类结果,生成特征向量集Ωi′;Ωi′的生成规则为设Di聚类后得到M个聚类结果Ch(h=1,2,...M),也就是得到M个特征向量集合Ωi′={vj=(tj′,cj)|tj′=tj;cj=1,2,...,M}(i=1,2,...,L),其中,vj′中时间值tj′的取值与原始测量数据集Ω中对应的vj的时间值tj一致,中间变量cj的取值规则为根据聚类结果,如果vj中单向时延值dj属于第h个聚类,即dj∈Ch,则对应vj′中的中间变量cj=h(h=1,2,...,M);(43)识别时钟值瞬时调整区间和噪声区间分析Ωi′可发现,噪声区间和时钟重置区间中对应的中间变量cj值均随时间发生变化,设Ωi′中vj′的下标j∈[k,l],k、l、j均为正整数,且1≤k≤l≤N,建立模型cj=mj+Yj,j=k,k+1,...,l;式中,线性函数mj是中间变量cj的趋势项,mj=a(a为常数,a=1,2,...,M);Yj是中间变量cj的随机噪声项,其数值为离散的整数,在没有时钟重置和噪声干扰的时间区间上,Yj=0,即cj=mj;否则,Yj≠0;再利用时间序列技术中的一种低通滤波器m^j=(2q+1)-1Σl=-qqcj+l,q+k≤j≤l-q,]]>式中,cj+l即为步骤(42)中得到的vj′中的cj值,用于保留趋势项mj的变化趋势,并同时过滤出重置区间和噪声区间;然后,按照时间顺序,使用该滤波器的计算公式分别计算特征向量集Ωi′中每个中间变量cj所对应的滤波结果 的值,如果|m^j-cj|<ϵ,]]>ε为设定的一个足够小的数;则认为没有发生时钟值瞬时调整或出现噪声;反之,则认为该中间变量cj对应的时间值tj位于某个时钟值瞬时调整区间或是噪声区间;(44)识别时钟值瞬时调整区间因为噪声区间所对应的中间变量数据cj值具有快速振荡的特征,且噪声区间的起始时间点和结束时间点对应的cj值相等;而时钟重置区间的中间变量数据cj值的变化仅发生在某个时间点,且该时间点前后对应的cj值不相等;故先假设前述步骤中过滤出来的某个时间区间为[tstart,tend](1≤start≤end≤N),如果cstart=cend,则该区间是噪声区间;反之,则为时钟值瞬时调整区间,时钟值瞬时调整次数R=R+1。
(45)检测时钟值瞬时调整点设某时钟值瞬时调整区间Ti=[tstart,tend](1≤start≤end≤N,1≤i≤R)中存在一个时间点treset,使得该区间[tstart,treset-1]中大部分时间值所对应的cj等于cr(cr=1,2,...,M),同时[treset,tend]中大部分时间值所对应的cj等于cs(cs=1,2,...,M),并且cr≠cs,则判断treset为一个时钟值瞬时调整点。
本发明是一种基于模式识别的自适应检测时钟重置的方法,相对于现有的各种时钟重置检测方法,本发明的主要特点是局限性较小只需进行正向路径的单向时延测量,获取该正向路径的单向时延的测量数据集合,就能够采用该方法同时完成自适应检测和判断两种时钟重置发生的类型及其次数;也就是在该方法的一次检测过程中,同时完成对调整时钟速率方式的时钟重置和瞬时调整时钟值方式的时钟重置的检测,并能够判断时钟重置到底发生一次还是多次,有效提高了时钟重置检测的准确性和自适应性,有利于在单向时延测量中的广泛部署、推广和应用。


图1是单向时延测量数据中的时钟频差现象示意图。
图2(A)、(B)分别是时钟值瞬时调整方式和时钟速率调整方式的两种时钟重置的单向时延曲线示意图。
图3是本发明基于模式识别的自适应检测时钟重置的方法流程方框图。
图4是本发明改进的最大最小距离聚类算法流程方框图。
图5是本发明自适应检测时钟速率调整方式的时钟重置的流程方框图。
图6是本发明自适应检测时钟瞬时值调整方式的时钟重置的流程方框图。
图7是本发明第一实施例的网络拓扑结构组成示意图。
图8是图7实施例中的原始单向时延数据和检测结果示意图。
图9是本发明第二实施例的网络拓扑结构组成示意图。
图10是图9实施例中的原始单向时延数据和检测结果示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
参见图3,介绍本发明基于模式识别的自适应检测时钟重置的方法的操作步骤(1)对模式识别中的最大最小距离聚类算法进行改进;(2)进行单向时延检测,获取测量数据集Ω={vi=(ti,di)|i=1,2,3,...,N},其中,自然数i为测量序号,ti是源端测量主机在第i个测量包上的发送时刻时间戳,di为在目的端测量主机测得的原始单向时延;(3)假设在测量过程中只有一端主机可能发生时钟重置时,采用所述改进的最大最小距离聚类算法自适应检测是否发生调整时钟速率方式的时钟重置;(4)采用所述改进的最大最小距离聚类算法,自适应检测是否发生时钟值瞬时调整方式的时钟重置。
众所周知,模式识别是一门以应用为基础的学科,其目的是将对象分类。模式识别可分为两大类,一类是有监督模式识别(Supervised PatternRecognition),即是假设有一个训练数据集,首先通过挖掘训练数据集中的已知信息来设计分类器,再使用分类器来对待识别对象进行分类。另一类是无监督模式识别(unsupervised Pattern Recognition),又称聚类(Clustering)。相对于有监督模式识别,聚类没有训练数据集可用,在这种情况下,聚类的过程需要揭示待识别对象潜在的相识性,以达到对其进行分类的目的。
最大最小距离聚类算法是模式识别中聚类算法的一种,根据自适应识别时钟重置的需求,本发明对该聚类算法进行了一点改进,参见图4介绍其流程图(11)参数初始化设输入的待识别的特征向量集合为X={xi|i=1,2,...,N},这些特征向量的聚类结果为C={Cj|j=1,2,...,m},m为聚类结果数;则初始化聚类结果数m=1,并任选一个特征向量x1作为第一个聚类中心,即C1={x1}。
(12)判断聚类中心设X中未被判断为聚类中心的特征向量组成集合A={ai|i=1,2,...,N-m},则聚类中心组成的集合B=X-A={bj|j=1,2,...,m},式中B中的数据个数为聚类结果数m,且A和B的并集即为待识别的特征向量集合X;再分别计算A、B间的豪斯多夫Hausdorff距离H(A,B),若H(A,B)大于阈值θ,则认为使H(A,B)取最大值的特征向量ai(ai是A中的某个元素)是一个新的聚类中心,即聚类结果数变为m+1,并产生一个新的聚类集合Cm+1={ai};其中,阈值θ是根据不同网络的具体运行环境设定的经验值,针对局域网的阈值θ的数值较小,而针对广域网该阈值θ的数值较大。ai是集合A中的某个元素;(13)对剩余的、未被判断成聚类中心的各个特征向量逐一进行聚类在完成对输入的所有待识别的特征向量进行聚类中心的判断,共得到m个聚类中心后,再将剩余的、未被判断成聚类中心的各个特征向量(共N-m个)逐一进行聚类或归类处理;具体方法是分别计算待归类特征向量xi与每个聚类中心(共m个)的欧几里得距离,假设该特征向量xi与某个聚类Cj(j=1,2,...,m)的聚类中心的欧几里得距离最小,则判断该特征向量xi属于该聚类集合Cj,即将xi并入集合CjCj=Cj∪{xi}。
接着进行端到端的单向时延检测,获取测量数据集Ω={vi=(ti,di)|i=1,2,3,...,N},其中,自然数i为测量序号,ti是源端测量主机在第i个测量包上的发送时刻时间戳,di为在目的端测量主机测得的原始单向时延。
然后,开始分别进行自适应检测时钟速率调整方式的时钟重置和自适应检测时钟值瞬时调整方式的时钟重置两个操作步骤。
本发明检测时钟速率调整方式的时钟重置的原理是假设在没有发生调整时钟速率方式的时钟重置的情况下,两个测量主机间的时钟频差是固定的;并在该假设的基础上,对调整时钟速率方式的时钟重置进行检测。若单向时延测量过程中某端测量主机作为NTP客户端发生了时钟同步,导致其自身时钟速率发生调整,则在发生时钟速率调整的时间区间内,该测量主机与另一端测量主机间的时钟频差将由某一稳定值α变为另一稳定值β,时钟速率调整结束后,时钟频差又变回到α。
基于这一特征,本发明方法是先粗略计算原始单向时延的时钟频差值,然后使用改进的最大最小距离聚类算法对原始单向时延测量数据的时钟频差值进行聚类。当聚类结果数大于1,且数目最多的两个聚类中时钟频差值均呈现时序上大量连续的特征时,则可判断出现了时钟速率调整方式的时钟重置。
参见图4,具体说明自适应检测时钟速率调整方式的时钟重置的操作步骤。
(31)计算原始单向时延的时钟频差值从测量的起始时间开始,采用“滑动窗”技术,即选取窗口时间长度为w1并计算该窗口内单向时延数据的时钟频差值,然后,将窗口向前滑动w1/2,再计算新窗口的时钟频差值;时钟频差值si的计算公式是si=(dq-dp)/(tq-tp);式中,第i个窗口覆盖的时间区间为[tp,tq],则(tp,dp)为该第i个窗口的第一组数据tp为源端测量主机发包时间,dp为测得的原始单向时延;(tq,dq)为该第i个窗口的最后一组数据tq为源端测量主机发包时间,dq为测得的原始单向时延。如此重复进行,直到滑动窗到达测量时间的末端,最终得到时钟频差值集合S={si|i=1,2,3,...,n},式中,n是最终计算得的时钟频差值个数。
(32)使用步骤(1)中描述的改进的最大最小距离聚类算法对该n个原始单向时延测量数据的时钟频差值进行聚类处理,得到的聚类集合为Sj(j=1,2,...K),式中,K是聚类结果个数;(33)对聚类结果进行分析当聚类结果个数大于1时,寻找其中数据个数最多的两个聚类Sp和Sq,若它们能够同时满足下述两个条件第一、Sp和Sq的数据均能被分为若干段,且每一段的数据在时序上是连续的;第二、Sp和Sq中均至少能找到一段,其中数据的数目不小于经验值的阈值θ1;此时,可判断发生了时钟速率调整方式的时钟重置;否则,未发生时钟速率调整;(34)检测时钟速率的调整区间因为在测量刚开始时时钟速率调整的发生概率极小,故假设此时没有发生时钟速率调整;若聚类Sp中数据要比聚类Sq中数据在时序上更早地大量连续出现,则认为Sq中数据为调整时钟速率时的时钟频差值,即在Sq中数据所对应的时间区间发生了时钟速率调整;然后,对Sq中的数据逐段进行下述判断若某段中的数据个数不小于上述阈值θ1,则认为该段数据所对应的时间区间为时钟速率调整区间,藉此得到所有的时钟速率调整区间。
参见图5,说明自适应检测时钟值瞬时调整方式的时钟重置的操作步骤。
(41)为提高数据处理精度,按设定的时间间隔w2将测量数据集Ω分成若干数据子集,分别对每个子集进行重置点检测(在单向时延测量的实际情况中,每个子集中可能发生时钟重置的次数是远小于测量数据个数的)设源端测量主机发送探测数据包的速率为c,则每个子集中的测量数据个数为w2c(对应最后一个时间段的集合中数据个数可能小于w2c),且最终获得L个测量数据子集Ωi(i=1,2,...,L),其中Ω1={vj=(tj,dj)|j=1,...,w2c;},Ω2={vj=(tj,dj)|j=w2c+1,...,2w2c},......,ΩL={vj=(tj,dj)|j=(L-1)w2c+1,...,N}由此将L个测量子集Ωi(i=1,2,...,L)中的原始单向时延值dj分别组成一维特征向量集合Di(i=1,2,...,L)D1={dj|j=1,...,w2c},D2={dj|j=w2c+1,...,2w2c},......
DL={dj|j=(L-1)w2c+1,...,N};(42)对原始单向时延数据进行聚类处理使用改进的最大最小距离聚类算法分别对该一维特征向量集Di(i=1,2,..,L)中的原始单向时延数据进行聚类处理,再根据聚类结果,生成特征向量集Ωi′;Ωi′的生成规则为设Di聚类后得到M个聚类结果Ch(h=1,2,...M),也就是得到M个特征向量集合Ωi′={vj′=(tj′,cj)|tj′=tj;cj=1,2,...,M}(i=1,2,...,L),其中,vj′中时间值tj′的取值与原始测量数据集Ω中对应的vj的时间值tj一致,中间变量cj的取值规则为根据聚类结果,如果vj中单向时延值dj属于第h个聚类,即dj∈Ch,则对应vj′中的中间变量cj=h(h=1,2,...,M)。
(43)识别时钟值瞬时调整区间和噪声区间分析Ωi′可发现,噪声区间和时钟重置区间中对应的中间变量cj值均随时间发生变化,设Ωi′中vj′的下标j∈[k,l],k、l、j均为正整数,且1≤k≤l≤N,建立模型cj=mj+Yj,j=k,k+1,...,l;式中,线性函数mj是中间变量cj的趋势项,mj=a(a为常数,a=1,2,...,M);Yj是中间变量cj的随机噪声项,其数值为离散的整数,在没有时钟重置和噪声干扰的时间区间上,Yj=0,即cj=mj;否则,Yj≠0;再利用时间序列技术中的一种低通滤波器m^j=(2q+1)-1Σl=-qqcj+l,q+k≤j≤l-q,]]>式中,cj+l即为步骤(42)中得到的vj′中的cj值,用于保留趋势项mj的变化趋势,并同时过滤出重置区间和噪声区间。基于以上思想和方法,即可识别时钟值瞬时调整区间和噪声区间再按照时间顺序,使用该滤波器的计算公式分别计算特征向量集Ωi′中每个中间变量cj所对应的滤波结果 的值,如果|m^j-cj|<ϵ,]]>ε为设定的一个足够小的数;则认为没有发生时钟值瞬时调整或出现噪声;反之,则认为该中间变量cj对应的时间值tj位于某个时钟值瞬时调整区间或噪声区间。
(44)识别时钟值瞬时调整区间比较噪声区间和时钟重置区间,两者具有明显区别噪声区间对应的中间变量数据cj值具有快速振荡的特征,且通常情况下,噪声区间的起始时间点和结束时间点对应的cj值相等;而时钟重置区间的中间变量数据cj值的变化仅发生在某个时间点,且该时间点前后对应的cj值不相等。因此,可以先假设前述步骤中过滤出来的某个时间区间为[tstart,tend](1≤start≤end≤N),如果cstart=cend,则该区间是噪声区间;反之,则为时钟值瞬时调整区间,时钟值瞬时调整次数R=R+1。
(45)检测时钟值瞬时调整点设某时钟值瞬时调整区间Ti=[tstart,tend](1≤start≤end≤N,1≤i≤R)中存在一个时间点treset,使得该区间[tstart,treset-1]中大部分时间值所对应的中间变量cj等于cr(cr=1,2,...,M),同时[treset,tend]中大部分时间值所对应的cj等于cs(cs=1,2,...,M),并且cr≠cs,则判断treset为一个时钟值瞬时调整点。
本发明已经进行了多次实施试验,下面介绍其中两个实施例的试验情况参见图7,介绍第一个实施例(自适应检测时钟值瞬时调整)实验网的网络拓扑,其中测量源端主机S和测量目的端主机D均使用linux操作系统(内核版本2.6.9-5.EL)。该实施例的操作步骤如下(1)编写调用系统接口settimeofday()的程序,在测量源端主机S上手工随机产生多次时钟重置,同时在日志中记录重置信息ResetInfoI,包括每次时钟重置的准确时间以及重置总次数。
(2)采集源端主机S到目的端主机D的单向时延测量数据,以及时延数据所对应的主机S时间戳信息。
(3)设计不同特征的时钟重置场景,通过对比ResetInfoI与该方法的检测结果,验证该方法检测多个重置点的自适应性和准确性。
图8展示了上述方法实施例的测试结果情况,图中虚线就是检测到的时钟值瞬时调整的结果数值。
参见图9,介绍第二实施例(自适应检测时钟速率调整)实验网的网络拓扑,图中的测量源端主机S(192.168.102.22)和测量目的端主机D(192.168.105.55)均使用Linux操作系统(内核版本2.6.9-5.EL),选择主机192.168.103.70为NTP服务器,主机D为NTP客户端。该实施例的操作步骤如下(1)在测量目的端主机D上使用ntpdate命令(参数为B)随机进行多次NTP时钟同步,同时在日志中记录重置信息ResetInfoII,包括每次时钟重置的准确时间以及重置总次数。测量源端主机S不做任何时钟同步操作。
(2)采集源端主机S到目的端主机D的单向时延测量数据,以及时延数据对应的主机S时间戳信息。
(3)设计不同特征的时钟速率调整场景,通过对比ResetInfoII与该方法的检测结果,验证该方法检测多次主机时钟速率调整的自适应性和准确性。
图10展示了上述方法实施例的测试结果情况,图中虚线就是检测到的时钟速率调整的结果数值。
总之,本发明的实施例的试验是成功的,实现了发明目的。
权利要求
1.一种基于模式识别的自适应检测时钟重置的方法,其特征在于包括下列操作步骤(1)对模式识别中的最大最小距离聚类算法进行改进;(2)进行单向时延检测,获取测量数据集Ω={vi=(ti,di)|i=1,2,3,...,N},其中,自然数i为测量序号,ti是源端测量主机在第i个测量包上的发送时刻时间戳,di为在目的端测量主机测得的原始单向时延;(3)假设在测量过程中只有一端主机可能发生时钟重置时,采用所述改进的最大最小距离聚类算法自适应检测是否发生调整时钟速率方式的时钟重置;(4)采用所述改进的最大最小距离聚类算法,自适应检测是否发生时钟值瞬时调整方式的时钟重置。
2.根据权利要求1所述的自适应检测时钟重置的方法,其特征在于所述步骤(1)进一步包括下列操作内容(11)参数初始化设输入的待识别的特征向量集合为X={xi|i=1,2,...,N},这些特征向量的聚类结果为C={Cj|j=1,2,...,m},m为聚类结果数;则初始化聚类结果数m=1,并任选一个特征向量x1作为第一个聚类中心,即C1={x1};(12)判断聚类中心设X中未被判断为聚类中心的特征向量组成集合A={ai|i=1,2,...,N-m},则聚类中心组成的集合B=X-A={bj|j=1,2,...,m},式中B中的数据个数为聚类结果数m,且A和B的并集即为待识别的特征向量集合X;再分别计算A、B间的豪斯多夫Hausdorff距离H(A,B),若H(A,B)大于阈值θ,则认为使H(A,B)取最大值的特征向量ai是一个新的聚类中心,即聚类结果数为m+1,并产生一个新的聚类集合Cm+1={ai};其中,阈值θ是根据不同网络的具体运行环境设定的经验值,ai是集合A中的某个元素;(13)对剩余的、未被判断成聚类中心的各个特征向量逐一进行聚类在完成对输入的所有待识别的特征向量进行聚类中心的判断,共得到m个聚类中心后,再将剩余的、未被判断成聚类中心的各个特征向量逐一进行聚类或归类处理;具体方法是分别计算待归类特征向量xi与每个聚类中心的欧几里得距离,假设该特征向量xi与某个聚类Cj(j=1,2,...,m)的聚类中心的欧几里得距离最小,则判断该特征向量xi属于该聚类集合Cj,即将xi并入集合CjCj=Cj∪{xi}。
3.根据权利要求1所述的自适应检测时钟重置的方法,其特征在于所述步骤(3)进一步包括下列操作内容(31)计算原始单向时延的时钟频差值从测量的起始时间开始,采用“滑动窗”技术,即选取窗口时间长度为w1并计算该窗口内单向时延数据的时钟频差值,然后,将窗口向前滑动w1/2,再计算新窗口的时钟频差值;如此重复进行,直到滑动窗到达测量时间的末端,最终得到时钟频差值集合S={si|i=1,2,3,...,n},式中,n是最终计算得的时钟频差值个数;(32)使用步骤(1)中描述的改进的最大最小距离聚类算法对该n个原始单向时延测量数据的时钟频差值进行聚类处理,得到的聚类集合为Sj(j=1,2,...K),式中,K是聚类结果个数;(33)对聚类结果进行分析当聚类结果个数大于1时,寻找其中数据个数最多的两个聚类Sp和Sq,若它们能够同时满足下述两个条件Sp和Sq的数据均能被分为若干段,且每一段的数据在时序上是连续的;以及Sp和Sq中均至少能找到一段,其中数据的数目不小于阈值θ1,该阈值θ1是一个经验值;此时,可判断发生了时钟速率调整方式的时钟重置;否则,未发生时钟速率调整;(34)检测时钟速率的调整区间因为在测量刚开始时时钟速率调整的发生概率极小,故假设此时没有发生时钟速率调整;若聚类Sp中数据要比聚类Sq中数据在时序上更早地大量连续出现,则认为Sq中数据为调整时钟速率时的时钟频差值,即在Sq中数据所对应的时间区间发生了时钟速率调整;然后,对Sq中的数据逐段进行下述判断若某段中的数据个数不小于上述阈值θ1,则认为该段数据所对应的时间区间为时钟速率调整区间,藉此得到所有的时钟速率调整区间。
4.根据权利要求3所述的自适应检测时钟重置的方法,其特征在于所述时钟频差值si的计算公式是si=(dq-dp)/(tq-tp);式中,第i个窗口覆盖的时间区间为[tp,tq],则(tp,dp)为该第i个窗口的第一组数据tp为源端测量主机发包时间,dp为测得的原始单向时延;(tq,dq)为该第i个窗口的最后一组数据tq为源端测量主机发包时间,dq为测得的原始单向时延。
5.根据权利要求1所述的自适应检测时钟重置的方法,其特征在于所述步骤(4)进一步包括下列操作内容(41)为提高数据处理精度,按设定的时间间隔w2将测量数据集Ω分成若干数据子集,再对每个子集分别进行重置点检测设源端测量主机发送探测数据包的速率为c,则除了最后一个时间段以外,每个子集中的测量数据个数为w2c,且最终获得L个测量数据子集Ωi(i=1,2,...,L),其中Ω1={vj=(tj,dj)|j=1,...,w2c;},Ω2={vj=(tj,dj)|j=w2c+1,...,2w2c},......,ΩL={vj=(tj,dj)|j=(L-1)w2c+1,...,N}由此将L个测量子集Ωi(i=1,2,...,L)中的原始单向时延值dj分别组成一维特征向量集合Di(i=1,2,...,L)D1={dj|j=1,...,w2c},D2={dj|j=w2c+1,...,2w2c},......DL={dj|j=(L-1)w2c+1,...,N};(42)对原始单向时延数据进行聚类处理使用改进的最大最小距离聚类算法分别对该一维特征向量集Di(i=1,2,...,L)中的原始单向时延数据进行聚类处理,再根据聚类结果,生成特征向量集Ωi′;Ωi′的生成规则为设Di聚类后得到M个聚类结果Ch(h=1,2,...M),也就是得到M个特征向量集合Ωi′={vj′=(tj′,cj)|tj′=tj;cj=1,2,...,M}(i=1,2,...,L),其中,vj′中时间值tj′的取值与原始测量数据集Ω中对应的vj的时间值tj一致,中间变量cj的取值规则为根据聚类结果,如果vj中单向时延值dj属于第h个聚类,即dj∈Ch,则对应vj′中的中间变量cj=h(h=1,2,...,M);(43)识别时钟值瞬时调整区间和噪声区间分析Ωi′可发现,噪声区间和时钟重置区间中对应的中间变量cj值均随时间发生变化,设Ωi′中vj′的下标j∈[k,l],k、l、j均为正整数,且1≤k≤l≤N,建立模型cj=mj+Yj,j=k,k+1,...,l;式中,线性函数mj是中间变量cj的趋势项,mj=a(a为常数,a=1,2,...,M);Yj是中间变量cj的随机噪声项,其数值为离散的整数,在没有时钟重置和噪声干扰的时间区间上,Yj=0,即cj=mj;否则,Yj≠0;再利用时间序列技术中的一种低通滤波器m^j=(2q+1)-1Σl=-qqcj+l,q+k≤j≤l-q,]]>式中,cj+l即为步骤(42)中得到的vj′呻的cj值,用于保留趋势项mj的变化趋势,并同时过滤出重置区间和噪声区间;然后,按照时间顺序,使用该滤波器的计算公式分别计算特征向量集Ωi′中每个中间变量cj所对应的滤波结果 的值,如果|m^j-cj|<ϵ,]]>ε为设定的一个足够小的数;则认为没有发生时钟值瞬时调整或出现噪声;反之,则认为该中间变量cj对应的时间值tj位于某个时钟值瞬时调整区间或是噪声区间;(44)识别时钟值瞬时调整区间因为噪声区间所对应的中间变量数据cj值具有快速振荡的特征,且噪声区间的起始时间点和结束时间点对应的cj值相等;而时钟重置区间的中间变量数据cj值的变化仅发生在某个时间点,且该时间点前后对应的cj值不相等;故先假设前述步骤中过滤出来的某个时间区间为[tstart,tend](1≤start≤end≤N),如果cstart=cend,则该区间是噪声区间;反之,则为时钟值瞬时调整区间,时钟值瞬时调整次数R=R+1。(45)检测时钟值瞬时调整点设某时钟值瞬时调整区间Ti=[tstart,tend](1≤start≤end≤N,1≤i≤R)中存在一个时间点treset,使得该区间[tstart,treset-1]中大部分时间值所对应的cj等于cr(cr=1,2,...,M),同时[treset,tend]中大部分时间值所对应的cj等于cs(cs=1,2,...,M),并且cr≠cs,则判断treset为一个时钟值瞬时调整点。
全文摘要
一种基于模式识别的自适应检测时钟重置的方法,采用模式识别中改进的最大最小距离聚类算法对单向时延的检测数据进行聚类处理,再自适应分别检测是否发生调整时钟速率方式和时钟值瞬时调整方式的两种不同类型的时钟重置,还能够判断时钟重置发生的次数。本发明的主要特点是局限性较小只需进行正向路径的单向时延测量,获取该正向路径的单向时延的测量数据集合,就能用该方法同时完成自适应检测和判断两种时钟重置发生的类型及其次数;有效提高了时钟重置检测的准确性和自适应性,有利于在单向时延测量中的广泛部署、推广和应用。
文档编号H04L1/20GK101035038SQ20071009866
公开日2007年9月12日 申请日期2007年4月24日 优先权日2007年4月24日
发明者杨谈, 崔毅东, 金跃辉, 王洪波, 程时端, 焦利, 王文东, 阙喜戎, 龚向阳 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1