Method and devices for synchronization
US-9184861-B2 · Nov 10, 2015 · US
US10608764B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10608764-B2 |
| Application number | US-201615358229-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 22, 2016 |
| Priority date | Nov 22, 2016 |
| Publication date | Mar 31, 2020 |
| Grant date | Mar 31, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
This invention relates to methods and devices for timing synchronization. The invention has particular application where timing is being carried out over packet networks using, for example, the IEEE 1588 Precision Time Protocol (PTP). Embodiments of the invention make use of estimated forward and reverse path delay asymmetries directly in the estimation algorithm (for example a Kalman filter). This can allow the variation in the timestamps which have been compensated for the delay asymmetry to be significantly reduced, which can reduce the complexity of the phase offset estimation algorithm.
Opening claim text (preview).
The invention claimed is: 1. A method of synchronizing a local clock in a time client compared with a master clock in a time server connected to the time client over a network, the method including steps of: within in a window of predetermined length, sending a plurality of first timing messages in a forward direction from the time server to the time client and a plurality of second timing messages in a reverse direction from the time client to the time server, and recording timestamps which are times of sending and times of receipt of the first and second timing messages; for each message of the first and second timing messages in the window of predetermined length, determining an estimate of transmission delay experienced by the respective message to create a set of estimates of transmission delays of the plurality of first timing messages and the plurality of second timing messages in the window; determining, from said set of estimates, a first minimum estimated delay experienced by the plurality of first timing messages in the window of predetermined length, and a second minimum estimated delay experienced by the plurality of second timing messages in the window of predetermined length; determining a set of differences between the estimated transmission delay experienced by each first timing message in the window of predetermined length and the first minimum estimated delay, and between the estimated transmission delay experienced by each second timing message in the window of predetermined length and the second minimum estimated delay; determining, from said set of differences, a queuing asymmetry measure for each exchange of first and second timing messages in the window of predetermined length; estimating a phase offset of the local clock at a time in said window using said timestamps and said queuing asymmetry measure as inputs to an estimation algorithm; and synchronizing the local clock in the time client with the master clock in the time server based on the estimated phase offset. 2. The method according to claim 1 , wherein the queuing asymmetry measure is determined as: Q ( n )=[( {circumflex over (q)} f ( n )− {circumflex over (q)} fmin )−( {circumflex over (q)} r ( n )− {circumflex over (q)} rmin )] wherein: {circumflex over (q)} f (n) is an estimate of a queuing delay experienced by a n-th first timing message; {circumflex over (q)} r (n) is an estimate of a queuing delay experienced by a n-th second timing message; {circumflex over (q)} fmin is a determined minimum value of {circumflex over (q)} f (n) in said window; and {circumflex over (q)} rmin is a determined minimum value of {circumflex over (q)} r (n) in said window. 3. The method according to claim 1 , wherein the step of determining the queuing asymmetry measure includes: determining, from said timestamps, a forward displacement factor which is a difference between an interval between times of receipt of successive first timing messages by the time client and an interval between times of sending of said successive first messages by the server; determining, from said timestamps, a reverse displacement factor which is a difference between an interval between times of receipt of successive second timing messages by the server and an interval between times of sending of said successive second timing messages by the time client; maintaining a running sum of forward displacement factors over a predetermined time period; maintaining a running sum of reverse displacement factors over a predetermined time period; and calculating the queuing asymmetry measure from said sums. 4. The method according to claim 1 , wherein the estimation algorithm is a Kalman filter which uses a measurement equation: ( T 1 ( n )− T 2 ( n ))+( T 4 ( n )− T 3 ( n ))+ Q ( n )=2θ E ( n )+ v n wherein: T 1 (n) is a timestamp recorded by the server on sending of an n-th first timing message from the server to the time client; T 2 (n) is the time of receipt as recorded by the time client on receipt of the n-th first timing message; T 3 (n) is a timestamp recorded by the time client on sending of an n-th second timing message from the time client to the server; T 4 (n) is the time of receipt as recorded by the server on receipt of the n-th second timing message; Q(n) is the queuing asymmetry measure; v n is a measurement noise; and θ E (n) is an estimate of a local clock offset. 5. A time client comprising a local clock and a processor, and connected over a network to a time server having a master clock, wherein the time client is configured to: in a window of predetermined length, receive a plurality of first timing messages sent in a forward direction from the time server to the time client; and send a plurality of second timing messages in a reverse direction from the time client to the time server, record a first set of timestamps which are times of sending the plurality of second timing messages by the time client and times of receipt of the plurality of first timing messages by the time client; and receive a second set of timestamps which are times of sending the plurality of first timing messages by the time server and times of receipt of the plurality of second timing messages by the time server, wherein the processor is configured to: for each message of the first and second timing messages in the window of predetermined length, determine an estimate of transmission delay experienced by the respective message to create a set of estimates of transmission delays of the plurality of first timing messages and the plurality of second timing messages in the window; determine, from said set of estimates, a first minimum estimated delay experienced by the plurality of first timing messages in the window of predetermined length, and a second minimum estimated delay experienced by the plurality of second timing messages in the window of predetermined length; determine a set of differences between the estimated transmission delay experienced by each first timing message in the window of predetermined length and the first minimum estimated delay, and between the estimated transmission delay experienced by each second timing message in the window of predetermined length and the second minimum estimated delay; determine, from said set of differences, a queuing asymmetry measure for each exchange of first and second timing messages in the window of predetermined length; estimate a phase offset of the local clock at a time in said window using said first set of timestamps and said second set of timestamps and said queuing asymmetry measure as inputs to an estimation algorithm; and synchronize the local clock in the time client with the master clock in the time server based on the estimated phase offset. 6. The time client according to claim 5 , wherein the processor determines the queuing asymmetry measure as: Q ( n )=[( {circumflex over (q)} f ( n )− {circumflex over (q)} fmin )−( {circumflex over (q)} r ( n )− {circumflex over (q)} rmin )] wherein: {circumflex over (q)} f (n) is an estimate of a queuing delay experienced by a n-th first timing message; {circumflex over (q)} r (n) is an estimate of a queuing delay experienced by a n-th second timing message; {circumflex over (q)} f min is a determined minimum value of {circumflex over (q)} f (n) in said window; and {circumflex over (q)} rmin is a determined minimum value of {circumflex over (q)} r (n) in said window. 7. The time client according to claim 5 , wherein the estimation algorithm is a Kalman filter which uses a measurement equation: ( T 1 ( n )− T 2 ( n ))+( T 4 ( n )− T 3 ( n ))+ Q ( n )=2θ E ( n )+ v n wherein: T 1 (n) is a timestamp recorded by the server on sendi
External master-clock · CPC title
Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays (arrangements for monitoring round trip delays in packet switching networks H04L43/0864) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.