Latency Service
A latency service enables overlay nodes to obtain latency estimates to other nodes. We adopt the
following design goals for our latency service.
- Good accuracy. Latency estimates between nodes should have a relatively low error but
the required accuracy depends on the application. For example, if the latency estimate is used to
select the nearest node, a certain error is tolerable as long as it does not affect the result.
The latency service must also achieve its accuracy goal when network latencies are changing due to
BGP route updates or congestion.
- Low measurement overhead. The latency service should minimize latency probing to
conserve network resources. Latency measurements should use application data packets between nodes
when possible. Note that there is a tension between the achievable accuracy and the measurement
overhead.
- Quick latency prediction. Many applications require quick decisions based on latencies
between nodes. The latency service itself should not introduce a long delay when queried for
latency estimates.
- Scalability. The design of the latency service must be scalable in terms of the
number of nodes in the network for which latency measurement are required.
- Simple application integration. It should be easy to run the latency service and for
an application node to obtain latency estimates. The latency service should have an intuitive API
and any node should be able to use the latency service.
Subsections
Jonathan Ledlie
2005-10-18