Coordinate

Coordinate represents a point in a Vivaldi network coordinate system.

A coordinate has two components: a Euclidean and a non-Euclidean component.

The Euclidean component represents the distance across the core of the Internet, where link distance typically reflects geographic distance.

The non-Euclidean component is a "height" offset, which represents the distance across an access link to the core Internet. Link distance on access links is typically constrained by bandwidth and congestion, rather than geography.

See "Vivaldi: A Decentralized Network Coordinate System" by Dabek, et al.

struct Coordinate (
size_t dims
double maxError = 1.5
double minHeight = 1.0e-5
double ce = 0.25
double cc = 0.25
double rho = 150.0
) if (
dims > 0 &&
isValid01!ce
&&
isValid01!cc
&&
isFinite(rho)
&&
rho > 0.0
) {}

Members

Functions

distanceTo
double distanceTo(Coordinate other)

Returns the Vivaldi distance to other in estimated round-trip time.

update
void update(Coordinate other, double rtt, double localAdjustment, double remoteAdjustment)

Given a round-trip time observation for another node at other, updates the estimated position of this Coordinate.

Static functions

valid
bool valid(double d)

Variables

error
double error;

error is a unitless measure of confidence that this Coordinate represents the true distance from the origin.

height
double height;

height is the non-Euclidean component of the coordinate, which represents the distance along an access link to the Internet core in seconds.

vector
double[dims] vector;

vector is the Euclidean component of the coordinate which represents the distance from the origin in the Internet core in seconds.

Parameters

dims

Dimensionality of the coordinate system.

maxError

Limit to the error any observation may induce.

minHeight

The minimum height of any Coordinate.

ce

A tuning factor which impacts the maximum impact an observation can have on a Coordinate.

cc

ditto

rho

A tuning factor for the effect of gravity exerted by the origin to control drift. See "Network Coordinates in the Wild" by Ledlie, et al. for more information.

Meta