ALTO (protocol)
   HOME

TheInfoList



OR:

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. Typically, this would be used to identify the lowest-cost location to access a copy of some sort of content. The ALTO base protocol is specified in RFC 7285. It requires "ALTO servers" to be deployed in the network with knowledge of network properties, often simply the
routing Routing is the process of selecting a path for traffic in a network or between or across multiple networks. Broadly, routing is performed in many types of networks, including circuit-switched networks, such as the public switched telephone netw ...
cost to various endpoints. An "ALTO client," typically tied to a
user agent In computing, a user agent is any software, acting on behalf of a user, which "retrieves, renders and facilitates end-user interaction with Web content". A user agent is therefore a special kind of software agent. Some prominent examples of us ...
attempting to obtain a resource, queries the ALTO server over
HTTP The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
to obtain the optimal location from which to retrieve the resource.


History

Starting around 2005, the widespread use of
peer-to-peer Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network. They are said to form a peer-to-peer n ...
applications such as BitTorrent was a serious concern to many network operators, as the massive amounts of network traffic caused by these applications had a significant impact on traffic engineering and revenues. Some network operators tried to throttle this traffic. In May 2008, in an
IETF The Internet Engineering Task Force (IETF) is a standards organization for the Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and a ...
Workshop on Peer-to-Peer Infrastructure, several areas of work were identified: #A standardized interface for the exchange of information between the underlying IP network and an
overlay network An overlay network is a computer network that is layered on top of another network. Structure Nodes in the overlay network can be thought of as being connected by virtual or logical links, each of which corresponds to a path, perhaps through m ...
, such as a
peer-to-peer Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network. They are said to form a peer-to-peer n ...
network. The basic idea is, that if the overlay network was aware of the topology and the cost for sending traffic through the underlying
IP network The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
, it could optimize decisions with respect to the overlay network's topology (e.g., peer selection) and routing of traffic through the overlay network. The result would be better performance or
Quality of Experience Quality of experience (QoE) is a measure of the delight or annoyance of a customer's experiences with a service (e.g., web browsing, phone call, TV broadcast).Qualinet White Paper on Definitions of Quality of Experience (2012). European Network on Q ...
in the application while reducing the utilization of the underlying network infrastructure. This work item led to the establishment of the IETF ALTO working group. # Content caches in the network. This has been studied in the IETF DECADE working group. However, no new protocol has been developed and standardized. #A new
congestion control Network congestion in data networking and queueing theory is the reduced quality of service that occurs when a network node or link is carrying more data than it can handle. Typical effects include queueing delay, packet loss or the blocking of ...
mechanism in the
transport layer In computer networking, the transport layer is a conceptual division of methods in the layered architecture of protocols in the network stack in the Internet protocol suite and the OSI model. The protocols of this layer provide end-to-end ...
for background traffic, which "yields" to standard TCP. This was worked on in the IETF
LEDBAT Low Extra Delay Background Transport (LEDBAT) is a way to transfer data on the Internet quickly without clogging the network. LEDBAT was invented by Stanislav Shalunov and is used by Apple for software updates, by BitTorrent for most of its transf ...
working group and has been standardized in RFC 6817. #A new
DiffServ Differentiated services or DiffServ is a computer networking architecture that specifies a mechanism for classifying and managing network traffic and providing quality of service (QoS) on modern IP networks. DiffServ can, for example, be used t ...
code point to mark IP packets to have a ''lower'' priority than the default "
best effort Best-effort delivery describes a network service in which the network does ''not'' provide any guarantee that data is delivered or that delivery meets any quality of service. In a best-effort network, all users obtain best-effort service. Under b ...
" category has been standardized in RFC 8622. The IETF ALTO working group was established in November 2008. The first deliverables were the problem statement, the requirements document, the specification of the core ALTO protocol and an ALTO server discovery mechanism. Since then, various extensions have been specified (see below) or are still work in progress (see IETF ALTO Datatracker). Originally designed to support
peer-to-peer Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network. They are said to form a peer-to-peer n ...
file sharing, the concept is broadly applicable to many network problems. However, as of 2021 it has not achieved widespread deployment in the internet. Nevertheless, there have been experiments in
Internet service provider An Internet service provider (ISP) is an organization that provides services for accessing, using, or participating in the Internet. ISPs can be organized in various forms, such as commercial, community-owned, non-profit, or otherwise private ...
(ISP) networks and a deployment to support large data transfers for the
Large Hadron Collider The Large Hadron Collider (LHC) is the world's largest and highest-energy particle collider. It was built by the European Organization for Nuclear Research (CERN) between 1998 and 2008 in collaboration with over 10,000 scientists and hundred ...
at
CERN The European Organization for Nuclear Research, known as CERN (; ; ), is an intergovernmental organization that operates the largest particle physics laboratory in the world. Established in 1954, it is based in a northwestern suburb of Gene ...
.


Protocol overview

