Network Working Group                                         J. Seedorf
Request for Comments: 5693                                           NEC
Category: Informational                                        E. Burger
                                                            Neustar Inc.
                                                            October 2009
        
Network Working Group                                         J. Seedorf
Request for Comments: 5693                                           NEC
Category: Informational                                        E. Burger
                                                            Neustar Inc.
                                                            October 2009
        

Application-Layer Traffic Optimization (ALTO) Problem Statement

应用层流量优化(ALTO)问题陈述

Abstract

摘要

Distributed applications -- such as file sharing, real-time communication, and live and on-demand media streaming -- prevalent on the Internet use a significant amount of network resources. Such applications often transfer large amounts of data through connections established between nodes distributed across the Internet with little knowledge of the underlying network topology. Some applications are so designed that they choose a random subset of peers from a larger set with which to exchange data. Absent any topology information guiding such choices, or acting on suboptimal or local information obtained from measurements and statistics, these applications often make less than desirable choices.

互联网上流行的分布式应用程序——如文件共享、实时通信、实时和点播媒体流——使用了大量的网络资源。此类应用程序通常通过在互联网上分布的节点之间建立连接来传输大量数据,而对底层网络拓扑知之甚少。有些应用程序的设计是这样的,它们从一个更大的集合中随机选择一个子集来交换数据。如果没有任何拓扑信息来指导这些选择,或者根据从测量和统计中获得的次优或局部信息进行操作,这些应用程序通常会做出不理想的选择。

This document discusses issues related to an information-sharing service that enables applications to perform better-than-random peer selection.

本文档讨论与信息共享服务相关的问题,该服务使应用程序的性能优于随机对等选择。

Status of This Memo

关于下段备忘

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

本备忘录为互联网社区提供信息。它没有规定任何类型的互联网标准。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2009 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括《信托法律条款》第4.e节中所述的简化BSD许可文本,并且提供BSD许可中所述的代码组件时不提供任何担保。

Table of Contents

目录

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Overview . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.2.  State-of-the-Art . . . . . . . . . . . . . . . . . . . . .  4
   2.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   3.  The Problem  . . . . . . . . . . . . . . . . . . . . . . . . .  7
   4.  Use Cases  . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     4.1.  File sharing . . . . . . . . . . . . . . . . . . . . . . .  8
     4.2.  Cache/Mirror Selection . . . . . . . . . . . . . . . . . .  8
     4.3.  Live Media Streaming . . . . . . . . . . . . . . . . . . .  8
     4.4.  Real-Time Communications . . . . . . . . . . . . . . . . .  9
     4.5.  Distributed Hash Tables  . . . . . . . . . . . . . . . . .  9
   5.  Aspects of the Problem . . . . . . . . . . . . . . . . . . . .  9
     5.1.  Information Provided by an ALTO Service  . . . . . . . . .  9
     5.2.  ALTO Service Providers . . . . . . . . . . . . . . . . . . 10
     5.3.  ALTO Service Implementation  . . . . . . . . . . . . . . . 10
     5.4.  User Privacy . . . . . . . . . . . . . . . . . . . . . . . 10
     5.5.  Topology Hiding  . . . . . . . . . . . . . . . . . . . . . 11
     5.6.  Coexistence with Caching . . . . . . . . . . . . . . . . . 11
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 11
   7.  Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 12
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 12
   9.  Informative References . . . . . . . . . . . . . . . . . . . . 13
        
   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Overview . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.2.  State-of-the-Art . . . . . . . . . . . . . . . . . . . . .  4
   2.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   3.  The Problem  . . . . . . . . . . . . . . . . . . . . . . . . .  7
   4.  Use Cases  . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     4.1.  File sharing . . . . . . . . . . . . . . . . . . . . . . .  8
     4.2.  Cache/Mirror Selection . . . . . . . . . . . . . . . . . .  8
     4.3.  Live Media Streaming . . . . . . . . . . . . . . . . . . .  8
     4.4.  Real-Time Communications . . . . . . . . . . . . . . . . .  9
     4.5.  Distributed Hash Tables  . . . . . . . . . . . . . . . . .  9
   5.  Aspects of the Problem . . . . . . . . . . . . . . . . . . . .  9
     5.1.  Information Provided by an ALTO Service  . . . . . . . . .  9
     5.2.  ALTO Service Providers . . . . . . . . . . . . . . . . . . 10
     5.3.  ALTO Service Implementation  . . . . . . . . . . . . . . . 10
     5.4.  User Privacy . . . . . . . . . . . . . . . . . . . . . . . 10
     5.5.  Topology Hiding  . . . . . . . . . . . . . . . . . . . . . 11
     5.6.  Coexistence with Caching . . . . . . . . . . . . . . . . . 11
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 11
   7.  Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 12
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 12
   9.  Informative References . . . . . . . . . . . . . . . . . . . . 13
        
1. Introduction
1. 介绍
1.1. Overview
1.1. 概述

Distributed applications, both peer-to-peer (P2P) and client/server used for file sharing, real-time communication, and live and on-demand media streaming, use a significant amount of network capacity and CPU cycles in the routers [WWW.wired.fuel]. In contrast to centralized applications, distributed applications access resources such as files or media relays distributed across the Internet and exchange large amounts of data in connections that they establish directly with nodes sharing such resources.

分布式应用程序,包括用于文件共享、实时通信以及实时和按需媒体流的对等(P2P)和客户端/服务器,在路由器中使用大量网络容量和CPU周期[WWW.wired.fuel]。与集中式应用程序不同,分布式应用程序访问分布在Internet上的文件或媒体中继等资源,并在与共享这些资源的节点直接建立的连接中交换大量数据。

