One document matched: draft-shalunov-alto-infoexport-00.txt
Network Working Group S. Shalunov
Internet-Draft BitTorrent
Intended status: Standards Track R. Penno
Expires: April 30, 2009 Juniper Networks
R. Woundy
Comcast
October 27, 2008
ALTO Information Export Service
draft-shalunov-alto-infoexport-00.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on April 30, 2009.
Shalunov, et al. Expires April 30, 2009 [Page 1]
Internet-Draft ALTO Information Export Service October 2008
Abstract
The ALTO Information Export Service is a simple way to convey ISP
routing policy preferences to applications. Applications that could
use this service are those that have a choice in connection
endpoints. Examples of such applications are peer-to-peer and
content delivery networks.
Applications already have access to great amount of underlying
topology information. For example, views of the Internet routing
table are easily available at looking glass servers and entirely
practical to download to every client. What is missing is the
routing policy information -- what does the local ISP actually
prefer?
This document describes a very simple mechanism that would allow to
export such information to applications. While such service would
primarily be provided by the network, i.e., the local ISP, third
parties could also operate this service.
Shalunov, et al. Expires April 30, 2009 [Page 2]
Internet-Draft ALTO Information Export Service October 2008
1. Requirements notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
Shalunov, et al. Expires April 30, 2009 [Page 3]
Internet-Draft ALTO Information Export Service October 2008
2. Overview
Each network region can choose to support the ALTO service. (A
network region in this context is an Autonomous System, an ISP, or
perhaps a smaller region -- the details depend on the mechanism of
discovery.)
The service works as follows:
1. The ISP prepares the ALTO information. This maps some IP
prefixes or AS numbers into priority values. Higher priority
values indicate higher desirability of the prefix. There is a
default treatment for IP numbers that are in none of the prefixes
or AS numbers.
2. The ISP serializes the information into a sequence of octets
(Section 4).
3. The application, running on a given host, discovers the resource
and fetches the serialized ALTO information (Section 3).
4. The application makes use of the information by preferring IP
numbers with higher priority (Section 5).
The part of the ISP MAY be implemented, to give a few examples that
do not preclude other implementation options,
by running a script connecting to existing equipment, fetching
routing information, and then generating and uploading the
requisite file;
by running a database-backed application that is obtains routing
information from existing equipment and generates the requisite
file dynamically;
by modifying the software or hardware of existing equipment to
support these functions; or
by using new equipment for the purpose of operating this network
service.
Shalunov, et al. Expires April 30, 2009 [Page 4]
Internet-Draft ALTO Information Export Service October 2008
3. Discovery
Discovery per se is out of scope for this document and will be
handled separately.
The necessary property of discovery is that a client, starting from
nothing on today's Internet that does not yet universally support
global-scope multicast and may include NATs, can find a URL that
describes the location of the local ALTO service, as configured by
the ISP.
Subsequent sections assume that this URL is found. So that maximum
number of clients can use the ALTO service, the URL schema SHOULD be
"http" or "https".
Shalunov, et al. Expires April 30, 2009 [Page 5]
Internet-Draft ALTO Information Export Service October 2008
4. Information format
The URL discovered through the mechanism mentioned in Section 3
points to a resource that consists of a sequence of octets. The
content MAY change with every request or depend on the source of the
request, but it MAY also be fairly static and change, for example,
monthly.
The sequence of octets is a text file in US-ASCII and consists of
records. Records are lines, terminated by network newlines (carriage
return, followed by linefeed). Each record consists of three parts,
separated by colon characters:
1. Type designator, one of two values: "asn" or "cidr" (quotes do
not appear literally in the file). Other type designators could
be added in the future. When interpreting the file, lines with
unknown designators MUST be ignored.
2. An AS number or an IP prefix in CIDR notation. If the type for
the line is "asn", an AS number MUST appear, rendered in US-ASCII
as an unsigned integer in decimal. If the type for the line is
"cidr", an IP prefix in CIDR notation MUST appear. For IPv4, the
IP prefix uses US-ASCII representation of decimal dot-separated
octets. For IPv6, the IP prefix uses the "[" character, followed
by single-colon-separated hex-encoded bytes, followed by the "]"
character. For both IPv4 and IPv6, this is followed by the "/"
character, followed by the bitmask length.
3. A US-ASCII rendering of decimal representation of an integer,
representing priority. The integer MAY be preceded by a minus
sign and MUST NOT contain a plus sign. (The plus sign is
implied.)
The file MUST NOT contain any whitespace other than newlines. Any
extraneous whitespace found MUST be ignored (with a warning if
practical). The following is an example of a valid format:
cidr:10/8:10
asn:0:5
cidr:10.1/16:20
cidr:10.2/16:-10
cidr:[de:ad:be:ef:fe:ed]/48:20
(This example may contain leading whitespace on each of the lines.
This whitespace, if present, is a typographic artifact caused by the
way this document is rendered. Actual examples MUST NOT include any
such whitespace.)
Shalunov, et al. Expires April 30, 2009 [Page 6]
Internet-Draft ALTO Information Export Service October 2008
When the file is interpreted any line that is malformed or not
understood MUST be discarded and ignored, but subsequent lines MUST
still be paid attention to.
Shalunov, et al. Expires April 30, 2009 [Page 7]
Internet-Draft ALTO Information Export Service October 2008
5. Semantics
IP prefixes with positive priorities are more desirable than the
default. IP prefixes with negative priorities are less desirable
than the default. In general, greater values are more desirable.
Zero priority is the default. IPs not covered by the file are
treated as if they had priority zero.
The absolute value of the priorities does not matter. Only their
relative order is meaningful. Higher values are more desirable. For
example, multiplying all the priority values in a given file by the
same positive integer constant does not change the semantics of the
file.
Some ISPs already convey information such as "traffic in the local
country is free" to their customers. These ISPs will find the ALTO
service an excellent means of conveying similar information in a
machine-readable form. Only one (positive) priority value is needed
for such use.
It is up to the ISP deploying the file to choose how much information
to publish in it.
Shalunov, et al. Expires April 30, 2009 [Page 8]
Internet-Draft ALTO Information Export Service October 2008
6. Example Use by Application
The semantics of the information are intentionally flexible, because:
Different applications will necessarily use the information
differently. For example, an application that connects to just
one address is going to have a different algorithm for selecting
it than an application that connects to many.
Given lack of Internet-scale experimentation with using the
information, we don't yet know what the best ways are. We want to
give different approaches a chance to compete.
However, it's important to provide at least a non-normative example
of how such routing policy information could be used.
Consider a BitTorrent client that wishes to use the ALTO information.
The client will have a list of perhaps up to 200 initial candidate
peers, out of which it will select perhaps 50 peers to try to connect
to. In an initial implementation, the client could:
Split the candidates into three sets: preferred (those with
positive priorities), to-be-avoided (those with negative
priorities), and default (0 or unspecified priority)
Select up to 25 candidates randomly from the preferred set. In
particular, if there are fewer than 25 in the preferred set,
select them all.
Fill remaining slots up to 50 with candidates from the default
set.
If this didn't fill the slots (i.e., fewer than 50 of the
candidates were in the union of preferred and default sets), fill
the rest by candidates from the to-be-avoided set.
When establishing connections after the initial startup, continue
using the policy of giving up to half the slots to preferred with
the rest for default and to-be-avoided only as last resort.
When selecting a peer to optimistically unchoke, half the time
select a preferred peer if there is one.
(The particular numbers could be different.) If the preferred peers
perform better than default ones, they will dominate the transfers.
To-be-avoided peers are largely not contacted, unless the prohibitive
policy is broad enough or the swarm is small enough that it is
necessary to contact them to fill the slots.
Shalunov, et al. Expires April 30, 2009 [Page 9]
Internet-Draft ALTO Information Export Service October 2008
In addition, the application might use some form of randomized test
to see if it performs better or worse when the ALTO service use is
on.
Shalunov, et al. Expires April 30, 2009 [Page 10]
Internet-Draft ALTO Information Export Service October 2008
7. Mapping IPs to ASNs
DISCUSSION: Applications can already map IPs to ASNs using
information from a BGP looking glass. To do so, they have to
download a file of about 1.5MB when compressed (as of October 2008,
with all information not needed for IP to ASN mapping removed) and
periodically (perhaps monthly) refresh it.
Alternatively, the ALTO service as defined in this document could be
expanded so that there is another file that expands every ASN
mentioned in the policy file into a set of IP prefixes. In that
case, the ASNs in the policy file, from a client's perspective, would
be treated like macros. The mapping file provided by the ISP would
be be both smaller and more authoritative.
For simplicity of implementation, it's highly desirable that clients
only have to implement exactly one mechanism of mapping IPs to ASNs.
We're interested in perspectives of others on this.
Shalunov, et al. Expires April 30, 2009 [Page 11]
Internet-Draft ALTO Information Export Service October 2008
8. Security Considerations
The ISP publishing the ALTO policy information has to treat it as
publishing to the entire world.
Applications using the information must be cognizant of the
possibility that the information is malformed or incorrect. Even
when it is correct, its use might harm the performance. When an
application concludes that it would get better performance
disregarding the ALTO information, the decision to discontinue the
use of ALTO information is likely best left to the user.
The use of TLS (using the "https" URL schema) will make it easier for
clients to verify the origin of ALTO information.
Shalunov, et al. Expires April 30, 2009 [Page 12]
Internet-Draft ALTO Information Export Service October 2008
9. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
Shalunov, et al. Expires April 30, 2009 [Page 13]
Internet-Draft ALTO Information Export Service October 2008
Authors' Addresses
Stanislav Shalunov
BitTorrent
Email: shalunov@bittorrent.com
URI: http://shlang.com/
Reinaldo Penno
Juniper Networks
Email: rpenno@juniper.net
Richard Woundy
Comcast
Email: Richard_Woundy@cable.comcast.com
Shalunov, et al. Expires April 30, 2009 [Page 14]
Internet-Draft ALTO Information Export Service October 2008
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Shalunov, et al. Expires April 30, 2009 [Page 15]
| PAFTECH AB 2003-2026 | 2026-04-23 15:26:38 |