Application Layer Transport Optimization (ALTO) is a protocol that allows internet clients to obtain information that compares the network properties of paths to other endpoints.
Originally designed to support peer-to-peer file sharing, the concept is broadly applicable to many network problems.
The means of collecting this information are out of scope for the ALTO design, but typically this would involve participating in the routing protocol's information exchange, accepting policy inputs from network management, and data from various network monitoring systems.
In contrast, when the ALTO client is located on a different host (e.g., when a BitTorrent tracker with an embedded ALTO client wants to optimize peer selection on behalf of a peer that might be in a different network domain), the cross-domain server discovery procedure specified in RFC 8686[14] should be used.
A client might have the service discovery domain name directly configured, but usually it will obtain the name via DHCP when joining a network.
A "network map" serves as a "table of contents" that the client can use to construct more specific queries.
The same RFC also specifies the Stream Control Service, allowing the client to change its request for update messages.
The payloads of these requests and responses consist of JSON text that contain hierarchical key-value pairs.