One advantage of highly distributed systems results from the fact that the resources such systems offer are often available through multiple replicas. However, applications generally do not have reliable information of the underlying network and thus have to select among the available peers that provide such replicas randomly or based on information they deduce from partial observations that, in some situations, lead to suboptimal choices. For example, one peer-selection algorithm is based only on the measurements during initial connection establishment between two peers. Since actual data transmission does not begin, the algorithm measures only the

高度分布式系统的一个优点是,此类系统提供的资源通常可以通过多个副本获得。然而,应用程序通常不具有底层网络的可靠信息,因此必须从随机提供此类副本的可用对等方中进行选择,或者根据它们从部分观察中推断的信息进行选择,在某些情况下,这些信息会导致次优选择。例如,一个对等点选择算法仅基于两个对等点之间初始连接建立期间的测量。由于实际数据传输不会开始,因此该算法仅测量

round-trip time and cannot reliably deduce actual throughput between the peers. Thus, such a peer-selection algorithm that simply uses round-trip time may result in a suboptimal choice of peers.

往返时间,无法可靠地推断对等点之间的实际吞吐量。因此,这种仅使用往返时间的对等选择算法可能导致对等选择不理想。

Many of today's P2P systems use an overlay network consisting of direct peer connections. Such connections often do not account for the underlying network topology. In addition to having suboptimal performance, such networks can lead to congestion and cause serious inefficiencies. As shown in [ACM.fear], traffic generated by popular P2P applications often cross network boundaries multiple times, overloading links that are frequently subject to congestion [ACM.bottleneck]. Moreover, such transits, besides resulting in a poor experience for the user, can be quite costly to the network operator.

今天的许多P2P系统使用由直接对等连接组成的覆盖网络。这种连接通常不考虑底层网络拓扑。除了性能不理想外,此类网络还可能导致拥塞并导致严重的低效率。如[ACM.fear]所示,流行P2P应用程序生成的流量经常多次跨越网络边界,导致经常出现拥塞的链路过载[ACM.瓶颈]。此外,这种传输除了会给用户带来糟糕的体验外,还可能给网络运营商带来相当高的成本。

Recent studies ([ACM.ispp2p], [WWW.p4p.overview], [ACM.ono]) show a possible solution to this problem. Internet Service Providers (ISPs), network operators, or third parties can collect more reliable network information. This information includes relevant information such as topology or link capacity. Normally, such information changes on a much longer time scale than information used for congestion control on the transport layer. Providing this information to P2P applications can enable them to apply better-than-random peer selection with respect to the underlying network topology. As a result, it may be possible to increase application performance, reduce congestion, and decrease the overall amount of traffic across different networks. Presumably, both applications and the network operator can benefit from such information. Thus, network operators have an incentive to provide, either directly themselves or indirectly through a third party, such information; applications have an incentive to use such information. This document discusses issues related to an information-sharing service that enables applications to perform better-than-random peer selection.

最近的研究([ACM.isppp],[WWW.p4p.overview],[ACM.ono])显示了这个问题的可能解决方案。互联网服务提供商(ISP)、网络运营商或第三方可以收集更可靠的网络信息。此信息包括拓扑或链路容量等相关信息。通常,此类信息的变化时间比用于传输层拥塞控制的信息长得多。将此信息提供给P2P应用程序可以使它们比随机对等选择更好地应用于底层网络拓扑。因此,可以提高应用程序性能,减少拥塞,并减少不同网络间的总流量。据推测,应用程序和网络运营商都可以从这些信息中受益。因此,网络运营商有动机直接或通过第三方间接提供此类信息;应用程序有使用此类信息的动机。本文档讨论与信息共享服务相关的问题,该服务使应用程序的性能优于随机对等选择。

Section 2 provides definitions. Section 3 introduces the problem. Section 4 describes some use cases where both P2P applications and network operators benefit from a solution to such a problem. Section 5 describes the main issues to consider when designing such a solution. Note a companion document to this document, "Application-Layer Traffic Optimization (ALTO) Requirements" [ALTO-REQS], goes into the details of these issues.

第2节提供了定义。第3节介绍了这个问题。第4节描述了一些使用案例,其中P2P应用程序和网络运营商都受益于此类问题的解决方案。第5节描述了在设计这样的解决方案时要考虑的主要问题。注:本文件的配套文件“应用层流量优化(ALTO)要求”[ALTO-REQS]详细介绍了这些问题。

1.2. State-of-the-Art
1.2. 最先进的

The papers [ACM.ispp2p], [PATH-SEL], and [WWW.p4p.overview] present examples of contemporary solution proposals that address the problem described in this document. Moreover, these proposals have encouraging simulation and field test results. These and similar, independent, solutions all consist of two essential parts:

论文[ACM.isppp]、[PATH-SEL]和[WWW.p4p.overview]提供了解决本文档中所述问题的当代解决方案建议的示例。此外,这些建议具有令人鼓舞的模拟和现场试验结果。这些和类似的独立解决方案都由两个基本部分组成:

o a discovery mechanism that a P2P application uses to find a reliable information source, and

o P2P应用程序用于查找可靠信息源的发现机制,以及

o a protocol that P2P applications use to query such sources in order to retrieve the information needed to perform better-than-random selection of the endpoints providing a desired resource.

o P2P应用程序用于查询此类源的协议,以便检索所需信息,从而比随机选择提供所需资源的端点更好地执行操作。

It is not clear how such solutions will perform if deployed globally on the Internet. However, wide adoption is unlikely without agreement on a common solution, based upon an open standard.

目前尚不清楚,如果在全球互联网上部署,这些解决方案将如何发挥作用。然而,如果不就基于开放标准的通用解决方案达成一致,就不可能广泛采用。

2. Definitions
2. 定义

The following terms have special meaning in the definition of the Application-Layer Traffic Optimization (ALTO) problem.

