A method of estimating the offset and skew of a local clock in a time client compared with a remote master clock in a time server, the method including the steps of: transmitting Sync and Delay_Req messages under the IEEE 1588 PTP, carrying timestamps from the time server; receiving said messages at the time client and recording the time of receipt according to the local clock and extracting said timestamps; and performing a recursive estimation using a Kalman filter process based on the extracted timestamps and the output of the local clock to estimate the offset and skew of the local clock compared to the master clock, characterised in that the Kalman filter is applied to: the measurement equation: T 2, n − T 1, n − T 4, n − T 3, n = 2 θ n + α n T 1, n + T 4, n + v n wherein: θ n and α n are respectively the offset and the skew of the local clock at point n, T 1,n is the timestamp applied by the time server to the nth Sync message; T 2,n is the time of receipt as recorded by the local clock on receipt of the n th Sync message; T 3,n is the timestamp applied by the time client to the n th Delay_Req message; T 4,n is the time of receipt as recorded by the master clock on receipt of the nth Delay_Req message; and v n is the measurement noise which is assumed to be zero mean Gaussian white noise with covariance R n = E v n v n T, and to the two-state dynamic model defined by: θ n α n = 1 T 1, n − T 1, n − 1 0 1 θ n − 1 α n − 1 + w θ, n w α, n wherein: T 1, n and T 1, n -1 are timestamps at points n and n-1 respectively; and w n T = w θ, n w α, n is a process noise vector which is assumed to be drawn from a zero mean normal distribution with covariance Q n = E w n w n T. transmitting Sync and Delay_Req messages under the IEEE 1588 PTP, carrying timestamps from the time server; receiving said messages at the time client and recording the time of receipt according to the local clock and extracting said timestamps; and performing a recursive estimation using a Kalman filter process based on the extracted timestamps and the output of the local clock to estimate the offset and skew of the local clock compared to the master clock, characterised in that the Kalman filter is applied to: the measurement equation: T 2, n − T 1, n − T 4, n − T 3, n = 2 θ n + α n T 1, n + T 4, n + v n wherein: θ n and α n are respectively the offset and the skew of the local clock at point n, T 1,n is the timestamp applied by the time server to the nth Sync message; T 2,n is the time of receipt as recorded by the local clock on receipt of the n th Sync message; T 3,n is the timestamp applied by the time client to the n th Delay_Req message; T 4,n is the time of receipt as recorded by the master clock on receipt of the nth Delay_Req message; and v n is the measurement noise which is assumed to be zero mean Gaussian white noise with covariance R n = E v n v n T, and to the two-state dynamic model defined by: θ n α n = 1 T 1, n − T 1, n − 1 0 1 θ n − 1 α n − 1 + w θ, n w α, n wherein: T 1, n and T 1, n -1 are timestamps at points n and n-1 respectively; and w n T = w θ, n w α, n is a process noise vector which is assumed to be drawn from a zero mean normal distribution with covariance Q n = E w n w n T. the measurement equation: T 2, n − T 1, n − T 4, n − T 3, n = 2 θ n + α n T 1, n + T 4, n + v n wherein: θ n and α n are respectively the offset and the skew of the local clock at point n, T 1,n is the timestamp applied by the time server to the nth Sync message; T 2,n is the time of receipt as recorded by the local clock on receipt of the n th Sync message; T 3,n is the timestamp applied by the time client to the n th Delay_Req message; T 4,n is the time of receipt as recorded by the master clock on receipt of the nth Delay_Req message; and v n is the measurement noise which is assumed to be zero mean Gaussian white noise with covariance R n = E v n v n T, θ n and α n are respectively the offset and the skew of the local clock at point n, T 1,n is the timestamp applied by the time server to the nth Sync message; T 2,n is the time of receipt as recorded by the local clock on receipt of the n th Sync message; T 3,n is the timestamp applied by the time client to the n th Delay_Req message; T 4,n is the time of receipt as recorded by the master clock on receipt of the nth Delay_Req message; and v n is the measurement noise which is assumed to be zero mean Gaussian white noise with covariance R n = E v n v n T, and to the two-state dynamic model defined by: θ n α n = 1 T 1, n − T 1, n − 1 0 1 θ n − 1 α n − 1 + w θ, n w α, n wherein: T 1, n and T 1, n -1 are timestamps at points n and n-1 respectively; and w n T = w θ, n w α, n is a process noise vector which is assumed to be drawn from a zero mean normal distribution with covariance Q n = E w n w n T. T 1, n and T 1, n -1 are timestamps at points n and n-1 respectively; and w n T = w θ, n w α, n is a process noise vector which is assumed to be drawn from a zero mean normal distribution with covariance Q n = E w n w n T.