idnits 2.17.1 draft-shalunov-alto-infoexport-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 18. -- Found old boilerplate from RFC 3978, Section 5.5, updated by RFC 4748 on line 319. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 330. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 337. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 343. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (October 27, 2008) is 5652 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 2 errors (**), 0 flaws (~~), 1 warning (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group S. Shalunov 3 Internet-Draft BitTorrent 4 Intended status: Standards Track R. Penno 5 Expires: April 30, 2009 Juniper Networks 6 R. Woundy 7 Comcast 8 October 27, 2008 10 ALTO Information Export Service 11 draft-shalunov-alto-infoexport-00.txt 13 Status of this Memo 15 By submitting this Internet-Draft, each author represents that any 16 applicable patent or other IPR claims of which he or she is aware 17 have been or will be disclosed, and any of which he or she becomes 18 aware will be disclosed, in accordance with Section 6 of BCP 79. 20 Internet-Drafts are working documents of the Internet Engineering 21 Task Force (IETF), its areas, and its working groups. Note that 22 other groups may also distribute working documents as Internet- 23 Drafts. 25 Internet-Drafts are draft documents valid for a maximum of six months 26 and may be updated, replaced, or obsoleted by other documents at any 27 time. It is inappropriate to use Internet-Drafts as reference 28 material or to cite them other than as "work in progress." 30 The list of current Internet-Drafts can be accessed at 31 http://www.ietf.org/ietf/1id-abstracts.txt. 33 The list of Internet-Draft Shadow Directories can be accessed at 34 http://www.ietf.org/shadow.html. 36 This Internet-Draft will expire on April 30, 2009. 38 Abstract 40 The ALTO Information Export Service is a simple way to convey ISP 41 routing policy preferences to applications. Applications that could 42 use this service are those that have a choice in connection 43 endpoints. Examples of such applications are peer-to-peer and 44 content delivery networks. 46 Applications already have access to great amount of underlying 47 topology information. For example, views of the Internet routing 48 table are easily available at looking glass servers and entirely 49 practical to download to every client. What is missing is the 50 routing policy information -- what does the local ISP actually 51 prefer? 53 This document describes a very simple mechanism that would allow to 54 export such information to applications. While such service would 55 primarily be provided by the network, i.e., the local ISP, third 56 parties could also operate this service. 58 1. Requirements notation 60 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 61 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 62 document are to be interpreted as described in [RFC2119]. 64 2. Overview 66 Each network region can choose to support the ALTO service. (A 67 network region in this context is an Autonomous System, an ISP, or 68 perhaps a smaller region -- the details depend on the mechanism of 69 discovery.) 71 The service works as follows: 73 1. The ISP prepares the ALTO information. This maps some IP 74 prefixes or AS numbers into priority values. Higher priority 75 values indicate higher desirability of the prefix. There is a 76 default treatment for IP numbers that are in none of the prefixes 77 or AS numbers. 79 2. The ISP serializes the information into a sequence of octets 80 (Section 4). 82 3. The application, running on a given host, discovers the resource 83 and fetches the serialized ALTO information (Section 3). 85 4. The application makes use of the information by preferring IP 86 numbers with higher priority (Section 5). 88 The part of the ISP MAY be implemented, to give a few examples that 89 do not preclude other implementation options, 91 by running a script connecting to existing equipment, fetching 92 routing information, and then generating and uploading the 93 requisite file; 95 by running a database-backed application that is obtains routing 96 information from existing equipment and generates the requisite 97 file dynamically; 99 by modifying the software or hardware of existing equipment to 100 support these functions; or 102 by using new equipment for the purpose of operating this network 103 service. 105 3. Discovery 107 Discovery per se is out of scope for this document and will be 108 handled separately. 110 The necessary property of discovery is that a client, starting from 111 nothing on today's Internet that does not yet universally support 112 global-scope multicast and may include NATs, can find a URL that 113 describes the location of the local ALTO service, as configured by 114 the ISP. 116 Subsequent sections assume that this URL is found. So that maximum 117 number of clients can use the ALTO service, the URL schema SHOULD be 118 "http" or "https". 120 4. Information format 122 The URL discovered through the mechanism mentioned in Section 3 123 points to a resource that consists of a sequence of octets. The 124 content MAY change with every request or depend on the source of the 125 request, but it MAY also be fairly static and change, for example, 126 monthly. 128 The sequence of octets is a text file in US-ASCII and consists of 129 records. Records are lines, terminated by network newlines (carriage 130 return, followed by linefeed). Each record consists of three parts, 131 separated by colon characters: 133 1. Type designator, one of two values: "asn" or "cidr" (quotes do 134 not appear literally in the file). Other type designators could 135 be added in the future. When interpreting the file, lines with 136 unknown designators MUST be ignored. 138 2. An AS number or an IP prefix in CIDR notation. If the type for 139 the line is "asn", an AS number MUST appear, rendered in US-ASCII 140 as an unsigned integer in decimal. If the type for the line is 141 "cidr", an IP prefix in CIDR notation MUST appear. For IPv4, the 142 IP prefix uses US-ASCII representation of decimal dot-separated 143 octets. For IPv6, the IP prefix uses the "[" character, followed 144 by single-colon-separated hex-encoded bytes, followed by the "]" 145 character. For both IPv4 and IPv6, this is followed by the "/" 146 character, followed by the bitmask length. 148 3. A US-ASCII rendering of decimal representation of an integer, 149 representing priority. The integer MAY be preceded by a minus 150 sign and MUST NOT contain a plus sign. (The plus sign is 151 implied.) 153 The file MUST NOT contain any whitespace other than newlines. Any 154 extraneous whitespace found MUST be ignored (with a warning if 155 practical). The following is an example of a valid format: 157 cidr:10/8:10 158 asn:0:5 159 cidr:10.1/16:20 160 cidr:10.2/16:-10 161 cidr:[de:ad:be:ef:fe:ed]/48:20 163 (This example may contain leading whitespace on each of the lines. 164 This whitespace, if present, is a typographic artifact caused by the 165 way this document is rendered. Actual examples MUST NOT include any 166 such whitespace.) 167 When the file is interpreted any line that is malformed or not 168 understood MUST be discarded and ignored, but subsequent lines MUST 169 still be paid attention to. 171 5. Semantics 173 IP prefixes with positive priorities are more desirable than the 174 default. IP prefixes with negative priorities are less desirable 175 than the default. In general, greater values are more desirable. 176 Zero priority is the default. IPs not covered by the file are 177 treated as if they had priority zero. 179 The absolute value of the priorities does not matter. Only their 180 relative order is meaningful. Higher values are more desirable. For 181 example, multiplying all the priority values in a given file by the 182 same positive integer constant does not change the semantics of the 183 file. 185 Some ISPs already convey information such as "traffic in the local 186 country is free" to their customers. These ISPs will find the ALTO 187 service an excellent means of conveying similar information in a 188 machine-readable form. Only one (positive) priority value is needed 189 for such use. 191 It is up to the ISP deploying the file to choose how much information 192 to publish in it. 194 6. Example Use by Application 196 The semantics of the information are intentionally flexible, because: 198 Different applications will necessarily use the information 199 differently. For example, an application that connects to just 200 one address is going to have a different algorithm for selecting 201 it than an application that connects to many. 203 Given lack of Internet-scale experimentation with using the 204 information, we don't yet know what the best ways are. We want to 205 give different approaches a chance to compete. 207 However, it's important to provide at least a non-normative example 208 of how such routing policy information could be used. 210 Consider a BitTorrent client that wishes to use the ALTO information. 211 The client will have a list of perhaps up to 200 initial candidate 212 peers, out of which it will select perhaps 50 peers to try to connect 213 to. In an initial implementation, the client could: 215 Split the candidates into three sets: preferred (those with 216 positive priorities), to-be-avoided (those with negative 217 priorities), and default (0 or unspecified priority) 219 Select up to 25 candidates randomly from the preferred set. In 220 particular, if there are fewer than 25 in the preferred set, 221 select them all. 223 Fill remaining slots up to 50 with candidates from the default 224 set. 226 If this didn't fill the slots (i.e., fewer than 50 of the 227 candidates were in the union of preferred and default sets), fill 228 the rest by candidates from the to-be-avoided set. 230 When establishing connections after the initial startup, continue 231 using the policy of giving up to half the slots to preferred with 232 the rest for default and to-be-avoided only as last resort. 234 When selecting a peer to optimistically unchoke, half the time 235 select a preferred peer if there is one. 237 (The particular numbers could be different.) If the preferred peers 238 perform better than default ones, they will dominate the transfers. 239 To-be-avoided peers are largely not contacted, unless the prohibitive 240 policy is broad enough or the swarm is small enough that it is 241 necessary to contact them to fill the slots. 243 In addition, the application might use some form of randomized test 244 to see if it performs better or worse when the ALTO service use is 245 on. 247 7. Mapping IPs to ASNs 249 DISCUSSION: Applications can already map IPs to ASNs using 250 information from a BGP looking glass. To do so, they have to 251 download a file of about 1.5MB when compressed (as of October 2008, 252 with all information not needed for IP to ASN mapping removed) and 253 periodically (perhaps monthly) refresh it. 255 Alternatively, the ALTO service as defined in this document could be 256 expanded so that there is another file that expands every ASN 257 mentioned in the policy file into a set of IP prefixes. In that 258 case, the ASNs in the policy file, from a client's perspective, would 259 be treated like macros. The mapping file provided by the ISP would 260 be be both smaller and more authoritative. 262 For simplicity of implementation, it's highly desirable that clients 263 only have to implement exactly one mechanism of mapping IPs to ASNs. 265 We're interested in perspectives of others on this. 267 8. Security Considerations 269 The ISP publishing the ALTO policy information has to treat it as 270 publishing to the entire world. 272 Applications using the information must be cognizant of the 273 possibility that the information is malformed or incorrect. Even 274 when it is correct, its use might harm the performance. When an 275 application concludes that it would get better performance 276 disregarding the ALTO information, the decision to discontinue the 277 use of ALTO information is likely best left to the user. 279 The use of TLS (using the "https" URL schema) will make it easier for 280 clients to verify the origin of ALTO information. 282 9. Normative References 284 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 285 Requirement Levels", BCP 14, RFC 2119, March 1997. 287 Authors' Addresses 289 Stanislav Shalunov 290 BitTorrent 292 Email: shalunov@bittorrent.com 293 URI: http://shlang.com/ 295 Reinaldo Penno 296 Juniper Networks 298 Email: rpenno@juniper.net 300 Richard Woundy 301 Comcast 303 Email: Richard_Woundy@cable.comcast.com 305 Full Copyright Statement 307 Copyright (C) The IETF Trust (2008). 309 This document is subject to the rights, licenses and restrictions 310 contained in BCP 78, and except as set forth therein, the authors 311 retain all their rights. 313 This document and the information contained herein are provided on an 314 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 315 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 316 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 317 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 318 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 319 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 321 Intellectual Property 323 The IETF takes no position regarding the validity or scope of any 324 Intellectual Property Rights or other rights that might be claimed to 325 pertain to the implementation or use of the technology described in 326 this document or the extent to which any license under such rights 327 might or might not be available; nor does it represent that it has 328 made any independent effort to identify any such rights. Information 329 on the procedures with respect to rights in RFC documents can be 330 found in BCP 78 and BCP 79. 332 Copies of IPR disclosures made to the IETF Secretariat and any 333 assurances of licenses to be made available, or the result of an 334 attempt made to obtain a general license or permission for the use of 335 such proprietary rights by implementers or users of this 336 specification can be obtained from the IETF on-line IPR repository at 337 http://www.ietf.org/ipr. 339 The IETF invites any interested party to bring to its attention any 340 copyrights, patents or patent applications, or other proprietary 341 rights that may cover technology that may be required to implement 342 this standard. Please address the information to the IETF at 343 ietf-ipr@ietf.org.