以下术语在应用层流量优化(ALTO)问题的定义中具有特殊意义。

Application: A distributed communication system (e.g., file sharing) that uses the ALTO service to improve its performance or quality of experience while improving resource consumption in the underlying network infrastructure. Applications may use the P2P model to organize themselves, use the client-server model, or use a hybrid of both (i.e., a mixture between the P2P model and the client-server model).

应用:一种分布式通信系统(如文件共享),使用ALTO服务提高性能或体验质量,同时改善底层网络基础设施中的资源消耗。应用程序可以使用P2P模型来组织自己,使用客户机-服务器模型,或者使用两者的混合(即,P2P模型和客户机-服务器模型的混合)。

Peer: A specific participant in an application. Colloquially, a peer refers to a participant in a P2P network or system, and this definition does not violate that assumption. If the basis of the application is the client-server or hybrid model, then the usage of the terms "client" and "server" disambiguates the peer's role.

对等方:应用程序中的特定参与者。通俗地说,peer指的是P2P网络或系统中的参与者,该定义并不违反该假设。如果应用程序的基础是客户机-服务器或混合模式,那么使用术语“客户机”和“服务器”可以消除对等方角色的歧义。

P2P: Peer-to-Peer.

P2P:点对点。

Resource: Content (such as a file or a chunk of a file) or a server process (for example, to relay a media stream or perform a computation) that applications can access. In the ALTO context, a resource is often available in several equivalent replicas. In addition, different peers share these resources, often simultaneously.

资源:应用程序可以访问的内容(例如文件或文件块)或服务器进程(例如,中继媒体流或执行计算)。在ALTO上下文中,一个资源通常在多个等效副本中可用。此外,不同的对等方通常同时共享这些资源。

Resource Identifier: An application-layer identifier used to identify a resource, no matter how many replicas exist.

资源标识符:用于标识资源的应用程序层标识符,无论存在多少副本。

Resource Provider: For P2P applications, a resource provider is a specific peer that provides some resources. For client-server or hybrid applications, a provider is a server that hosts a resource.

资源提供者:对于P2P应用程序,资源提供者是提供某些资源的特定对等方。对于客户机-服务器或混合应用程序,提供程序是承载资源的服务器。

Resource Consumer: For P2P applications, a resource consumer is a specific peer that needs to access resources. For client-server or hybrid applications, a consumer is a client that needs to access resources.

资源使用者:对于P2P应用程序,资源使用者是需要访问资源的特定对等方。对于客户机-服务器或混合应用程序,使用者是需要访问资源的客户机。

Transport Address: All address information that a resource consumer needs to access the desired resource at a specific resource provider. This information usually consists of the resource provider's IP address and possibly other information, such as a transport protocol identifier or port numbers.

传输地址:资源使用者在特定资源提供者访问所需资源所需的所有地址信息。此信息通常包括资源提供者的IP地址和其他信息,如传输协议标识符或端口号。

Overlay Network: A virtual network consisting of direct connections on top of another network and established by a group of peers.

覆盖网络:一个虚拟网络,由另一个网络上的直接连接组成,由一组对等网络建立。

Resource Directory: An entity that is logically separate from the resource consumer and that assists the resource consumer to identify a set of resource providers. Some P2P applications refer to the resource directory as a P2P tracker.

资源目录:在逻辑上与资源使用者分开的实体,它帮助资源使用者识别一组资源提供者。一些P2P应用程序将资源目录称为P2P跟踪器。

ALTO Service: Several resource providers may be able to provide the same resource. The ALTO service gives guidance to a resource consumer and/or resource directory about which resource provider(s) to select in order to optimize the client's performance or quality of experience, while improving resource consumption in the underlying network infrastructure.

ALTO服务:多个资源提供商可以提供相同的资源。ALTO服务为资源使用者和/或资源目录提供指导,以选择哪些资源提供者,从而优化客户端的性能或体验质量,同时改善底层网络基础设施中的资源消耗。

ALTO Server: A logical entity that provides interfaces to the queries to the ALTO service.

ALTO服务器:为ALTO服务的查询提供接口的逻辑实体。

ALTO Client: The logical entity that sends ALTO queries. Depending on the architecture of the application, one may embed it in the resource consumer and/or in the resource directory.

ALTO客户端:发送ALTO查询的逻辑实体。根据应用程序的体系结构,可以将其嵌入到资源使用者和/或资源目录中。

ALTO Query: A message sent from an ALTO client to an ALTO server; it requests guidance from the ALTO service.

ALTO查询:从ALTO客户端发送到ALTO服务器的消息;它要求ALTO服务提供指导。

ALTO Response: A message that contains guiding information from the ALTO service as a reply to an ALTO query.

ALTO响应:包含来自ALTO服务的指导信息的消息,作为对ALTO查询的响应。

ALTO Transaction: A transaction that consists of an ALTO query and the corresponding ALTO response.

ALTO事务:由ALTO查询和相应ALTO响应组成的事务。

Local Traffic: Traffic that stays within the network infrastructure of one Internet Service Provider (ISP). This type of traffic usually results in the least cost for the ISP.

本地通信量:一家互联网服务提供商(ISP)的网络基础设施内的通信量。这种类型的通信通常使ISP的成本最低。

Peering Traffic: Internet traffic exchanged by two Internet Service Providers whose networks connect directly. Apart from infrastructure and operational costs, peering traffic is often free to the ISPs, within the contract of a peering agreement.

对等流量:由两个网络直接连接的互联网服务提供商交换的互联网流量。除了基础设施和运营成本外,在对等协议的合同范围内,对等通信通常对ISP是免费的。

Transit Traffic: Internet traffic exchanged on the basis of economic agreements amongst Internet Service Providers (ISPs). An ISP generally pays a transit provider for the delivery of traffic flowing between its network and remote networks to which the ISP does not have a direct connection.

