执行节点之间的时间同步的网络同步方法及装置 【技术领域】
技术领域涉及在网络中执行节点之间的时间同步的网络同步方法及装置。背景技术 存 在 很 多 的 用 于 利 用 时 间 戳 (time stamps) 传 递 时 序 (timing) 的 方 案 (schemes)。
在所有的这种方案中, 构成网络的各个节点尝试与所述节点中的一个节点进行同 步。此时, 一个节点属于被称为主的节点, 即主节点。而且, 在这种方法中, 时序能够在被称 为最高主的一个节点, 即最高主节点跟踪。
主节点向除了该主节点的主节点之外的附属在主节点的所有节点传送包含时间 戳的消息。此时, 时间戳可表示消息被传送的瞬间的时刻。各个从节点接收这种时间戳, 并 在时间戳上相加从节点与主节点之间的传递时间 (propagation time)。即, 从节点通过比 较接收消息的时刻与相加传递时间的时间戳, 即相加传递时间的主节点的传送时刻, 计算
主节点和从节点的偏移 (offset), 从而能够进行同步。 发明内容
技术方案
提供如下网络同步方法及装置, 即, 系统启动 (start up) 之后, 若开始节点之间的 同步, 则通过逐渐增加用于测量传递时间 (propagation time measurement) 的窗口大小的 方法, 能够提高抖动 (jitter)、 漂移 (wander) 及时间同步的性能。
而且, 还提供如下的网络同步方法及装置, 即, 传递时间的测量执行至最大窗口大 小之后, 在传递时间的平均值计算中采用指数性的加权值, 由此能够提高抖动、 漂移及时间 同步的性能。
本发明的一方面提供的网络同步方法包括如下步骤 : 在第 k(k 为自然数 ) 次时 间步长 (time step) 中, 测量自从节点至主节点的传递时间 ; 若所述 k 小于滑动窗口大小 (window size), 则根据第一计算式计算在第 k+1 次时间步长下的传递时间平均值, 若所述 k 大于或等于滑动窗口大小, 则根据第二计算式计算在第 k+1 次时间步长下的传递时间平 均值 ; 以及, 利用所述主节点上的消息传送时刻、 所述从节点上的消息接收时刻以及所述传 递时间平均值计算偏移。
此时, 所述第一计算式及第二计算式可利用第 k 次时间步长下的传递时间平均值 和在第 k 次时间步长下测量的传递时间计算出在所述第 k+1 时间步长下的传递时间平均 值。
此时, 所述第一计算式如下。
其中, xk 是指在第 k 次时间步长下的传递时间平均值, dk 是指在第 k 次时间步长下测量的传递时间。
此时, 所述第二计算式如下。
xk+1 = axk+(1-a)dk
其中, 其中, xk 是指在第 k 次时间步长下的传递时间平均值, dk 是指在第 k 次时间 步长下测量的传递时间, a 是指一阶 (first-order) 数字滤波器的滤波器系数。
此时, 随着所述滑动窗口大小增加, 所述 a 可以指数性地减小。
此时, 所述 a 可通过以下数学式计算。
a = e-1/M
在此, M 表示滑动窗口大小。
此时, 所述 a 可通过以下数学公式计算。
a = e-P/M
在此, M 表示滑动窗口大小, P 表示任意的常数。
技术效果
系统启动 (start up) 之后, 若开始节点之间的同步, 则通过逐渐增加用于测量传 递时间 (propagation time measurement) 的窗口大小的方法, 能够提高抖动 (jitter)、 漂 移 (wander) 及时间同步的性能。
而且, 传递时间的测量执行至最大窗口大小之后, 在传递时间的平均值计算中采 用指数性的加权值, 由此能够提高抖动、 漂移及时间同步的性能。 附图说明
图 1 为根据相关技术的计算传递时间的方法的一示例。 图 2 为根据相关技术的计算传递时间的方法的另一示例。 图 3 示出根据本发明的一实施例的传递时间测量方法。 图 4 为表示图 3 的 330 步骤的详细过程的图。 图 5 表示示出根据本发明的一实施例的网络装置的构成。 图 6 表示根据本发明的一实施例的用于提高测量传递时间的准确度的方法。 图 7 至图 9 表示根据本发明的一实施例的用于设定参数的信令。具体实施方式
以下, 参照附图来详细说明本发明的实施例。
图 1 为根据相关技术的计算传递时间的方法的一示例。
主节点 101 给从节点 102 传送消息。 此时, 作为传送所述消息的瞬间 103 的时刻的 时间戳 T1 被记录在消息中。而且, 当从节点接收消息时, 从节点确认作为接收消息的瞬间 104 的时刻的接收时刻 T2。若从节点 102 知道自主节点 101 的传递时间 D1, 则从节点 102 能够如同 “偏移= T2-T1-D1” 计算出作为与主节点 101 之间的差的偏移, 并可利用偏移执行 与主节点 101 的同步。
但是, 如同上述的假设, 为了计算偏移, 从节点 102 需要知道自主节点 101 的传递 时间 D1。即, 从节点 102 需要计算传递时间 D1。
图 2 为根据相关技术的计算传递时间的方法的另一示例。分别附属于两个节点, 即主节点 201 及从节点 202 的时钟 (clock) 之间的传递时 间可由交换时间戳的所述时钟测量。作为所述时钟当中的一个的请求器 (requester) 在该 请求器将第一消息传送至其他时钟时, 在第一消息中记录该第一消息的传送时刻 T1 203。 作为所述另一时钟的应答器 (responder) 记录所述第一消息的接收时刻 T2 204。
然后, 所述应答器向所述请求器传送对应于所述第一消息的第二消息。 此时, 所述 请求器在所述第二消息中记录所述第二消息的传送时刻 T3 205 而进行传送。最后, 所述请 求器确认所述第二消息的接收时刻 T4 206。
所述请求器可利用如上确认的所述 T1 203 至所述 T4 206 计算如以下数学式 2 表 示的所述传递时间。
【数学式 1】
传递时间= ((T2-T1)+(T4-T3))/2
在此, 假设测量所述传递时间的方法满足以下 (1) 至 (4) 的条件。
(1) 所述传递时间是对称性的。即, 两个方向的传递时间都相同。
(2) 所述传递时间是稳定的。 即, 用于得出作为四个时间戳的所述 T1 至所述 T4 的 时标 (timescale) 恒定。 (3) 主节点和从节点之间的频率差小。
(4) 所述时间戳的值准确。
但是, 所述 (1) 及 (2) 的假设意味着所述请求器与所述应答器之间不能存在易 变延迟 (variable delay) 的根源 (source)。换言之, 意味着所述主节点与从节点之间 不能存在网络开关、 网络桥等中继装置。任意这种装置的存在可导致抖动 (Jitter)、 漂移 (Wander) 及时间同步的不准确 (inaccuracy)。
如上所述的主节点与从节点之间存在所述网络开关或所述网络桥, 由此发生传 递时间的变化及非对称性, 作为用于调整传递时间的变化及非对称性的其他近似方法 (approach) 有在诸如所述网络开关或所述网络桥的中继装置中将各个消息的接收时刻及 传送时刻记录在所述消息中的方法。这种所述方法要求在所述中继装置中包括被称为透 明时钟 (transparent clock) 的时钟和记录时间的硬件 (a clock and time stamping hardware)。
图 3 示出根据本发明的一实施例的传递时间测量方法。
根据本发明一实施例的传递时间测量方法计算测量值的平均值, 并将计算出的平 均值用作用于估计实际传递时间值的 Dave, 在本发明的一实施例中, 可如同 “偏移= k。据此, T2-T1-Dave, 计算出偏移。 k”
图 3 的传递时间测量方法可在作为从设备运行的网络装置中执行。以下, 将在网 络中作为从设备运行的网络装置简单地称为从节点。相同地, 将作为主设备运行的网络装 置简单地称为主节点。
在步骤 310 中, 从节点测量自从节点至主节点的传递时间 (propagation time)。 此时, 自从节点至主节点的传递时间可以是自从节点至主节点的传递时间 T2-T1 及自主节 点至从节点的传递时间 T4-T3 的和或平均值。此时, 对于传递时间的测量可以以预设定的 时间单位测量 k(k 为自然数 ) 次。因此, 在第 k 次时间单位测量传递时间可应用为与在第 k 次时间步长 (time step) 下测量传递时间相同的意思。即, 从节点在第 k 次时间步长下测
量至主节点的传递时间。
在步骤 320 中, 从节点计算在第 k+1 次时间步长下的传递时间平均值。 在步骤 320 中, 若所述 k 小于滑动窗口大小 (window size), 则从节点依据第一计算式计算在第 k+1 次 时间步长下的传递时间平均值, 若所述 k 大于或等于滑动窗口大小, 则从节点依据第二计 算式计算在第 k+1 次时间步长下的传递时间平均值。此时, “滑动窗口” 可以简单地表示为 “窗口” 。此时, 滑动窗口大小 M(M 为自然数 ) 可以是测量的传递时间被保存的次数。滑动 窗口大小 M 与配备与从节点的缓存器的大小相关。
此时, 如图 4 所示, 步骤 320 可包括步骤 401、 步骤 403、 步骤 405 而执行。
在步骤 401 中, 从节点可判断作为之前的时间步长的 k 是否小于滑动窗口大小 M。 此时, 若 k < M, 则从节点执行步骤 403, 若 k 大于或等于 M, 则执行步骤 405。
在步骤 403 中, 从节点可依据第一计算式计算第 k+1 次时间步长下的传递时间平 均值。
在步骤 405 中, 从节点可依据第二计算式计算第 k+1 次时间步长下的传递时间平 均值。所述第一计算式及第二计算式利用第 k 次时间步长下的传递时间平均值及在第 k 次 时间步长下测量的传递时间计算所述第 k+1 次时间步长下的传递时间平均值。 第一计算式与 “系统启动 (star up) 之后, 节点之间的同步开始进行时, 逐渐增加 用于测量传递时间 (propagation time measurement) 的窗口大小” 有关。第二计算式与 “传递时间的测量执行至最大窗口大小之后, 在传递时间平均值中应用指数性的加权值” 有 关。
第一计算式可如以下的数学式 2 定义。
【数学式 2】
在此, xk 表示在第 k 次时间步长下的传递时间平均值, dk 表示第 k 次时间步长下 测量的传递时间。此时, 为了数学式 2 的计算, 从节点可以配备保存 (save) 在第 k 时间步 长下的传递时间平均值 xk 或 kxk 的单元。
第二计算式可如以下的数学式 3 定义。
【数学式 3】
xk+1 = axk+(1-a)dk
在此, xk 表示在第 k 次时间步长下的传递时间平均值, dk 表示第 k 次时间步长下测 量的传递时间, a 表示一阶 (first-order) 数字滤波器的滤波器系数。 为了数学式 3 的计算, 从节点可以配备用于保存 (save) 在第 k 时间步长下的传递时间平均值 xk 的单元。所述数 学式 3 可依据一阶数字滤波器计算, 此时数字滤波器可以是无限脉冲响应 (IIR, infinite impulse response) 滤波器。
在数学式 3 中, a 可被设定为随着滑动窗口大小的增加而指数性地减少。因此, a 可通过以下数学式 4 或数学式 5 计算。
【数学式 4】
a = e-1/M
【数学式 5】
a = e-P/M
在此, P 表示任意的常数。所述数学式 5 表示将数学式 4 一般化的公式。
滑动窗口大小 M 应选择为大于改变在第 k 次时间步长下测量的传递时间 dk 的样 品数的值。 而且, 滑动窗口大小 M 可选择为大于消息的实际传递时间 (actual propagation time) 的变量 (variation) 的时标 (time scale) 的值。在某种状况下, M 可被设定为 1000, 但并不局限于此。
在步骤 330 中, 从节点利用主节点的消息传送时刻、 所述从节点的消息接收时刻 以及所述传递时间平均值计算偏移。偏移可如同 “偏移= T2-T1-Dave, 计算。此时, 从节点 k” 和主节点分别计算传递时间平均值并维持。
图 5 示出根据本发明的一实施例的网络装置的构成。
图 5 所示的网络装置 500 可作为从节点而运行。
网络装置 500 包括传递时间测量单元 510、 传递时间平均值计算单元 520 及偏移计 算单元 530。
传递时间测量单元 510 在第 k(k 为自然数 ) 次时间步长下测量至主节点的传递时 间。 传递时间测量单元 510 可利用时间戳测量至主节点的传递时间。 传递时间测量单元 510 为了测量当前时间步长下的传递时间, 可将作为第一消息的传送时刻的第一时间戳记录于 所述第一消息并传送给所述主节点。 此时, 所述主节点可将所述第一时间戳、 作为所述第一 消息的接收时刻的所述第二时间戳及作为对应于所述第一消息的第二消息的传送时刻的 第三时间戳记录于所述第二消息而传送给网络装置 500。传递时间测量单元 510 确认作为 所接收的所述第二消息的接收时刻的第四时间戳。传递时间测量单元 510 可利用所述第一 时间戳及所述第四时间戳测量当前时间步长下的传递时间。 传递时间平均值计算单元 520 计算在第 k+1 次时间步长下的传递时间平均值。传 递时间平均值计算单元 520 可包括用于维持 M 个传递时间测量值的缓存器。若所述 k 小于 滑动窗口大小 M, 则传递时间平均值计算单元 520 依据第一计算式计算在第 k+1 次时间步长 下的传递时间平均值。若所述 k 大于或等于滑动窗口大小 M, 则传递时间平均值计算单元 520 依据第二计算式计算在所述第 k+1 次时间步长下的传递时间平均值。
偏移计算单元 530 利用所述主节点的消息传送时刻、 所述消息的接收时刻以及所 述传递时间平均值计算偏移。偏移可如同 “偏移= T2-T1-Dave, 计算。 k”
< 传递时间测量的精度提高方法 >
根据本发明的一实施例, 可利用传递时间平均值提高测量传递时间的精度。 此时, 用于网络同步的时间精度可根据在相关节点中使用的应用中的要求最高时间精度的应用 所决定。例如, 要求图像和音响之间的时间同步的应用要求比决定用于移动通信的频率值 的应用更低的时间精度。
图 6 示出根据本发明的一实施例的用于提高测量传递时间的准确度的方法。
图 6 所示的例中, 从最高主设备 610 至从节点 640 的中继段 (hop) 数量为 N-1 个, 全部的节点数为 N 个。此时, 在第一中继节点 620 及第二中继节点 630 之间可存在其 他中继节点, 第一中继节点 620 及第二中继节点 630 可以是时间 - 感知系统 (time-aware system)。
在 S601 步骤中, 第二中继节点 630 自从节点 640 接收第一消息。此时, 第一消息
为请求与时间精度相关的性能参数 (performance parameter) 信息的消息。第一消息可包 含表示中继段的数量的字段 n, 此时表示中继段的数量的字段 n 的值为 1。
由于第二中继节点 630 不是最高主设备, 因此在 S602 步骤中向第一中继节点 620 传送第二消息。此时, 第二消息是请求与时间精度相关的性能参数信息的消息。第二消息 可包含表示中继段的数量的字段 n, 此时表示中继段的数量的字段 n 的值为 1。
由于第一中继节点 620 不是最高主设备, 因此在 S603 步骤中向最高主设备 610 传 送第三消息。 第三消息可包含表示中继段的数量的字段 n′, 此时表示中继段的数量的字段 n′的值是 n′= n+1。
第一消息、 第二消息及第三消息可分别包含相关节点的性能参数信息。 此时, 相关 节点的性能参数信息可包括数字滤波器类型、 数字滤波器大小、 滑动窗口大小及本地时钟 (local clock) 性能中的至少某一个。 此时, 第二消息及第三消息还可以包含之前节点的性 能参数。即, 第二消息可包含从节点 640 的性能参数信息及第二中继节点 630 的性能参数 信息。同样地, 第三消息可包含从节点 640 的性能参数信息、 第二中继节点 630 的性能参数 信息及第一中继节点 620 的性能参数信息。
由此, 将 S601 步骤至 S603 步骤一般化为在任意的中继节点执行的动作而进行说 明时如下。将任意的中继节点假设为第 N-2 中继节点时, 第 N-2 中继节点从第 N-1 节点接 收性能参数请求信息, 并判断第 N-2 中继节点本身是否为最高主节点。若第 N-2 次中继节 点判断为本身不是最高节点时, 将从第 N-1 节点接收的性能参数请求消息传递给第 N-3 节 点。此时, 从第 N-1 节点接收的性能参数请求消息中包含第 N-1 节点的性能参数信息。此 时, 传递到第 N-3 节点的性能参数请求消息包含第 N-1 节点的次性能参数信息及第 N-2 节 点的性能参数信息。
最高主节点 610 接收到第三消息时, 生成性能表格。此时, 性能表格中可包含关于 N-2 个中继节点的性能参数信息及从节点 640 的性能参数信息。最高节点 610 利用所生成 的性能表格生成包含所有节点的性能参数信息的性能信息包, 并返还性能信息包。性能信 息包通过 S604 步骤至 S606 步骤中被传递到从节点 640。
此时, 性能信息包可在各个节点被更新之后传递到下一个节点。 例如, 第一中继节 点 620 可对包含于性能信息包中的自身的信息更新之后传递至第二中继节点 630。
另外, 从节点 640 或最高主设备 650 可参照性能信息包或性能表格向各个中继节 点请求性能参数变更。即, 从节点 640 或最高主设备 650 可向各个中继节点请求增加滑动 窗口大小或改变滤波器常数。 例如, 若当前正在使用的应用是对时间精度要求高的应用, 则 从节点 640 可向中继节点请求增加滑动窗口大小或变更滤波器常数。
S601 步骤至 S606 步骤可在图 3 的 330 步骤之后执行。而且, 各个节点还可以在测 量传递时间之前执行 S601 步骤至 S606 步骤, 或可以周期性或非周期性地执行 S601 步骤至 S606 步骤。各个节点通过周期性或非周期性地执行 S601 步骤至 S606 步骤, 能够提高测量 传递时间的精度。
< 用于设定参数的信令 >
图 7 至图 9 示出根据本发明的一实施例的用户设定参数的信令。图 7 至图 9 所示 的信令可应用于从节点 640 或最高主设备 650 向各个中继节点请求变更性能参数。而且, 图 7 至图 9 所示的信令还可以应用于设定用于计算传递时间平均值的参数。此时, 用于计算传递时间平均值的参数例如可以是窗口大小。另外, 图 7 至图 9 所示的信令还可以应用 于设定网络所需的任意的参数。图 7 至图 9 中, 时间 - 感知桥 (time-aware bridge)2, 、 3、 4、 5 及 6 可执行中继节点的功能。
此时, 信令可通过传送信令消息而被执行。信令消息传递时间 - 感知系统之间的 信息、 请求 (requests) 及 / 或命令 (commands)。此时, 信令消息可依据一个或一个以上的 类型长度值 (TLV : type-length-value) 传递信息、 请求及 / 或命令。
图 7 所示的例表示在时间 - 感知终端站 (time-aware end-station)1 中请求设定 参数的情形。此时, 时间 - 感知终端站 1 可执行从节点的功能。时间 - 感知终端站 1 将具 有请求 TLV 的第一信令消息传送至作为相邻节点的时间 - 感知桥 5。 此时, 第一信令消息可 以是请求利用包含于请求 TLV 的值设定用于计算传递时间平均值的参数。
时间 - 感知桥 5 通过主端口 (master port) 接收第一信令消息, 在保存关于请求 (request)TLV 的消息之后, 通过第二信令消息转发请求 (request)TLV。 此时, 关于请求 TLV 的消息例如可以是 TLV 类型及第一信令消息的序列号。此时, 保存关于请求 (request)TLV 的原因在于, 当设定参数的请求被拒绝时, 使请求 - 拒绝 (request-denied)TLV 仅通过转发 请求 TLV 的路径的逆方向传递。 如图 7 所示, 请求 TLV 可通过时间 - 感知桥 (time-aware bridge)2 被转发至最高 主设备时间 - 感知桥 (grandmaster time-aware bridge)1。此时, 最高主设备时间 - 感知 桥 1 可执行与最高主设备 650 相同的功能。最高主设备时间 - 感知桥 1 同样保存关于请 求 TLV 的信息。最高主设备时间 - 感知桥 1 可以对参数设定请求决定允许 (grant) 或拒绝 (denial)。此时, 对于参数设定请求的允许或拒绝可基于性能参数信息决定。
图 8 所示的例表示最高主设备时间 - 感知桥 1 拒绝参数设定请求的情形。 图 8 中, 请求 - 拒绝 TLV 是表示参数设定请求被拒绝的信令消息。
参照图 8, 当时间 - 感知桥 2 接收请求 - 拒绝 TLV 时, 删除 (remove) 预先保存的关 于请求 TLV 的信息, 并转发请求 - 拒绝 TLV。 如图 8 所示, 请求 - 拒绝 TLV 被传送至时间 - 感 知终端站 1。
图 9 所示的例表示最高主设备时间 - 感知桥 1 允许参数设定请求的情形。
当参数设定请求被允许时, 最高主设备时间 - 感知桥 1 可利用包含于请求 TLV 的 值设定用于计算传递时间平均值的参数。此时, 最高主设备时间 - 感知桥 1 可删除预先保 存的关于请求 TLV 的信息, 并转发请求 - 允许 (request-granted)TLV。此时, 请求 - 允许 TLV 表示参数设定请求被允许。与请求 - 拒绝 TLV 不同, 请求 - 允许 TLV 可通过最高主设备 时间 - 感知桥 1 的所有主端口传递。由此, 时间 - 感知桥 2、 3 及 4 可接收请求 - 允许 TLV。
时间 - 感知桥 2、 3 及 4 利用包含于请求 - 允许 TLV 的值设定用于计算传递时间平 均值的参数, 并可通过主端口传递请求 - 允许 TLV。此时, 时间 - 感知桥 2 可删除预先保存 的关于请求 TLV 的信息, 并转发请求 - 允许 TLV。当时间 - 感知终端站 2 接收到请求 - 允许 TLV 时, 利用包含于请求 - 允许 TLV 的值设定用于计算传递时间平均值的参数。时间 - 感知 终端站 2 不转发请求 - 允许 TLV。
根据图 7 至图 9 中说明的信令, 用于设定参数的信令消息可被传递至最高主设备。 而且, 参数设定请求被承认时, 包含于参数设定请求的参数可被传递至网络内的所有节点。 网络内的所有节点可设定包含于参数设定请求中的参数。如果参数设定请求被拒绝, 则参
数设定拒绝消息只能通过传递参数设定请求的路径 (path) 传递。
根据本发明实施例的方法可被实现为通过多种计算机手段执行的程序命令形态, 从而记录于计算机可读介质中。所述计算机可读介质可单独或组合包含程序命令、 数据文 件、 数据结构等。记录于所述介质的程序命令可以是专为本发明特别设计和构成的程序命 令, 或可以是计算机软件领域的技术人员所公知而能够使用的程序命令。
如上说明的本发明虽然仅通过有限的实施例和附图进行了说明, 但本发明并不局 限于上述实施例, 本发明所属技术领域的具有普通知识的技术人员可通过这种记载进行多 种修改及变更。
因此, 本发明的范围并不局限于已说明的实施例, 应根据权利要求书及与该权利 要求书等同的内容定义。