Crates.io | gamlr |
lib.rs | gamlr |
version | 0.3.0 |
source | src |
created_at | 2024-01-21 20:50:01.661802 |
updated_at | 2024-04-04 01:36:25.410717 |
description | A Rust library for estimating clock offset in networked systems based on the Gamma distribution. |
homepage | |
repository | https://github.com/fabracht/gamlr.git |
max_upload_size | |
id | 1107870 |
size | 16,883 |
This project implements a clock offset estimator based on the method described in the paper "A new model-based clock-offset approximation over IP networks". It's designed to estimate the time difference (offset) between two networked devices using one-way delay (OWD) measurements.
To use this estimator, you need to provide a series of OWD measurements between two networked devices. The program will process these measurements and output the estimated clock offset in nanosecond precision.
Example usage:
let owd_measurements = vec![0.340, 0.360, 0.350, ...];
let offset = estimate(owd_measurements);
println!("Estimated clock offset: {}", offset);
Contributions are welcome! Please submit pull requests for any enhancements, bug fixes, or improvements.
In the implementation of the clock offset estimation algorithm, the paper "A new model-based clock-offset approximation over IP networks" refers to a key parameter of the Gamma distribution as rho (ρ). However, in this codebase, the parameter is named 'alpha' for no specific reason, and this naming convention has been retained.
The paper recommends constraining the value of rho (ρ) between 1.0 and 4.0 for the following reasons:
This constraint is a critical aspect of the methodology and reflects the empirical observations and statistical considerations made in the paper. In our code, when we mention 'alpha', it is essentially the rho (ρ) parameter from the paper, constrained within the suggested range of 1.0 to 4.0.
This project is inspired by the research and methodologies developed by experts in the field of network communications and statistical methods.