过境交通:互联网服务提供商(ISP)之间根据经济协议交换的互联网交通。ISP通常向传输提供商支付在其网络和ISP没有直接连接的远程网络之间传输流量的费用。

Application Protocol: A protocol used by the application for establishing an overlay network between the peers and exchanging data on it, as well as for data exchange between peers and resource directories, if applicable. These protocols play an important role in the overall ALTO architecture. However, defining them is out of the scope of the ALTO WG.

应用协议:应用程序使用的协议,用于在对等点之间建立覆盖网络并在其上交换数据,以及对等点和资源目录之间的数据交换(如果适用)。这些协议在整个ALTO体系结构中起着重要作用。然而,定义它们超出了ALTO工作组的范围。

ALTO Client Protocol: The protocol used for sending ALTO queries and ALTO replies between an ALTO client and ALTO server.

ALTO客户端协议:用于在ALTO客户端和ALTO服务器之间发送ALTO查询和ALTO回复的协议。

Provisioning Protocol: A protocol used for populating the ALTO server with information.

配置协议:用于向ALTO服务器填充信息的协议。

                                             +------+
                                          +-----+   | Peers
          +-----+       +------+    +=====|     |-*-+
          |     |.......|      |====+     +-*-*-+ *
          +-----+       +------+    |       * *****
        Source of        ALTO       |       *
        Information      Server     |     +-*---+
                                    +=====|     | Resource Directory
                                          +-----+ (Tracker, proxy)
        Legend:
        === ALTO client protocol
        *** Application protocol (out of scope)
        ... Provisioning or initialization (out of scope)
        
                                             +------+
                                          +-----+   | Peers
          +-----+       +------+    +=====|     |-*-+
          |     |.......|      |====+     +-*-*-+ *
          +-----+       +------+    |       * *****
        Source of        ALTO       |       *
        Information      Server     |     +-*---+
                                    +=====|     | Resource Directory
                                          +-----+ (Tracker, proxy)
        Legend:
        === ALTO client protocol
        *** Application protocol (out of scope)
        ... Provisioning or initialization (out of scope)
        

Figure 1: Overview of Protocol Interaction between ALTO Elements

图1:ALTO元素之间的协议交互概述

Figure 1 shows the scope of the ALTO client protocol: peers or resource directories can use such a protocol as ALTO clients to query an ALTO server. The mapping of topological information onto an ALTO

图1显示了ALTO客户端协议的范围:对等方或资源目录可以使用ALTO客户端这样的协议来查询ALTO服务器。拓扑信息在ALTO上的映射

service as well as the application protocol interaction between peers and resource directories are out of scope for the ALTO client protocol.

服务以及对等方和资源目录之间的应用程序协议交互超出ALTO客户端协议的范围。

3. The Problem
3. 问题

Network engineers have been facing the problem of traffic optimization for a long time and have designed mechanisms like MPLS [RFC3031] and Diffserv [RFC3260] to deal with it. The problem these protocols address consists in finding (or setting) optimal routes (or optimal queues in routers) for packets traveling between specific source and destination addresses. Solutions are based on requirements such as low latency, high reliability, and priority. Such solutions are usually implemented at the link and network layers and tend to be almost transparent.

长期以来,网络工程师一直面临着流量优化问题,他们设计了MPLS[RFC3031]和Diffserv[RFC3260]等机制来解决这个问题。这些协议解决的问题在于为在特定源地址和目标地址之间传输的数据包寻找(或设置)最优路由(或路由器中的最优队列)。解决方案基于低延迟、高可靠性和优先级等需求。这种解决方案通常在链路层和网络层实现,并且几乎是透明的。

However, distributed applications in general and, in particular, bandwidth-greedy P2P applications that are used, for example, for file sharing, cannot directly use the aforementioned techniques. By cooperating with external services that are aware of the network topology, applications could greatly improve the traffic they generate. In fact, when a P2P application needs to establish a connection, the logical target is not a stable host, but rather a resource (e.g., a file or a media relay) that can be available in multiple instances on different peers. Selection of a good host from an overlay topological proximity has a large impact on the overall traffic generated.

然而,一般的分布式应用程序,特别是用于文件共享的带宽贪婪的P2P应用程序,不能直接使用上述技术。通过与了解网络拓扑的外部服务协作,应用程序可以极大地改善它们生成的流量。事实上,当P2P应用程序需要建立连接时,逻辑目标不是稳定的主机,而是可以在不同对等机上的多个实例中使用的资源(例如,文件或媒体中继)。从覆盖拓扑邻近性中选择好的主机对生成的总体流量有很大影响。

Note that while traffic considerations are important, several other factors also play a role on the performance experienced by users of distributed applications. These include the need to avoid overloading individual nodes, fetching rare pieces of a file before those pieces are available at a multiplicity of nodes, and so on. However, better information about topological conditions does improve the overall selection algorithm on an important aspect.

请注意,虽然流量因素很重要,但其他几个因素也会影响分布式应用程序用户的性能。其中包括需要避免单个节点过载,在多个节点上都可以使用文件的稀有片段之前获取这些片段,等等。然而,关于拓扑条件的更好信息确实在一个重要方面改进了总体选择算法。

Better-than-random peer selection is helpful in the initial phase of the process. Consider a P2P protocol in which a querying peer receives a list of candidate destinations where a resource resides. From this list, the peer will derive a smaller set of candidates to connect to and exchange information with. In another example, a streaming video client may be provided with a list of destinations from which it can stream content. In both cases, the use of topology information in an early stage will allow applications to improve their performance and will help ISPs make a better use of their network resources. In particular, an economic goal for ISPs is to reduce the transit traffic on interdomain links.

