Patent ID: 8873589

Claim:
A method of synchronizing a local clock in a time client to a master clock in a time server, the method including the steps of: transmitting messages carrying timestamps from the time server and from the time client; receiving the messages from the time server at the time client and extracting timestamps from said messages; receiving the messages from the time client at the time server and extracting timestamps from said messages; estimating the skew and offset of the local clock compared to the master clock; and adjusting the output of the local clock using said estimated skew and offset, wherein the step of estimating the skew and offset includes the sub-steps of: estimating the clock skew from the extracted timestamps over a predetermined observation period; calculating a plurality of delay observations for each message exchange between the time server and the time client in the observation period; determining, from said series of delay observations, one or more representative delay values for the observation window; and estimating the clock offset from the selected representative delay values; and wherein the messages are IEEE 1588 PTP messages; wherein the messages transmitted from the time server include IEEE 1588 Sync messages, and the messages transmitted from the time client include IEEE 1588 Delay_Req messages; and wherein the estimation of the clock skew α is calculated as: 1 + α = ( T 2 , L - T 2 , 1 ) + ( T 3 , L - T 3 , 1 ) ( T 1 , L - T 1 , 1 ) + ( T 4 , L - T 4 , 1 ) , wherein: T 1,1 and T 1,L are the timestamps applied by the time server to respectively the first and last Sync messages in the observation window; T 2,1 and T 2,L are the times of receipt as recorded by the local clock on receipt of respectively the first and last Sync messages in the observation window; T 3,1 and T 3,L are the timestamps applied by the time client to the first and last Delay_Req messages in the observation window; and T 4,1 and T 4,L are the times of receipt as recorded by the master clock on receipt of respectively the first and last Delay_Req messages in the observation window.