Network Working Group                                        S. Shalunov
Internet-Draft                                                BitTorrent
Intended status: Standards Track                                R. Penno
Expires: April 30, 2009                                 Juniper Networks
                                                               R. Woundy
                                                        October 27, 2008

                    ALTO Information Export Service

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-

   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

   The list of Internet-Draft Shadow Directories can be accessed at

   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


   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

   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",
   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

   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

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,

   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

   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:


   (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

   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

      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

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


   Reinaldo Penno
   Juniper Networks


   Richard Woundy


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

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

   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

Shalunov, et al.         Expires April 30, 2009                [Page 15]