在过程的初始阶段,比随机对等选择更好的选择是有帮助的。考虑P2P协议,其中查询对等体接收资源驻留的候选目的地列表。从该列表中,对等方将获得一组较小的候选对象,用于连接和交换信息。在另一示例中,流式视频客户端可以被提供有目的地列表,其可以从中流式传输内容。在这两种情况下,在早期阶段使用拓扑信息将允许应用程序提高其性能,并将帮助ISP更好地利用其网络资源。特别是,ISP的一个经济目标是减少域间链路上的中转流量。

Addressing the Application-Layer Traffic Optimization (ALTO) problem means, on the one hand, deploying an ALTO service to provide applications with information regarding the underlying network and, on the other hand, enhancing applications in order to use such information to perform better-than-random selection of the endpoints with which they establish connections.

解决应用层流量优化(ALTO)问题一方面意味着部署ALTO服务以向应用程序提供有关底层网络的信息,另一方面,增强应用程序,以便使用这些信息比随机选择与之建立连接的端点执行得更好。

4. Use Cases
4. 用例
4.1. File sharing
4.1. 文件共享

File-sharing applications allow users to search for content shared by other users and to download respective resources from other users. For instance, search results can consist of many instances of the same file (or chunk of a file) available from multiple sources. The goal of an ALTO solution is to help peers find the best ones according to the underlying networks.

文件共享应用程序允许用户搜索其他用户共享的内容,并从其他用户下载相应的资源。例如,搜索结果可以由来自多个源的同一文件(或文件块)的多个实例组成。ALTO解决方案的目标是帮助对等方根据底层网络找到最好的解决方案。

On the application side, integration of ALTO functionalities may happen at different levels. For example, in the completely decentralized Gnutella network, selection of the best sources is totally up to the user. In systems like BitTorrent and eDonkey, central elements such as trackers or servers act as mediators. Therefore, in the former case, improvement would require modification in the applications, while in the latter it could just be implemented in some central elements.

在应用程序方面,ALTO功能的集成可能在不同的级别上进行。例如,在完全分散的Gnutella网络中,最佳源的选择完全取决于用户。在像BitTorrent和eDonkey这样的系统中,诸如跟踪器或服务器之类的中心元素充当中介。因此,在前一种情况下,改进需要在应用程序中进行修改,而在后一种情况下,只需在一些中心元素中实施。

4.2. Cache/Mirror Selection
4.2. 缓存/镜像选择

Providers of popular content, like media and software repositories, usually resort to geographically distributed caches and mirrors for load balancing. Today, selection of the proper mirror/cache for a given user is based on inaccurate geolocation data, on proprietary network-location systems, or is often delegated to the user herself. An ALTO solution could be easily adopted to ease such a selection in an automated way.

流行内容(如媒体和软件存储库)的提供商通常采用地理分布的缓存和镜像来实现负载平衡。如今,为给定用户选择合适的镜像/缓存是基于不准确的地理位置数据、专有网络定位系统,或者通常委托给用户自己。可以很容易地采用ALTO解决方案,以自动化方式简化此类选择。

4.3. Live Media Streaming
4.3. 流媒体直播

P2P applications for live streaming allow users to receive multimedia content produced by one source and targeted to multiple destinations, in a real-time or near-real-time way. This is particularly important for users or networks that do not support multicast. Peers often participate in the distribution of the content, acting as both receivers and senders. The goal of an ALTO solution is to help a peer to find effective communicating peers that exchange the media content.

P2P实时流媒体应用程序允许用户以实时或近实时的方式接收由一个源生成并指向多个目的地的多媒体内容。这对于不支持多播的用户或网络尤为重要。对等方通常参与内容的分发,充当接收者和发送者。ALTO解决方案的目标是帮助对等方找到交换媒体内容的有效通信对等方。

4.4. Real-Time Communications
4.4. 实时通信

P2P real-time communications allow users to establish direct media flows for real-time audio, video, and real-time text calls or to have text chats. In the basic case, media flows directly between the two endpoints. Unfortunately, however, a significant portion of users have limited access to the Internet due to NATs, firewalls, or proxies. Thus, other elements need to relay the media. Such media relays are distributed over the Internet with public addresses. An ALTO solution needs to help peers find the best relays.

P2P实时通信允许用户建立实时音频、视频和实时文本通话的直接媒体流,或者进行文本聊天。在基本情况下,媒体直接在两个端点之间流动。然而,不幸的是,由于NAT、防火墙或代理,很大一部分用户对Internet的访问受到限制。因此,其他元素需要中继媒体。这种媒体中继通过互联网和公共地址进行分发。ALTO解决方案需要帮助同行找到最佳中继。

4.5. Distributed Hash Tables
4.5. 分布式哈希表

Distributed hash tables (DHTs) are a class of overlay algorithms used to implement lookup functionalities in popular P2P systems, without using centralized elements. In such systems, a peer maintains the addresses of a set of other peers participating in the same DHT in a routing table, sorted according to specific criteria. An ALTO solution can provide valuable information for DHT algorithms.

分布式哈希表(DHT)是一类覆盖算法,用于在流行的P2P系统中实现查找功能,而不使用集中式元素。在这样的系统中,对等方在路由表中维护参与同一DHT的一组其他对等方的地址,并根据特定标准进行排序。ALTO解决方案可以为DHT算法提供有价值的信息。

5. Aspects of the Problem
5. 问题的各个方面

This section introduces some aspects of the problem that some people may not be aware of when they first start studying the problem space.

本节介绍一些人在第一次开始研究问题空间时可能没有意识到的问题方面。

5.1. Information Provided by an ALTO Service
5.1. ALTO服务提供的信息

