ISPCS paper: Estimating noise for clock-synchronizing Kalman filters

David
Security software engineer
Our Statime project now provides strong synchronization performance and accurate synchronization error estimates without manual tuning for any specific hardware, because it automatically determines the main uncertainty parameters for a Kalman-based clock servo. This process is described in a scientific paper, soon to be published by the IEEE.

Background

Time synchronization is one of the most basic and essential building blocks of a safe digital infrastructure, whether it is a local network or the world-wide web. Knowing when a certain connection is established (requested and received) is a key aspect of determining its trustworthiness.

Our Statime project is an implemenation of the Precision Time Protocol that we wrote in Rust because of its strong safety guarantees. It has always been our goal to create an implementation that wasn't just safe, but performant, free to use, and accessible to as many users as possible.

The details

One of the optimizations we have done in Statime, is implementing methods to smooth out and improve the process of connecting a time-receiving clock to a time-transmitting clock. We did this using a Kalman-based clock servo that automatically and continuously determines the main uncertainty parameters. This means it can now provide strong synchronization performance and accurate synchronization error estimates without the need for manual tuning for any specific hardware.

The paper

These methods are described in detail in a scientific publication written for the Institute of Electrical and Electronics Engineers, IEEE, who also govern the many standards in the industry, including the PTP standards. Specifically, the article is written for the 2024 International IEEE Symposium on Precision Clock Synchronization for Measurement, Control, & Communication, which Ruben and I are attending in Tokyo from 7 to 11 Oct.

As the paper has been accepted, but not yet published by them, we can share the submitted paper with you here: "Estimating noise for clock-synchronizing Kalman filters".

Please note that only personal use of the material is permitted, as per the copyright notice in the article.

We'd like to thank Sovereign Tech Fund and NLnet Foundation for providing the financial support we needed to join the ISPCS.

Funding the secure timing effort

We need financial backing to continue, optimize and maintain our work on the open services that boost secure time, called Project Pendulum (which includes both Statime and ntpd-rs). Please get in touch with us via pendulum@trifectatech.org, if you are interested in financially supporting this project.

Why fund us?

Trifecta Tech Foundation, the non-profit backed by Tweede golf, develops and maintains open-source software for vital infrastructure in the public interest, such as these modern, open-source implementations of the Network Time Protocol and the Precision Time Protocol.

The team has an in-depth understanding of time synchronization protocols and the development of secure and robust systems software. Working with the timing community and sharing our insights is an integral part of our mission; see trifectatech.org/initiatives/time-synchronization/.

Stay up-to-date

Stay up-to-date with our work and blog posts?

Related articles

About one year ago, Tweede Golf announced "Statime", a Rust implementation of the Precision Time Protocol (PTP). The result of that first phase was a working proof of concept. Quite a bit has changed since then.
Sovereign Tech Fund will support our effort to build modern and memory-safe implementations of the Network Time Protocol (NTP) and the Precision Time Protocol (PTP).
For the last couple of months, we've been working on a Rust implementation of the Precision Time Protocol called Statime ("statim" is Latin for immediately), and we're proud to announce the completion of the first phase of the project.