ALTO servers typically operate inside an ISP and collect information about the topology of the ISP network. 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. The ALTO server uses this information to provide services to the client. The first step in retrieving ALTO information is to locate the ALTO server. If the ALTO client is located on the host that is also the endpoint of the data transmissions to be optimized, the ALTO server discovery procedure specified in RFC 7286 may be used. In contrast, when the ALTO client is located on a different host (e.g., when a
BitTorrent tracker A BitTorrent tracker is a special type of server that assists in the communication between peers using the BitTorrent protocol. In peer-to-peer file sharing, a software client on an end-user PC requests a file, and portions of the requested fil ...
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 should be used. A client might have the service discovery
domain name A domain name is a string that identifies a realm of administrative autonomy, authority or control within the Internet. Domain names are often used to identify services provided through the Internet, such as websites, email services and more. As ...
directly configured, but usually it will obtain the name via
DHCP The Dynamic Host Configuration Protocol (DHCP) is a network management protocol used on Internet Protocol (IP) networks for automatically assigning IP addresses and other communication parameters to devices connected to the network using a cli ...
when joining a network. It then composes a DDDS query to that service discovery host for the "ALTO:https" or "ALTO:http" Application Service tag, which in turn returns the
URL A Uniform Resource Locator (URL), colloquially termed as a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifie ...
for any available ALTO Server Information Resource Directories (IRD). A client would then retrieve the IRD from one of the ALTO servers, which lists the specifics of what services are available, supported parameters, and the locations of those services. There are four service types in the base protocol: The Map Service provides a file that lists all the endpoints or PIDs that the server tracks. A "network map" serves as a "table of contents" that the client can use to construct more specific queries. These endpoints are identified by IPv4 or IPv6 address and are grouped with other endpoints with similar properties into Provider-Defined Identifiers (PIDs) to reduce the size of future queries and responses. A "cost map" lists the routing cost for each pair of PIDs. The Map-Filtering Service provides a subset of the network map or cost map based on client-provided parameters. The Endpoint Property Service allows the client to query properties, such as the connectivity type or encapsulating PID, of a specific endpoint. The Endpoint Cost Service gives clients the routing cost to specific endpoints, which might be expressed as the absolute cost metric or a ranking of the relative cost of each. Later specifications specify additional services: The Update Stream Service, specified in RFC 8895, leaves the connection open for the server to provide a stream of update messages as information changes. The same RFC also specifies the Stream Control Service, allowing the client to change its request for update messages. All ALTO client messages are
REST Rest or REST may refer to: Relief from activity * Sleep ** Bed rest * Kneeling * Lying (position) * Sitting * Squatting position Structural support * Structural support ** Rest (cue sports) ** Armrest ** Headrest ** Footrest Arts and entert ...
HTTP requests that elicit
HTTP The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
responses from the ALTO server. The payloads of these requests and responses consist of
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
text that contain hierarchical key-value pairs.


Protocol syntax

Clients obtain the IRD via the HTTP GET message. The following example from RFC 7285 depicts a request for the IRD. The requested target (/directory) came from the DDDS service discovery process described above. This IRD provides targets for the services available on this server, as well as acceptable parameters. GET /directory HTTP/1.1 Host: alto.example.com Accept: application/alto-directory+json,application/alto-error+json HTTP/1.1 200 OK Content-Length: 2333 Content-Type: application/alto-directory+json Clients obtain the Map Service via the HTTP GET message. The following example from RFC 7285 depicts a request for a network map and a response that groups five endpoints into 3 PIDs: GET /networkmap HTTP/1.1 Host: alto.example.com Accept: application/alto-networkmap+json,application/alto-error+json HTTP/1.1 200 OK Content-Length: 449 Content-Type: application/alto-networkmap+json The other three services rely on additional information the client provides in the request payload. As HTTP GET does not have a request payload, clients access these services with the HTTP POST method. The following example from RFC 7285 shows a request for the cost from one source to three potential destinations, and the response. POST /endpointcost/lookup HTTP/1.1 Host: alto.example.com Content-Length: 248 Content-Type: application/alto-endpointcostparams+json Accept: application/alto-endpointcost+json,application/alto-error+json HTTP/1.1 200 OK Content-Length: 274 Content-Type: application/alto-endpointcost+json


Other extensions

Numerous additional standards have extended the protocol's usability and feature set. * RFC 8189 allows clients to request multiple cost types (for example, routing cost and hop count) in a single request. * RFC 8896 introduces the concept of a "cost calendar", where the server can express how the cost to reach an endpoints evolves over time. * The IETF Datatracker for the ALTO working group shows documents that are still work in progress.


References

{{cite web , url=https://www.wired.com/2008/09/comcast-disclos-2/ , title=Comcast Discloses Throttling Practices - BitTorrent Targeted , last=Kravets , first=David , date=September 19, 2008 , website=wired.com , access-date=July 9, 2021 Internet Standards