The goal of an ALTO service is to provide applications with information they can use to perform better-than-random peer selection. In principle, there are many types of information that can help applications in peer selection. However, not all of the information to be conveyed is amenable to an ALTO-like service. More specifically, information that can change very rapidly, such as transport-layer congestion, is out of scope for an ALTO service. Such information is better suited to be transferred through an in-band technique at the transport layer instead of an ALTO-like, out-of-band technique at the application layer. An ALTO solution for congestion will either have outdated information or must be contacted too frequently by applications. And finally, information such as end-to-end delay and available bandwidth can be more accurately measured by applications, themselves.

ALTO服务的目标是为应用程序提供信息,这些信息可用于执行比随机对等选择更好的操作。原则上,有许多类型的信息可以帮助应用程序进行对等选择。然而,并非所有要传达的信息都适用于类似ALTO的服务。更具体地说,可以快速变化的信息(如传输层拥塞)超出了ALTO服务的范围。这样的信息更适合在传输层通过带内技术而不是在应用层通过类似ALTO的带外技术来传输。ALTO拥塞解决方案要么信息过时,要么应用程序必须频繁联系。最后,诸如端到端延迟和可用带宽等信息可以由应用程序自己更准确地测量。

The kind of information that is meaningful to convey to applications via an out-of-band ALTO service is any information that applications cannot easily obtain themselves and that changes on a much longer time scale than the instantaneous information used for congestion control on the transport layer. Examples for such information are operator's policies, geographical location or network proximity

通过带外ALTO服务传递给应用程序的有意义的信息是应用程序自身无法轻松获得的任何信息,并且这些信息的变化时间比用于传输层拥塞控制的瞬时信息长得多。此类信息的示例包括运营商的政策、地理位置或网络邻近性

(e.g., the topological distance between two peers), the transmission costs associated with sending/receiving a certain amount of data to/ from a peer, or the remaining amount of traffic allowed by a peer's operator (e.g., in case of quotas or limited flat-rate pricing models).

(例如,两个对等点之间的拓扑距离)、与向/从对等点发送/接收一定数量的数据相关的传输成本,或对等点运营商允许的剩余流量(例如,在配额或有限的统一费率定价模型的情况下)。

5.2. ALTO Service Providers
5.2. 中音服务提供商

At least three different kinds of entities can provide ALTO services:

至少有三种不同类型的实体可以提供ALTO服务:

1. Network operators. Network operators usually have full knowledge of the network they administer and are aware of their network topology and policies.

1. 网络运营商。网络运营商通常完全了解其管理的网络,并了解其网络拓扑和策略。

2. Third parties. Third parties are entities separate from network operators but that may either have collected network information or have arrangements with network operators to learn the network information. Examples of such entities are content-delivery networks like Akamai, which control wide and highly distributed infrastructures, or companies providing an ALTO service on behalf of ISPs.

2. 第三方。第三方是独立于网络运营商的实体,但可能已收集网络信息或与网络运营商达成协议以了解网络信息。这类实体的例子包括内容交付网络,如Akamai,它控制广泛且高度分布式的基础设施,或代表ISP提供ALTO服务的公司。

3. User communities. User communities run distributed algorithms, for example, for estimating the topology of the Internet.

3. 用户社区。例如,用户社区运行分布式算法来估计互联网的拓扑结构。

5.3. ALTO Service Implementation
5.3. 中音业务实现

It is important for the reader to understand there are significant user communities that expect an ALTO server to be a centralized service. Likewise, there are other user communities that expect the ALTO service be a distributed service, possibly even based on or integrating with a P2P service.

对于读者来说,了解一些重要的用户社区期望ALTO服务器成为一个集中的服务是很重要的。类似地,还有其他用户社区期望ALTO服务是分布式服务,甚至可能基于P2P服务或与P2P服务集成。

As a result, one can reasonably expect there to be some sort of service-discovery mechanism to go along with the ALTO protocol definition.

因此,人们可以合理地预期,在ALTO协议定义的基础上会有某种服务发现机制。

5.4. User Privacy
5.4. 用户隐私

On the one hand, there are data elements an ALTO client could provide in its query to an ALTO server that could help increase the level of accuracy in the replies. For example, if the querying client indicates what kind of application it is using (e.g., real-time communications or bulk data transfer), the server will be able to indicate priorities in its replies, accommodating the requirements of the traffic the application will generate. On the other hand,

一方面,ALTO客户端可以在其向ALTO服务器的查询中提供一些数据元素,这些数据元素有助于提高回复的准确性。例如,如果查询客户端指示它正在使用哪种类型的应用程序(例如,实时通信或批量数据传输),服务器将能够在其回复中指示优先级,以适应应用程序将生成的流量的要求。另一方面

applications might consider such information private. In addition, some applications may not know a priori what kind of request they will be making.

应用程序可能认为这些信息是私有的。此外,一些应用程序可能事先不知道他们将提出什么样的请求。

5.5. Topology Hiding
5.5. 拓扑隐藏

Operators, with their intimate knowledge of their network topology, can play an important role in addressing the ALTO problem. However, operators often consider revealing details of such network information to be confidential.

运营商凭借其对网络拓扑的深入了解,可以在解决ALTO问题方面发挥重要作用。然而,运营商通常认为泄露这些网络信息的细节是保密的。

5.6. Coexistence with Caching
5.6. 与缓存共存

Caching is an approach to improving traffic generated by applications, and it requires large amounts of data transfers. In some cases, such techniques have proven to be extremely effective in both enhancing user experience and saving network resources.

缓存是一种改善应用程序生成的流量的方法,它需要大量的数据传输。在某些情况下,这些技术已被证明在增强用户体验和节省网络资源方面极其有效。

A cache, either explicitly or transparently, replaces the content source. Thus, a cache must, in principle, use and support the same protocol as the querying peer. That is, if a cache stores web content, it must present an HTTP interface to the web client. Any cache solution for a given protocol needs to present that same protocol to the client. Said differently, each caching solution for a different protocol needs to implement that specific protocol. For this reason, one can only reasonably expect caching solutions for the most popular protocols, such as HTTP and BitTorrent.

