说明书排队延迟估计方法及装置
技术领域
本发明的实施例涉及一种数据传送控制,具体而言涉及一种减小因时钟 偏差(clock skew)导致的排队延迟(queuing delay)估计误差以改善数据传 送控制的技术手段。
背景技术
计算机网络内的各计算装置可通过通信路径收发数据。在这样的计算机 网络中,一个计算装置可通过执行基于伴随着数据传送的排队延迟(queuing delay)的数据传送控制(data transmission control)而将数据传递给其他计算 装置。例如,在数据包通过通信路径上的路由器(router)得到传送的网络环 境中,排队延迟可定义为数据包在路由器的缓冲器中等待的时间。当通信路 径上发生网络拥塞(例如,每单位时间内进入路由器的数据包的数量超过路 由器的处理量的情况)时,数据包即使到达路由器,也会在路由器的缓冲器 中一直等到先行的数据包在路由器中得到处理。
作为估计排队延迟的方式中的一种方式的TCP-Vegas方法是一种利用发 送数据的计算装置(以下称为发送器)与接收数据的计算装置(以下称为接 收器)之间的包的往返时间(Round Trip Time:RTT)的方式。具体而言, 发送器与接收器之间的RTT为由发送器向接收器传递包并由接收器向发送器 传递该包的响应所需的时间。例如,在发送器和接收器被配置于前述的网络 环境的情况下,发送器与接收器之间的RTT为以下时间之和:(i)包从发送 器传递至路由器所需的第一时间;(ii)包从路由器传递至接收器所需的第二 时间;(iii)包的响应从接收器传递至路由器所需的第三时间;(iv)包的响 应从路由器传递至发送器所需的第四时间;(v)在路由器的缓冲器中的排队 延迟。通常可以认为第一时间至第四时间被固定,于是RTT的变化即可以视 为是排队延迟的变化。因此,将一个从于某一时间点测定的RTT中减去排队 延迟为0时测定的RTT(以下称为baseRTT)的值估计为该时间点上的排队延 迟是妥当的。
只是通常情况下实际排队延迟为0的时间点不是直接了然的。例如,在前 述的网络环境中,发送器和接收器能够直接识别路由器的缓冲器充满到何种 程度的情况几乎不存在。结果,在估计排队延迟之前估计baseRTT实为非常重 要。根据TCP-Vegas方法,针对预定的时间点t=k,RTTmin(0,k)被使用为 baseRTT的估计值,其中,RTTmin(0,k)为从开始测定RTT的时间点t=0开始到 时间点t=k为止测定的RTT值当中最小的值。换言之,如果将时间点t=k上测定 的RTT记为RTT(k),则针对时间点t=k的排队延迟估计值Qdelay(k)为从RTT(k) 减去RTTmin(0,k)的值。例如,RTTmin(0,k)在时间点t=k可以具有如下地进行 更新的变量RTTmin的值。对应于时间点t=0的RTTmin被设定为RTT(0)。然后, 针对时间点t=k,如果RTT(k)小于在时间点t=k之前最近一次测定RTT的时间点 t=j所对应的RTTmin值,则RTTmin值变更为RTT(k),否则RTTmin值不变。
作为替代方案,为了计算机网络的高效的运行,可利用从发送器到接收 器的正向路径(forward path)上的排队延迟(以下称为正向排队延迟(forward queuing delay))执行传送控制。在这种传送控制中,对从接收器向发送器的 反向路径(backward path)上的排队延迟(以下称为反向排队延迟(backward queuing delay))不予考虑,这是因为反向排队延迟与正向路径中可能发生的 网络拥塞无关。例如,在发送器和接收器被配置于前述的网络环境的情况下, 发送器与接收器之间的RTT不仅包括从发送器向接收器传送的包在路由器的 缓冲器中等待的时间(即,正向排队延迟),而且还包括该包的响应从接收 器向发送器传递的途中在路由器的缓冲器中等待的时间(即,反向排队延迟)。 如果网络拥塞只在反向路径上发生而在正向路径上没有发生,则不需要以因 反向排队延迟而使传送速度减小的方式进行传送控制。
在计算前述的正向排队延迟时可以利用正向路径上的单向传送时间 (One-way Transmit Time:OTT)。正向路径上的OTT(以下称为正向OTT) 为包经过正向路径而从发送器移动至接收器所需的时间,即包从发送器出发 而到达接收器为止所用的时间。可通过与前述的baseRTT估计类似的方式而将 OTTfmin(0,k)使用为排队延迟为0时测定的正向OTT值(以下称为baseOTTf) 的估计值,其中,OTTfmin(0,k)为从开始测定正向OTT的时间点t=0开始到时 间点t=k为止测定的正向OTT值当中最小的值。因此,如果将时间点t=k上测定 的正向OTT记为OTTf(k),则针对时间点t=k的正向排队延迟估计值Qdelayf(k) 为从OTTf(k)中减去OTTfmin(0,k)的值。例如,OTTfmin(0,k)可在时间点t=k具 有如下地进行更新的变量OTTmin的值。对于时间点t=0,OTTfmin被设定为 OTTf(0)。然后,针对时间点t=k,如果OTTf(k)小于在时间点t=k之前最近一次 测定RTT的时间点t=j上的OTTfmin,则OTTfmin变更为OTTf(k),否则OTTfmin 不变。
在发送器和接收器具有不同时钟的情况下,正向OTT的测定将伴随求出 通过不同的时钟测定的时间点(例如,基于发送器的CPU时钟而测定的包出 发时间点以及基于接收器的CPU时钟测定的包到达时间点)的时间差。在这 种正向OTT测定中可能发生的误差的主要原因之一为发送器与接收器的时钟 之间的时钟偏差(clock skew)。时钟偏差表示在发送器中本地(local)时间 增加的速度与接收器中本地时间增加的速度之差。例如,即使发送器与接收 器各自的时钟的操作率(operating rate)只有细微的差异,也会使发送器中的 本地时间的增量与接收器中的本地时间的增量之间产生差异。因此,随着经 过全局时间(global time),全局上相同的时间点上,发送器与接收器各自的 时钟所表示的本地时间的间隔越来越悬殊。例如,即使两个时间点上的排队 延迟为0,在那两个时间点上分别测定的OTTf(即,baseOTTf)的值却由于发送 器与接收器之间的时钟偏差而不同。这种差异可能给上述的正向OTT测定带 来较大的误差。
时钟偏差引起的OTT测定误差最终导致正向排队延迟得到错误的估计。 尤其在计算机网络被使用于音频网络电话(Voice-over-IP)或视频网络电话 (Video-over-IP)之类的实时应用(Applications)的情况下,正向排队延迟 的不恰当的估计值可能成为满足应用所追求的服务品质的障碍。
发明内容
时钟偏差对RTT的测定不产生问题,然而可能对OTT(例如,正向OTT) 的测定带来误差。因此,为了从OTT的测定估计出排队延迟,校正时钟偏差 引起的误差很重要。用于消除这种误差的现有方式为求出时钟偏差的绝对值。 然而,为了准确地求出时钟偏差的绝对值,需要使用线性回归分析或线性规 划法等算法。这种算法要求跨越相当长的时间段而收集的大量的样本,其具 有较高的复杂度(例如O(N2))。并且,这一算法难以适用于实时数据传送。 而且,即使如此求得的时钟偏差的绝对值在某一时间点上只是稍微偏离实际 值,那样的偏差在该时间点以后却可能对排队延迟估计值带来较大误差,结 果有可能使传送控制无法正常执行。
在公开的实施例中,估计正向排队延迟,且为了使时钟偏差引起的误差 最小化而采用如下的机制(Mechanism):除了正向OTT之外对RTT以及反 向OTT也进行连续测定,并在每一个测定时间点上更新RTT的测定值、正 向OTT的测定值和/或反向OTT的测定值,从而减小排队延迟的估计中可能 发生的误差。求出时钟偏差的绝对值的方式是在获得数量相当多的测定样本 之后通过高复杂度计算来估计排队延迟,然而上述的机制却可以在测定RTT、 正向OTT以及反向OTT的每一个测定时间点上利用更少的测定样本而计算 出具有进一步改善的误差范围的排队延迟估计值。
根据示例性实施例,提供一种排队延迟估计方法,包括如下步骤:获取 往返时间(Round Trip Time:RTT)基准值、正向单向传送时间(One-way Transmit Time:OTT)基准值、以及反向OTT基准值,其中,所述RTT基准 值被设定为与发送器和接收器之间的数据传送相关联而从第一测定时间点测 定到第二测定时间点的往返时间(RTT)值当中最小的值,所述正向OTT基 准值被设定为与所述数据传送相关联而测定的正向单向传送时间(OTT)值 当中最小的值,而所述反向OTT基准值被设定为与所述数据传送相关联而测 定的反向OTT值当中最小的值;判定作为所述发送器的本地时间增长率的第 一增长率比起作为所述接收器的本地时间增长率的第二增长率更大还是更 小,据此基于所述RTT基准值而更新所述正向OTT基准值和所述反向OTT基 准值中的一个。
根据所述排队延迟估计方法的一个方面,所述更新还基于所述正向OTT 基准值和所述反向OTT基准值中的另一个。
根据所述排队延迟估计方法的一个方面,从所述第一测定时间点到所述 第二测定时间点为止测定所述正向OTT值和所述反向OTT值。
根据所述排队延迟估计方法的一个方面,该方法在进行所述更新的步骤 之后,还包括执行如下步骤中的至少一个的步骤:基于所述正向OTT值当中 在所述第二测定时间点测定的正向OTT值以及所述正向OTT基准值而估计与 所述数据传送相关联的正向排队延迟(queuing delay);基于所述反向OTT 值当中在所述第二测定时间点测定的反向OTT值以及所述反向OTT基准值而 估计与所述数据传送相关联的反向排队延迟。
根据所述排队延迟估计方法的一个方面,进行所述更新的步骤还包括如 下步骤:当判定为所述第一增长率大于所述第二增长率时,基于所述正向OTT 基准值和所述RTT基准值而更新所述反向OTT基准值,而当判定为所述第一 增长率小于所述第二增长率时,基于所述反向OTT基准值和所述RTT基准值 而更新所述正向OTT基准值。
根据所述排队延迟估计方法的一个方面,所述的判定包括进行如下判定: 当所述正向OTT基准值被设定为所述正向OTT值当中在所述第二测定时间点 测定的正向OTT值时,判定第一时间差是否超过临界值,该第一时间差为测 定出所述反向OTT值当中被设定为所述反向OTT基准值的反向OTT值的测定 时间点与所述第二测定时间点之间的时间差,而当所述反向OTT基准值被设 定为所述反向OTT值当中在所述第二测定时间点测定的反向OTT值时,判定 第二时间差是否超过所述临界值,该第二时间差为测定出所述正向OTT值当 中被设定为所述正向OTT基准值的正向OTT值的测定时间点与所述第二测定 时间点之间的时间差。
根据所述排队延迟估计方法的一个方面,进行所述更新的步骤包括如下 步骤:当判定为所述第一时间差超过所述临界值时,基于所述RTT基准值和 所述正向OTT基准值而更新所述反向OTT基准值,而当判定为所述第二时间 差超过所述临界值时,基于所述RTT基准值和所述反向OTT基准值而更新所 述正向OTT基准值。
根据所述排队延迟估计方法的一个方面,所述RTT基准值被设定为所述 RTT值当中在所述第一测定时间点测定的RTT值。
根据所述排队延迟估计方法的一个方面,该方法还包括如下步骤:在所 述第二测定时间点后续的测定时间点上测定与所述数据传送相关联的额外的 正向OTT值、额外的反向OTT值、以及额外的RTT值;当所述额外的RTT值大 于所述RTT基准值时,重复所述获取的步骤和所述更新的步骤。
根据所述排队延迟估计方法的一个方面,该方法还包括如下步骤:获取 另一正向OTT基准值以及另一反向OTT基准值,所述另一正向OTT基准值被 设定为所述正向OTT值当中在所述第一测定时间点测定的正向OTT值,而所 述另一反向OTT基准值被设定为所述反向OTT值当中在所述第一测定时间点 测定的反向OTT值,而且,所述判定包括正向OTT基准值差值比起反向OTT 基准值差值与已设定的临界值之和更大还是更小的判定,所述正向OTT基准 值差值是从所述另一正向OTT基准值减去所述正向OTT基准值的值,而所述 反向OTT基准值差值是从所述另一反向OTT基准值减去所述反向OTT基准值 的值。
根据所述排队延迟估计方法的一个方面,该方法还包括如下步骤:当判 定为所述正向OTT基准值差值大于所述和时,基于所述反向OTT基准值差值 而更新所述RTT基准值,接着将所述另一反向OTT基准值更新为所述反向 OTT基准值;当判定为所述正向OTT基准值差值小于所述和时,基于所述正 向OTT基准值差值而更新所述RTT基准值,接着将所述另一正向OTT基准值 更新为所述正向OTT基准值。
根据所述排队延迟估计方法的一个方面,进行所述更新的步骤还包括如 下步骤:当判定为所述正向OTT基准值差值大于所述和时,在更新所述另一 反向OTT基准值之后,基于所述RTT基准值、所述正向OTT基准值、以及又 一反向OTT基准值而更新所述反向OTT基准值,而当判定为所述正向OTT基 准值差值小于所述和时,在更新所述另一正向OTT基准值之后,基于所述RTT 基准值、所述反向OTT基准值、以及又一正向OTT基准值而更新所述正向OTT 基准值,其中,所述又一正向OTT基准值被设定为所述正向OTT值当中从已 设定的测定时间点到所述第二测定时间点为止测定的正向OTT值中的最小 值,而所述又一反向OTT基准值被设定为所述反向OTT值当中从所述已设定 的测定时间点到所述第二测定时间点为止测定的反向OTT值中的最小值,且 所述已设定的测定时间点存在于所述第一测定时间点与所述第二测定时间点 中间。
根据另一示例性实施例,提供一种通过处理器执行时存储有用于执行所 述方法的计算机可执行命令计算机可读存储介质。
根据又一示例性实施例,提供一种排队延迟估计装置,包括:基准值收 集部,构成为执行获取RTT基准值、正向OTT基准值、以及反向OTT基准值 的操作,其中,所述RTT基准值被设定为与发送器和接收器之间的数据传送 相关联而从第一测定时间点测定到第二测定时间点的RTT值当中最小的值, 所述正向OTT基准值被设定为与所述数据传送相关联而测定的正向OTT值当 中最小的值,而所述反向OTT基准值被设定为与所述数据传送相关联而测定 的反向OTT值当中最小的值;基准值更新部,构成为执行如下操作:通过判 定作为所述发送器的本地时间增长率的第一增长率比起作为所述接收器的本 地时间增长率的第二增长率更大还是更小,据此基于所述RTT基准值而更新 所述正向OTT基准值和所述反向OTT基准值中的一个。
根据所述排队延迟估计装置的一个方面,所述更新还基于所述正向OTT 基准值和所述反向OTT基准值中的另一个。
根据所述排队延迟估计装置的一个方面,所述正向OTT值和所述反向 OTT值从所述第一测定时间点测定到所述第二测定时间点为止。
根据所述排队延迟估计装置的一个方面,该装置还包括在执行所述更新 的操作之后执行如下估计中的至少一种估计的排队延迟估计部:基于所述正 向OTT值当中在所述第二测定时间点测定的正向OTT值以及所述正向OTT基 准值而估计与所述数据传送相关联的正向排队延迟;基于所述反向OTT值当 中在所述第二测定时间点测定的反向OTT值以及所述反向OTT基准值而估计 与所述数据传送相关联的反向排队延迟。
根据所述排队延迟估计装置的一个方面,进行所述更新的操作还包括如 下操作:当判定为所述第一增长率大于所述第二增长率时,基于所述正向OTT 基准值和所述RTT基准值而更新所述反向OTT基准值,而当判定为所述第一 增长率小于所述第二增长率时,基于所述反向OTT基准值和所述RTT基准值 而更新所述正向OTT基准值。
根据所述排队延迟估计装置的一个方面,所述的判定包括进行如下判定: 当所述正向OTT基准值被设定为所述正向OTT值当中在所述第二测定时间点 测定的正向OTT值时,判定第一时间差是否超过临界值,该第一时间差为测 定出所述反向OTT值当中被设定为所述反向OTT基准值的反向OTT值的测定 时间点与所述第二测定时间点之间的时间差,而当所述反向OTT基准值被设 定为所述反向OTT值当中在所述第二测定时间点测定的反向OTT值时,判定 第二时间差是否超过所述临界值,该第二时间差为测定出所述正向OTT值当 中被设定为所述正向OTT基准值的正向OTT值的测定时间点与所述第二测定 时间点之间的时间差。
根据所述排队延迟估计装置的一个方面,进行所述更新的操作包括如下 操作:当判定为所述第一时间差超过所述临界值时,基于所述RTT基准值和 所述正向OTT基准值而更新所述反向OTT基准值,而当判定为所述第二时间 差超过所述临界值时,基于所述RTT基准值和所述反向OTT基准值而更新所 述正向OTT基准值。
根据所述排队延迟估计装置的一个方面,所述RTT基准值被设定为所述 RTT值当中在所述第一测定时间点测定的RTT值。
根据所述排队延迟估计装置的一个方面,所述基准值收集部还构成为在 所述第二测定时间点后续的测定时间点上测定与所述数据传送相关联的额外 的正向OTT值、额外的反向OTT值、以及额外的RTT值,而且,当所述额外 的RTT值大于所述RTT基准值时,所述基准值收集部构成为重复所述获取的 操作,而所述基准值更新部构成为重复所述更新的操作。
根据所述排队延迟估计装置的一个方面,所述基准值收集部还构成为获 取另一正向OTT基准值以及另一反向OTT基准值,所述另一正向OTT基准值 被设定为所述正向OTT值当中在所述第一测定时间点测定的正向OTT值,而 所述另一反向OTT基准值被设定为所述反向OTT值当中在所述第一测定时间 点测定的反向OTT值,而且,所述判定包括正向OTT基准值差值比起反向OTT 基准值差值与已设定的临界值之和更大还是更小的判定,所述正向OTT基准 值差值是从所述另一正向OTT基准值减去所述正向OTT基准值的值,而所述 反向OTT基准值差值是从所述另一反向OTT基准值减去所述反向OTT基准值 的值。
根据所述排队延迟估计装置的一个方面,所述基准值更新部还被构成为 当判定为所述正向OTT基准值差值大于所述和时,基于所述反向OTT基准值 差值而更新所述RTT基准值,接着将所述另一反向OTT基准值更新为所述反 向OTT基准值,而当判定为所述正向OTT基准值差值小于所述和时,基于所 述正向OTT基准值差值而更新所述RTT基准值,接着将所述另一正向OTT基 准值更新为所述正向OTT基准值。
根据所述排队延迟估计装置的一个方面,进行所述更新的操作还包括如 下操作:当判定为所述正向OTT基准值差值大于所述和时,在更新所述另一 反向OTT基准值之后,基于所述RTT基准值、所述正向OTT基准值、以及 又一反向OTT基准值而更新所述反向OTT基准值,而当判定为所述正向OTT 基准值差值小于所述和时,在更新所述另一正向OTT基准值之后,基于所述 RTT基准值、所述反向OTT基准值、以及又一正向OTT基准值而更新所述 正向OTT基准值,其中,所述又一正向OTT基准值被设定为所述正向OTT 值当中从已设定的测定时间点到所述第二测定时间点为止测定的正向OTT值 中的最小值,而所述又一反向OTT基准值被设定为所述反向OTT值当中从 所述已设定的测定时间点到所述第二测定时间点为止测定的反向OTT值中的 最小值,且所述已设定的测定时间点存在于所述第一测定时间点与所述第二 测定时间点中间。
根据预定的实施例,可以使在包含发送器和接收器的网络中执行传送控 制时用到的排队延迟(例如,正向排队延迟)的估计值的误差最小化。
根据预定的实施例估计的排队延迟的误差范围可小于根据现有技术中的 TCP-Vegas方法而基于RTT的测定值测定的排队延迟的误差范围。
根据预定的实施例,与求出时钟偏差的绝对值而消除时钟偏差引起的误 差的方式相比,可以用更低水平的复杂度更为准确地估计出排队延迟(例如, 正向排队延迟)。
附图说明
图1为表示根据本发明的实施例的网络环境的图。
图2为表示根据本发明的实施例的排队延迟估计装置的图。
图3为用于说明根据本发明的实施例的发送器与接收器之间的时钟偏差 的图。
图4为表示根据本发明的实施例而估计排队延迟时可以用到的过程的伪 代码。
图5为表示根据本发明的实施例而估计排队延迟时可以用到的替代性过 程的伪代码。
图6为图5的伪代码的改进版本。
图7表示基于根据本发明实施例的排队延迟估计的传送控制的仿真结果。
图8表示基于现有技术中的排队延迟估计的传送控制的仿真结果。
符号说明:
100:网络环境 110:发送器
120:接收器 130、140:时间戳
150、160:时钟 200:排队延迟估计装置
210:基准值收集部 220:基准值更新部
230:排队延迟估计部
具体实施方式
以下,参照附图对本发明的具体实施形态进行说明。以下的详细说明是 为了有助于对本说明书中记载的方法、装置和/或系统的整体理解。然而这仅 仅是示例,本发明并不局限于此。
在对本发明的实施例进行说明时,如果认为对公知技术的具体说明有可 能对本发明的主旨造成不必要的混乱,则省略其详细说明。另外,后述的术 语为考虑到在本发明的实施例中的功能而定义的术语,其可能因使用者、运 用者的意图或惯例等而不同。因此,要以整个说明书的内容为基础对其进行 定义。详细说明中使用的术语只是为了记载本发明的实施例,绝非限定性的。 只要不是明确地加以区分,则单数形态的表达包含复数形态的意思。在本说 明书中,“包括”或“具有”之类的表述用于表示某些特性、数字、步骤、操作、 要素及这些当中的一部分或组合,不应该解释为排除记载的以外还有一个或 一个以上的其他特性、数字、步骤、操作、要素及这些的一部分或组合存在 的确实性或可能性。
图1为表示根据本发明的实施例的网络环境的图。
如图1所示,示例性的网络环境100包括用于执行基于包的通信的计算装 置。网络环境100的计算装置包括用于发送数据包的发送器110以及用于接收 该数据包的接收器120。发送器110和接收器120分别单独地操作时钟150和时 钟160。在发送器110中历经基于时钟150的本地时间ts。在接收器120中历经基 于时钟160的本地时间tr。发送器110的本地时间ts的增长速度为Cs,接收器120 的本地时间tr的增长速度为Cr。
发送器110将数据包传送给接收器120并将时间戳(timestamp)130传递给 接收器120。时间戳130可包含于上述的数据包内,而作为替代方案可以与该 数据包分别得到传送。时间戳130表示利用发送器110的时钟150测定的该数据 包从发送器110中发送的时间点的本地时间ts=t1。
接收器120响应于接收到由发送器110发送的数据包而将响应包与时间戳 140一同传递给发送器110。时间戳140可包含于上述的响应包内,而作为替代 方案可以与该响应包分别得到传送。时间戳140包括分别表示利用接收器120 的时钟160测定的两个本地时间tr=t2和tr=t3的时间戳,额外地还可以包括表示 本地时间t1的时间戳。本地时间t2为接收器120接收到由发送器110发送的数据 包的时间点的测定值,本地时间t3为由接收器120发送响应包的时间点的测定 值。
发送器110响应于接收到由接收器120发送的响应包而利用时钟150测定 出响应包在发送器110中被接收的时间点并作为本地时间ts=t4。根据需要,用 于表示本地时间t4的另一时间戳(未图示)可以从发送器110发送到别的计算 装置(例如接收器120)。
在预定的实施例中,包含于网络环境100中的计算装置中的至少一个装 置(例如发送器110)可包括用于基于时间点t1、t2、t3、t4的测定值而控制发 送器110与接收器120之间的数据传送的装置。将这种排队延迟估计装置的一 例示于图2。
图2的示例性排队延迟估计装置200包括:基准值收集部210、基准值更新 部220、以及排队延迟估计部230。
基准值收集部210获取时间点t1、t2、t3、t4的测定值。基于该测定值,基 准值收集部210在预定的测定时间点t上按照如下的数学式获取RTT(Round Trip Time:RTT,往返时间)测定值RTT(t)、正向OTT(One-way Transmit Time: OTT,单向传送时间)测定值OTTf(t)、以及反向OTT测定值OTTb(t)。根据预 定的实施例,基准值收集部210分别对连续的测定时间点重复进行RTT值、正 向OTT值、反向OTT值的测定。
[数学式1]
RTT(t)=(t4-t1)-(t3-t2)
OTTf(t)=t2-t1
OTTb(t)-=t4-t3
接着,针对其测定时间点t,基准值收集部210获取从先行测定时间点到 该测定时间点t为止的时间段内与从发送器110向接收器120的数据传送相 关的RTT、正向OTT、以及反向OTT的测定值,并可以获取该时间段内测 定的RTT值中的最小值、该时间段内测定的正向OTT值中的最小值、以及 该时间段内测定的反向OTT值中的最小值。根据预定的实施例,前述的先行 测定时间点可以是开始测定RTT、正向OTT、以及反向OTT的时间点0。根 据另一实施例,该先行测定时间点可以是处于时间点t之前的时间点s(s>0)。 根据又一实施例,基准值收集部210在涉及RTT、正向PTT、以及反向OTT 时不一定非要在同一时间段内求出RTT值、正向OTT值、以及反向OTT值 并求出RTT值的最小值、正向OTT值的最小值、以及反向OTT值的最小值。 例如,基准值收集部210可以获取从时间点0到时间点t为止测定的RTT值 中的最小值、从时间点s到时间点t为止测定的正向OTT值中的最小值、以 及从时间点s到时间点t为止测定的反向OTT值中的最小值。
如前所述,在预定的实施例中,基准值收集部210计算出从开始测定RTT、 正向OTT、以及反向OTT的时间点0到时间点t为止的时间段内测定的RTT 值中的最小值RTTmin(0,t)。针对时间t,排队延迟Qdelay(t)可以认为是从 RTT(t)中减去排队延迟为0时将会测定出的RTT(即,baseRTT)的值。然而, 通常情况下无法通过网络环境100中的发送器110或接收器120而直接得知 baseRTT。对此可以用RTTmin(0,t)取代baseRTT而使用为baseRTT的估计值。 也可以用从RTT(t)中减去RTTmin(0,t)的值估计排队延迟Qdelay(t),然而要注 意排队延迟Qdelay(t)中包括正向排队延迟Qdelayf(t)和反向排队延迟 Qdelayb(t)。
而且,在时间点t,基准值收集部210求出在前述的时间段内测定的正向 OTT值中的最小值OTTfmin(0,t),并求出该时间段内测定的反向OTT值中的 最小值OTTbmin(0,t)。
例如,如果将时间点t上排队延迟为0时将会测定出的正向OTT记为 baseOTTf(t),则时间点t上的正向排队延迟Qdelayf(t)可认为是从OTTf(t)中减 去baseOTTf(t)的值。同理,如果将时间点t上排队延迟为0时将会测定出的 反向OTT记为baseOTTb(t),则时间点t上的反向排队延迟Qdelayb(t)可认为 是从OTTb(t)中减去baseOTTb(t)的值。然而,如前所述,通常情况下无法通过 网络环境100中的发送器110或接收器120而直接得知baseOTTf(t)和 baseOTTb(t)。取而代之,可以分别用OTTfmin(0,t)和OTTbmin(0,t)作为对 baseOTTf(t)和baseOTTb(t)的估计。
在这样的例中,排队延迟估计部230可根据如下的数学式获得时间点t 上的正向排队延迟的估计值Qdelayf(t)和反向排队延迟的估计值Qdelayb(t)。
[数学式2]
Qdelayf(t)=OTTf(t)-OTTfmin(0,t)
Qdelayb(t)=OTTb(t)-OTTbmin(0,t)
如果发送器110与接收器120之间不存在时钟偏差,则在任意的时间点 t上baseOTTf(t)和baseOTTb(t)分别为固定的常数baseOTTf和baseOTTb,且随 着时间的经过,OTTfmin(0,t)和OTTbmin(0,t)分别以相当高的准确率逼近 baseOTTf和baseOTTb。相反,如后述的那样,如果发送器110与接收器120 之间存在时钟偏差,则baseOTTf(t)和baseOTTb(t)并不固定,于是OTTfmin(0, t)与baseOTTf(t)之间或者OTTbmin(0,t)与baseOTTb(t)之间可能产生较大差异。 示例性的排队延迟估计装置200的基准值更新部220就是执行用于减小这种 时钟偏差引起的误差的操作。
时钟偏差引起的排队延迟估计误差
图3为用于说明根据本发明的实施例的发送器与接收器之间的时钟偏差 的图。
假定在全局时间tg=t0上发送器110和接收器120中的本地时间相同。发 送器110的时钟150是以Cs的比率增加发送器110的本地时间,而接收器 120的时钟160则以Cr的比率增加接收器120的本地时间,因此发送器110 与接收器120之间的时钟偏差α是由如下的数学式来确定。
[数学式3]
α=Cr-Cs
因此,在全局时间tg=t0+Τ上,发送器与接收器之间的本地时间之差具有 |α×Τ|的大小。例如,图3表示α>0的情况下接收器120的本地时间与发送器 110的本地时间之差。参照图3可知,对于全局时间tg=t0和全局时间tg=t0+Τ, 即使正向路径上发生等量的网络拥塞,于全局时间tg=t0+Τ测定的正向OTT 却比在全局时间tg=t0测定的正向OTT更长。这是由于数据包从发送器110 中出发的时间点是通过发送器110的时钟150测定,而该数据包到达接收器 120的时间点是通过接收器120的时钟160测定,其中正向OTT则通过求出 两个测定值之差而测定。
进而,当α>0时,随着时间的经过OTTminf(0,t)可能无法再改变。例如, 在由于时钟偏差(α>0)而使发送器110的本地时间与接收器120的本地时间 之差变得很大的时间点(例如,时间点t)上,OTTf(t)不会变得比OTTminf(0, s)(其中,0<s<t)小而OTTminf(0,t)继续维持在OTTminf(0,s)的可能性较高。 相反,随着时间的经过,这样的时钟偏差(α>0)将使baseOTTf(t)增加。结 果,在数学式2中将baseOTTf(t)估计为OTTminf(0,t)会导致baseOTTf(t)的过 低估计以及Qdelayf(t)的过高估计。
相反,当α<0时,随着时间的经过,在相同状态的正向路径上测定的正 向OTT值变小。因此,baseOTTf(t)随着时间的经过而减少,于是将OTTminf(0, t)估计为baseOTTf(t)具有足够的准确率。
反向排队延迟Qdelayb(t)可能是在α<0时被过高估计的值。其原因在于, 在由于时钟偏差(α<0)而使发送器110的本地时间与接收器120的本地时间 之差变得很大的时间点(例如,时间点t)上,baseOTTb(t)增加很多,于是 OTTminb(0,t)与baseOTTb(t)的间隔也得到相应增加的可能性较高。相反,当 α>0时,将OTTminb(0,t)估计为baseOTTb(t)具有足够的准确率。
用于减少时钟偏差引起的排队延迟估计误差的一些技术手段
根据以下作为示例记载的技术手段,可以减少前述的估计误差。例如, 图2的排队延迟估计装置200的基准值更新部220可以执行用于实现这种示 例性技术手段的操作。要注意这些技术手段利用如下的一些要点。
-即使存在时钟偏差(即,α≠0),RTT也可以不受时钟偏差的影响而被 测定,RTTmin(0,t)为比较准确地估计出baseRTT的值。因此,RTTmin(0,t) 可被使用为用于估计排队延迟的RTT基准值。
-即使存在时钟偏差,baseOTTf(t)和baseOTTb(t)中的一个却可以不受时 钟偏差的影响而以相当高的准确率估计出。当α>0时,OTTminb(0,t)为比较 准确地估计出baseOTTb(t)的值,而当α<0时,OTTminf(0,t)为比较准确地估 计出baseOTTf(t)的值。因此,OTTminf(0,t)和OTTminb(0,t)分别可以使用为 用于估计正向排队延迟的正向OTT基准值和用于估计反向排队延迟的反向 OTT基准值。
在预定的实施例中,当给定的时钟偏差α小于0时,用根据如下数学式 获取的OTTbmin值取代OTTbmin(0,t)而使用为baseOTTb(t)的估计值(假如在 数学式2中要求出反向排队延迟Qdelayb(t))。即,如下地更新反向OTT基准 值。
[数学式4]
OTTbmin=RTTmin(0,t)-OTTminf(0,t)
相反,在这种实施例中,如果给定的时钟偏差α大于0,则用根据如下 数学式获取的OTTfmin取代OTTfmin(0,t)而使用为baseOTTf(t)的估计值(假 如在数学式2中要求出正向排队延迟Qdelayf(t))。即,如下地更新正向OTT 基准值。
[数学式5]
OTTfmin=RTTmin(0,t)-OTTminb(0,t)
在预定的实施例中,可以不直接求出时钟偏差α,而是备有用于判定时 钟偏差α大于0还是小于0的过程。例如,根据以下记载的排队延迟估计方 法之一,构成为使图2的排队延迟估计装置200的基准值更新部220判定发 送器110的本地时间增长率是大于还是小于接收器120的本地时间增长率 (即,时钟偏差α是小于0还是大于0),并根据该判定而执行更新正向OTT 基准值与反向OTT基准值之一的操作。这种更新基于RTT基准值,进而可 以基于正向OTT基准值和反向OTT基准值中的另一值。
图4为表示根据本发明的实施例而估计排队延迟时可以用到的过程的伪 代码(pseudo code)。
基于图4的伪代码的过程可针对获取RTT测定值RTT(t)、正向OTT测 定值OTTf(t)、以及反向OTT测定值OTTb(t)的每一个时间点t执行。
如图4的伪代码的第1~3行所示,RTTmin可被更新为显示从开始测定 RTT值的时间点0到时间点t为止测定的RTT值中的最小值。换言之,RTTmin 是设定为表示RTTmin(0,t)的变量。
如图4的伪代码的第4~5行所示,OTTfmin如果大于OTTf(t)则被更新为 OTTf(t)。如图4的伪代码的第11~12行所示,OTTbmin如果大于OTTb(t)则被 更新为OTTb(t)。即,OTTfmin和OTTbmin分别是设定为表示OTTfmin(0,t) 和OTTbmin(0,t)的变量。
图4的伪代码的第6~10行、第13~17行表示用于判定时钟偏差α是大于 0还是小于0并选择性更新OTTfmin和OTTbmin的示例性操作。例如,当α>0 时,baseRTT虽然没有变化,然而baseOTTf(t)却增加,而增加多少baseOTTb(t) 就减少多少。随着时间的推移,OTTfmin无法近似化在增加的baseOTTf(t)而 维持原样的可能性较高,相反,OTTbmin却可能是在减小的baseOTTb(t)的比 较准确的估计值。因此,与OTTfmin不同,OTTbmin持续得到更新的可能性 较高。其暗示着在OTTbmin更新的时间点附近OTTfmin可能没有被更新。当 α<0时,baseRTT没有变化而baseOTTb(t)却增加,而增加多少baseOTTf(t)就 减小多少。随着时间的推移,OTTbmin没得到更新而OTTfmin却持续得到更 新的可能性较高。因此,在OTTfmin被更新的时间点附近,在OTTbmin没有 被更新时,判定为α<0是充分合理的。
图4的伪代码的第6~10行、第13~17行所揭示的选择性更新操作基于前 述的内容。图4的伪代码的第6~10行表示OTTfmin得到更新的情况下执行 的操作。这些操作中伴随如下操作:当判定为OTTbmin最后一次更新的时间 点与时间点t之间的时间差大于临界值T时,将OTTbmin更新为从RTTmin 减去OTTfmin的值的操作;以及将OTTfmin最后一次更新的时间点记录为时 间点t的操作。即,可以认为如果该时间差大于临界值T则判定为α<0。图4 的伪代码的第13~17行的操作是在OTTbmin被更新的情况下执行。这些操作 中伴随如下操作:当判定为OTTfmin最后一次更新的时间点与时间点t之间 的时间差大于临界值T时,将OTTfmin更新为从RTTmin减去OTTbmin的值 的操作;以及将OTTbmin最后一次更新的时间点记录为时间点t的操作。即, 可以认为如果该时间差大于临界值T则判定为α>0。
如果图4的伪代码中记载的示例性过程完毕,则基于OTTfmin和OTTbmin 计算出的排队延迟(例如,正向排队延迟)的估计值也可以具有减小的误差 范围。在执行OTTfmin和OTTbmin的选择性更新之前,如果有
RTTmin=baseRTT+Δ1、OTTfmin=baseOTTf(t)+Δ2以及
OTTbmin=baseOTTb(t)+Δ3,则根据图4的伪代码,最终将获得具有如下数学 式所示误差范围的OTTfmin和OTTbmin。
[数学式6]
OTTfmin=baseOTTf(t)+Δf
OTTbmin=baseOTTb(t)+Δb
其中,Δf≥0且Δb≥0,且在α>0的情况下,Δf=Δ1-Δ3且Δb=Δ3,而在α<0 的情况下,Δf=Δ2且Δb=Δ1-Δ2。
图5为表示根据本发明的实施例而估计排队延迟时可以用到的替代性过 程的伪代码。
基于图5的伪代码的过程可针对获取RTT测定值RTT(t)、正向OTT测 定值OTTf(t)、以及反向OTT测定值OTTb(t)的每一个时间点t执行。
如图5的伪代码的第1~2行所示,RTTmin可被更新为表示从开始测定 RTT值的时间点到时间点t为止测定的RTT值中的最小值。换言之,RTTmin 为用于存储前述的RTTmin(0,t)的变量。如果假设RTTmin得到更新的最近的 时间点为s(s<t),则不难理解RTTmin(0,t)具有与RTTmin(s,t)相同的值(即, 在时间点s测定的RTT值)。因此,与RTTmin(0,t)相同,RTTmin(s,t)也可以 起到作为RTT基准值的作用。
如图5的伪代码的第3~4行所示,当RTTmin被更新时,变量RTTfmin 得到OTTf(t)值的输入,而变量RTTbmin得到OTTb(t)值的输入。即,RTTfmin 和RTTbmin分别被设定为RTTmin得到更新的最近时间点s上测定的正向 OTT和反向OTT。
图5的伪代码的第3~12行表示变量OTTfmin和OTTbmin是怎样被更新 的。如图5的伪代码的第3~4行所示,当RTTmin得到更新时,变量OTTfmin 得到OTTf(t)值的输入,而变量OTTbmin得到OTTb(t)值的输入。如图5的伪 代码的第5~12行所示,当RTTmin没有被更新时,OTTfmin如果大于OTTf(t) 则被更新为OTTf(t),而OTTbmin如果大于OTTb(t)则被更新为OTTb(t)。因此, RTTfmin与OTTfmin的关系以及RTTbmin与OTTbmin的关系将由如下的数学 式来确定。
[数学式7]
RTTfmin≥OTTfmin
RTTbmin≥OTTbmin
要而言之,OTTfmin为表示从RTTmin得到更新的最近的时间点s到时 间点t为止测定的OTTf值中的最小值的变量,而OTTbmin为表示从RTTmin 得到更新的最近的时间点s到时间点t为止测定的OTTb值中的最小值的变量。 从这点来看,不能说OTTfmin和OTTbmin一定会分别等于前述的OTTfmin(0, t)和OTTbmin(0,t)。反而是OTTfmin和OTTbmin分别存储OTTfmin(s,t)和 OTTbmin(s,t)。然而baseOTTf(t)与OTTminf(s,t)之差以及baseOTTb(t)与 OTTminb(s,t)之差却不会太大。其原因在于,从根据RTTmin将在一定程度上 准确地估计出baseRTT的一点看来,baseOTTf(t)与RTTfmin之差以及 baseOTTb(t)与RTTbmin之差想必不会太大。因此,OTTminf(s,t)和OTTminb(s, t)可以分别取代OTTfmin(0,t)和OTTbmin(0,t)而分别起到作为用于估计正向 排队延迟的正向OTT基准值和作为用于估计反向排队延迟的反向OTT基准 值的作用。并且,RTTfmin和RTTbmin可分别作为单独的正向OTT基准值和 单独的反向OTT基准值而得到使用。
接着,如图5的伪代码的第13~17行所示,判定时钟偏差α是大于0还 是小于0。图5的伪代码的第13~15行表示这种判定的基准。在这些行中临 界值θ表示可允许的最大误差范围。为了说明的方便,令A=(RTTfmin-OTTfmin) 且B=(RTTbmin-OTTbmin)。从RTTfmin和RTTbmin分别与正向OTT和反向 OTT相关联的一点看来,可将A、B分别称为正向OTT基准值差值和反向 OTT基准值差值。在图5的伪代码所示的示例性过程中,认为A-B>θ表示α<0 而A-B<θ表示α>0。例如在α>0的情况下,RTTmin得到更新的最近时间点 以后OTTfmin将无法近似化在增加的baseOTTf(t)而维持原样的可能性较高, 相反,OTTbmin却可能是在减小的baseOTTb(t)的比较准确的估计值。因此, 在RTTbmin与OTTbmin之差大于临界值时判定为α>0比起RTTfmin与 OTTfmin之差大于临界值时判定出α>0更具有显著的合理性。同理,可以在 RTTbmin与OTTbmin之差小于临界值时(优于根据RTTfmin与OTTfmin之差 小于临界值)判定为α<0。
如图5的伪代码的第13~14行所示,当A-B>θ时OTTbmin变更为从 RTTmin减去OTTfmin的值。如图5的伪代码2的第15~16行所示,当A-B<θ 时OTTfmin变更为从RTTmin减去OTTbmin的值。在进行这种变更之前, OTTfmin与OTTbmin之一能够比较准确地估计出原本希望估计的值而另一个 却由于时钟偏差而无法达到,然而通过基于更为准确的估计值而更新不够准 确的估计值,使排队延迟的误差减小。
如果图5的伪代码中记载的示例性过程完毕,则可以获得具有减小的误 差范围的OTTfmin和OTTbmin。那样的误差范围可以用与数学式6中所示相 同的方式表示。基于此而计算出的排队延迟(例如,正向排队延迟)的估计 中产生的误差也可以较小。
进而,可以根据用于进一步改善排队延迟估计的至少一种方案而对图5 的伪代码中记载的过程进行修改。图6为图5的伪代码的修改版本。图6的 伪代码同时表示以下将要说明的方案1和方案2。
首先,方案1可实现为如图6的伪代码的第13~15行、第17~19行所示。 具体而言,如图6的伪代码的第13~15行所示,当A-B>θ时,RTTmin减小 与(RTTbmin-OTTbmin)相等的量之后,RTTbmin改变为具有OTTbmin值。当 A-B<θ时,如图6的伪代码的第17~19行所示,RTTmin减小与(RTTfmin- OTTfmin)相等的量之后,RTTfmin改变为具有OTTfmin值。
该方案基于如下的要点。
例如,当时钟偏差α>0时,在RTTmin被更新的最近时间点s以后,在 任意的时间点t上OTTfmin大于或等于baseOTTf(t)。例如,如果OTTfmin在 时间点s+N得到更新,则有如下的数学式成立。
[数学式8]
baseOTTf(s)≤baseOTTf(s)+Nxα =baseOTTf(s+N)≤OTTfmin≤RTTfmin
根据数学式8,RTTmin=RTTfmin+RTTbmin≥OTTfmin+RTTbmin。进而, 由于OTTfmin=OTTf(s+N)且RTTbmin=OTTb(s),因此
OTTfmin+RTTbmin≥baseOTTf(s+N)+baseOTTb(s)≥baseOTTf(s)+baseOTTb(s)=ba seRTT。
因此,从RTTmin=RTTfmin+RTTbmin减去baseRTT的值Δ1大于或等于 从(OTTfmin+RTTbmin)减去baseRTT的值。从这一点来看,将RTTmin更换 为(OTTfmin+RTTbmin)(即,将OTTfmin使用于与RTTmin相关的RTTfmin 的位置)可以减小Δ1,且还可以根据数学式6而减小OTTfmin的误差Δf。
用类似的方式,当时钟偏差α<0时,将OTTbmin使用于与RTTmin相关 的RTTbmin的位置可以减小Δ1,且还可以根据数学式6而减小OTTbmin的 误差Δb。
方案2可实现为如图6的伪代码的第16~20行所示。图6的伪代码是将 方案2与方案1一并采用的例。作为另一例,方案2可以作为方案1的替代 方案采用。
根据方案2,如图6的伪代码的第16行所示,当A-B>θ时,OTTbmin 变更为从RTTmin减去OTTfmin的值与OTTbmin(t-N,t)中的较小值。当A-B<θ 时,如图6的伪代码的第20行所示,OTTfmin变更为从RTTmin减去OTTbmin 的值与OTTfmin(t-N,t)中的较小值。
方案2基于如下的要点。从时间点t-N到时间点t为止的时间段内测定的 OTTf值中的最小值OTTfmin(t-N,t)与该时间段内测定的OTTb值中的最小值 OTTbmin(t-N,t)具有如下的数学式所示的关系。
[数学式9]
baseOTTf(t)≤OTTfmin(t-N,t)+η
baseOTTb(t)≤OTTbmin(t-N,t)+η
其中,η=α×N。
如果在以上数学式中N足够小,则η也将是很小的值。因此,如果假定 η可以忽略,则有如下的数学式所示的关系成立。
[数学式10]
baseOTTf(t)≤OTTfmin(t-N,t)
baseOTTb(t)≤OTTbmin(t-N,t)
因此,在时钟偏差α>0的情况下,将OTTfmin修改为如图6的伪代码的 第20行所示而取代如图5的伪代码的第16行所示的修改,而在时钟偏差α<0 的情况下,则是将OTTbmin修改为如图6的伪代码的第16行所示而取代如 图5的伪代码的第14行所示的修改,这些修改使额外的误差改善得以实现。 从这些点来看,可以理解OTTminf(t-N,t)和OTTminb(t-N,t)分别起到作为用于 估计正向排队延迟的附加正向OTT基准值和作为用于估计反向排队延迟的附 加反向OTT基准值的作用。
按照预定的实施例,根据前面参照图4至图6记载的方案中的至少一种, 在图2的排队延迟估计装置200的基准值收集部210获取RTTmin、OTTfmin、 以及OTTbmin而排队延迟估计装置200的基准值更新部220选择性更新 OTTfmin或OTTbmin之后,排队延迟估计装置200的排队延迟估计部230可 估计出正向排队延迟和反向排队延迟中的至少一个。估计的正向排队延迟 Qdelayf(t)和反向排队延迟Qdelayb(t)是由数学式2中的OTTfmin(0,t)和 OTTbmin(0,t)分别被OTTfmin和OTTbmin取代的如下数学式来确定。
[数学式11]
Qdelayf(t)=OTTf(t)-OTTfmin
Qdelayb(t)=OTTb(t)-OTTbmin
根据前述技术手段的排队延迟估计可以实现改善的传送控制。例如,当 包含发送器和接收器的网络中没有发生正向排队延迟而发生了反向排队延迟 时,利用只基于RTT测定值而估计的排队延迟而执行传送控制的结果可能会 降低网络的利用效率。
图7和图8分别表示基于根据本发明实施例的排队延迟估计的传送控制 和基于现有技术中的排队延迟估计的传送控制的仿真结果。为了进行这一仿 真,运行了Microsoft(微软)的被设置为操作系统的两台计算 机之间的文件传送应用。在文件的传送开始后,通过执行应用而使预定的时 间段内产生平均20ms的反向排队延迟。图7的曲线710和图5的曲线720 表示由提供的作业管理器获得的结果。曲线710表示为了传送文 件而采用基于图5的伪代码中记载的过程的排队延迟估计方法的情况下,用 于传送文件的计算机的网络接口的利用率。曲线720表示采用了只利用RTT 测定值估计排队延迟的现有技术中的方法的情况下该网络接口的利用率。如 曲线720所示,现有技术中的排队延迟估计方法随着反向排队延迟的发生而 导致利用率急剧降低。相反,参照曲线710可知,即使发生反向排队延迟, 图5的排队延迟估计方法也可以使传送控制正常执行。
另外,本发明的实施例可以包括记录有用于在计算机上执行本说明书中 记载的方法的程序的计算机可读存储介质。所述计算机可读存储介质可将程 序命令、本地数据文件、本地数据结构等单独或组合而包含在内。所述介质 可以是为了本发明而特别设计并构成的。计算机可读存储介质的例中有硬盘、 软盘、磁带之类的磁介质;CD-ROM、DVD之类的光记录介质;软盘之类的 磁光介质以及ROM、RAM、闪存等为了存储并执行程序命令而特别构成的 硬件装置。程序命令的例中不仅包括通过编译器制作的机器语言代码,而且 还可以包括借助于解释器等而在计算机上得以执行的高级语言代码。
以上已通过代表性实施例对本发明进行了详细说明,然而本发明所属技 术领域中具有普通知识的人员应该会理解可以在不脱离本发明范围的限度内 对所述的实施例进行多种多样的变形。
因此,本发明的权利范围不应局限于所述的实施例而确定,而是要根据 权利要求书及其等价内容来确定。