缓存(显式或透明)将替换内容源。因此,缓存原则上必须使用和支持与查询对等方相同的协议。也就是说,如果缓存存储web内容,它必须向web客户端提供HTTP接口。给定协议的任何缓存解决方案都需要向客户端提供相同的协议。换言之,不同协议的每个缓存解决方案都需要实现该特定协议。出于这个原因,人们只能合理地期待针对最流行的协议(如HTTP和BitTorrent)的缓存解决方案。

It is extremely important to realize that caching and ALTO are entirely orthogonal. ALTO, especially if it is aware of caches, can in fact direct clients to nearby caches where the user could get a much better quality of experience.

认识到缓存和ALTO是完全正交的,这一点非常重要。ALTO,特别是如果它知道缓存,实际上可以将客户端引导到附近的缓存,在那里用户可以获得更好的体验质量。

6. Security Considerations
6. 安全考虑

This document is neither a requirements document nor a protocol specification. However, we believe it is important for the reader to understand areas of security and privacy that will be important for the design and implementation of an ALTO solution. Moreover, issues such as digital rights management are out of scope for ALTO, as they are not technically enforceable at this level.

本文件既不是需求文件,也不是协议规范。然而,我们相信读者了解安全和隐私领域对于ALTO解决方案的设计和实施非常重要。此外,数字版权管理等问题超出了ALTO的范围,因为它们在技术上无法在这一层面上实施。

Some environments and use cases of ALTO may require client or server authentication before providing sensitive information. In order to support those environments interoperably, the ALTO requirements document [ALTO-REQS] outlines minimum-to-implement authentication and other security requirements.

ALTO的某些环境和用例在提供敏感信息之前可能需要客户端或服务器身份验证。为了以互操作方式支持这些环境,ALTO需求文档[ALTO-REQS]概述了实现身份验证和其他安全需求的最低要求。

Applications can decide to rely on information provided by an ALTO server to enhance the peer-selection process. In principle, this enables the ALTO service that provides such information to influence the behavior of the application, basically letting a third-party -- the ALTO service provider -- take an important role in a distributed system it was not previously involved in.

应用程序可以决定依赖ALTO服务器提供的信息来增强对等选择过程。原则上,这使提供此类信息的ALTO服务能够影响应用程序的行为,基本上让第三方(ALTO服务提供商)在以前未涉及的分布式系统中扮演重要角色。

For example, in the case of an ALTO server deployed and run by an ISP, the P2P community might consider such a server hostile because the operator could:

例如,在由ISP部署和运行的阿尔托服务器的情况下,P2P社区可能会考虑这样的服务器敌对,因为操作员可以:

o use ALTO to prevent content distribution and enforce copyrights;

o 使用ALTO防止内容分发并强制执行版权;

o redirect applications to corrupted mediators providing malicious content;

o 将应用程序重定向到提供恶意内容的损坏中介;

o track connections to perform content inspection or logging;

o 跟踪连接以执行内容检查或记录;

o apply policies based on criteria other than network efficiency. For example, the service provider may suggest routes suboptimal from the user's perspective in order to avoid peering points regulated by inconvenient economic agreements.

o 基于网络效率以外的标准应用策略。例如,服务提供商可以从用户的角度建议次优路由,以避免由不方便的经济协议调节的对等点。

It is important to note there is no protocol mechanism to require ALTO for P2P applications. If, for some reason, ALTO fails to improve the performance of P2P applications, ALTO will not gain popularity and the P2P community will not use it.

需要注意的是,P2P应用程序没有需要ALTO的协议机制。如果由于某种原因,ALTO未能提高P2P应用程序的性能,ALTO将不会受到欢迎,P2P社区也不会使用它。

At the time of this writing, the privacy issues described in Section 5.4 are relevant for an ALTO solution. Users may be reluctant to disclose sensitive information to an ALTO server. Operators, on the other hand, may not wish to disclose information that would expose details of their interior topology. When exploring the solution space in detail, one needs to consider these issues so that an ALTO protocol does not presume mandatory information disclosure, by either clients or servers.

在撰写本文时,第5.4节中描述的隐私问题与ALTO解决方案相关。用户可能不愿意向ALTO服务器披露敏感信息。另一方面,运营商可能不希望披露会暴露其内部拓扑细节的信息。当详细地探索解决方案空间时,需要考虑这些问题,以便阿尔托协议不假定客户端或服务器强制的信息公开。

7. Contributors
7. 贡献者

This document was initially edited by Enrico Marocco and Vijay Gurbani. In the role of Working Group chairs, they have continued to provide significant edits and inputs to the current authors.

本文件最初由Enrico Marocco和Vijay Gurbani编辑。作为工作组主席,他们继续为现任作者提供重要的编辑和投入。

8. Acknowledgments
8. 致谢

Vinay Aggarwal and the P4P working group conducted the research work done outside the IETF. Emil Ivov, Rohan Mahy, Anthony Bryan, Stanislav Shalunov, Laird Popkin, Stefano Previdi, Reinaldo Penno,

Vinay Aggarwal和P4P工作组在IETF之外开展了研究工作。埃米尔·伊沃夫、罗汉·马伊、安东尼·布莱恩、斯坦尼斯拉夫·沙卢诺夫、莱尔德·波普金、斯特凡诺·普雷维迪、雷纳尔多·佩诺、,

Dimitri Papadimitriou, Sebastian Kiesel, Greg DePriest, and many others provided insightful discussions, specific comments, and much needed corrections.

迪米特里·帕帕迪米特里奥、塞巴斯蒂安·基塞尔、格雷格·德普里斯特和其他许多人进行了深入的讨论,提出了具体的意见,并进行了急需的纠正。

Jan Seedorf and Sebastian Kiesel are partially supported by the NAPA-WINE project (Network-Aware P2P-TV Application over Wise Networks, http://www.napa-wine.org), a research project supported by the European Commission under its 7th Framework Program (contract no. 214412). The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of the NAPA-WINE project or the European Commission.

Jan Seedorf和Sebastian Kiesel部分获得NAPA-WINE项目(Wise网络上的网络感知P2P-TV应用程序)的支持,http://www.napa-wine.org),这是一个由欧盟委员会根据其第七个框架计划(合同号214412)支持的研究项目。本文中包含的观点和结论是作者的观点和结论,不应被解释为代表NAPA-WINE项目或欧盟委员会的官方政策或认可,无论明示或暗示。

Thanks in particular to Richard Yang for several reviews.

特别感谢Richard Yang的几篇评论。

9. Informative References
9. 资料性引用

[ACM.bottleneck] Akella, A., Seshan, S., and A. Shaikh, "An Empirical Evaluation of WideArea Internet Bottlenecks", Proceedings of ACM SIGCOMM, October 2003.

[ACM.瓶颈]Akella,A.,Seshan,S.,和A.Shaikh,“宽带互联网瓶颈的实证评估”,ACM SIGCOMM会议记录,2003年10月。

[ACM.fear] Karagiannis, T., Rodriguez, P., and K. Papagiannaki, "Should ISPs fear Peer-Assisted Content Distribution?", ACM USENIX IMC, Berkeley 2005.

[ACM.fear]Karagiannis,T.,Rodriguez,P.,和K.Papagiannaki,“ISP是否应该害怕同伴协助的内容分发?”,ACM USENIX IMC,伯克利,2005年。

[ACM.ispp2p] Aggarwal, V., Feldmann, A., and C. Scheideler, "Can ISPs and P2P systems co-operate for improved performance?", ACM SIGCOMM Computer Communications Review (CCR), 37:3, pp. 29-40.

[ACM.ispp2p]Aggarwal,V.,Feldmann,A.,和C.Scheideler,“ISP和P2P系统能否合作提高性能?”,ACM SIGCOMM计算机通信评论(CCR),37:3,第29-40页。

[ACM.ono] Choffnes, D. and F. Bustamante, "Taming the Torrent: A practical approach to reducing cross-ISP traffic in P2P systems", Proceedings of ACM SIGCOMM, August 2008.

[ACM.ono]Choffnes,D.和F.Bustamante,“驯服洪流:减少P2P系统中跨ISP流量的实用方法”,ACM SIGCOMM会议记录,2008年8月。

[ALTO-REQS] Kiesel, S., Popkin, L., Previdi, S., Woundy, R., and Y. Yang, "Application-Layer Traffic Optimization (ALTO) Requirements", Work in Progress, April 2009.

[ALTO-REQS]Kiesel,S.,Popkin,L.,Previdi,S.,Woundy,R.,和Y.Yang,“应用层流量优化(ALTO)要求”,正在进行的工作,2009年4月。

[PATH-SEL] Saucez, D. and B. Donnet, "The case for an informed path selection service", Work in Progress, February 2008.

[PATH-SEL]Saucez,D.和B.Donnet,“知情路径选择服务的案例”,正在进行的工作,2008年2月。

[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol Label Switching Architecture", RFC 3031, January 2001.

[RFC3031]Rosen,E.,Viswanathan,A.,和R.Callon,“多协议标签交换体系结构”,RFC 30312001年1月。

[RFC3260] Grossman, D., "New Terminology and Clarifications for Diffserv", RFC 3260, April 2002.

[RFC3260]Grossman,D.“区分服务的新术语和澄清”,RFC 3260,2002年4月。

[WWW.p4p.overview] Xie, H., Krishnamurthy, A., Silberschatz, A., and R. Yang, "P4P: Explicit Communications for Cooperative Control Between P2P and Network Providers", <http://www.dcia.info/documents/P4P_Overview.pdf>.

[WWW.p4p.overview]谢,H.,Krishnamurthy,A.,Silberschatz,A.,和R.Yang,“p4p:P2P和网络提供商之间合作控制的显式通信”<http://www.dcia.info/documents/P4P_Overview.pdf>.

[WWW.wired.fuel] Glasner, J., "P2P Fuels Global Bandwidth Binge", April 2005, <http://www.wired.com>.

[WWW.wired.fuel]Glasner,J.,“P2P推动全球带宽狂欢”,2005年4月<http://www.wired.com>.

Authors' Addresses

作者地址

Jan Seedorf NEC Laboratories Europe, NEC Europe Ltd. Kurfuersten-Anlage 36 Heidelberg 69115 Germany

Jan Seedorf NEC Laboratories Europe,NEC Europe Ltd.Kurfuersten Anlage 36德国海德堡69115

   Phone: +49 (0) 6221 4342 221
   EMail: jan.seedorf@nw.neclab.eu
   URI:   http://www.nw.neclab.eu
        
   Phone: +49 (0) 6221 4342 221
   EMail: jan.seedorf@nw.neclab.eu
   URI:   http://www.nw.neclab.eu
        

Eric W. Burger Neustar Inc. 46000 Center Oak Plaza Sterling, VA 20166-6579 USA

Eric W.Burger Neustar Inc.美国弗吉尼亚州斯特林中心橡木广场46000号,邮编20166-6579

   Phone:
   Fax:   +1 530 267 7447
   EMail: eburger@standardstrack.com
   URI:   http://www.standardstrack.com
        
   Phone:
   Fax:   +1 530 267 7447
   EMail: eburger@standardstrack.com
   URI:   http://www.standardstrack.com