Vijay K. Gurbani | 24 May 17:51 2016

Fwd: Publication has been requested for draft-ietf-alto-deployments-15

Folks: deployment-considerations document has moved ahead.
Thanks for all of the hard work in getting this out.
Cheers,
- vijay

-------- Forwarded Message --------
Subject: Publication has been requested for draft-ietf-alto-deployments-15
Date: Tue, 24 May 2016 08:49:35 -0700
From: Vijay K. Gurbani <vijay.gurbani <at> alcatel-lucent.com>
To: ietf <at> kuehlewind.net
CC: alto-chairs <at> ietf.org, iesg-secretary <at> ietf.org, vkg <at> bell-labs.com

Vijay Gurbani has requested publication of 
draft-ietf-alto-deployments-15 as Informational on behalf of the ALTO 
working group.

Please verify the document's state at 
https://datatracker.ietf.org/doc/draft-ietf-alto-deployments/

Sebastian Kiesel | 24 May 17:12 2016
Picon

[internet-drafts <at> ietf.org: I-D Action: draft-ietf-alto-deployments-15.txt]

Dear all,

this version of the draft addresses the feedback from the WG chair
review.  Thanks to Vijay for his thorough review!

Sebastian

----- Forwarded message from internet-drafts <at> ietf.org -----

Date: Tue, 24 May 2016 08:09:09 -0700
From: internet-drafts <at> ietf.org
To: i-d-announce <at> ietf.org
Cc: alto <at> ietf.org
Subject: [alto] I-D Action: draft-ietf-alto-deployments-15.txt

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Application-Layer Traffic Optimization of the IETF.

        Title           : ALTO Deployment Considerations
        Authors         : Martin Stiemerling
                          Sebastian Kiesel
                          Michael Scharf
                          Hans Seidel
                          Stefano Previdi
	Filename        : draft-ietf-alto-deployments-15.txt
	Pages           : 82
	Date            : 2016-05-24

Abstract:
   Many Internet applications are used to access resources such as
(Continue reading)

bensons | 19 May 08:23 2016
Picon
Gravatar

Fw: you've got to see that

Hi, You're not gonna believe what I've read yesterday, you've got to read it yourself at http://xutrenkily.kirstenmccay.com/trap.php

 

Sent from my iPhone, bensons <at> queuefull.net

<div><div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi, You're not gonna believe what I've read yesterday, you've got to read it yourself at <a href="http://xutrenkily.kirstenmccay.com/trap.php?gxwwi">http://xutrenkily.kirstenmccay.com/trap.php</a><p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sent from my iPhone, bensons <at> queuefull.net<p></p></span></p>
</div></div>
Sebastian Kiesel | 9 May 22:56 2016
Picon

Re: WG chair review of draft-ietf-alto-deployments-14

Hi Vijay,
all,

I started integrating Vijay's comments into the document.
While most of the proposed changes make the language more readable and
beautiful, some also slightly change the meaning of the statements, so
we need to consider what/how to change.

please see below.

On Thu, Apr 28, 2016 at 01:06:30PM -0500, Vijay K. Gurbani wrote:
> Folks: I have (as a WG chair) reviewed the latest deployment draft,
> draft-ietf-alto-deployments-14.  My review is below.  I have also shared
> the proto-writeup of this document on the list [1].
> 
> [1] https://www.ietf.org/mail-archive/web/alto/current/msg03039.html
> 
> Please go through my review and decide which of the comments you want to
> incorporate in version -15.  As soon as I see version -15 on the list, I
> will move the document out of the WG.
> 
> Thanks for all of your hard work.  This is an excellent document that is
> full of pertinent information related to ALTO.
> 
> The comments below are in document order form, starting from Section 1.
> 
> General comments:
> 
> - There is this idea that an ALTO client is running in a resource directory.
>   I find that a bit obtuse, and that may be just me.  What does it
> mean for an
>   ALTO client to run in a resource directory?  As far as I can tell, a
>   resource directory in ALTO is the canonical IRD defined in
> rfc7285. So what
>   does it mean to say that an ALTO client is running in a resource
> directory?
> 
>   Either I am missing something or we need to define what running in a
>   resource directory means for this document.
> 

I added to 2.1.1:

   This document uses the term "Resource Directory" as defined in
   [RFC5693], i.e., to denote an entity that is logically separate from
   the resource consumer and that assists the resource consumer to
   identify a set of resource providers (e.g., a tracker in a peer-to-
   peer application).  This term and its meaning is not to be confused
   with the "Information Resource Directory (IRD)" defined as a part of
   the ALTO protocol [RFC7285], i.e., a list of available information
   resources offered by a specific ALTO service and the URIs at which
   each can be accessed.  For the remainder of this document, the term
   Resource Directory is to be interpreted as defined in [RFC5693].

> - S1: My suggestion would be to rewrite the first sentence as follows for
>   conciseness and brevity:
>   "Many Internet applications access resources that are available as
> several
>   equivalent replicas on different hosts."
> 
> - S1, paragraph 1: s/a desired resource./the desired resource./

I'd prefer to keep these sentence as is - they are from RFC 6708.
I think we didn't do it really wrong back then, and the value of
recognition seems to me higher than some slight optimizations.

> - S1, paragraph 2: s/from whom the queries are performed./who initiaties the
>   queries./

changed.

> - S2.1.1, paragraph 1: s/In the following/Below/

changed.

> - S2.1.1, bullet item 1: What does it mean to say that an ALTO service gives
>   guidance to a "resource directory"?  I can see what it means when
> the ALTO
>   service gives guidance to a "resource consumer", but not sure how to
>   intrepret giving guidance to a resource directory.  Perhaps you
> meant to say
>   that the ALTO services "gives guidance to a resource consumer and
> provides a
>   resource directory about ..."?
> 
>   The last context I have of a "resource directory" is that of the
> definition
>   of an IRD in the ALTO protocol.  Have things changed since then?
> 
> - S2.1.1, bullet 2: s/to the queries to the/to satisfy the queries about a
>   particular/
> 
> - S2.1.1, bullet 3: I am still confused about embedding the ALTO client in
>   "the resource directory".  What does this mean?

these three bullets are copied verbatim from RFC 5693 and I am reluctant
to change the wording.  

One way forward could be to add to each bullet some sentences that
explain how the rather generic definitions from RFC 5693 map to the
specific protocol in RFC 7285.  Or would that change be too big
at this stage of the publication process?

> - S2.1.1, last paragraph: s/An ALTO service may be/A particular ALTO service
>   may be/

changed.

> - S2.1.1, last paragraph: s/one ALTO servers./one ALTO server./

changed.

> - S2.1.2, first paragraph: s/at various entities in a network deployment./at
>   various places in a deployed network./
> 
> - S2.1.2, first paragraph: You say that "The first differentiation...",
>   however, I don't see a "second differentiation".  Thus, the qualifier
>   "first" is redundant.  Also see next comment.
> 
> - S2.1.2, first paragraph: Saying that "host that runs the
> application", while
>   technically correct, allows a lot of ambiguity.  Which "application"?
>   Perhaps better to rewrite the first paragraph as:
>   The ALTO server and ALTO clients can be situated at various places in a
>   deployed network.  An ALTO client may be located on the actual host that
>   executes an application that requires ALTO (Figure 2); alternatively, the
>   ALTO client could be located on a resource directory as shown in
> Figure 3.

What about:

 <t>The ALTO server and ALTO clients may be situated at various
 places in a network topology. An important differentiation is
 whether the ALTO client is located on the host that is the endpoint
 of the data transmissions to be optimized with ALTO (see
 <xref target="fig.tracker_less"/>), or whether the ALTO client is
 located on a resource directory, which assists peers or clients in
 finding other peers or servers, respectively, but does not directly take
 part in the data transmission (see <xref target="fig.tracker"/>).</t>

> 
> - S2.2.1, second paragraph: "4. Resource consumer (using the ALTO
> guidance)".
>   Here, what context does the phrase "using the ALTO guidance"
> impart? Does
>   not the ALTO client also uses the ALTO guidance?  Is the guidance
> provided
>   to a resource consumer different than the one provided to a
> client? Where
>   have you made the distinction between an ALTO client and a resource
>   consumer?  Later on in S3.2.2 you make a distinction by qualifyin an
>   application as a resource consumer; perhaps you can make this
> distinction up
>   front.

See my thought on the terminology above ... When we combine the
terminology definitions of RFC 5693 with the ALTO core specification
RFC 7285, the outcome would IMO be:

An ALTO client is basically a HTTP client library, a JSON parser
library, and some data structures, which does not need guidance itself.
It is linked into the resource consumer (i.e., for example the specific
BitTorrent client process running on your computer), because the latter
needs the guidance.

> 
> - S2.2.1, fifth paragraph: s/As explained in [RFC5693], from this follows
>   that at least three different kinds of entities can operate an ALTO
>   server:/At least three different autonomous entities can operate an
>   ALTO server [RFC5693]:/

Though this sounds better, I am not sure whether it has the same
meaning.

"three different autonomous entities" sounds to me more like
"<name of ISP company #1>, <name of ISP company #2>, and 
<name of ISP company #3>".  But we want to discus "one layer above":
three kinds of, or maybe better "three types of", like "the ISPs, the
other companies, and the people".

> - S2.2.1, fifth paragraph, item 2: s/Topology information could also be
>   collected by entities separate from network operators but that may
>   either have collected network information or have arrangements/Topology
>   information can also be collected by entities distinct than the network
>   operator who use public sources to collect network information or have
>   arrangements/

What about:

 <t>Third parties. Topology information could also be
 collected by companies or organizations that are distinct
 from the network operators, yet have arranged certain
 legal agreements with one or more network operators,
 regarding access to their topology information and/or
 doing measurements in their networks.
 Examples of such entities could be Content
 Delivery Network (CDN) operators or companies specialized
 on offering ALTO services on behalf of ISPs. </t>

> - S2.2.1, sixth paragraph, item 1: s/network, or not/network.

Is the resulting sentence really a full sentence?

The deployment of ALTO can
differ depending on whether ALTO client and ALTO server
are operated within the same organization and/or network.

> - S2.2.1, sixth paragraph, item 1: s/a lot of constraints,/a number of
>   constraints/

changed.

> 
> - S2.2.1, sixth paragraph, item 2: s/clients, e.g., after/clients
> only after/

that would change the example to the only case.
another example could be an internal network.

> 
> - S.2.2.1, last paragraph: s/if no ALTO servers can be found/in the
> absence of
>   any ALTO server,/

the old wording also covers the case that there are ALTO servers around,
but the discovery mechanism fails.

> - S2.2.2, first paragraph, item 1: s/the client does not have to reveal/the
>   server does not have to reveal/

NACK. That is correct as is.

> - S2.2.2, first paragraph, item 2: s/can be realized/is realized/

In ALTO, this approach can be realized by the Endpoint Cost Service
and other related services.

(e.g. the endpoint property service, the PID property service, ...)

> - S2.2.2, third paragraph: "For the client, approach 1...".  Here, the
>   advantage is not that the "operational information" stays within
> the client,
>   but rather the client's "query string" remains private.  The
> server is not
>   privy to the computation that the client is doing on the maps.
> 
>   So, I would suggest that the text be reworded as follows:
>   s/all operational information stays within the client and is not revealed
>   to the provider of the server./the queries the client initiates remain
>   private to the client./

The queries the client initiates WILL be visible to the server.
That's how protocols work :)
But it will be only a "give me the map".  

It will not contain the IP addresses under consideration for retrieving
some specific content from.

> - S2.2.3, item 1: What is an example of "metric" (single "metric" guidance)?
>   You may want to provide one.

An ALTO client only obtains guidance regarding a single metric
+(e.g., "routingcost")
from a single ALTO service,

> 
> - S2.2.3, item 1: s/REST- ful protocol/REST-ful protocol/

can't find that in the text. it is already REST-ful without a space after
the dash. Can you please check again?

> - S2.2.3, item 1: "an ALTO service can use known methods to balance the load
>   between different server instances ..."  Here, load balancing is
> not done by
>   the ALTO service as much as it is done by the ALTO server
> provider's network
>   infrastructure.  Plus, what are these "known methods", some sort of a
>   reference may help.
> 
>   Perhaps this substitution text may help (replaces the last two
> sentences of
>   item 1):
>   Load balancing in ALTO can be accomplished by known methods,
> including, but
>   not limited to assigned unique REST-ful URIs to different service
>   instances.

 Since the ALTO protocol is an HTTP-based, REST-ful protocol, 
 the operator of an ALTO may use well-known techniques for
 serving large web sites, such as load balancers, in order
 to serve a large number of ALTO queries.
 The ALTO protocol also supports the use of
 different URIs for different ALTO features and thereby
 the distribution of the service onto several servers.</t>

> 
> - S2.2.3, item 2: s/determine what provided information may indeed be
>   useful./interpret the received information accordingly./

changed

> 
> - S2.2.3, last paragraph: s/not towards NREN/not destined towards NREN/

I don't like that whole paragraph. My proposal is:

 <t>In this setting, all destinations that can be reached 
 via the NREN are preferred in the rating of the university's 
 ALTO server.  In contrast, all traffic that is not
 routed via the NREN will be handled by the commercial upstream ISP
 and is in general less preferred due to the associated costs.
 Yet, there may be significant differences between various
 destinations reached via the ISP.
 Therefore, the ALTO server at the university may
 also include the guidance given by the ISP ALTO server
 in its replies to the ALTO clients. This is an example for
 cascaded ALTO servers.</t>

> 
> - S3.1.1, first paragraph: Insofar as you want to make a distinction
> on an NSP
>   and an ISP, the distinction should be that while NSPs provide network
>   connectivity and routing in the network they manage, they must
> depend on an
>   ISP to connect them to the Internet.  Thus, an ISP may be an NSP but the
>   reverse is not true.  I don't know whether you want to make this
> distinction
>   or not, but thought I'd point it out.

There are different definitons of NSP around.  Another common one would
be a "wholesale ISP" or what is usually called a Tier-1 carrier. 

Or something like the IT department of a company, which does not only
provide bare Internet Connectivity, but also, say, file storage on
"network drives", etc.

I think the best thing to do would be to go through the whole section
and replace all occurences of ISP and NSP by network operator.

> - S3.1.1, item 3: s/smaller link bandwidth/low link bandwidth/

lower ...  changed.

> 
> - S3.1.2, last paragraph: s/possible or even not be desirable/possible, or
>   even desirable/

I think this should read

it may not be possible or not even desirable to ...

> 
> - S3.1.3, last paragraph: s/ALTO is not/That said, it must be
> understood that
>   ALTO is not a general purpose/

changed.

> - S3.1.4, first paragraph: s/may have the desire/may seek to/

is "seek" not much more about actually doing something, as opposed to a
more subtle "desire" to do something, if there was anything that could
be done?

> 
>   Same paragraph: s/own//

changed.

>   Same paragraph: I would suggest rewriting the last sentence ("One reason
>   ... of the Internet") as follows:
>   One reason could be that the wireless network or the mobile hosts are not
>   engineered for direct peer-to-peer communications between mobile
> hosts, and
>   therefore, it makes sense for peers to fetch content from remote peers in
>   other parts of the Internet.

 One reason could be that the wireless network or the mobile hosts 
 were not designed for direct peer-to-peer communications between
 mobile hosts, and therefore, it makes sense for peers to fetch 
 content from remote peers in other parts of the Internet.  </t>

> - S3.1.4, last paragraph: s/it may require that the ALTO server can
>   distinguish/it may require the ALTO server to distinguish/

changed

> 
>   Same sentence: s/, e.g.,//

changed

> 
> - S3.1.5, first paragraph: s/, e.g.,//

why? "exposing network performance information" is only one thing 
an alto server can do.

> 
> - S3.2.1, first paragraph: s/ALTO, such as network and cost maps./ALTO to
>   create network and cost maps./

why make from the "such as" example the only result?

> - S3.2.1, last paragrah: s/abstracted view/abstract view/

changed.

> 
> - S3.2.2, first paragraph: s/abstracted view/abstract view/

changed.
> 
> - S3.2.2, first paragraph: s/present endpoints/endpoints/

s/present endpoints/existing endpoints/

> 
> - S3.2.2, below Figure 8, second bullet item: s/link state/link-state/
>   (for consistency with how it is written in the preceeding text).

changed

> 
> - S3.2.4, second paragraph: s/interpreted, e.g., whether/interpreted, i.e.,
>   whether/

changed

> 
> - S3.2.4, first bullet under "Distance-related rating criteria:"
>   s/values, and the ALTO client will not be informed about the
> nature of the
>   information./values.

why?

this sentence has two aspects:
- the server is free to chose how to compute the values, and
- the server does not even have to tell the client how he did it

both are important

> 
>   Next sentence: s/this kind of information/topological distances/

One way to determine relative topological distance may be counting AS hops,
but ...

> - S3.2.4, last bullet of the section: s/bandwidth, e.g., of
> cable/bandwidth of
>   cable/

changed

> 
> - S3.3.3, second paragraph: s/a larger number/a large number/
changed

> 
> - S3.5.1, paragraph 3, right above Figure 9: s/define: C1<C2/define C1<C2/
changed

> 
> - S3.5.3, first paragraph: The key point here is that the cellular wireless
>   bandwidth is a constrained resource, normal wireless (IEEE 802.11)
> is not as
>   much constrained as the cellular data network.  My suggestion would be to
>   simply s/wireless bandwidth/cellular wireless bandwidth/

not sure why we need the distinction between 802.11 and cellular here.
both are less preferred than wireline.

we could do a four-tier example:
    preference(true wireline clients) >
    preference(wifi clients behind access points hooked up to the wireline
        internet access by the paying customers) >
    preference(wifi clients at access points operated by the ISP) >
    preference(cellular clients)

but this goes way beyond what we need.

> 
> - S3.5.3, Figure 13: For the sake of completeness and symmetry, you should
>   specify the costs for the links that joins (PID 3, PID 1), as well as the
>   text that makes it costly for peers in PID 3 to get content from
> PID 1, but
>   not as costly to get content from PID 2.

Who contributed this example?  Hans?  Can you do that?

> 
> - S3.6.1, paragraph right above Figure 15: s/boundaries.  It is
>   running/boundaries; it is running/

changed.

> 
> - S3.6.1, Figure 15: What would be good is if the link weights in
> this figure
>   were also reflected in Figure 14.  That way, later on when one is
>   interpreting the hopcount cost map (Figure 20), it is easy to see
> that the
>   path weight between R1->R3->R4->R9 is 40.

Who contributed this example?  Hans?  Can you do that?

> 
> - S3.6.4, third paragraph: s/certain pair the corresponding field/certain
>   pair, the corresponding field/

changed

> 
> - S3.6.4, last paragraph: s/"default" PID is sort of virtual
> PID/"default" PID
>   is, in a sense, a virtual PID/

changed

> 
> - S4.1.1, first paragraph: s/in the application/of the user/
>   (Rationale: QoE is a subjective metric, an application is not a sentient
>   thing that can measure QoE.  A human user is.)

I'd prefer to keep it as it is.

it is after "improve performance or Quality of Experience"

"in the application" may refer to "performance or Quality of Experience" 
(the first one not being something "of the user"),
or to "improve" (as the process of improving takes part in
the application layer, e.g. re-shaping the overlay, as opposed to asking
for more ressources from underlying layers).

>   Same paragraph: s/is assumed to be the/is an/

It was an assumption at that time, and probably still is. 

> - S4.1.1, second paragraph: s/without or with/with or without/

changed

> 
> - S4.1.1, last paragraph: s/usually only/only/

changed
> 
>   Same paragraph: s/is supposed to yield/should yield/

changed
> 
> - S4.1.2, first paragraph: s/outside the networks of the
> ISPs/external to the
>   ISPs/

changed
> 
> - S4.1.2, third paragraph: s/BitTorent/BitTorrent/

changed
> 
> - S4.1.2, discussion under Figure 22: The key point here is that the ALTO
>   client embedded in the tracker sends only local peers to the
> querying peer.
>   The ALTO client figures out who these local peers are by discovering and
>   communicating with the ALTO server responsible for the querying peer.
> 
>   This needs to be stated more explicitly, otherwise the message is lost to
>   someone who is not a practitioner in this field.  I would suggest
> re-writing
>   the paragraph under Figure 22 as follows:
> 
>   An alternative deployment scenario for a tracker-based system is
> depicted in
>   Figure 22.  When the tracker receives a request from a querying peer, it
>   first discovers the ALTO server responsible for the querying peer.  This
>   discovery can be done using [RFC7286] [I-D.kiesel-alto-xdom-disc].
> The ALTO
>   client subsequently sends to the querying peer only those peers that are
>   preferred by the ALTO server responsible for the querying peer.
> The peers
>   do not query the ALTO servers themselves.  This gives the peers a better
>   initial selection of candidates, but does not consider peers
> learned through
>   direct peer-to-peer knowledge exchange.

changed.

> 
> - S4.1.2, paragraph under Figure 23: s/server, other than/server other than/

changed.
> 
>   Same paragraph: s/by talking to the ISP's tracker./by talking to
> the ISP's
>   tracker, which in turn communicates with the ALTO server using the ALTO
>   protocol./

changed.

The next sentence does not make sense to me.

        However, the
        peers would have still chance the contact other trackers,
        deployed by entities other than the peer's ISP.</t>

Maybe

        It should be noted that the peers are still allowed 
        to contact other trackers operated by entities other than the 
        peer's ISP, but in this case they cannot benefit from ALTO
        guidance.</t>

> 
> - S7.1, second paragraph: s/is not always clear/may not be apparent/

changed.
> 
> - S7.4, in the "Sorting" paragraph: s/change to sorting/change the sorting/

changed.
> 
>   Same section: You should finish the section by stating that: "Faking ALTO
>   guidance, while a real possibility, can be mitigated by using an
>   authenticated and encrypted transport between the server and the
> requesting
>   peer.  In terms of the ALTO protocol, the https:// scheme provides
> such an
>   encrypted and authenticated stream."

I combined that with the sentence we already had:

 <t>The ALTO protocol protects the authenticity and integrity 
 of ALTO information while in transit
 by leveraging the authenticity and integrity protection mechanisms 
 in TLS (see Section 8.3.5 of <xref target="RFC7285"/>).
 It has not yet been investigated how wrong ALTO
 guidance given by an autheticated ALTO server can impact the operation
 of the network and the applications.</t>

> - S9: s/discusses/has enumerated and discussed/

changed.

but: do we need a "Conclusion" section at all? It seems less common to RFCs.

> <End of review>

Thanks!

Sebastian

< draft-ietf-alto-deployments-14.txt   draft-ietf-alto-deployments.txt >skipping to change at page 1, line 49 ¶ skipping to change at page 1, line 49 ¶skipping to change at page 2, line 29 ¶ skipping to change at page 2, line 29 ¶skipping to change at page 6, line 9 ¶ skipping to change at page 6, line 6 ¶skipping to change at page 8, line 51 ¶ skipping to change at page 9, line 41 ¶skipping to change at page 10, line 33 ¶ skipping to change at page 11, line 26 ¶skipping to change at page 11, line 16 ¶ skipping to change at page 12, line 11 ¶skipping to change at page 12, line 28 ¶ skipping to change at page 13, line 21 ¶skipping to change at page 13, line 39 ¶ skipping to change at page 14, line 39 ¶skipping to change at page 14, line 48 ¶ skipping to change at page 15, line 48 ¶skipping to change at page 16, line 32 ¶ skipping to change at page 17, line 32 ¶skipping to change at page 17, line 35 ¶ skipping to change at page 18, line 35 ¶skipping to change at page 18, line 35 ¶ skipping to change at page 19, line 35 ¶skipping to change at page 19, line 41 ¶ skipping to change at page 20, line 41 ¶skipping to change at page 21, line 50 ¶ skipping to change at page 22, line 50 ¶skipping to change at page 24, line 17 ¶ skipping to change at page 25, line 17 ¶skipping to change at page 25, line 10 ¶ skipping to change at page 26, line 10 ¶skipping to change at page 27, line 40 ¶ skipping to change at page 28, line 40 ¶skipping to change at page 31, line 17 ¶ skipping to change at page 32, line 17 ¶skipping to change at page 35, line 36 ¶ skipping to change at page 36, line 36 ¶skipping to change at page 42, line 50 ¶ skipping to change at page 43, line 50 ¶skipping to change at page 48, line 31 ¶ skipping to change at page 49, line 31 ¶skipping to change at page 49, line 22 ¶ skipping to change at page 50, line 22 ¶skipping to change at page 52, line 22 ¶ skipping to change at page 53, line 22 ¶skipping to change at page 53, line 35 ¶ skipping to change at page 54, line 35 ¶skipping to change at page 54, line 35 ¶ skipping to change at page 55, line 35 ¶skipping to change at page 55, line 33 ¶ skipping to change at page 56, line 33 ¶skipping to change at page 69, line 29 ¶ skipping to change at page 70, line 29 ¶skipping to change at page 72, line 29 ¶ skipping to change at page 73, line 29 ¶ End of changes. 45 change blocks. 201 lines changed or deleted 226 lines changed or added
ALTO M. Stiemerling ALTO M. Stiemerling
Internet-Draft NEC Europe Ltd. Internet-Draft NEC Europe Ltd.
Intended status: Informational S. Kiesel Intended status: Informational S. Kiesel
Expires: October 20, 2016 University of Stuttgart Expires: November 10, 2016 University of Stuttgart
M. Scharf M. Scharf
Nokia Nokia
H. Seidel H. Seidel
BENOCS BENOCS
S. Previdi S. Previdi
Cisco Cisco
April 18, 2016 May 9, 2016
ALTO Deployment Considerations ALTO Deployment Considerations
draft-ietf-alto-deployments-14 draft-ietf-alto-deployments-15
Abstract Abstract
Many Internet applications are used to access resources such as Many Internet applications are used to access resources such as
pieces of information or server processes that are available in pieces of information or server processes that are available in
several equivalent replicas on different hosts. This includes, but several equivalent replicas on different hosts. This includes, but
is not limited to, peer-to-peer file sharing applications. The goal is not limited to, peer-to-peer file sharing applications. The goal
of Application-Layer Traffic Optimization (ALTO) is to provide of Application-Layer Traffic Optimization (ALTO) is to provide
guidance to applications that have to select one or several hosts guidance to applications that have to select one or several hosts
from a set of candidates, which are able to provide a desired from a set of candidates, which are able to provide a desired
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 20, 2016. This Internet-Draft will expire on November 10, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. General Considerations . . . . . . . . . . . . . . . . . . . . 5 2. General Considerations . . . . . . . . . . . . . . . . . . . . 5
2.1. ALTO Entities . . . . . . . . . . . . . . . . . . . . . . 5 2.1. ALTO Entities . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1. Baseline Scenario . . . . . . . . . . . . . . . . . . 5 2.1.1. Baseline Scenario . . . . . . . . . . . . . . . . . . 5
2.1.2. Placement of ALTO Entities . . . . . . . . . . . . . . 6 2.1.2. Placement of ALTO Entities . . . . . . . . . . . . . . 6
2.2. Classification of Deployment Scenarios . . . . . . . . . . 8 2.2. Classification of Deployment Scenarios . . . . . . . . . . 8
2.2.1. Roles in ALTO Deployments . . . . . . . . . . . . . . 8 2.2.1. Roles in ALTO Deployments . . . . . . . . . . . . . . 8
2.2.2. Information Exposure . . . . . . . . . . . . . . . . . 10 2.2.2. Information Exposure . . . . . . . . . . . . . . . . . 11
2.2.3. More Advanced Deployments . . . . . . . . . . . . . . 11 2.2.3. More Advanced Deployments . . . . . . . . . . . . . . 12
3. Deployment Considerations by ISPs . . . . . . . . . . . . . . 14 3. Deployment Considerations by ISPs . . . . . . . . . . . . . . 15
3.1. Objectives for the Guidance to Applications . . . . . . . 14 3.1. Objectives for the Guidance to Applications . . . . . . . 15
3.1.1. General Objectives for Traffic Optimization . . . . . 14 3.1.1. General Objectives for Traffic Optimization . . . . . 15
3.1.2. Inter-Network Traffic Localization . . . . . . . . . . 15 3.1.2. Inter-Network Traffic Localization . . . . . . . . . . 16
3.1.3. Intra-Network Traffic Localization . . . . . . . . . . 16 3.1.3. Intra-Network Traffic Localization . . . . . . . . . . 17
3.1.4. Network Off-Loading . . . . . . . . . . . . . . . . . 17 3.1.4. Network Off-Loading . . . . . . . . . . . . . . . . . 18
3.1.5. Application Tuning . . . . . . . . . . . . . . . . . . 18 3.1.5. Application Tuning . . . . . . . . . . . . . . . . . . 19
3.2. Provisioning of ALTO Topology Data . . . . . . . . . . . . 19 3.2. Provisioning of ALTO Topology Data . . . . . . . . . . . . 20
3.2.1. High-Level Process and Requirements . . . . . . . . . 19 3.2.1. High-Level Process and Requirements . . . . . . . . . 20
3.2.2. Data Collection from Data Sources . . . . . . . . . . 20 3.2.2. Data Collection from Data Sources . . . . . . . . . . 21
3.2.3. Partitioning and Grouping of IP Address Ranges . . . . 23 3.2.3. Partitioning and Grouping of IP Address Ranges . . . . 24
3.2.4. Rating Criteria and/or Cost Calculation . . . . . . . 24 3.2.4. Rating Criteria and/or Cost Calculation . . . . . . . 25
3.3. ALTO Focus and Scope . . . . . . . . . . . . . . . . . . . 27 3.3. ALTO Focus and Scope . . . . . . . . . . . . . . . . . . . 28
3.3.1. Limitations of Using ALTO Beyond Design Assumptions . 28 3.3.1. Limitations of Using ALTO Beyond Design Assumptions . 29
3.3.2. Limitations of Map-based Services and Potential 3.3.2. Limitations of Map-based Services and Potential
Solutions . . . . . . . . . . . . . . . . . . . . . . 29 Solutions . . . . . . . . . . . . . . . . . . . . . . 30
3.3.3. Limitations of Non-Map-based Services and 3.3.3. Limitations of Non-Map-based Services and
Potential Solutions . . . . . . . . . . . . . . . . . 31 Potential Solutions . . . . . . . . . . . . . . . . . 32
3.4. Monitoring ALTO . . . . . . . . . . . . . . . . . . . . . 31 3.4. Monitoring ALTO . . . . . . . . . . . . . . . . . . . . . 32
3.4.1. Impact and Observation on Network Operation . . . . . 31 3.4.1. Impact and Observation on Network Operation . . . . . 32
3.4.2. Measurement of the Impact . . . . . . . . . . . . . . 32 3.4.2. Measurement of the Impact . . . . . . . . . . . . . . 33
3.4.3. System and Service Performance . . . . . . . . . . . . 33 3.4.3. System and Service Performance . . . . . . . . . . . . 34
3.4.4. Monitoring Infrastructures . . . . . . . . . . . . . . 34 3.4.4. Monitoring Infrastructures . . . . . . . . . . . . . . 35
3.5. Abstract Map Examples for Different Types of ISPs . . . . 35 3.5. Abstract Map Examples for Different Types of ISPs . . . . 36
3.5.1. Small ISP with Single Internet Uplink . . . . . . . . 35 3.5.1. Small ISP with Single Internet Uplink . . . . . . . . 36
3.5.2. ISP with Several Fixed Access Networks . . . . . . . . 38 3.5.2. ISP with Several Fixed Access Networks . . . . . . . . 39
3.5.3. ISP with Fixed and Mobile Network . . . . . . . . . . 39 3.5.3. ISP with Fixed and Mobile Network . . . . . . . . . . 40
3.6. Comprehensive Example for Map Calculation . . . . . . . . 40 3.6. Comprehensive Example for Map Calculation . . . . . . . . 41
3.6.1. Example Network . . . . . . . . . . . . . . . . . . . 41 3.6.1. Example Network . . . . . . . . . . . . . . . . . . . 42
3.6.2. Potential Input Data Processing and Storage . . . . . 43 3.6.2. Potential Input Data Processing and Storage . . . . . 44
3.6.3. Calculation of Network Map from the Input Data . . . . 46 3.6.3. Calculation of Network Map from the Input Data . . . . 47
3.6.4. Calculation of Cost Map . . . . . . . . . . . . . . . 47 3.6.4. Calculation of Cost Map . . . . . . . . . . . . . . . 48
3.7. Deployment Experiences . . . . . . . . . . . . . . . . . . 49 3.7. Deployment Experiences . . . . . . . . . . . . . . . . . . 50
4. Using ALTO for P2P Traffic Optimization . . . . . . . . . . . 52 4. Using ALTO for P2P Traffic Optimization . . . . . . . . . . . 53
4.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.1.1. Usage Scenario . . . . . . . . . . . . . . . . . . . . 52 4.1.1. Usage Scenario . . . . . . . . . . . . . . . . . . . . 53
4.1.2. Applicability of ALTO . . . . . . . . . . . . . . . . 52 4.1.2. Applicability of ALTO . . . . . . . . . . . . . . . . 53
4.2. Deployment Recommendations . . . . . . . . . . . . . . . . 55 4.2. Deployment Recommendations . . . . . . . . . . . . . . . . 56
4.2.1. ALTO Services . . . . . . . . . . . . . . . . . . . . 55 4.2.1. ALTO Services . . . . . . . . . . . . . . . . . . . . 56
4.2.2. Guidance Considerations . . . . . . . . . . . . . . . 56 4.2.2. Guidance Considerations . . . . . . . . . . . . . . . 57
5. Using ALTO for CDNs . . . . . . . . . . . . . . . . . . . . . 59 5. Using ALTO for CDNs . . . . . . . . . . . . . . . . . . . . . 60
5.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.1.1. Usage Scenario . . . . . . . . . . . . . . . . . . . . 59 5.1.1. Usage Scenario . . . . . . . . . . . . . . . . . . . . 60
5.1.2. Applicability of ALTO . . . . . . . . . . . . . . . . 61 5.1.2. Applicability of ALTO . . . . . . . . . . . . . . . . 62
5.2. Deployment Recommendations . . . . . . . . . . . . . . . . 62 5.2. Deployment Recommendations . . . . . . . . . . . . . . . . 63
5.2.1. ALTO Services . . . . . . . . . . . . . . . . . . . . 62 5.2.1. ALTO Services . . . . . . . . . . . . . . . . . . . . 63
5.2.2. Guidance Considerations . . . . . . . . . . . . . . . 63 5.2.2. Guidance Considerations . . . . . . . . . . . . . . . 64
6. Other Use Cases . . . . . . . . . . . . . . . . . . . . . . . 65 6. Other Use Cases . . . . . . . . . . . . . . . . . . . . . . . 66
6.1. Application Guidance in Virtual Private Networks (VPNs) . 65 6.1. Application Guidance in Virtual Private Networks (VPNs) . 66
6.2. In-Network Caching . . . . . . . . . . . . . . . . . . . . 67 6.2. In-Network Caching . . . . . . . . . . . . . . . . . . . . 68
6.3. Other Application-based Network Operations . . . . . . . . 68 6.3. Other Application-based Network Operations . . . . . . . . 69
7. Security Considerations . . . . . . . . . . . . . . . . . . . 69 7. Security Considerations . . . . . . . . . . . . . . . . . . . 70
7.1. ALTO as a Protocol Crossing Trust Boundaries . . . . . . . 69 7.1. ALTO as a Protocol Crossing Trust Boundaries . . . . . . . 70
7.2. Information Leakage from the ALTO Server . . . . . . . . . 70 7.2. Information Leakage from the ALTO Server . . . . . . . . . 71
7.3. ALTO Server Access . . . . . . . . . . . . . . . . . . . . 71 7.3. ALTO Server Access . . . . . . . . . . . . . . . . . . . . 72
7.4. Faking ALTO Guidance . . . . . . . . . . . . . . . . . . . 72 7.4. Faking ALTO Guidance . . . . . . . . . . . . . . . . . . . 73
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 74 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 75
9. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 75 9. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 76
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 76 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 77
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 77 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 78
11.1. Normative References . . . . . . . . . . . . . . . . . . . 77 11.1. Normative References . . . . . . . . . . . . . . . . . . . 78
11.2. Informative References . . . . . . . . . . . . . . . . . . 77 11.2. Informative References . . . . . . . . . . . . . . . . . . 78
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 82
1. Introduction 1. Introduction
Many Internet applications are used to access resources such as Many Internet applications are used to access resources such as
pieces of information or server processes that are available in pieces of information or server processes that are available in
several equivalent replicas on different hosts. This includes, but several equivalent replicas on different hosts. This includes, but
is not limited to, peer-to-peer (P2P) file sharing applications and is not limited to, peer-to-peer (P2P) file sharing applications and
Content Delivery Networks (CDNs). The goal of Application-Layer Content Delivery Networks (CDNs). The goal of Application-Layer
Traffic Optimization (ALTO) is to provide guidance to applications Traffic Optimization (ALTO) is to provide guidance to applications
that have to select one or several hosts from a set of candidates, that have to select one or several hosts from a set of candidates,
which are able to provide a desired resource. The basic ideas and which are able to provide a desired resource. The basic ideas and
problem space of ALTO is described in [RFC5693] and the set of problem space of ALTO is described in [RFC5693] and the set of
requirements is discussed in [RFC6708]. The ALTO protocol is requirements is discussed in [RFC6708]. The ALTO protocol is
specified in [RFC7285]. An ALTO server discovery procedure is specified in [RFC7285]. An ALTO server discovery procedure is
defined in [RFC7286]. defined in [RFC7286].
This document discusses use cases and operational issues that can be This document discusses use cases and operational issues that can be
expected when ALTO gets deployed. This includes, but is not limited expected when ALTO gets deployed. This includes, but is not limited
to, location of the ALTO server, imposed load to the ALTO server, and to, location of the ALTO server, imposed load to the ALTO server, and
from whom the queries are performed. This document provides guidance who initiaties the queries. This document provides guidance on which
on which ALTO services to use, and it summarizes known challenges as ALTO services to use, and it summarizes known challenges as well as
well as deployment experiences, including potential processes to deployment experiences, including potential processes to generate
generate ALTO network and cost maps. It thereby complements the ALTO network and cost maps. It thereby complements the management
management considerations in the protocol specification [RFC7285], considerations in the protocol specification [RFC7285], which are
which are independent of any specific use of ALTO. independent of any specific use of ALTO.
2. General Considerations 2. General Considerations
2.1. ALTO Entities 2.1. ALTO Entities
2.1.1. Baseline Scenario 2.1.1. Baseline Scenario
The ALTO protocol [RFC7285] is a client/server protocol, operating The ALTO protocol [RFC7285] is a client/server protocol, operating
between a number of ALTO clients and an ALTO server, as sketched in between a number of ALTO clients and an ALTO server, as sketched in
Figure 1. In the following, the baseline deployment scenario for Figure 1. Below, the baseline deployment scenario for ALTO entities
ALTO entities is first reviewed independently of the actual use case. is first reviewed independently of the actual use case. Specific
Specific examples are then discussed in the remainder of this examples are then discussed in the remainder of this document.
document.
+----------+ +----------+
| ALTO | | ALTO |
| Server | | Server |
+----------+ +----------+
^ ^
_.-----|------. _.-----|------.
,-'' | `--. ,-'' | `--.
,' | `. ,' | `.
( Network | ) ( Network | )
performance or quality of experience, while improving resource performance or quality of experience, while improving resource
consumption in the underlying network infrastructure. consumption in the underlying network infrastructure.
o ALTO Server: A logical entity that provides interfaces to the o ALTO Server: A logical entity that provides interfaces to the
queries to the ALTO service. queries to the ALTO service.
o ALTO Client: The logical entity that sends ALTO queries. o ALTO Client: The logical entity that sends ALTO queries.
Depending on the architecture of the application, one may embed it Depending on the architecture of the application, one may embed it
in the resource consumer and/or in the resource directory. in the resource consumer and/or in the resource directory.
According to that definition, both an ALTO server and an ALTO client This document uses the term "Resource Directory" as defined in
are logical entities. An ALTO service may be offered by more than [RFC5693], i.e., to denote an entity that is logically separate from
one ALTO servers. In ALTO deployments, the functionality of an ALTO the resource consumer and that assists the resource consumer to
server can therefore be realized by several server instances, e.g., identify a set of resource providers (e.g., a tracker in a peer-to-
by using load balancing between different physical servers. The term peer application). This term and its meaning is not to be confused
ALTO server should not be confused with use of a single physical with the "Information Resource Directory (IRD)" defined as a part of
server. the ALTO protocol [RFC7285], i.e., a list of available information
resources offered by a specific ALTO service and the URIs at which
each can be accessed. For the remainder of this document, the term
Resource Directory is to be interpreted as defined in [RFC5693].
According to these definitions, both an ALTO server and an ALTO
client are logical entities. A particular ALTO service may be
offered by more than one ALTO server. In ALTO deployments, the
functionality of an ALTO server can therefore be realized by several
server instances, e.g., by using load balancing between different
physical servers. The term ALTO server should not be confused with
use of a single physical server.
2.1.2. Placement of ALTO Entities 2.1.2. Placement of ALTO Entities
The ALTO server and ALTO clients can be situated at various entities The ALTO server and ALTO clients may be situated at various places in
in a network deployment. The first differentiation is whether the a network topology. An importent differentiation is whether the ALTO
ALTO client is located on the actual host that runs the application, client is located on the host that is the endpoint of the data
as shown in Figure 2, or if the ALTO client is located on a resource transmissions to be optimized with ALTO (see Figure 2), or whether
directory, as shown in Figure 3. the ALTO client is located on a resource directory, which assists
peers or clients in finding other peers or servers, respectively, but
does not directly take part in the data transmission (see Figure 3).
+--------------+ +--------------+
| App | | App |
+-----------+ | +-----------+ |
===>|ALTO Client| |**** ===>|ALTO Client| |****
=== +-----------+--+ * === +-----------+--+ *
=== * * === * *
=== * * === * *
+-------+ +-------+<=== +--------------+ * +-------+ +-------+<=== +--------------+ *
| | | | | App | * | | | | | App | *
As explained in [RFC5693], from this follows that at least three As explained in [RFC5693], from this follows that at least three
different kinds of entities can operate an ALTO server: different kinds of entities can operate an ALTO server:
1. Network operators. Network Service Providers (NSPs) such as 1. Network operators. Network Service Providers (NSPs) such as
Internet Service Providers (ISPs) may have detailed knowledge of Internet Service Providers (ISPs) may have detailed knowledge of
their network topology and policies. In this case, the source of their network topology and policies. In this case, the source of
the topology information and the provider of the ALTO server may the topology information and the provider of the ALTO server may
be part of the same organization. be part of the same organization.
2. Third parties. Topology information could also be collected by 2. Third parties. Topology information could also be collected by
entities separate from network operators but that may either have companies or organizations that are distinct from the network
collected network information or have arrangements with network operators, yet have arranged certain legal agreements with one or
operators to learn the network information. Examples of such more network operators, regarding access to their topology
entities could be Content Delivery Network (CDN) operators or information and/or doing measurements in their networks.
companies specialized on offering ALTO services on behalf of Examples of such entities could be Content Delivery Network (CDN)
ISPs. operators or companies specialized on offering ALTO services on
behalf of ISPs.
3. User communities. User communities could run distributed 3. User communities. User communities could run distributed
measurements for estimating the topology of the Internet. In measurements for estimating the topology of the Internet. In
this case the topology information may not originate from ISP this case the topology information may not originate from ISP
data. data.
Regarding the interaction between ALTO server and client, ALTO Regarding the interaction between ALTO server and client, ALTO
deployments can be differentiated according to the following aspects: deployments can be differentiated according to the following aspects:
1. Applicable trust model: The deployment of ALTO can differ 1. Applicable trust model: The deployment of ALTO can differ
depending on whether ALTO client and ALTO server are operated depending on whether ALTO client and ALTO server are operated
within the same organization and/or network, or not. This within the same organization and/or network, or not. This
affects a lot of constraints, because the trust model is very affects a number of constraints, because the trust model is very
different. For instance, as discussed later in this memo, the different. For instance, as discussed later in this memo, the
level-of-detail of maps can depend on who the involved parties level-of-detail of maps can depend on who the involved parties
actually are. actually are.
2. Composition of the user group: The main use case of ALTO is to 2. Composition of the user group: The main use case of ALTO is to
provide guidance to any Internet application. However, an provide guidance to any Internet application. However, an
operator of an ALTO server could also decide to offer guidance operator of an ALTO server could also decide to offer guidance
only to a set of well-known ALTO clients, e. g., after only to a set of well-known ALTO clients, e. g., after
authentication and authorization. In the peer-to-peer authentication and authorization. In the peer-to-peer
application use case, this could imply that only selected application use case, this could imply that only selected
any internal operational data, such as the IP addresses of any internal operational data, such as the IP addresses of
candidate resource providers. The ALTO protocol supports this candidate resource providers. The ALTO protocol supports this
mode of operation by the Network and Cost Map Service. mode of operation by the Network and Cost Map Service.
2. The ALTO server provides a query interface that returns costs or 2. The ALTO server provides a query interface that returns costs or
rankings for explicitly specified endpoints. This means that the rankings for explicitly specified endpoints. This means that the
query of the ALTO client has to include additional information query of the ALTO client has to include additional information
(e.g., a list of IP addresses). The server then calculates and (e.g., a list of IP addresses). The server then calculates and
returns costs or rankings for the endpoints specified in the returns costs or rankings for the endpoints specified in the
request (e.g., a sorted list of the IP addresses). In ALTO, this request (e.g., a sorted list of the IP addresses). In ALTO, this
method can be realized by the Endpoint Cost Service. approach can be realized by the Endpoint Cost Service and other
related services.
Both approaches have different privacy implications for the server Both approaches have different privacy implications for the server
and client: and client:
For the client, approach 1 has the advantage that all operational For the client, approach 1 has the advantage that all operational
information stays within the client and is not revealed to the information stays within the client and is not revealed to the
provider of the server. However, this service implies that a network provider of the server. However, this service implies that a network
operator providing an ALTO server has to expose a certain amount of operator providing an ALTO server has to expose a certain amount of
information about its network structure (e.g., IP prefixes or information about its network structure (e.g., IP prefixes or
topology information in general). topology information in general).
As a result, both approaches have their pros and cons, as further As a result, both approaches have their pros and cons, as further
detailed in Section 3.3. detailed in Section 3.3.
2.2.3. More Advanced Deployments 2.2.3. More Advanced Deployments
From an ALTO client's perspective, there are different ways to use From an ALTO client's perspective, there are different ways to use
ALTO: ALTO:
1. Single service instance with single metric guidance: An ALTO 1. Single service instance with single metric guidance: An ALTO
client only obtains guidance regarding a single metric from a client only obtains guidance regarding a single metric (e.g.,
single ALTO service, e.g., an ALTO server that is offered by the "routingcost") from a single ALTO service, e.g., an ALTO server
network service provider of the corresponding access network. that is offered by the network service provider of the
Corresponding ALTO server instances can be discovered e.g. by corresponding access network. Corresponding ALTO server
ALTO server discovery [RFC7286] [I-D.kiesel-alto-xdom-disc]. instances can be discovered e.g. by ALTO server discovery
Being a REST-ful protocol, an ALTO service can use known methods [RFC7286] [I-D.kiesel-alto-xdom-disc]. Since the ALTO protocol
to balance the load between different server instances or between is an HTTP-based, REST-ful protocol, the operator of an ALTO may
clusters of servers, i.e., an ALTO server can be realized by many use well-known techniques for serving large web sites, such as
instances with a load balancing scheme. The ALTO protocol also load balancers, in order to serve a large number of ALTO queries.
supports the use of different URIs for different ALTO features. The ALTO protocol also supports the use of different URIs for
different ALTO features and thereby the distribution of the
service onto several servers.
2. Single service instance with multiple metric guidance: An ALTO 2. Single service instance with multiple metric guidance: An ALTO
client could also query an ALTO service for different kinds of client could also query an ALTO service for different kinds of
information, e.g., cost maps with different metrics. The ALTO information, e.g., cost maps with different metrics. The ALTO
protocol is extensible and permits such operation. However, ALTO protocol is extensible and permits such operation. However, ALTO
does not define how a client shall deal with different forms of does not define how a client shall deal with different forms of
guidance, and it is up to the client to determine what provided guidance, and it is up to the client to interpret the received
information may indeed be useful. information accordingly.
3. Multiple service instances: An ALTO client can also decide to 3. Multiple service instances: An ALTO client can also decide to
access multiple ALTO servers providing guidance, possibly from access multiple ALTO servers providing guidance, possibly from
different operators or organizations. Each of these services may different operators or organizations. Each of these services may
only offer partial guidance, e.g., for a certain network only offer partial guidance, e.g., for a certain network
partition. In that case, it may be difficult for an ALTO client partition. In that case, it may be difficult for an ALTO client
to compare the guidance from different services. Different to compare the guidance from different services. Different
organization may use different methods to determine maps, and organization may use different methods to determine maps, and
they may also have different (possibly even contradicting or they may also have different (possibly even contradicting or
competing) guidance objectives. How to discover multiple ALTO competing) guidance objectives. How to discover multiple ALTO
independently, irrespectively of other ISPs. This may be true for independently, irrespectively of other ISPs. This may be true for
most envisioned deployments of ALTO but there may be certain most envisioned deployments of ALTO but there may be certain
deployments that may have different settings. Figure 4 shows such deployments that may have different settings. Figure 4 shows such
setting with a university network that is connected to two upstream setting with a university network that is connected to two upstream
providers. NREN is a National Research and Education Network, which providers. NREN is a National Research and Education Network, which
provides cheap high-speed connectivity to specific destinations, provides cheap high-speed connectivity to specific destinations,
e.g., other universities. ISP is a commercial upstream provider from e.g., other universities. ISP is a commercial upstream provider from
which the university buys connectivity to all destinations that which the university buys connectivity to all destinations that
cannot be reached via the NREN. The university, as well as ISP, are cannot be reached via the NREN. The university, as well as ISP, are
operating their own ALTO server. The ALTO clients, located on the operating their own ALTO server. The ALTO clients, located on the
peers will contact the ALTO server located at the university. peers in the university network will contact the ALTO server located
at the university.
+-----------+ +-----------+
| ISP | | ISP |
| ALTO |<==========================++ | ALTO |<==========================++
| Server | || | Server | ||
+-----------+ || +-----------+ ||
,-------. ,------. || ,-------. ,------. ||
,-' `-. ,-' `-. || ,-' `-. ,-' `-. ||
/ Commercial \ / \ || / Commercial \ / \ ||
( Upstream ) ( NREN ) || ( Upstream ) ( NREN ) ||
+----------+ +----------+ || +----------+ +----------+ ||
/\ || /\ ||
|| || || ||
++======================================++ ++======================================++
Legend: Legend:
=== ALTO protocol === ALTO protocol
Figure 4: Example of a cascaded ALTO server Figure 4: Example of a cascaded ALTO server
In this setting all "destinations" useful for the peers within NREN In this setting, all destinations that can be reached via the NREN
are free-of-charge for the peers located in the university network are preferred in the rating of the university's ALTO server. In
(i.e., they are preferred in the rating of the ALTO server). contrast, all traffic that is not routed via the NREN will be handled
However, all traffic that is not towards NREN will be handled by the by the commercial upstream ISP and is in general less preferred due
ISP upstream provider. Therefore, the ALTO server at the university to the associated costs. Yet, there may be significant differences
may also include the guidance given by the ISP ALTO server in its between various destinations reached via the ISP. Therefore, the
replies to the ALTO clients. This is an example for cascaded ALTO ALTO server at the university may also include the guidance given by
servers. the ISP ALTO server in its replies to the ALTO clients. This is an
example for cascaded ALTO servers.
3. Deployment Considerations by ISPs 3. Deployment Considerations by ISPs
3.1. Objectives for the Guidance to Applications 3.1. Objectives for the Guidance to Applications
3.1.1. General Objectives for Traffic Optimization 3.1.1. General Objectives for Traffic Optimization
The Internet consists of many networks. The networks are operated by The Internet consists of many networks. The networks are operated by
Network Service Providers (NSP) or Internet Service Providers (ISP), Network Service Providers (NSP) or Internet Service Providers (ISP),
which also include e.g. universities, enterprises, or other which also include e.g. universities, enterprises, or other
2. Intra-network traffic localization: In case of large ISPs, the 2. Intra-network traffic localization: In case of large ISPs, the
network may be grouped into several networks, domains, or network may be grouped into several networks, domains, or
Autonomous Systems (ASs). The core network includes one or Autonomous Systems (ASs). The core network includes one or
several backbone networks, which are connected to multiple several backbone networks, which are connected to multiple
aggregation, metro, and access networks. If traffic can be aggregation, metro, and access networks. If traffic can be
limited to certain areas such as access networks, this decreases limited to certain areas such as access networks, this decreases
the usage of backbone and thus helps to save resources and costs. the usage of backbone and thus helps to save resources and costs.
3. Network off-loading: Compared to fixed networks, mobile networks 3. Network off-loading: Compared to fixed networks, mobile networks
have some special characteristics, including smaller link have some special characteristics, including lower link
bandwidth, high cost, limited radio frequency resource, and bandwidth, high cost, limited radio frequency resource, and
limited terminal battery. In mobile networks, wireless links limited terminal battery. In mobile networks, wireless links
should be used efficiently. For example, in the case of a P2P should be used efficiently. For example, in the case of a P2P
service, it is likely that hosts should prefer retrieving data service, it is likely that hosts should prefer retrieving data
from hosts in fixed networks, and avoid retrieving data from from hosts in fixed networks, and avoid retrieving data from
mobile hosts. mobile hosts.
4. Application tuning: ALTO is also a tool to optimize the 4. Application tuning: ALTO is also a tool to optimize the
performance of applications that depend on the network and performance of applications that depend on the network and
perform resource provider selection decisions among network perform resource provider selection decisions among network
`-------' `-------'
Legend: Legend:
### preferred "connections" ### preferred "connections"
--- non-preferred "connections" --- non-preferred "connections"
Figure 5: Inter-network traffic localization Figure 5: Inter-network traffic localization
Examples for corresponding ALTO maps can be found in Section 3.5. Examples for corresponding ALTO maps can be found in Section 3.5.
Depending on the application characteristics, it may not be possible Depending on the application characteristics, it may not be possible
or even not be desirable to completely localize all traffic. or not even desirable to completely localize all traffic.
3.1.3. Intra-Network Traffic Localization 3.1.3. Intra-Network Traffic Localization
The previous section describes the results of the ALTO guidance on an The previous section describes the results of the ALTO guidance on an
inter-network level. In the same way, ALTO can also be used for inter-network level. In the same way, ALTO can also be used for
intra-network localization. In this case, ALTO provides guidance on intra-network localization. In this case, ALTO provides guidance on
which internal hosts are to be preferred inside a single network which internal hosts are to be preferred inside a single network
(e.g., one AS). This application-level traffic engineering can (e.g., one AS). This application-level traffic engineering can
reduce the capacity requirements in the core network of an ISP. reduce the capacity requirements in the core network of an ISP.
Figure 6 shows such a scenario where Host 1 and Host 2 are located in Figure 6 shows such a scenario where Host 1 and Host 2 are located in
### preferred "connections" ### preferred "connections"
--- non-preferred "connections" --- non-preferred "connections"
Figure 6: Intra-network traffic localization Figure 6: Intra-network traffic localization
The operator can guide the hosts in such a situation to try first The operator can guide the hosts in such a situation to try first
local hosts in the same network islands, avoiding or at least local hosts in the same network islands, avoiding or at least
lowering the effect on the bottleneck link, as shown in Figure 6. lowering the effect on the bottleneck link, as shown in Figure 6.
The objective is to avoid bottlenecks by optimized endpoint selection The objective is to avoid bottlenecks by optimized endpoint selection
at application level. ALTO is not a method to deal with the at application level. That said, it must be understood that ALTO is
congestion at the bottleneck. not a general purpose method to deal with the congestion at the
bottleneck.
3.1.4. Network Off-Loading 3.1.4. Network Off-Loading
Another scenario is off-loading traffic from networks. This use of Another scenario is off-loading traffic from networks. This use of
ALTO can be beneficial in particular in mobile networks. A network ALTO can be beneficial in particular in mobile networks. A network
operator may have the desire to guide hosts in its own mobile network operator may have the desire to guide hosts in its mobile network to
to use hosts outside this mobile network. One reason can be that the use hosts outside this mobile network. One reason could be that the
wireless network is not made for the load caused by, e.g., peer-to- wireless network or the mobile hosts were not designed for direct
peer applications, and it therefore makes sense when peers fetch peer-to-peer communications between mobile hosts, and therefore, it
their data from remote peers in other parts of the Internet. makes sense for peers to fetch content from remote peers in other
parts of the Internet.
,-------. +-----------+ ,-------. +-----------+
,---. ,-' `-. | Host 1 | ,---. ,-' `-. | Host 1 |
,-' `-. / ISP 1 +-------|ALTO Client| ,-' `-. / ISP 1 +-------|ALTO Client|
/ \ / (Mobile | \ +-----------+ / \ / (Mobile | \ +-----------+
/ ISP X \ | network) | | +-----------+ / ISP X \ | network) | | +-----------+
/ \ \ +-------| Host 2 | / \ \ +-------| Host 2 |
; #############################|ALTO Client| ; #############################|ALTO Client|
| # | `-. ,-' +-----------+ | # | `-. ,-' +-----------+
| # | `-------' | # | `-------'
### preferred "connections" ### preferred "connections"
--- non-preferred "connections" --- non-preferred "connections"
Figure 7: ALTO traffic network de-localization Figure 7: ALTO traffic network de-localization
Figure 7 shows the result of such a guidance process where Host 2 Figure 7 shows the result of such a guidance process where Host 2
prefers a connection with Host 3 instead of Host 1, as shown in prefers a connection with Host 3 instead of Host 1, as shown in
Figure 5. Figure 5.
A realization of this scenario may have certain limitations and may A realization of this scenario may have certain limitations and may
not be possible in all cases. For instance, it may require that the not be possible in all cases. For instance, it may require the ALTO
ALTO server can distinguish mobile and non-mobile hosts, e.g., based server to distinguish mobile and non-mobile hosts based on their IP
on their IP address. This may depend on mobility solutions and may address. This may depend on mobility solutions and may not be
not be possible or accurate. In general, ALTO is not intended as a possible or accurate. In general, ALTO is not intended as a fine-
fine-grained traffic engineering solution for individual hosts. grained traffic engineering solution for individual hosts. Instead,
Instead, it typically works on aggregates (e.g., if it is known that it typically works on aggregates (e.g., if it is known that certain
certain IP prefixes are often assigned to mobile users). IP prefixes are often assigned to mobile users).
3.1.5. Application Tuning 3.1.5. Application Tuning
ALTO can also provide guidance to optimize the application-level ALTO can also provide guidance to optimize the application-level
topology of networked applications, e.g., by exposing network topology of networked applications, e.g., by exposing network
performance information. Applications can often run their own performance information. Applications can often run their own
measurements to determine network performance, e.g., by active delay measurements to determine network performance, e.g., by active delay
measurements or bandwidth probing, but such measurements result in measurements or bandwidth probing, but such measurements result in
overhead and complexity. Accessing an ALTO server can be a simpler overhead and complexity. Accessing an ALTO server can be a simpler
alternative. In addition, an ALTO server may also expose network alternative. In addition, an ALTO server may also expose network
With the Endpoint Cost Service (ECS), the ALTO client does not have With the Endpoint Cost Service (ECS), the ALTO client does not have
to implement any specific algorithm or mechanism in order to to implement any specific algorithm or mechanism in order to
retrieve, maintain and process network topology information (of any retrieve, maintain and process network topology information (of any
kind). The complexity of the network topology (computation, kind). The complexity of the network topology (computation,
maintenance and distribution) is kept in the ALTO server and ECS is maintenance and distribution) is kept in the ALTO server and ECS is
delivered on demand. This allows the ALTO server to enhance and delivered on demand. This allows the ALTO server to enhance and
modify the way the topology information sources are used and modify the way the topology information sources are used and
combined. This simplifies the enforcement of privacy policies of the combined. This simplifies the enforcement of privacy policies of the
ISP. ISP.
The ALTO Network Map and Cost Map service expose an abstracted view The ALTO Network Map and Cost Map service expose an abstract view on
on the ISP network topology. Therefore, care is needed when the ISP network topology. Therefore, care is needed when
constructing those maps in order to take privacy policies into constructing those maps in order to take privacy policies into
account, as further discussed in Section 3.2.3. The ALTO protocol account, as further discussed in Section 3.2.3. The ALTO protocol
also supports further features such as endpoint properties, which also supports further features such as endpoint properties, which
could also be used to expose topology guidance. The privacy could also be used to expose topology guidance. The privacy
considerations for ALTO maps also apply to such ALTO extensions. considerations for ALTO maps also apply to such ALTO extensions.
3.2.2. Data Collection from Data Sources 3.2.2. Data Collection from Data Sources
The first step in the process of generating ALTO information is to The first step in the process of generating ALTO information is to
gather the required information from the network. An ALTO server can gather the required information from the network. An ALTO server can
collect topological information from a variety of sources in the collect topological information from a variety of sources in the
network and provides a cohesive, abstracted view of the network network and provides a cohesive, abstract view of the network
topology to applications using an ALTO client. Topology data sources topology to applications using an ALTO client. Topology data sources
may include routing protocols, network policies, state and may include routing protocols, network policies, state and
performance information, geo-location, etc. An ALTO server requires performance information, geo-location, etc. An ALTO server requires
at least some topology and/or routing information, i.e., information at least some topology and/or routing information, i.e., information
about present endpoints and their interconnection. With this about existing endpoints and their interconnection. With this
information it is in principle possible to compute paths between all information it is in principle possible to compute paths between all
known endpoints. Based on such basic data, the ALTO server builds an known endpoints. Based on such basic data, the ALTO server builds an
ALTO-specific network topology that represents the network as it ALTO-specific network topology that represents the network as it
should be understood and utilized by applications (resource should be understood and utilized by applications (resource
consumers) at endpoints using ALTO services (e.g., Network/Cost Map consumers) at endpoints using ALTO services (e.g., Network/Cost Map
Service or ECS). A basic dataset can be extended by many other Service or ECS). A basic dataset can be extended by many other
information obtainable from the network. information obtainable from the network.
The ALTO protocol does not assume a specific network technology or The ALTO protocol does not assume a specific network technology or
topology. In principle, ALTO can be used with various types of topology. In principle, ALTO can be used with various types of
with BGP speakers. For data collection, link-state protocols are with BGP speakers. For data collection, link-state protocols are
more suitable since every router propagates its information more suitable since every router propagates its information
throughout the whole network. Hence, it is possible to obtain throughout the whole network. Hence, it is possible to obtain
information about all routers and their neighbors from one single information about all routers and their neighbors from one single
router in the network. In contrast, distance-vector protocols are router in the network. In contrast, distance-vector protocols are
less suitable since routing information is only shared among less suitable since routing information is only shared among
neighbors. To obtain the whole topology with distance-vector neighbors. To obtain the whole topology with distance-vector
routing protocols it is necessary to retrieve routing information routing protocols it is necessary to retrieve routing information
from every router in the network. from every router in the network.
o The document [RFC7752] describes a mechanism by which link state o The document [RFC7752] describes a mechanism by which link-state
and traffic engineering information can be collected from networks and traffic engineering information can be collected from networks
and shared with external components using the BGP routing and shared with external components using the BGP routing
protocol. This is achieved using a new BGP Network Layer protocol. This is achieved using a new BGP Network Layer
Reachability Information (NLRI) encoding format. The mechanism is Reachability Information (NLRI) encoding format. The mechanism is
applicable to physical and virtual IGP links and can also include applicable to physical and virtual IGP links and can also include
Traffic Engineering (TE) data. For instance, prefix data can be Traffic Engineering (TE) data. For instance, prefix data can be
carried and originated in BGP, while TE data is originated and carried and originated in BGP, while TE data is originated and
carried in an IGP. The mechanism described is subject to policy carried in an IGP. The mechanism described is subject to policy
control. control.
An ALTO server indicates preferences amongst network locations in the An ALTO server indicates preferences amongst network locations in the
form of abstract costs. These costs are generic costs and can be form of abstract costs. These costs are generic costs and can be
internally computed by the operator of the ALTO server according to internally computed by the operator of the ALTO server according to
its own policy. For a given ALTO network map, an ALTO cost map its own policy. For a given ALTO network map, an ALTO cost map
defines directional costs pairwise amongst the set of source and defines directional costs pairwise amongst the set of source and
destination network locations defined by the PIDs. destination network locations defined by the PIDs.
The ALTO protocol permits the use of different cost types. An ALTO The ALTO protocol permits the use of different cost types. An ALTO
cost type is defined by the combination of a cost metric and a cost cost type is defined by the combination of a cost metric and a cost
mode. The cost metric identifies what the costs represent. The cost mode. The cost metric identifies what the costs represent. The cost
mode identifies how the costs should be interpreted, e.g., whether mode identifies how the costs should be interpreted, i.e., whether
returned costs should be interpreted as numerical values or ordinal returned costs should be interpreted as numerical values or ordinal
rankings. The ALTO protocol also allows the definition of additional rankings. The ALTO protocol also allows the definition of additional
constraints defining which elements of a cost map shall be returned. constraints defining which elements of a cost map shall be returned.
The ALTO protocol specification [RFC7285] defines the "routingcost" The ALTO protocol specification [RFC7285] defines the "routingcost"
cost metric as the basic set of rating criteria, which has to be cost metric as the basic set of rating criteria, which has to be
supported by all implementations. This cost metric conveys a generic supported by all implementations. This cost metric conveys a generic
measure for the cost of routing traffic from a source to a measure for the cost of routing traffic from a source to a
destination. A lower value indicates a higher preference for traffic destination. A lower value indicates a higher preference for traffic
to be sent from a source to a destination. How that metric is to be sent from a source to a destination. How that metric is
far. Whether such rating criteria are useful and whether the far. Whether such rating criteria are useful and whether the
corresponding information would actually be made available by ISPs corresponding information would actually be made available by ISPs
can also depend on the use case of ALTO. A definition of further can also depend on the use case of ALTO. A definition of further
metrics can be found for instance in [I-D.wu-alto-te-metrics]. metrics can be found for instance in [I-D.wu-alto-te-metrics].
Distance-related rating criteria: Distance-related rating criteria:
o Relative topological distance: The term relative means that a o Relative topological distance: The term relative means that a
larger numerical value means greater distance, but it is up to the larger numerical value means greater distance, but it is up to the
ALTO service how to compute the values, and the ALTO client will ALTO service how to compute the values, and the ALTO client will
not be informed about the nature of the information. One way of not be informed about the nature of the information. One way to
generating this kind of information may be counting AS hops, but determine relative topological distance may be counting AS hops,
when querying this parameter, the ALTO client must not assume that but when querying this parameter, the ALTO client must not assume
the numbers actually are AS hops. In addition to the AS path, a that the numbers actually are AS hops. In addition to the AS
relative cost value could also be calculated taking into account path, a relative cost value could also be calculated taking into
other routing protocol parameters, such as BGP local preference or account other routing protocol parameters, such as BGP local
multi-exit discriminator (MED) attributes. preference or multi-exit discriminator (MED) attributes.
o Absolute topological distance, expressed in the number of o Absolute topological distance, expressed in the number of
traversed autonomous systems (AS). traversed autonomous systems (AS).
o Absolute topological distance, expressed in the number of router o Absolute topological distance, expressed in the number of router
hops (i.e., how much the TTL value of an IP packet will be hops (i.e., how much the TTL value of an IP packet will be
decreased during transit). decreased during transit).
o Absolute physical distance, based on knowledge of the approximate o Absolute physical distance, based on knowledge of the approximate
geo-location (e.g., continent, country) of an IP address. geo-location (e.g., continent, country) of an IP address.
transport, have to be used to avoid congestion. In other words, transport, have to be used to avoid congestion. In other words,
ALTO is a service to provide network and policy information, with ALTO is a service to provide network and policy information, with
update intervals that are possibly several orders of magnitude update intervals that are possibly several orders of magnitude
slower than congestion control loops (e.g., in TCP) can react on slower than congestion control loops (e.g., in TCP) can react on
changes in network congestion state. This clear separation of changes in network congestion state. This clear separation of
responsibilities avoids traffic oscillations and can help for responsibilities avoids traffic oscillations and can help for
network stability and cost optimization. network stability and cost optimization.
o Performance metrics that raise privacy concerns. For instance, it o Performance metrics that raise privacy concerns. For instance, it
has been questioned whether an ALTO service should publicly expose has been questioned whether an ALTO service should publicly expose
the provisioned access bandwidth, e.g. of cable / DSL customers, the provisioned access bandwidth of cable / DSL customers, as this
as this could enable identification of "premium customers" of an could enable identification of "premium customers" of an ISP.
ISP.
3.3. ALTO Focus and Scope 3.3. ALTO Focus and Scope
The purpose of this section is ensure that administrators and users The purpose of this section is ensure that administrators and users
of ALTO services are aware of the objectives of the ALTO protocol of ALTO services are aware of the objectives of the ALTO protocol
design. Using ALTO beyond this scope may limit its efficiency. design. Using ALTO beyond this scope may limit its efficiency.
Likewise, Map-based and Endpoint-based ALTO Services may face certain Likewise, Map-based and Endpoint-based ALTO Services may face certain
issues during deployment. This section explains these limitations issues during deployment. This section explains these limitations
and also outlines potential solutions. and also outlines potential solutions.
The specification of the ALTO protocol [RFC7285] also includes the The specification of the ALTO protocol [RFC7285] also includes the
Endpoint Cost Service (ECS) mechanism. ALTO clients can ask the ALTO Endpoint Cost Service (ECS) mechanism. ALTO clients can ask the ALTO
server for guidance for specific IP addresses, thereby avoiding the server for guidance for specific IP addresses, thereby avoiding the
need of processing maps. This can mitigate some of the problems need of processing maps. This can mitigate some of the problems
mentioned in the previous section. mentioned in the previous section.
However frequent requests, particularly with long lists of IP However frequent requests, particularly with long lists of IP
addresses, may overload the ALTO server. The server has to rank each addresses, may overload the ALTO server. The server has to rank each
received IP address, which causes load at the server. This may be received IP address, which causes load at the server. This may be
amplified when not only a single ALTO client is asking for guidance, amplified when not only a single ALTO client is asking for guidance,
but a larger number of them. The results of the ECS are also more but a large number of them. The results of the ECS are also more
difficult to cache than ALTO maps. Therefore, the ALTO client may difficult to cache than ALTO maps. Therefore, the ALTO client may
have to await the server response before starting a communication, have to await the server response before starting a communication,
which results in an additional delay. which results in an additional delay.
Caching of IP addresses at the ALTO client or the usage of the H12 Caching of IP addresses at the ALTO client or the usage of the H12
approach [I-D.kiesel-alto-h12] in conjunction with caching may lower approach [I-D.kiesel-alto-h12] in conjunction with caching may lower
the query load on the ALTO server. the query load on the ALTO server.
When ALTO server receives an ECS request, it may not have the most When ALTO server receives an ECS request, it may not have the most
appropriate topology information in order to accurately determine the appropriate topology information in order to accurately determine the
result, a host with an ALTO client inside the network of this ISP result, a host with an ALTO client inside the network of this ISP
will prefer retrieving data from hosts connected to the same ISP. will prefer retrieving data from hosts connected to the same ISP.
An example is given in Figure 9. It is assumed that ISP A is a small An example is given in Figure 9. It is assumed that ISP A is a small
ISP only having one access network. As operator of the ALTO service, ISP only having one access network. As operator of the ALTO service,
ISP A can define its network to be one optimization area, named as ISP A can define its network to be one optimization area, named as
PID1, and define other networks to be the other optimization area, PID1, and define other networks to be the other optimization area,
named as PID2. C1 is denoted as the cost inside the network of ISP named as PID2. C1 is denoted as the cost inside the network of ISP
A. C2 is denoted as the cost from PID2 to PID1, and C3 from PID1 to A. C2 is denoted as the cost from PID2 to PID1, and C3 from PID1 to
PID2. For the sake of simplicity, in the following C2=C3 is assumed. PID2. For the sake of simplicity, in the following C2=C3 is assumed.
In order to keep traffic local inside ISP A, it makes sense to In order to keep traffic local inside ISP A, it makes sense to define
define: C1<C2 C1<C2
----------- -----------
//// \\\\ //// \\\\
// \\ // \\
// \\ /-----------\ // \\ /-----------\
| +---------+ | //// \\\\ | +---------+ | //// \\\\
| | ALTO | ISP A | C2 | Other Networks | | | ALTO | ISP A | C2 | Other Networks |
| | Service | PID 1 <----------- PID 2 | | Service | PID 1 <----------- PID 2
| +---------+ C1 |----------->| | | +---------+ C1 |----------->| |
| | C3 (=C2) \\\\ //// | | C3 (=C2) \\\\ ////
\\ // \-----------/ \\ // \-----------/
protocol such as IS-IS. The applied link weights are shown in protocol such as IS-IS. The applied link weights are shown in
Figure 15. To obtain the topology and routing information from the Figure 15. To obtain the topology and routing information from the
network, the topology data source must be connected directly to one network, the topology data source must be connected directly to one
of the routers (R1...R9). Furthermore, the topology data source must of the routers (R1...R9). Furthermore, the topology data source must
be enabled to communicate with the router and vice versa. be enabled to communicate with the router and vice versa.
The Border Gateway Protocol (BGP) is used in this scenario to route The Border Gateway Protocol (BGP) is used in this scenario to route
between autonomous systems (AS). External BGP is running on the two between autonomous systems (AS). External BGP is running on the two
border routers R1 and R8. Furthermore, internal BGP is used to border routers R1 and R8. Furthermore, internal BGP is used to
propagate external as well as internal prefixes within the network propagate external as well as internal prefixes within the network
boundaries. It is running on every router with an attached client boundaries; it is running on every router with an attached client
network (R2, R5, R6, R7 and R9). Since no route reflector is present network (R2, R5, R6, R7 and R9). Since no route reflector is present
it is necessary to fetch routes from each BGP router separately. it is necessary to fetch routes from each BGP router separately.
R1 R2 R3 R4 R5 R6 R7 R8 R9 R1 R2 R3 R4 R5 R6 R7 R8 R9
R1 0 15 15 20 - - - - - R1 0 15 15 20 - - - - -
R2 15 0 20 - - - - - - R2 15 0 20 - - - - - -
R3 15 20 0 5 5 10 - - - R3 15 20 0 5 5 10 - - -
R4 20 - 5 0 5 - - - 20 R4 20 - 5 0 5 - - - 20
R5 - - 5 5 0 - 10 10 - R5 - - 5 5 0 - 10 10 -
R6 - - 10 - - 0 - - - R6 - - 10 - - 0 - - -
lengths are link weights with values illustrated in Figure 15. lengths are link weights with values illustrated in Figure 15.
Hence, the cost function generally extracts the optimal path with Hence, the cost function generally extracts the optimal path with
respect to a chosen metric, such as the IGP link weight. It is also respect to a chosen metric, such as the IGP link weight. It is also
possible that more than one path with the same minimum weight exist, possible that more than one path with the same minimum weight exist,
which means it is not entirely clear which path is going to be which means it is not entirely clear which path is going to be
selected by the network. Hence, a tie-breaker similar to the one selected by the network. Hence, a tie-breaker similar to the one
used to resolve costs for PIDs with multiple endpoints is necessary. used to resolve costs for PIDs with multiple endpoints is necessary.
An important note is that [RFC7285] does not require cost maps to An important note is that [RFC7285] does not require cost maps to
provide costs for every PID pair, so if no path cost can be provide costs for every PID pair, so if no path cost can be
calculated for a certain pair the corresponding field in the cost map calculated for a certain pair, the corresponding field in the cost
is left out. Administrators may also not want to provide cost values map is left out. Administrators may also not want to provide cost
for some PID pairs due to various reasons. Such pairs may be defined values for some PID pairs due to various reasons. Such pairs may be
before the cost calculation is performed. defined before the cost calculation is performed.
Based on the network map example shown in the previous section it is Based on the network map example shown in the previous section it is
possible to calculate the cost maps. Figure 20 provides an example possible to calculate the cost maps. Figure 20 provides an example
where the selected metric for the cost map is the minimum number of where the selected metric for the cost map is the minimum number of
hops necessary to get from the endpoints in the source PID to hops necessary to get from the endpoints in the source PID to
endpoints in the destination PID. Our chosen tie-breaker selects the endpoints in the destination PID. Our chosen tie-breaker selects the
minimum hop count when more than one value is returned by the cost minimum hop count when more than one value is returned by the cost
function. function.
PID | default | R1 | R2 | R5 | R6 | R7 | R8 | R9 | PID | default | R1 | R2 | R5 | R6 | R7 | R8 | R9 |
R7 | x | 4 | 4 | 2 | 4 | 0 | 3 | 4 | R7 | x | 4 | 4 | 2 | 4 | 0 | 3 | 4 |
R8 | x | 4 | 4 | 2 | 4 | 3 | 0 | 2 | R8 | x | 4 | 4 | 2 | 4 | 3 | 0 | 2 |
R9 | x | 3 | 4 | 3 | 4 | 4 | 2 | 0 | R9 | x | 3 | 4 | 3 | 4 | 4 | 2 | 0 |
Figure 20: Example ALTO hopcount cost map Figure 20: Example ALTO hopcount cost map
It should be mentioned that R1->R9 has several paths with equal path It should be mentioned that R1->R9 has several paths with equal path
weights. The paths R1->R3->R5->R8->R9, R1->R3->R4->R9 and R1->R4->R9 weights. The paths R1->R3->R5->R8->R9, R1->R3->R4->R9 and R1->R4->R9
all have a path weight of 40. Due to the minimum hopcount value tie- all have a path weight of 40. Due to the minimum hopcount value tie-
breaker, 3 hops is chosen as value for the path R1->R4->R9. breaker, 3 hops is chosen as value for the path R1->R4->R9.
Furthermore, since the "default" PID is sort of virtual PID with no Furthermore, since the "default" PID is, in a sense, a virtual PID
endpoints that are part of the example network, no cost values are with no endpoints that are part of the example network, no cost
calculated for other PIDs from or towards it. values are calculated for other PIDs from or towards it.
3.7. Deployment Experiences 3.7. Deployment Experiences
There are multiple interoperable implementations of the ALTO There are multiple interoperable implementations of the ALTO
protocol. Some experiences in implementating and using ALTO for protocol. Some experiences in implementating and using ALTO for
large-scale networks have been documented in large-scale networks have been documented in
[I-D.seidel-alto-map-calculation] and are here summarized: [I-D.seidel-alto-map-calculation] and are here summarized:
o Data collection: Retrieving topology information typically o Data collection: Retrieving topology information typically
requires implementing several protocols other than ALTO for data requires implementing several protocols other than ALTO for data
the development of ALTO. In this use case it is assumed that one the development of ALTO. In this use case it is assumed that one
party (usually the operator of a "managed" IP network domain) will party (usually the operator of a "managed" IP network domain) will
disclose information about the network through ALTO. The application disclose information about the network through ALTO. The application
overlay will query this information and optimize its behavior in overlay will query this information and optimize its behavior in
order to improve performance or Quality of Experience in the order to improve performance or Quality of Experience in the
application while reducing the utilization of the underlying network application while reducing the utilization of the underlying network
infrastructure. The resulting win-win situation is assumed to be the infrastructure. The resulting win-win situation is assumed to be the
incentive for both parties to provide or consume the ALTO incentive for both parties to provide or consume the ALTO
information, respectively. information, respectively.
P2P systems can be built without or with use of a centralized P2P systems can be built with or without use of a centralized
resource directory ("tracker"). The scope of this section is the resource directory ("tracker"). The scope of this section is the
interaction of P2P applications with the ALTO service. In this interaction of P2P applications with the ALTO service. In this
scenario, the resource consumer ("peer") asks the resource directory scenario, the resource consumer ("peer") asks the resource directory
for a list of candidates that can provide the desired resource. for a list of candidates that can provide the desired resource.
There are different options for how ALTO can be deployed in such use There are different options for how ALTO can be deployed in such use
cases with a centralized resource directory. cases with a centralized resource directory.
For efficiency reasons (i.e., message size), usually only a subset of For efficiency reasons (i.e., message size), only a subset of all
all resource providers known to the resource directory will be resource providers known to the resource directory will be returned
returned to the resource consumer. Some or all of these resource to the resource consumer. Some or all of these resource providers,
providers, plus further resource providers learned by other means plus further resource providers learned by other means such as direct
such as direct communication between peers, will be contacted by the communication between peers, will be contacted by the resource
resource consumer for accessing the resource. The purpose of ALTO is consumer for accessing the resource. The purpose of ALTO is giving
giving guidance on this peer selection, which is supposed to yield guidance on this peer selection, which should yield better-than-
better-than-random results. The tracker response as well as the ALTO random results. The tracker response as well as the ALTO guidance
guidance are most beneficial in the initial phase after the resource are most beneficial in the initial phase after the resource consumer
consumer has decided to access a resource, as long as only few has decided to access a resource, as long as only few resource
resource providers are known. Later, when the resource consumer has providers are known. Later, when the resource consumer has already
already exchanged some data with other peers and measured the exchanged some data with other peers and measured the transmission
transmission speed, the relative importance of ALTO may dwindle. speed, the relative importance of ALTO may dwindle.
4.1.2. Applicability of ALTO 4.1.2. Applicability of ALTO
A tracker-based P2P application can leverage ALTO in different ways. A tracker-based P2P application can leverage ALTO in different ways.
In the following, the different alternatives and their pros and cons In the following, the different alternatives and their pros and cons
are discussed. are discussed.
,-------. +-----------+ ,-------. +-----------+
,---. ,-' ========>| Peer 1 |******** ,---. ,-' ========>| Peer 1 |********
,-' `-. / ISP 1 V \ |ALTO Client| * ,-' `-. / ISP 1 V \ |ALTO Client| *
Legend: Legend:
=== ALTO protocol === ALTO protocol
*** Application protocol *** Application protocol
Figure 21: Global tracker and local ALTO servers Figure 21: Global tracker and local ALTO servers
Figure 21 depicts a tracker-based P2P system with several peers. The Figure 21 depicts a tracker-based P2P system with several peers. The
peers (i.e., resource consumers) embed an ALTO client to improve the peers (i.e., resource consumers) embed an ALTO client to improve the
resource provider selection. The tracker (i.e., resource directory) resource provider selection. The tracker (i.e., resource directory)
itself may be hosted and operated by another entity. A tracker itself may be hosted and operated by another entity. A tracker
outside the networks of the ISPs of the peers may be a typical use external to the ISPs of the peers may be a typical use case. For
case. For instance, a tracker like Pirate Bay can serve BitTorrent instance, a tracker like Pirate Bay can serve BitTorrent peers world-
peers world-wide. The figure only shows one tracker instance, but wide. The figure only shows one tracker instance, but deployments
deployments with several trackers could be possible, too. with several trackers could be possible, too.
The scenario depicted in Figure 21 lets the peers directly The scenario depicted in Figure 21 lets the peers directly
communicate with their ISP's ALTO server (i.e., ALTO client embedded communicate with their ISP's ALTO server (i.e., ALTO client embedded
in the peers), thus giving the peers the most control on which in the peers), thus giving the peers the most control on which
information they query for, as they can integrate information information they query for, as they can integrate information
received from one tracker or several trackers and through direct received from one tracker or several trackers and through direct
peer-to-peer knowledge exchange. For instance, the latter approach peer-to-peer knowledge exchange. For instance, the latter approach
is called peer exchange (PEX) in BitTorent. In this deployment is called peer exchange (PEX) in BitTorrent. In this deployment
scenarios, the peers have to discover a suitable ALTO server (e.g., scenarios, the peers have to discover a suitable ALTO server (e.g.,
offered by their ISP, as described in [RFC7286]). offered by their ISP, as described in [RFC7286]).
There are also tracker-less P2P system architectures that do not rely There are also tracker-less P2P system architectures that do not rely
on centralized resource directories, e.g., unstructured P2P networks. on centralized resource directories, e.g., unstructured P2P networks.
Regarding the use of ALTO, their deployment would be similar to Regarding the use of ALTO, their deployment would be similar to
Figure 21, since the ALTO client would be embedded in the peers as Figure 21, since the ALTO client would be embedded in the peers as
well. This option is not further considered in this memo. well. This option is not further considered in this memo.
,-------. ,-------.
* * * * * * * * * *
* * * * * * * * * *
********************************************************* *********************************************************
Legend: Legend:
=== ALTO protocol === ALTO protocol
*** Application protocol *** Application protocol
Figure 22: Global tracker accessing ALTO server at various ISPs Figure 22: Global tracker accessing ALTO server at various ISPs
An alternative deployment scenario for a tracker-based system is An alternative deployment scenario for a tracker-based system is
depicted in Figure 22. Here, the tracker embeds the ALTO client. As depicted in Figure 22. Here, the tracker embeds the ALTO client.
already explained, the tracker itself may be hosted and operated by When the tracker receives a request from a querying peer, it first
an entity different than the ISP hosting and operating the ALTO discovers the ALTO server responsible for the querying peer. This
server. The key difference to the previously discussed use case is discovery can be done by using various ALTO server discovery
that the ALTO client is different from the resource consumer. mechanisms [RFC7286] [I-D.kiesel-alto-xdom-disc]. The ALTO client
Initially, the tracker has to discover the handling ALTO server for subsequently sends to the querying peer only those peers that are
each new peer [RFC7286] [I-D.kiesel-alto-xdom-disc]. The peers do preferred by the ALTO server responsible for the querying peer. The
not query the ALTO servers themselves. This gives the peers a better peers do not query the ALTO servers themselves. This gives the peers
initial selection of candidates, but does not consider peers learned a better initial selection of candidates, but does not consider peers
through direct peer-to-peer knowledge exchange. learned through direct peer-to-peer knowledge exchange.
ISP 1 ,-------. +-----------+ ISP 1 ,-------. +-----------+
,---. +-------------+******| Peer 1 | ,---. +-------------+******| Peer 1 |
,-' `-. /| Tracker |\ | | ,-' `-. /| Tracker |\ | |
/ \ / +-------------+**** +-----------+ / \ / +-------------+**** +-----------+
/ ISP X \ | === | * +-----------+ / ISP X \ | === | * +-----------+
/ \ \ +-------------+ / * | Peer 2 | / \ \ +-------------+ / * | Peer 2 |
; +---------+ : \| AlTO Server |/ ***| | ; +---------+ : \| AlTO Server |/ ***| |
| | Global | | +-------------+ +-----------+ | | Global | | +-------------+ +-----------+
| | Tracker | | `-------' | | Tracker | | `-------'
* ISP 2 `-------' * * ISP 2 `-------' *
************************************************* *************************************************
Legend: Legend:
=== ALTO protocol === ALTO protocol
*** Application protocol *** Application protocol
Figure 23: Local trackers and local ALTO servers (P4P approach) Figure 23: Local trackers and local ALTO servers (P4P approach)
There are some attempts to let ISPs deploy their own trackers, as There are some attempts to let ISPs deploy their own trackers, as
shown in Figure 23. In this case, the client cannot get guidance shown in Figure 23. In this case, the client cannot get guidance
from the ALTO server, other than by talking to the ISP's tracker. from the ALTO server other than by talking to the ISP's tracker,
However, the peers would have still chance the contact other which in turn communicates with the ALTO server using the ALTO
trackers, deployed by entities other than the peer's ISP. protocol. It should be noted that the peers are still allowed to
contact other trackers operated by entities other than the peer's
ISP, but in this case they cannot benefit from ALTO guidance.
4.2. Deployment Recommendations 4.2. Deployment Recommendations
4.2.1. ALTO Services 4.2.1. ALTO Services
The ALTO protocol specification [RFC7285] details how an ALTO client The ALTO protocol specification [RFC7285] details how an ALTO client
can query an ALTO server for guiding information and receive the can query an ALTO server for guiding information and receive the
corresponding replies. In case of peer-to-peer networks, two corresponding replies. In case of peer-to-peer networks, two
different ALTO services can be used: The Cost Map Service is often different ALTO services can be used: The Cost Map Service is often
preferred as solution by peer-to-peer software implementors and preferred as solution by peer-to-peer software implementors and
has been considered. Special attention is given to the two main has been considered. Special attention is given to the two main
security concerns. security concerns.
7.1. ALTO as a Protocol Crossing Trust Boundaries 7.1. ALTO as a Protocol Crossing Trust Boundaries
The optimization of peer-to-peer applications was the first use case The optimization of peer-to-peer applications was the first use case
and the impetus for the development of the ALTO protocol, in and the impetus for the development of the ALTO protocol, in
particular file sharing applications such as BitTorrent [RFC5594]. particular file sharing applications such as BitTorrent [RFC5594].
As explained in Section 4.1.1, for the publisher of the ALTO As explained in Section 4.1.1, for the publisher of the ALTO
information (i.e., the ALTO server operator) it is not always clear information (i.e., the ALTO server operator) it may not be apparent
who is in charge of the P2P application overlay. Some P2P who is in charge of the P2P application overlay. Some P2P
applications do not have any central control entity and the whole applications do not have any central control entity and the whole
overlay consists only of the peers, which are under control of the overlay consists only of the peers, which are under control of the
individual users. Other P2P applications may have some control individual users. Other P2P applications may have some control
entities such as super peers or trackers, but these may be located in entities such as super peers or trackers, but these may be located in
foreign countries and under the control of unknown organizations. As foreign countries and under the control of unknown organizations. As
outlined in Section 4.2.2, in some scenarios it may be very outlined in Section 4.2.2, in some scenarios it may be very
beneficial to forward ALTO information to such trackers, super peers, beneficial to forward ALTO information to such trackers, super peers,
etc. located in remote networks. This situation is aggravated by the etc. located in remote networks. This situation is aggravated by the
vast number of different P2P applications which are evolving quickly vast number of different P2P applications which are evolving quickly
7.4. Faking ALTO Guidance 7.4. Faking ALTO Guidance
The ALTO services enables an ALTO service provider to influence the The ALTO services enables an ALTO service provider to influence the
behavior of network applications. An attacker who is able to behavior of network applications. An attacker who is able to
generate false replies, or e.g. an attacker who can intercept the generate false replies, or e.g. an attacker who can intercept the
ALTO server discovery procedure, can provide faked ALTO guidance. ALTO server discovery procedure, can provide faked ALTO guidance.
Here is a list of examples how the ALTO guidance could be faked and Here is a list of examples how the ALTO guidance could be faked and
what possible consequences may arise: what possible consequences may arise:
Sorting: An attacker could change to sorting order of the ALTO Sorting: An attacker could change the sorting order of the ALTO
guidance (given that the order is of importance, otherwise the guidance (given that the order is of importance, otherwise the
ranking mechanism is of interest), i.e., declaring peers located ranking mechanism is of interest), i.e., declaring peers located
outside the ISP as peers to be preferred. This will not pose a outside the ISP as peers to be preferred. This will not pose a
big risk to the network or peers, as it would mimic the "regular" big risk to the network or peers, as it would mimic the "regular"
peer operation without traffic localization, apart from the peer operation without traffic localization, apart from the
communication/processing overhead for ALTO. However, it could communication/processing overhead for ALTO. However, it could
mean that ALTO is reaching the opposite goal of shuffling more mean that ALTO is reaching the opposite goal of shuffling more
data across ISP boundaries, incurring more costs for the ISP. In data across ISP boundaries, incurring more costs for the ISP. In
another example, fake guidance could give unrealistically low another example, fake guidance could give unrealistically low
costs to devices in an ISP's mobile network, thus encouraging costs to devices in an ISP's mobile network, thus encouraging
other devices to contact them, thereby degrading the ISP's mobile other devices to contact them, thereby degrading the ISP's mobile
network and causing customer dissatisfaction. network and causing customer dissatisfaction.
Preference of a single peer: A single IP address (thus a peer) could Preference of a single peer: A single IP address (thus a peer) could
be marked as to be preferred all over other peers. This peer can be marked as to be preferred all over other peers. This peer can
be located within the local ISP or also in other parts of the be located within the local ISP or also in other parts of the
Internet (e.g., a web server). This could lead to the case that Internet (e.g., a web server). This could lead to the case that
quite a number of peers to trying to contact this IP address, quite a number of peers to trying to contact this IP address,
possibly causing a Denial-of-Service (DoS) attack. possibly causing a Denial-of-Service (DoS) attack.
It has not yet been investigated how a faked or wrong ALTO guidance The ALTO protocol protects the authenticity and integrity of ALTO
by an ALTO server can impact the operation of the network and also information while in transit by leveraging the authenticity and
the applications, e.g., peer-to-peer applications. integrity protection mechanisms in TLS (see Section 8.3.5 of
[RFC7285]). It has not yet been investigated how wrong ALTO guidance
given by an autheticated ALTO server can impact the operation of the
network and the applications.
8. IANA Considerations 8. IANA Considerations
This document makes no specific request to IANA. This document makes no specific request to IANA.
9. Conclusion 9. Conclusion
This document discusses how the ALTO protocol can be deployed in This document has enumerated and discussed how the ALTO protocol can
different use cases and provides corresponding guidance and be deployed in different use cases and provides corresponding
recommendations to network administrators and application developers. guidance and recommendations to network administrators and
application developers.
10. Acknowledgments 10. Acknowledgments
This memo is the result of contributions made by several people: This memo is the result of contributions made by several people:
o Xianghue Sun, Lee Kai, and Richard Yang contributed text on ISP o Xianghue Sun, Lee Kai, and Richard Yang contributed text on ISP
deployment requirements and monitoring. deployment requirements and monitoring.
o Stefano Previdi contributed parts of the Section 5 on "Using ALTO o Stefano Previdi contributed parts of the Section 5 on "Using ALTO
for CDNs". for CDNs".

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/
<div> 
  <table border="0" cellpadding="0" cellspacing="0">
<tr bgcolor="orange">
<a href="https://tools.ietf.org/rfcdiff?url2=draft-ietf-alto-deployments-14.txt">&lt;</a>&nbsp;<a href="https://tools.ietf.org/html/draft-ietf-alto-deployments-14.txt">draft-ietf-alto-deployments-14.txt</a>&nbsp; &nbsp;<a href="https://tools.ietf.org/html/draft-ietf-alto-deployments.txt">draft-ietf-alto-deployments.txt</a>&nbsp;<a href="https://tools.ietf.org/rfcdiff?url1=draft-ietf-alto-deployments.txt">&gt;</a>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">ALTO                                                      M. Stiemerling</td>
<td> </td>
<td class="right">ALTO                                                      M. Stiemerling</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">Internet-Draft                                           NEC Europe Ltd.</td>
<td> </td>
<td class="right">Internet-Draft                                           NEC Europe Ltd.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">Intended status: Informational                                 S. Kiesel</td>
<td> </td>
<td class="right">Intended status: Informational                                 S. Kiesel</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">Expires: <span class="delete">October 20, 2016 </span>                       University of Stuttgart</td>
<td> </td>
<td class="rblock">Expires: <span class="insert">November 10, 2016</span>                       University of Stuttgart</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                                               M. Scharf</td>
<td> </td>
<td class="right">                                                               M. Scharf</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                                                   Nokia</td>
<td> </td>
<td class="right">                                                                   Nokia</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                                               H. Seidel</td>
<td> </td>
<td class="right">                                                               H. Seidel</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                                                  BENOCS</td>
<td> </td>
<td class="right">                                                                  BENOCS</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                                              S. Previdi</td>
<td> </td>
<td class="right">                                                              S. Previdi</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                                                   Cisco</td>
<td> </td>
<td class="right">                                                                   Cisco</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">                                                          <span class="delete">April 18</span>, 2016</td>
<td> </td>
<td class="rblock">                                                          <span class="insert">   May 9</span>, 2016</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                     ALTO Deployment Considerations</td>
<td> </td>
<td class="right">                     ALTO Deployment Considerations</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">                     draft-ietf-alto-deployments-1<span class="delete">4</span>
</td>
<td> </td>
<td class="rblock">                     draft-ietf-alto-deployments-1<span class="insert">5</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">Abstract</td>
<td> </td>
<td class="right">Abstract</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Many Internet applications are used to access resources such as</td>
<td> </td>
<td class="right">   Many Internet applications are used to access resources such as</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   pieces of information or server processes that are available in</td>
<td> </td>
<td class="right">   pieces of information or server processes that are available in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   several equivalent replicas on different hosts.  This includes, but</td>
<td> </td>
<td class="right">   several equivalent replicas on different hosts.  This includes, but</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   is not limited to, peer-to-peer file sharing applications.  The goal</td>
<td> </td>
<td class="right">   is not limited to, peer-to-peer file sharing applications.  The goal</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   of Application-Layer Traffic Optimization (ALTO) is to provide</td>
<td> </td>
<td class="right">   of Application-Layer Traffic Optimization (ALTO) is to provide</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   guidance to applications that have to select one or several hosts</td>
<td> </td>
<td class="right">   guidance to applications that have to select one or several hosts</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   from a set of candidates, which are able to provide a desired</td>
<td> </td>
<td class="right">   from a set of candidates, which are able to provide a desired</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-2"> page 1, line 49<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-2"> page 1, line 49<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Internet-Drafts are working documents of the Internet Engineering</td>
<td> </td>
<td class="right">   Internet-Drafts are working documents of the Internet Engineering</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Task Force (IETF).  Note that other groups may also distribute</td>
<td> </td>
<td class="right">   Task Force (IETF).  Note that other groups may also distribute</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   working documents as Internet-Drafts.  The list of current Internet-</td>
<td> </td>
<td class="right">   working documents as Internet-Drafts.  The list of current Internet-</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td>
<td> </td>
<td class="right">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Internet-Drafts are draft documents valid for a maximum of six months</td>
<td> </td>
<td class="right">   Internet-Drafts are draft documents valid for a maximum of six months</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   and may be updated, replaced, or obsoleted by other documents at any</td>
<td> </td>
<td class="right">   and may be updated, replaced, or obsoleted by other documents at any</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   time.  It is inappropriate to use Internet-Drafts as reference</td>
<td> </td>
<td class="right">   time.  It is inappropriate to use Internet-Drafts as reference</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   material or to cite them other than as "work in progress."</td>
<td> </td>
<td class="right">   material or to cite them other than as "work in progress."</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   This Internet-Draft will expire on <span class="delete">October 2</span>0, 2016.</td>
<td> </td>
<td class="rblock">   This Internet-Draft will expire on <span class="insert">November 1</span>0, 2016.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">Copyright Notice</td>
<td> </td>
<td class="right">Copyright Notice</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Copyright (c) 2016 IETF Trust and the persons identified as the</td>
<td> </td>
<td class="right">   Copyright (c) 2016 IETF Trust and the persons identified as the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   document authors.  All rights reserved.</td>
<td> </td>
<td class="right">   document authors.  All rights reserved.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   This document is subject to BCP 78 and the IETF Trust's Legal</td>
<td> </td>
<td class="right">   This document is subject to BCP 78 and the IETF Trust's Legal</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Provisions Relating to IETF Documents</td>
<td> </td>
<td class="right">   Provisions Relating to IETF Documents</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   (http://trustee.ietf.org/license-info) in effect on the date of</td>
<td> </td>
<td class="right">   (http://trustee.ietf.org/license-info) in effect on the date of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   publication of this document.  Please review these documents</td>
<td> </td>
<td class="right">   publication of this document.  Please review these documents</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-3"> page 2, line 29<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-3"> page 2, line 29<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">Table of Contents</td>
<td> </td>
<td class="right">Table of Contents</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4</td>
<td> </td>
<td class="right">   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   2.  General Considerations . . . . . . . . . . . . . . . . . . . .  5</td>
<td> </td>
<td class="right">   2.  General Considerations . . . . . . . . . . . . . . . . . . . .  5</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">     2.1.  ALTO Entities  . . . . . . . . . . . . . . . . . . . . . .  5</td>
<td> </td>
<td class="right">     2.1.  ALTO Entities  . . . . . . . . . . . . . . . . . . . . . .  5</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       2.1.1.  Baseline Scenario  . . . . . . . . . . . . . . . . . .  5</td>
<td> </td>
<td class="right">       2.1.1.  Baseline Scenario  . . . . . . . . . . . . . . . . . .  5</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       2.1.2.  Placement of ALTO Entities . . . . . . . . . . . . . .  6</td>
<td> </td>
<td class="right">       2.1.2.  Placement of ALTO Entities . . . . . . . . . . . . . .  6</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">     2.2.  Classification of Deployment Scenarios . . . . . . . . . .  8</td>
<td> </td>
<td class="right">     2.2.  Classification of Deployment Scenarios . . . . . . . . . .  8</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       2.2.1.  Roles in ALTO Deployments  . . . . . . . . . . . . . .  8</td>
<td> </td>
<td class="right">       2.2.1.  Roles in ALTO Deployments  . . . . . . . . . . . . . .  8</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       2.2.2.  Information Exposure . . . . . . . . . . . . . . . . . <span class="delete">10</span>
</td>
<td> </td>
<td class="rblock">       2.2.2.  Information Exposure . . . . . . . . . . . . . . . . . <span class="insert">11</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       2.2.3.  More Advanced Deployments  . . . . . . . . . . . . . . <span class="delete">11</span>
</td>
<td> </td>
<td class="rblock">       2.2.3.  More Advanced Deployments  . . . . . . . . . . . . . . <span class="insert">12</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   3.  Deployment Considerations by ISPs  . . . . . . . . . . . . . . <span class="delete">14</span>
</td>
<td> </td>
<td class="rblock">   3.  Deployment Considerations by ISPs  . . . . . . . . . . . . . . <span class="insert">15</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     3.1.  Objectives for the Guidance to Applications  . . . . . . . <span class="delete">14</span>
</td>
<td> </td>
<td class="rblock">     3.1.  Objectives for the Guidance to Applications  . . . . . . . <span class="insert">15</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.1.1.  General Objectives for Traffic Optimization  . . . . . <span class="delete">14</span>
</td>
<td> </td>
<td class="rblock">       3.1.1.  General Objectives for Traffic Optimization  . . . . . <span class="insert">15</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.1.2.  Inter-Network Traffic Localization . . . . . . . . . . <span class="delete">15</span>
</td>
<td> </td>
<td class="rblock">       3.1.2.  Inter-Network Traffic Localization . . . . . . . . . . <span class="insert">16</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.1.3.  Intra-Network Traffic Localization . . . . . . . . . . <span class="delete">16</span>
</td>
<td> </td>
<td class="rblock">       3.1.3.  Intra-Network Traffic Localization . . . . . . . . . . <span class="insert">17</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.1.4.  Network Off-Loading  . . . . . . . . . . . . . . . . . <span class="delete">17</span>
</td>
<td> </td>
<td class="rblock">       3.1.4.  Network Off-Loading  . . . . . . . . . . . . . . . . . <span class="insert">18</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.1.5.  Application Tuning . . . . . . . . . . . . . . . . . . <span class="delete">18</span>
</td>
<td> </td>
<td class="rblock">       3.1.5.  Application Tuning . . . . . . . . . . . . . . . . . . <span class="insert">19</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     3.2.  Provisioning of ALTO Topology Data . . . . . . . . . . . . <span class="delete">19</span>
</td>
<td> </td>
<td class="rblock">     3.2.  Provisioning of ALTO Topology Data . . . . . . . . . . . . <span class="insert">20</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.2.1.  High-Level Process and Requirements  . . . . . . . . . <span class="delete">19</span>
</td>
<td> </td>
<td class="rblock">       3.2.1.  High-Level Process and Requirements  . . . . . . . . . <span class="insert">20</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.2.2.  Data Collection from Data Sources  . . . . . . . . . . <span class="delete">20</span>
</td>
<td> </td>
<td class="rblock">       3.2.2.  Data Collection from Data Sources  . . . . . . . . . . <span class="insert">21</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.2.3.  Partitioning and Grouping of IP Address Ranges . . . . <span class="delete">23</span>
</td>
<td> </td>
<td class="rblock">       3.2.3.  Partitioning and Grouping of IP Address Ranges . . . . <span class="insert">24</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.2.4.  Rating Criteria and/or Cost Calculation  . . . . . . . <span class="delete">24</span>
</td>
<td> </td>
<td class="rblock">       3.2.4.  Rating Criteria and/or Cost Calculation  . . . . . . . <span class="insert">25</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     3.3.  ALTO Focus and Scope . . . . . . . . . . . . . . . . . . . <span class="delete">27</span>
</td>
<td> </td>
<td class="rblock">     3.3.  ALTO Focus and Scope . . . . . . . . . . . . . . . . . . . <span class="insert">28</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.3.1.  Limitations of Using ALTO Beyond Design Assumptions  . <span class="delete">28</span>
</td>
<td> </td>
<td class="rblock">       3.3.1.  Limitations of Using ALTO Beyond Design Assumptions  . <span class="insert">29</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       3.3.2.  Limitations of Map-based Services and Potential</td>
<td> </td>
<td class="right">       3.3.2.  Limitations of Map-based Services and Potential</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">               Solutions  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">29</span>
</td>
<td> </td>
<td class="rblock">               Solutions  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">30</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       3.3.3.  Limitations of Non-Map-based Services and</td>
<td> </td>
<td class="right">       3.3.3.  Limitations of Non-Map-based Services and</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">               Potential Solutions  . . . . . . . . . . . . . . . . . <span class="delete">31</span>
</td>
<td> </td>
<td class="rblock">               Potential Solutions  . . . . . . . . . . . . . . . . . <span class="insert">32</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     3.4.  Monitoring ALTO  . . . . . . . . . . . . . . . . . . . . . <span class="delete">31</span>
</td>
<td> </td>
<td class="rblock">     3.4.  Monitoring ALTO  . . . . . . . . . . . . . . . . . . . . . <span class="insert">32</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.4.1.  Impact and Observation on Network Operation  . . . . . <span class="delete">31</span>
</td>
<td> </td>
<td class="rblock">       3.4.1.  Impact and Observation on Network Operation  . . . . . <span class="insert">32</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.4.2.  Measurement of the Impact  . . . . . . . . . . . . . . <span class="delete">32</span>
</td>
<td> </td>
<td class="rblock">       3.4.2.  Measurement of the Impact  . . . . . . . . . . . . . . <span class="insert">33</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.4.3.  System and Service Performance . . . . . . . . . . . . <span class="delete">33</span>
</td>
<td> </td>
<td class="rblock">       3.4.3.  System and Service Performance . . . . . . . . . . . . <span class="insert">34</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.4.4.  Monitoring Infrastructures . . . . . . . . . . . . . . <span class="delete">34</span>
</td>
<td> </td>
<td class="rblock">       3.4.4.  Monitoring Infrastructures . . . . . . . . . . . . . . <span class="insert">35</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     3.5.  Abstract Map Examples for Different Types of ISPs  . . . . <span class="delete">35</span>
</td>
<td> </td>
<td class="rblock">     3.5.  Abstract Map Examples for Different Types of ISPs  . . . . <span class="insert">36</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.5.1.  Small ISP with Single Internet Uplink  . . . . . . . . <span class="delete">35</span>
</td>
<td> </td>
<td class="rblock">       3.5.1.  Small ISP with Single Internet Uplink  . . . . . . . . <span class="insert">36</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.5.2.  ISP with Several Fixed Access Networks . . . . . . . . <span class="delete">38</span>
</td>
<td> </td>
<td class="rblock">       3.5.2.  ISP with Several Fixed Access Networks . . . . . . . . <span class="insert">39</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.5.3.  ISP with Fixed and Mobile Network  . . . . . . . . . . <span class="delete">39</span>
</td>
<td> </td>
<td class="rblock">       3.5.3.  ISP with Fixed and Mobile Network  . . . . . . . . . . <span class="insert">40</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     3.6.  Comprehensive Example for Map Calculation  . . . . . . . . <span class="delete">40</span>
</td>
<td> </td>
<td class="rblock">     3.6.  Comprehensive Example for Map Calculation  . . . . . . . . <span class="insert">41</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.6.1.  Example Network  . . . . . . . . . . . . . . . . . . . <span class="delete">41</span>
</td>
<td> </td>
<td class="rblock">       3.6.1.  Example Network  . . . . . . . . . . . . . . . . . . . <span class="insert">42</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.6.2.  Potential Input Data Processing and Storage  . . . . . <span class="delete">43</span>
</td>
<td> </td>
<td class="rblock">       3.6.2.  Potential Input Data Processing and Storage  . . . . . <span class="insert">44</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.6.3.  Calculation of Network Map from the Input Data . . . . <span class="delete">46</span>
</td>
<td> </td>
<td class="rblock">       3.6.3.  Calculation of Network Map from the Input Data . . . . <span class="insert">47</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       3.6.4.  Calculation of Cost Map  . . . . . . . . . . . . . . . <span class="delete">47</span>
</td>
<td> </td>
<td class="rblock">       3.6.4.  Calculation of Cost Map  . . . . . . . . . . . . . . . <span class="insert">48</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     3.7.  Deployment Experiences . . . . . . . . . . . . . . . . . . <span class="delete">49</span>
</td>
<td> </td>
<td class="rblock">     3.7.  Deployment Experiences . . . . . . . . . . . . . . . . . . <span class="insert">50</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   4.  Using ALTO for P2P Traffic Optimization  . . . . . . . . . . . <span class="delete">52</span>
</td>
<td> </td>
<td class="rblock">   4.  Using ALTO for P2P Traffic Optimization  . . . . . . . . . . . <span class="insert">53</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     4.1.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">52</span>
</td>
<td> </td>
<td class="rblock">     4.1.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">53</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       4.1.1.  Usage Scenario . . . . . . . . . . . . . . . . . . . . <span class="delete">52</span>
</td>
<td> </td>
<td class="rblock">       4.1.1.  Usage Scenario . . . . . . . . . . . . . . . . . . . . <span class="insert">53</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       4.1.2.  Applicability of ALTO  . . . . . . . . . . . . . . . . <span class="delete">52</span>
</td>
<td> </td>
<td class="rblock">       4.1.2.  Applicability of ALTO  . . . . . . . . . . . . . . . . <span class="insert">53</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     4.2.  Deployment Recommendations . . . . . . . . . . . . . . . . <span class="delete">55</span>
</td>
<td> </td>
<td class="rblock">     4.2.  Deployment Recommendations . . . . . . . . . . . . . . . . <span class="insert">56</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       4.2.1.  ALTO Services  . . . . . . . . . . . . . . . . . . . . <span class="delete">55</span>
</td>
<td> </td>
<td class="rblock">       4.2.1.  ALTO Services  . . . . . . . . . . . . . . . . . . . . <span class="insert">56</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       4.2.2.  Guidance Considerations  . . . . . . . . . . . . . . . <span class="delete">56</span>
</td>
<td> </td>
<td class="rblock">       4.2.2.  Guidance Considerations  . . . . . . . . . . . . . . . <span class="insert">57</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   5.  Using ALTO for CDNs  . . . . . . . . . . . . . . . . . . . . . <span class="delete">59</span>
</td>
<td> </td>
<td class="rblock">   5.  Using ALTO for CDNs  . . . . . . . . . . . . . . . . . . . . . <span class="insert">60</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     5.1.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">59</span>
</td>
<td> </td>
<td class="rblock">     5.1.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">60</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       5.1.1.  Usage Scenario . . . . . . . . . . . . . . . . . . . . <span class="delete">59</span>
</td>
<td> </td>
<td class="rblock">       5.1.1.  Usage Scenario . . . . . . . . . . . . . . . . . . . . <span class="insert">60</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       5.1.2.  Applicability of ALTO  . . . . . . . . . . . . . . . . <span class="delete">61</span>
</td>
<td> </td>
<td class="rblock">       5.1.2.  Applicability of ALTO  . . . . . . . . . . . . . . . . <span class="insert">62</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     5.2.  Deployment Recommendations . . . . . . . . . . . . . . . . <span class="delete">62</span>
</td>
<td> </td>
<td class="rblock">     5.2.  Deployment Recommendations . . . . . . . . . . . . . . . . <span class="insert">63</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       5.2.1.  ALTO Services  . . . . . . . . . . . . . . . . . . . . <span class="delete">62</span>
</td>
<td> </td>
<td class="rblock">       5.2.1.  ALTO Services  . . . . . . . . . . . . . . . . . . . . <span class="insert">63</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       5.2.2.  Guidance Considerations  . . . . . . . . . . . . . . . <span class="delete">63</span>
</td>
<td> </td>
<td class="rblock">       5.2.2.  Guidance Considerations  . . . . . . . . . . . . . . . <span class="insert">64</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   6.  Other Use Cases  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">65</span>
</td>
<td> </td>
<td class="rblock">   6.  Other Use Cases  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">66</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     6.1.  Application Guidance in Virtual Private Networks (VPNs)  . <span class="delete">65</span>
</td>
<td> </td>
<td class="rblock">     6.1.  Application Guidance in Virtual Private Networks (VPNs)  . <span class="insert">66</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     6.2.  In-Network Caching . . . . . . . . . . . . . . . . . . . . <span class="delete">67</span>
</td>
<td> </td>
<td class="rblock">     6.2.  In-Network Caching . . . . . . . . . . . . . . . . . . . . <span class="insert">68</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     6.3.  Other Application-based Network Operations . . . . . . . . <span class="delete">68</span>
</td>
<td> </td>
<td class="rblock">     6.3.  Other Application-based Network Operations . . . . . . . . <span class="insert">69</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . <span class="delete">69</span>
</td>
<td> </td>
<td class="rblock">   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . <span class="insert">70</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     7.1.  ALTO as a Protocol Crossing Trust Boundaries . . . . . . . <span class="delete">69</span>
</td>
<td> </td>
<td class="rblock">     7.1.  ALTO as a Protocol Crossing Trust Boundaries . . . . . . . <span class="insert">70</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     7.2.  Information Leakage from the ALTO Server . . . . . . . . . <span class="delete">70</span>
</td>
<td> </td>
<td class="rblock">     7.2.  Information Leakage from the ALTO Server . . . . . . . . . <span class="insert">71</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     7.3.  ALTO Server Access . . . . . . . . . . . . . . . . . . . . <span class="delete">71</span>
</td>
<td> </td>
<td class="rblock">     7.3.  ALTO Server Access . . . . . . . . . . . . . . . . . . . . <span class="insert">72</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     7.4.  Faking ALTO Guidance . . . . . . . . . . . . . . . . . . . <span class="delete">72</span>
</td>
<td> </td>
<td class="rblock">     7.4.  Faking ALTO Guidance . . . . . . . . . . . . . . . . . . . <span class="insert">73</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="delete">74</span>
</td>
<td> </td>
<td class="rblock">   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="insert">75</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   9.  Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">75</span>
</td>
<td> </td>
<td class="rblock">   9.  Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">76</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   10. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">76</span>
</td>
<td> </td>
<td class="rblock">   10. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">77</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   11. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">77</span>
</td>
<td> </td>
<td class="rblock">   11. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">78</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     11.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="delete">77</span>
</td>
<td> </td>
<td class="rblock">     11.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="insert">78</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">     11.2. Informative References . . . . . . . . . . . . . . . . . . <span class="delete">77</span>
</td>
<td> </td>
<td class="rblock">     11.2. Informative References . . . . . . . . . . . . . . . . . . <span class="insert">78</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">81</span>
</td>
<td> </td>
<td class="rblock">   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">82</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">1.  Introduction</td>
<td> </td>
<td class="right">1.  Introduction</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Many Internet applications are used to access resources such as</td>
<td> </td>
<td class="right">   Many Internet applications are used to access resources such as</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   pieces of information or server processes that are available in</td>
<td> </td>
<td class="right">   pieces of information or server processes that are available in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   several equivalent replicas on different hosts.  This includes, but</td>
<td> </td>
<td class="right">   several equivalent replicas on different hosts.  This includes, but</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   is not limited to, peer-to-peer (P2P) file sharing applications and</td>
<td> </td>
<td class="right">   is not limited to, peer-to-peer (P2P) file sharing applications and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Content Delivery Networks (CDNs).  The goal of Application-Layer</td>
<td> </td>
<td class="right">   Content Delivery Networks (CDNs).  The goal of Application-Layer</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Traffic Optimization (ALTO) is to provide guidance to applications</td>
<td> </td>
<td class="right">   Traffic Optimization (ALTO) is to provide guidance to applications</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   that have to select one or several hosts from a set of candidates,</td>
<td> </td>
<td class="right">   that have to select one or several hosts from a set of candidates,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   which are able to provide a desired resource.  The basic ideas and</td>
<td> </td>
<td class="right">   which are able to provide a desired resource.  The basic ideas and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   problem space of ALTO is described in [RFC5693] and the set of</td>
<td> </td>
<td class="right">   problem space of ALTO is described in [RFC5693] and the set of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   requirements is discussed in [RFC6708].  The ALTO protocol is</td>
<td> </td>
<td class="right">   requirements is discussed in [RFC6708].  The ALTO protocol is</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   specified in [RFC7285].  An ALTO server discovery procedure is</td>
<td> </td>
<td class="right">   specified in [RFC7285].  An ALTO server discovery procedure is</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   defined in [RFC7286].</td>
<td> </td>
<td class="right">   defined in [RFC7286].</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   This document discusses use cases and operational issues that can be</td>
<td> </td>
<td class="right">   This document discusses use cases and operational issues that can be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   expected when ALTO gets deployed.  This includes, but is not limited</td>
<td> </td>
<td class="right">   expected when ALTO gets deployed.  This includes, but is not limited</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   to, location of the ALTO server, imposed load to the ALTO server, and</td>
<td> </td>
<td class="right">   to, location of the ALTO server, imposed load to the ALTO server, and</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">from whom</span> the <span class="delete">queries are performed.</span>  This document provides guidance</td>
<td> </td>
<td class="rblock">   <span class="insert">who initiaties</span> the <span class="insert">queries.</span>  This document provides guidance on which</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   on which ALTO services to use, and it summarizes known challenges as</td>
<td> </td>
<td class="rblock">   ALTO services to use, and it summarizes known challenges as well as</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   well as deployment experiences, including potential processes to</td>
<td> </td>
<td class="rblock">   deployment experiences, including potential processes to generate</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   generate ALTO network and cost maps.  It thereby complements the</td>
<td> </td>
<td class="rblock">   ALTO network and cost maps.  It thereby complements the management</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   management considerations in the protocol specification [RFC7285],</td>
<td> </td>
<td class="rblock">   considerations in the protocol specification [RFC7285], which are</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   which are independent of any specific use of ALTO.</td>
<td> </td>
<td class="rblock">   independent of any specific use of ALTO.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">2.  General Considerations</td>
<td> </td>
<td class="right">2.  General Considerations</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">2.1.  ALTO Entities</td>
<td> </td>
<td class="right">2.1.  ALTO Entities</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">2.1.1.  Baseline Scenario</td>
<td> </td>
<td class="right">2.1.1.  Baseline Scenario</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The ALTO protocol [RFC7285] is a client/server protocol, operating</td>
<td> </td>
<td class="right">   The ALTO protocol [RFC7285] is a client/server protocol, operating</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   between a number of ALTO clients and an ALTO server, as sketched in</td>
<td> </td>
<td class="right">   between a number of ALTO clients and an ALTO server, as sketched in</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   Figure 1.  <span class="delete">In the following,</span> the baseline deployment scenario for</td>
<td> </td>
<td class="rblock">   Figure 1.  <span class="insert">Below,</span> the baseline deployment scenario for ALTO entities</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   ALTO entities is first reviewed independently of the actual use case.</td>
<td> </td>
<td class="rblock">   is first reviewed independently of the actual use case.  Specific</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   Specific examples are then discussed in the remainder of this</td>
<td> </td>
<td class="rblock">   examples are then discussed in the remainder of this document.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   document.</td>
<td> </td>
<td class="rblock"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                 +----------+</td>
<td> </td>
<td class="right">                 +----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                 |  ALTO    |</td>
<td> </td>
<td class="right">                 |  ALTO    |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                 |  Server  |</td>
<td> </td>
<td class="right">                 |  Server  |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                 +----------+</td>
<td> </td>
<td class="right">                 +----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                       ^</td>
<td> </td>
<td class="right">                       ^</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                _.-----|------.</td>
<td> </td>
<td class="right">                _.-----|------.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">            ,-''       |       `--.</td>
<td> </td>
<td class="right">            ,-''       |       `--.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          ,'           |           `.</td>
<td> </td>
<td class="right">          ,'           |           `.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">         (     Network |             )</td>
<td> </td>
<td class="right">         (     Network |             )</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-4"> page 6, line 9<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-4"> page 6, line 6<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      performance or quality of experience, while improving resource</td>
<td> </td>
<td class="right">      performance or quality of experience, while improving resource</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      consumption in the underlying network infrastructure.</td>
<td> </td>
<td class="right">      consumption in the underlying network infrastructure.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   o  ALTO Server: A logical entity that provides interfaces to the</td>
<td> </td>
<td class="right">   o  ALTO Server: A logical entity that provides interfaces to the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      queries to the ALTO service.</td>
<td> </td>
<td class="right">      queries to the ALTO service.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   o  ALTO Client: The logical entity that sends ALTO queries.</td>
<td> </td>
<td class="right">   o  ALTO Client: The logical entity that sends ALTO queries.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      Depending on the architecture of the application, one may embed it</td>
<td> </td>
<td class="right">      Depending on the architecture of the application, one may embed it</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      in the resource consumer and/or in the resource directory.</td>
<td> </td>
<td class="right">      in the resource consumer and/or in the resource directory.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">According</span> to that <span class="delete">definition,</span> both an ALTO server and an ALTO client</td>
<td> </td>
<td class="rblock">   <span class="insert">This document uses the term "Resource Directory" as defined in</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   are logical entities.  <span class="delete">An</span> ALTO service may be offered by more than</td>
<td> </td>
<td class="rblock">
<span class="insert">   [RFC5693], i.e.,</span> to <span class="insert">denote an entity</span> that <span class="insert">is logically separate from</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   one ALTO <span class="delete">servers.</span>  In ALTO deployments, the functionality of an ALTO</td>
<td> </td>
<td class="rblock"><span class="insert">   the resource consumer and that assists the resource consumer to</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   server can therefore be realized by several server instances, e.g.,</td>
<td> </td>
<td class="rblock"><span class="insert">   identify a set of resource providers (e.g., a tracker in a peer-to-≤/span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   by using load balancing between different physical servers.  The term</td>
<td> </td>
<td class="rblock"><span class="insert">   peer application).  This term and its meaning is not to be confused</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   ALTO server should not be confused with use of a single physical</td>
<td> </td>
<td class="rblock"><span class="insert">   with the "Information Resource Directory (IRD)" defined as a part of</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   server.</td>
<td> </td>
<td class="rblock"><span class="insert">   the ALTO protocol [RFC7285], i.e., a list of available information</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock"><span class="insert">   resources offered by a specific ALTO service and the URIs at which</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock"><span class="insert">   each can be accessed.  For the remainder of this document, the term</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock"><span class="insert">   Resource Directory is to be interpreted as defined in [RFC5693].</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock"><span class="insert"></span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">
<span class="insert">   According to these definitions,</span> both an ALTO server and an ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   client are logical entities.  <span class="insert">A particular</span> ALTO service may be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   offered by more than one ALTO <span class="insert">server.</span>  In ALTO deployments, the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   functionality of an ALTO server can therefore be realized by several</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   server instances, e.g., by using load balancing between different</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   physical servers.  The term ALTO server should not be confused with</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   use of a single physical server.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">2.1.2.  Placement of ALTO Entities</td>
<td> </td>
<td class="right">2.1.2.  Placement of ALTO Entities</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   The ALTO server and ALTO clients <span class="delete">can</span> be situated at various <span class="delete">entities</span>
</td>
<td> </td>
<td class="rblock">   The ALTO server and ALTO clients <span class="insert">may</span> be situated at various <span class="insert">places</span> in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   in a network <span class="delete">deployment.  The first</span> differentiation is whether the</td>
<td> </td>
<td class="rblock">   a network <span class="insert">topology.  An importent</span> differentiation is whether the ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   ALTO client is located on the <span class="delete">actual</span> host that <span class="delete">runs</span> the <span class="delete">application,</span>
</td>
<td> </td>
<td class="rblock">   client is located on the host that <span class="insert">is</span> the <span class="insert">endpoint of the data</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">   as shown in</span> Figure <span class="delete">2,</span> or <span class="delete">if</span> the ALTO client is located on a resource</td>
<td> </td>
<td class="rblock">
<span class="insert">   transmissions to be optimized with ALTO (see</span> Figure <span class="insert">2),</span> or <span class="insert">whether</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   directory, <span class="delete">as shown</span> in Figure <span class="delete">3.</span>
</td>
<td> </td>
<td class="rblock">   the ALTO client is located on a resource directory, <span class="insert">which assists</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">
<span class="insert">   peers or clients</span> in <span class="insert">finding other peers or servers, respectively, but</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">
<span class="insert">   does not directly take part in the data transmission (see</span> Figure <span class="insert">3).</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                              +--------------+</td>
<td> </td>
<td class="right">                                              +--------------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                              |     App      |</td>
<td> </td>
<td class="right">                                              |     App      |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                              +-----------+  |</td>
<td> </td>
<td class="right">                                              +-----------+  |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                          ===&gt;|ALTO Client|  |****</td>
<td> </td>
<td class="right">                                          ===&gt;|ALTO Client|  |****</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                       ===    +-----------+--+   *</td>
<td> </td>
<td class="right">                                       ===    +-----------+--+   *</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                    ===                    *     *</td>
<td> </td>
<td class="right">                                    ===                    *     *</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                 ===                       *     *</td>
<td> </td>
<td class="right">                                 ===                       *     *</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      +-------+     +-------+&lt;===             +--------------+   *</td>
<td> </td>
<td class="right">      +-------+     +-------+&lt;===             +--------------+   *</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      |       |     |       |                 |     App      |   *</td>
<td> </td>
<td class="right">      |       |     |       |                 |     App      |   *</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-5"> page 8, line 51<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-5"> page 9, line 41<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   As explained in [RFC5693], from this follows that at least three</td>
<td> </td>
<td class="right">   As explained in [RFC5693], from this follows that at least three</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   different kinds of entities can operate an ALTO server:</td>
<td> </td>
<td class="right">   different kinds of entities can operate an ALTO server:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   1.  Network operators.  Network Service Providers (NSPs) such as</td>
<td> </td>
<td class="right">   1.  Network operators.  Network Service Providers (NSPs) such as</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       Internet Service Providers (ISPs) may have detailed knowledge of</td>
<td> </td>
<td class="right">       Internet Service Providers (ISPs) may have detailed knowledge of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       their network topology and policies.  In this case, the source of</td>
<td> </td>
<td class="right">       their network topology and policies.  In this case, the source of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       the topology information and the provider of the ALTO server may</td>
<td> </td>
<td class="right">       the topology information and the provider of the ALTO server may</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       be part of the same organization.</td>
<td> </td>
<td class="right">       be part of the same organization.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   2.  Third parties.  Topology information could also be collected by</td>
<td> </td>
<td class="right">   2.  Third parties.  Topology information could also be collected by</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       <span class="delete">entities separate from network operators but</span> that <span class="delete">may either have</span>
</td>
<td> </td>
<td class="rblock">       <span class="insert">companies or organizations</span> that <span class="insert">are distinct from the</span> network</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">       collected</span> network <span class="delete">information or</span> have <span class="delete">arrangements</span> with network</td>
<td> </td>
<td class="rblock">       <span class="insert">operators, yet</span> have <span class="insert">arranged certain legal agreements</span> with <span class="insert">one or</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       <span class="delete">operators</span> to <span class="delete">learn the network information.</span>  Examples of such</td>
<td> </td>
<td class="rblock">
<span class="insert">       more</span> network <span class="insert">operators, regarding access</span> to <span class="insert">their topology</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       entities could be Content Delivery Network (CDN) operators or</td>
<td> </td>
<td class="rblock"><span class="insert">       information and/or doing measurements in their networks.</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       companies specialized on offering ALTO services on behalf of</td>
<td> </td>
<td class="rblock">       Examples of such entities could be Content Delivery Network (CDN)</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       ISPs.</td>
<td> </td>
<td class="rblock">       operators or companies specialized on offering ALTO services on</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">       behalf of ISPs.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   3.  User communities.  User communities could run distributed</td>
<td> </td>
<td class="right">   3.  User communities.  User communities could run distributed</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       measurements for estimating the topology of the Internet.  In</td>
<td> </td>
<td class="right">       measurements for estimating the topology of the Internet.  In</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       this case the topology information may not originate from ISP</td>
<td> </td>
<td class="right">       this case the topology information may not originate from ISP</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       data.</td>
<td> </td>
<td class="right">       data.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Regarding the interaction between ALTO server and client, ALTO</td>
<td> </td>
<td class="right">   Regarding the interaction between ALTO server and client, ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   deployments can be differentiated according to the following aspects:</td>
<td> </td>
<td class="right">   deployments can be differentiated according to the following aspects:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   1.  Applicable trust model: The deployment of ALTO can differ</td>
<td> </td>
<td class="right">   1.  Applicable trust model: The deployment of ALTO can differ</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       depending on whether ALTO client and ALTO server are operated</td>
<td> </td>
<td class="right">       depending on whether ALTO client and ALTO server are operated</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       within the same organization and/or network, or not.  This</td>
<td> </td>
<td class="right">       within the same organization and/or network, or not.  This</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       affects a <span class="delete">lot</span> of constraints, because the trust model is very</td>
<td> </td>
<td class="rblock">       affects a <span class="insert">number</span> of constraints, because the trust model is very</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       different.  For instance, as discussed later in this memo, the</td>
<td> </td>
<td class="right">       different.  For instance, as discussed later in this memo, the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       level-of-detail of maps can depend on who the involved parties</td>
<td> </td>
<td class="right">       level-of-detail of maps can depend on who the involved parties</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       actually are.</td>
<td> </td>
<td class="right">       actually are.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   2.  Composition of the user group: The main use case of ALTO is to</td>
<td> </td>
<td class="right">   2.  Composition of the user group: The main use case of ALTO is to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       provide guidance to any Internet application.  However, an</td>
<td> </td>
<td class="right">       provide guidance to any Internet application.  However, an</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       operator of an ALTO server could also decide to offer guidance</td>
<td> </td>
<td class="right">       operator of an ALTO server could also decide to offer guidance</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       only to a set of well-known ALTO clients, e. g., after</td>
<td> </td>
<td class="right">       only to a set of well-known ALTO clients, e. g., after</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       authentication and authorization.  In the peer-to-peer</td>
<td> </td>
<td class="right">       authentication and authorization.  In the peer-to-peer</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       application use case, this could imply that only selected</td>
<td> </td>
<td class="right">       application use case, this could imply that only selected</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-6"> page 10, line 33<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-6"> page 11, line 26<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       any internal operational data, such as the IP addresses of</td>
<td> </td>
<td class="right">       any internal operational data, such as the IP addresses of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       candidate resource providers.  The ALTO protocol supports this</td>
<td> </td>
<td class="right">       candidate resource providers.  The ALTO protocol supports this</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       mode of operation by the Network and Cost Map Service.</td>
<td> </td>
<td class="right">       mode of operation by the Network and Cost Map Service.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   2.  The ALTO server provides a query interface that returns costs or</td>
<td> </td>
<td class="right">   2.  The ALTO server provides a query interface that returns costs or</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       rankings for explicitly specified endpoints.  This means that the</td>
<td> </td>
<td class="right">       rankings for explicitly specified endpoints.  This means that the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       query of the ALTO client has to include additional information</td>
<td> </td>
<td class="right">       query of the ALTO client has to include additional information</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       (e.g., a list of IP addresses).  The server then calculates and</td>
<td> </td>
<td class="right">       (e.g., a list of IP addresses).  The server then calculates and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       returns costs or rankings for the endpoints specified in the</td>
<td> </td>
<td class="right">       returns costs or rankings for the endpoints specified in the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       request (e.g., a sorted list of the IP addresses).  In ALTO, this</td>
<td> </td>
<td class="right">       request (e.g., a sorted list of the IP addresses).  In ALTO, this</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       <span class="delete">method</span> can be realized by the Endpoint Cost <span class="delete">Service.</span>
</td>
<td> </td>
<td class="rblock">       <span class="insert">approach</span> can be realized by the Endpoint Cost <span class="insert">Service and other</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock"><span class="insert">       related services.</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Both approaches have different privacy implications for the server</td>
<td> </td>
<td class="right">   Both approaches have different privacy implications for the server</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   and client:</td>
<td> </td>
<td class="right">   and client:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   For the client, approach 1 has the advantage that all operational</td>
<td> </td>
<td class="right">   For the client, approach 1 has the advantage that all operational</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   information stays within the client and is not revealed to the</td>
<td> </td>
<td class="right">   information stays within the client and is not revealed to the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   provider of the server.  However, this service implies that a network</td>
<td> </td>
<td class="right">   provider of the server.  However, this service implies that a network</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   operator providing an ALTO server has to expose a certain amount of</td>
<td> </td>
<td class="right">   operator providing an ALTO server has to expose a certain amount of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   information about its network structure (e.g., IP prefixes or</td>
<td> </td>
<td class="right">   information about its network structure (e.g., IP prefixes or</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   topology information in general).</td>
<td> </td>
<td class="right">   topology information in general).</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-7"> page 11, line 16<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-7"> page 12, line 11<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   As a result, both approaches have their pros and cons, as further</td>
<td> </td>
<td class="right">   As a result, both approaches have their pros and cons, as further</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   detailed in Section 3.3.</td>
<td> </td>
<td class="right">   detailed in Section 3.3.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">2.2.3.  More Advanced Deployments</td>
<td> </td>
<td class="right">2.2.3.  More Advanced Deployments</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   From an ALTO client's perspective, there are different ways to use</td>
<td> </td>
<td class="right">   From an ALTO client's perspective, there are different ways to use</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   ALTO:</td>
<td> </td>
<td class="right">   ALTO:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   1.  Single service instance with single metric guidance: An ALTO</td>
<td> </td>
<td class="right">   1.  Single service instance with single metric guidance: An ALTO</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       client only obtains guidance regarding a single metric from a</td>
<td> </td>
<td class="rblock">       client only obtains guidance regarding a single metric <span class="insert">(e.g.,</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       single ALTO service, e.g., an ALTO server that is offered by the</td>
<td> </td>
<td class="rblock">
<span class="insert">       "routingcost")</span> from a single ALTO service, e.g., an ALTO server</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       network service provider of the corresponding access network.</td>
<td> </td>
<td class="rblock">       that is offered by the network service provider of the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       Corresponding ALTO server instances can be discovered e.g. by</td>
<td> </td>
<td class="rblock">       corresponding access network.  Corresponding ALTO server</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       ALTO server discovery [RFC7286] [I-D.kiesel-alto-xdom-disc].</td>
<td> </td>
<td class="rblock">       instances can be discovered e.g. by ALTO server discovery</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       <span class="delete">Being a</span> REST-ful protocol, an ALTO <span class="delete">service can</span> use <span class="delete">known methods</span>
</td>
<td> </td>
<td class="rblock">       [RFC7286] [I-D.kiesel-alto-xdom-disc].  <span class="insert">Since the ALTO protocol</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">       to balance the</span> load <span class="delete">between different server instances or between</span>
</td>
<td> </td>
<td class="rblock">
<span class="insert">       is an HTTP-based,</span> REST-ful protocol, <span class="insert">the operator of</span> an ALTO <span class="insert">may</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">       clusters</span> of <span class="delete">servers, i.e., an</span> ALTO <span class="delete">server can be realized by many</span>
</td>
<td> </td>
<td class="rblock">       use <span class="insert">well-known techniques for serving large web sites, such as</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">       instances with a load balancing scheme.</span>  The ALTO protocol also</td>
<td> </td>
<td class="rblock">       load <span class="insert">balancers, in order to serve a large number</span> of ALTO <span class="insert">queries.</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       supports the use of different URIs for different ALTO <span class="delete">features.</span>
</td>
<td> </td>
<td class="rblock">       The ALTO protocol also supports the use of different URIs for</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">       different ALTO <span class="insert">features and thereby the distribution of the</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock"><span class="insert">       service onto several servers.</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   2.  Single service instance with multiple metric guidance: An ALTO</td>
<td> </td>
<td class="right">   2.  Single service instance with multiple metric guidance: An ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       client could also query an ALTO service for different kinds of</td>
<td> </td>
<td class="right">       client could also query an ALTO service for different kinds of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       information, e.g., cost maps with different metrics.  The ALTO</td>
<td> </td>
<td class="right">       information, e.g., cost maps with different metrics.  The ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       protocol is extensible and permits such operation.  However, ALTO</td>
<td> </td>
<td class="right">       protocol is extensible and permits such operation.  However, ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       does not define how a client shall deal with different forms of</td>
<td> </td>
<td class="right">       does not define how a client shall deal with different forms of</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       guidance, and it is up to the client to <span class="delete">determine what provided</span>
</td>
<td> </td>
<td class="rblock">       guidance, and it is up to the client to <span class="insert">interpret the received</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       information <span class="delete">may indeed be useful.</span>
</td>
<td> </td>
<td class="rblock">       information <span class="insert">accordingly.</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   3.  Multiple service instances: An ALTO client can also decide to</td>
<td> </td>
<td class="right">   3.  Multiple service instances: An ALTO client can also decide to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       access multiple ALTO servers providing guidance, possibly from</td>
<td> </td>
<td class="right">       access multiple ALTO servers providing guidance, possibly from</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       different operators or organizations.  Each of these services may</td>
<td> </td>
<td class="right">       different operators or organizations.  Each of these services may</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       only offer partial guidance, e.g., for a certain network</td>
<td> </td>
<td class="right">       only offer partial guidance, e.g., for a certain network</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       partition.  In that case, it may be difficult for an ALTO client</td>
<td> </td>
<td class="right">       partition.  In that case, it may be difficult for an ALTO client</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       to compare the guidance from different services.  Different</td>
<td> </td>
<td class="right">       to compare the guidance from different services.  Different</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       organization may use different methods to determine maps, and</td>
<td> </td>
<td class="right">       organization may use different methods to determine maps, and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       they may also have different (possibly even contradicting or</td>
<td> </td>
<td class="right">       they may also have different (possibly even contradicting or</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       competing) guidance objectives.  How to discover multiple ALTO</td>
<td> </td>
<td class="right">       competing) guidance objectives.  How to discover multiple ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-8"> page 12, line 28<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-8"> page 13, line 21<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   independently, irrespectively of other ISPs.  This may be true for</td>
<td> </td>
<td class="right">   independently, irrespectively of other ISPs.  This may be true for</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   most envisioned deployments of ALTO but there may be certain</td>
<td> </td>
<td class="right">   most envisioned deployments of ALTO but there may be certain</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   deployments that may have different settings.  Figure 4 shows such</td>
<td> </td>
<td class="right">   deployments that may have different settings.  Figure 4 shows such</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   setting with a university network that is connected to two upstream</td>
<td> </td>
<td class="right">   setting with a university network that is connected to two upstream</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   providers.  NREN is a National Research and Education Network, which</td>
<td> </td>
<td class="right">   providers.  NREN is a National Research and Education Network, which</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   provides cheap high-speed connectivity to specific destinations,</td>
<td> </td>
<td class="right">   provides cheap high-speed connectivity to specific destinations,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   e.g., other universities.  ISP is a commercial upstream provider from</td>
<td> </td>
<td class="right">   e.g., other universities.  ISP is a commercial upstream provider from</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   which the university buys connectivity to all destinations that</td>
<td> </td>
<td class="right">   which the university buys connectivity to all destinations that</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   cannot be reached via the NREN.  The university, as well as ISP, are</td>
<td> </td>
<td class="right">   cannot be reached via the NREN.  The university, as well as ISP, are</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   operating their own ALTO server.  The ALTO clients, located on the</td>
<td> </td>
<td class="right">   operating their own ALTO server.  The ALTO clients, located on the</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   peers will contact the ALTO server located at the university.</td>
<td> </td>
<td class="rblock">   peers <span class="insert">in the university network</span> will contact the ALTO server located</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   at the university.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          +-----------+</td>
<td> </td>
<td class="right">          +-----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          |    ISP    |</td>
<td> </td>
<td class="right">          |    ISP    |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          |   ALTO    |&lt;==========================++</td>
<td> </td>
<td class="right">          |   ALTO    |&lt;==========================++</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          |  Server   |                           ||</td>
<td> </td>
<td class="right">          |  Server   |                           ||</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          +-----------+                           ||</td>
<td> </td>
<td class="right">          +-----------+                           ||</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">            ,-------.            ,------.         ||</td>
<td> </td>
<td class="right">            ,-------.            ,------.         ||</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">         ,-'         `-.      ,-'         `-.     ||</td>
<td> </td>
<td class="right">         ,-'         `-.      ,-'         `-.     ||</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">        /   Commercial  \    /               \    ||</td>
<td> </td>
<td class="right">        /   Commercial  \    /               \    ||</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       (    Upstream     )  (       NREN      )   ||</td>
<td> </td>
<td class="right">       (    Upstream     )  (       NREN      )   ||</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-9"> page 13, line 39<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-9"> page 14, line 39<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">         +----------+         +----------+            ||</td>
<td> </td>
<td class="right">         +----------+         +----------+            ||</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">              /\                                      ||</td>
<td> </td>
<td class="right">              /\                                      ||</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">              ||                                      ||</td>
<td> </td>
<td class="right">              ||                                      ||</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">              ++======================================++</td>
<td> </td>
<td class="right">              ++======================================++</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      Legend:</td>
<td> </td>
<td class="right">      Legend:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      === ALTO protocol</td>
<td> </td>
<td class="right">      === ALTO protocol</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                Figure 4: Example of a cascaded ALTO server</td>
<td> </td>
<td class="right">                Figure 4: Example of a cascaded ALTO server</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   In this <span class="delete">setting</span> all <span class="delete">"destinations" useful for</span> the <span class="delete">peers within</span> NREN</td>
<td> </td>
<td class="rblock">   In this <span class="insert">setting,</span> all <span class="insert">destinations that can be reached via</span> the NREN</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   are <span class="delete">free-of-charge for the peers located in the university network</span>
</td>
<td> </td>
<td class="rblock">   are preferred in the rating of the <span class="insert">university's</span> ALTO <span class="insert">server.  In</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">   (i.e., they are</span> preferred in the rating of the ALTO <span class="delete">server).</span>
</td>
<td> </td>
<td class="rblock">
<span class="insert">   contrast,</span> all traffic that is not <span class="insert">routed via the</span> NREN will be handled</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">   However,</span> all traffic that is not <span class="delete">towards</span> NREN will be handled by the</td>
<td> </td>
<td class="rblock">   by the <span class="insert">commercial</span> upstream <span class="insert">ISP and is in general less preferred due</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">ISP</span> upstream <span class="delete">provider.</span>  Therefore, the ALTO server at the university</td>
<td> </td>
<td class="rblock"><span class="insert">   to the associated costs.  Yet, there may be significant differences</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   may also include the guidance given by the ISP ALTO server in its</td>
<td> </td>
<td class="rblock">
<span class="insert">   between various destinations reached via the ISP.</span>  Therefore, the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   replies to the ALTO clients.  This is an example for cascaded ALTO</td>
<td> </td>
<td class="rblock">   ALTO server at the university may also include the guidance given by</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   servers.</td>
<td> </td>
<td class="rblock">   the ISP ALTO server in its replies to the ALTO clients.  This is an</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   example for cascaded ALTO servers.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">3.  Deployment Considerations by ISPs</td>
<td> </td>
<td class="right">3.  Deployment Considerations by ISPs</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">3.1.  Objectives for the Guidance to Applications</td>
<td> </td>
<td class="right">3.1.  Objectives for the Guidance to Applications</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">3.1.1.  General Objectives for Traffic Optimization</td>
<td> </td>
<td class="right">3.1.1.  General Objectives for Traffic Optimization</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The Internet consists of many networks.  The networks are operated by</td>
<td> </td>
<td class="right">   The Internet consists of many networks.  The networks are operated by</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Network Service Providers (NSP) or Internet Service Providers (ISP),</td>
<td> </td>
<td class="right">   Network Service Providers (NSP) or Internet Service Providers (ISP),</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   which also include e.g. universities, enterprises, or other</td>
<td> </td>
<td class="right">   which also include e.g. universities, enterprises, or other</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-10"> page 14, line 48<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-10"> page 15, line 48<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   2.  Intra-network traffic localization: In case of large ISPs, the</td>
<td> </td>
<td class="right">   2.  Intra-network traffic localization: In case of large ISPs, the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       network may be grouped into several networks, domains, or</td>
<td> </td>
<td class="right">       network may be grouped into several networks, domains, or</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       Autonomous Systems (ASs).  The core network includes one or</td>
<td> </td>
<td class="right">       Autonomous Systems (ASs).  The core network includes one or</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       several backbone networks, which are connected to multiple</td>
<td> </td>
<td class="right">       several backbone networks, which are connected to multiple</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       aggregation, metro, and access networks.  If traffic can be</td>
<td> </td>
<td class="right">       aggregation, metro, and access networks.  If traffic can be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       limited to certain areas such as access networks, this decreases</td>
<td> </td>
<td class="right">       limited to certain areas such as access networks, this decreases</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       the usage of backbone and thus helps to save resources and costs.</td>
<td> </td>
<td class="right">       the usage of backbone and thus helps to save resources and costs.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   3.  Network off-loading: Compared to fixed networks, mobile networks</td>
<td> </td>
<td class="right">   3.  Network off-loading: Compared to fixed networks, mobile networks</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">       have some special characteristics, including <span class="delete">small</span>er link</td>
<td> </td>
<td class="rblock">       have some special characteristics, including <span class="insert">low</span>er link</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       bandwidth, high cost, limited radio frequency resource, and</td>
<td> </td>
<td class="right">       bandwidth, high cost, limited radio frequency resource, and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       limited terminal battery.  In mobile networks, wireless links</td>
<td> </td>
<td class="right">       limited terminal battery.  In mobile networks, wireless links</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       should be used efficiently.  For example, in the case of a P2P</td>
<td> </td>
<td class="right">       should be used efficiently.  For example, in the case of a P2P</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       service, it is likely that hosts should prefer retrieving data</td>
<td> </td>
<td class="right">       service, it is likely that hosts should prefer retrieving data</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       from hosts in fixed networks, and avoid retrieving data from</td>
<td> </td>
<td class="right">       from hosts in fixed networks, and avoid retrieving data from</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       mobile hosts.</td>
<td> </td>
<td class="right">       mobile hosts.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   4.  Application tuning: ALTO is also a tool to optimize the</td>
<td> </td>
<td class="right">   4.  Application tuning: ALTO is also a tool to optimize the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       performance of applications that depend on the network and</td>
<td> </td>
<td class="right">       performance of applications that depend on the network and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       perform resource provider selection decisions among network</td>
<td> </td>
<td class="right">       perform resource provider selection decisions among network</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-11"> page 16, line 32<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-11"> page 17, line 32<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                            `-------'</td>
<td> </td>
<td class="right">                            `-------'</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       Legend:</td>
<td> </td>
<td class="right">       Legend:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       ### preferred "connections"</td>
<td> </td>
<td class="right">       ### preferred "connections"</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       --- non-preferred "connections"</td>
<td> </td>
<td class="right">       --- non-preferred "connections"</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">               Figure 5: Inter-network traffic localization</td>
<td> </td>
<td class="right">               Figure 5: Inter-network traffic localization</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Examples for corresponding ALTO maps can be found in Section 3.5.</td>
<td> </td>
<td class="right">   Examples for corresponding ALTO maps can be found in Section 3.5.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Depending on the application characteristics, it may not be possible</td>
<td> </td>
<td class="right">   Depending on the application characteristics, it may not be possible</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   or <span class="delete">even not be</span> desirable to completely localize all traffic.</td>
<td> </td>
<td class="rblock">   or <span class="insert">not even</span> desirable to completely localize all traffic.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">3.1.3.  Intra-Network Traffic Localization</td>
<td> </td>
<td class="right">3.1.3.  Intra-Network Traffic Localization</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The previous section describes the results of the ALTO guidance on an</td>
<td> </td>
<td class="right">   The previous section describes the results of the ALTO guidance on an</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   inter-network level.  In the same way, ALTO can also be used for</td>
<td> </td>
<td class="right">   inter-network level.  In the same way, ALTO can also be used for</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   intra-network localization.  In this case, ALTO provides guidance on</td>
<td> </td>
<td class="right">   intra-network localization.  In this case, ALTO provides guidance on</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   which internal hosts are to be preferred inside a single network</td>
<td> </td>
<td class="right">   which internal hosts are to be preferred inside a single network</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   (e.g., one AS).  This application-level traffic engineering can</td>
<td> </td>
<td class="right">   (e.g., one AS).  This application-level traffic engineering can</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   reduce the capacity requirements in the core network of an ISP.</td>
<td> </td>
<td class="right">   reduce the capacity requirements in the core network of an ISP.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Figure 6 shows such a scenario where Host 1 and Host 2 are located in</td>
<td> </td>
<td class="right">   Figure 6 shows such a scenario where Host 1 and Host 2 are located in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-12"> page 17, line 35<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-12"> page 18, line 35<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       ### preferred "connections"</td>
<td> </td>
<td class="right">       ### preferred "connections"</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       --- non-preferred "connections"</td>
<td> </td>
<td class="right">       --- non-preferred "connections"</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">               Figure 6: Intra-network traffic localization</td>
<td> </td>
<td class="right">               Figure 6: Intra-network traffic localization</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The operator can guide the hosts in such a situation to try first</td>
<td> </td>
<td class="right">   The operator can guide the hosts in such a situation to try first</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   local hosts in the same network islands, avoiding or at least</td>
<td> </td>
<td class="right">   local hosts in the same network islands, avoiding or at least</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   lowering the effect on the bottleneck link, as shown in Figure 6.</td>
<td> </td>
<td class="right">   lowering the effect on the bottleneck link, as shown in Figure 6.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The objective is to avoid bottlenecks by optimized endpoint selection</td>
<td> </td>
<td class="right">   The objective is to avoid bottlenecks by optimized endpoint selection</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   at application level.  ALTO is not a method to deal with the</td>
<td> </td>
<td class="rblock">   at application level.  <span class="insert">That said, it must be understood that</span> ALTO is</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   congestion at the bottleneck.</td>
<td> </td>
<td class="rblock">   not a <span class="insert">general purpose</span> method to deal with the congestion at the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   bottleneck.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">3.1.4.  Network Off-Loading</td>
<td> </td>
<td class="right">3.1.4.  Network Off-Loading</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Another scenario is off-loading traffic from networks.  This use of</td>
<td> </td>
<td class="right">   Another scenario is off-loading traffic from networks.  This use of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   ALTO can be beneficial in particular in mobile networks.  A network</td>
<td> </td>
<td class="right">   ALTO can be beneficial in particular in mobile networks.  A network</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   operator may have the desire to guide hosts in its <span class="delete">own</span> mobile network</td>
<td> </td>
<td class="rblock">   operator may have the desire to guide hosts in its mobile network to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   to use hosts outside this mobile network.  One reason <span class="delete">can</span> be that the</td>
<td> </td>
<td class="rblock">   use hosts outside this mobile network.  One reason <span class="insert">could</span> be that the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   wireless network <span class="delete">is</span> not <span class="delete">made</span> for <span class="delete">the load caused by, e.g., peer-to-≤/span>
</td>
<td> </td>
<td class="rblock">   wireless network <span class="insert">or the mobile hosts were</span> not <span class="insert">designed</span> for <span class="insert">direct</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">   peer applications,</span> and it <span class="delete">therefore</span> makes sense <span class="delete">when</span> peers fetch</td>
<td> </td>
<td class="rblock">
<span class="insert">   peer-to-peer communications between mobile hosts,</span> and <span class="insert">therefore,</span> it</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">their data</span> from remote peers in other parts of the Internet.</td>
<td> </td>
<td class="rblock">   makes sense <span class="insert">for</span> peers <span class="insert">to</span> fetch <span class="insert">content</span> from remote peers in other</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   parts of the Internet.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                            ,-------.         +-----------+</td>
<td> </td>
<td class="right">                            ,-------.         +-----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          ,---.          ,-'         `-.      |   Host 1  |</td>
<td> </td>
<td class="right">          ,---.          ,-'         `-.      |   Host 1  |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       ,-'     `-.      /     ISP 1   +-------|ALTO Client|</td>
<td> </td>
<td class="right">       ,-'     `-.      /     ISP 1   +-------|ALTO Client|</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      /           \    /    (Mobile   |  \    +-----------+</td>
<td> </td>
<td class="right">      /           \    /    (Mobile   |  \    +-----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">     /    ISP X    \   |    network)  |  |    +-----------+</td>
<td> </td>
<td class="right">     /    ISP X    \   |    network)  |  |    +-----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">    /               \  \              +-------|   Host 2  |</td>
<td> </td>
<td class="right">    /               \  \              +-------|   Host 2  |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   ;             #############################|ALTO Client|</td>
<td> </td>
<td class="right">   ;             #############################|ALTO Client|</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   |             #   |   `-.         ,-'      +-----------+</td>
<td> </td>
<td class="right">   |             #   |   `-.         ,-'      +-----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   |             #   |      `-------'</td>
<td> </td>
<td class="right">   |             #   |      `-------'</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-13"> page 18, line 35<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-13"> page 19, line 35<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       ### preferred "connections"</td>
<td> </td>
<td class="right">       ### preferred "connections"</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       --- non-preferred "connections"</td>
<td> </td>
<td class="right">       --- non-preferred "connections"</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">              Figure 7: ALTO traffic network de-localization</td>
<td> </td>
<td class="right">              Figure 7: ALTO traffic network de-localization</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Figure 7 shows the result of such a guidance process where Host 2</td>
<td> </td>
<td class="right">   Figure 7 shows the result of such a guidance process where Host 2</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   prefers a connection with Host 3 instead of Host 1, as shown in</td>
<td> </td>
<td class="right">   prefers a connection with Host 3 instead of Host 1, as shown in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Figure 5.</td>
<td> </td>
<td class="right">   Figure 5.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   A realization of this scenario may have certain limitations and may</td>
<td> </td>
<td class="right">   A realization of this scenario may have certain limitations and may</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   not be possible in all cases.  For instance, it may require <span class="delete">that</span> the</td>
<td> </td>
<td class="rblock">   not be possible in all cases.  For instance, it may require the ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   ALTO server <span class="delete">can</span> distinguish mobile and non-mobile <span class="delete">hosts, e.g.,</span> based</td>
<td> </td>
<td class="rblock">   server <span class="insert">to</span> distinguish mobile and non-mobile <span class="insert">hosts</span> based on their IP</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   on their IP address.  This may depend on mobility solutions and may</td>
<td> </td>
<td class="rblock">   address.  This may depend on mobility solutions and may not be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   not be possible or accurate.  In general, ALTO is not intended as a</td>
<td> </td>
<td class="rblock">   possible or accurate.  In general, ALTO is not intended as a <span class="insert">fine-</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">fine-grained</span> traffic engineering solution for individual hosts.</td>
<td> </td>
<td class="rblock">
<span class="insert">   grained</span> traffic engineering solution for individual hosts.  Instead,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   Instead, it typically works on aggregates (e.g., if it is known that</td>
<td> </td>
<td class="rblock">   it typically works on aggregates (e.g., if it is known that certain</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   certain IP prefixes are often assigned to mobile users).</td>
<td> </td>
<td class="rblock">   IP prefixes are often assigned to mobile users).</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">3.1.5.  Application Tuning</td>
<td> </td>
<td class="right">3.1.5.  Application Tuning</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   ALTO can also provide guidance to optimize the application-level</td>
<td> </td>
<td class="right">   ALTO can also provide guidance to optimize the application-level</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   topology of networked applications, e.g., by exposing network</td>
<td> </td>
<td class="right">   topology of networked applications, e.g., by exposing network</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   performance information.  Applications can often run their own</td>
<td> </td>
<td class="right">   performance information.  Applications can often run their own</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   measurements to determine network performance, e.g., by active delay</td>
<td> </td>
<td class="right">   measurements to determine network performance, e.g., by active delay</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   measurements or bandwidth probing, but such measurements result in</td>
<td> </td>
<td class="right">   measurements or bandwidth probing, but such measurements result in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   overhead and complexity.  Accessing an ALTO server can be a simpler</td>
<td> </td>
<td class="right">   overhead and complexity.  Accessing an ALTO server can be a simpler</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   alternative.  In addition, an ALTO server may also expose network</td>
<td> </td>
<td class="right">   alternative.  In addition, an ALTO server may also expose network</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-14"> page 19, line 41<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-14"> page 20, line 41<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   With the Endpoint Cost Service (ECS), the ALTO client does not have</td>
<td> </td>
<td class="right">   With the Endpoint Cost Service (ECS), the ALTO client does not have</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   to implement any specific algorithm or mechanism in order to</td>
<td> </td>
<td class="right">   to implement any specific algorithm or mechanism in order to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   retrieve, maintain and process network topology information (of any</td>
<td> </td>
<td class="right">   retrieve, maintain and process network topology information (of any</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   kind).  The complexity of the network topology (computation,</td>
<td> </td>
<td class="right">   kind).  The complexity of the network topology (computation,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   maintenance and distribution) is kept in the ALTO server and ECS is</td>
<td> </td>
<td class="right">   maintenance and distribution) is kept in the ALTO server and ECS is</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   delivered on demand.  This allows the ALTO server to enhance and</td>
<td> </td>
<td class="right">   delivered on demand.  This allows the ALTO server to enhance and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   modify the way the topology information sources are used and</td>
<td> </td>
<td class="right">   modify the way the topology information sources are used and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   combined.  This simplifies the enforcement of privacy policies of the</td>
<td> </td>
<td class="right">   combined.  This simplifies the enforcement of privacy policies of the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   ISP.</td>
<td> </td>
<td class="right">   ISP.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   The ALTO Network Map and Cost Map service expose an <span class="delete">abstracted</span> view</td>
<td> </td>
<td class="rblock">   The ALTO Network Map and Cost Map service expose an <span class="insert">abstract</span> view on</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   on the ISP network topology.  Therefore, care is needed when</td>
<td> </td>
<td class="rblock">   the ISP network topology.  Therefore, care is needed when</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   constructing those maps in order to take privacy policies into</td>
<td> </td>
<td class="right">   constructing those maps in order to take privacy policies into</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   account, as further discussed in Section 3.2.3.  The ALTO protocol</td>
<td> </td>
<td class="right">   account, as further discussed in Section 3.2.3.  The ALTO protocol</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   also supports further features such as endpoint properties, which</td>
<td> </td>
<td class="right">   also supports further features such as endpoint properties, which</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   could also be used to expose topology guidance.  The privacy</td>
<td> </td>
<td class="right">   could also be used to expose topology guidance.  The privacy</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   considerations for ALTO maps also apply to such ALTO extensions.</td>
<td> </td>
<td class="right">   considerations for ALTO maps also apply to such ALTO extensions.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">3.2.2.  Data Collection from Data Sources</td>
<td> </td>
<td class="right">3.2.2.  Data Collection from Data Sources</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The first step in the process of generating ALTO information is to</td>
<td> </td>
<td class="right">   The first step in the process of generating ALTO information is to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   gather the required information from the network.  An ALTO server can</td>
<td> </td>
<td class="right">   gather the required information from the network.  An ALTO server can</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   collect topological information from a variety of sources in the</td>
<td> </td>
<td class="right">   collect topological information from a variety of sources in the</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   network and provides a cohesive, abstract<span class="delete">ed</span> view of the network</td>
<td> </td>
<td class="rblock">   network and provides a cohesive, abstract view of the network</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   topology to applications using an ALTO client.  Topology data sources</td>
<td> </td>
<td class="right">   topology to applications using an ALTO client.  Topology data sources</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   may include routing protocols, network policies, state and</td>
<td> </td>
<td class="right">   may include routing protocols, network policies, state and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   performance information, geo-location, etc.  An ALTO server requires</td>
<td> </td>
<td class="right">   performance information, geo-location, etc.  An ALTO server requires</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   at least some topology and/or routing information, i.e., information</td>
<td> </td>
<td class="right">   at least some topology and/or routing information, i.e., information</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   about <span class="delete">present</span> endpoints and their interconnection.  With this</td>
<td> </td>
<td class="rblock">   about <span class="insert">existing</span> endpoints and their interconnection.  With this</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   information it is in principle possible to compute paths between all</td>
<td> </td>
<td class="right">   information it is in principle possible to compute paths between all</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   known endpoints.  Based on such basic data, the ALTO server builds an</td>
<td> </td>
<td class="right">   known endpoints.  Based on such basic data, the ALTO server builds an</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   ALTO-specific network topology that represents the network as it</td>
<td> </td>
<td class="right">   ALTO-specific network topology that represents the network as it</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   should be understood and utilized by applications (resource</td>
<td> </td>
<td class="right">   should be understood and utilized by applications (resource</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   consumers) at endpoints using ALTO services (e.g., Network/Cost Map</td>
<td> </td>
<td class="right">   consumers) at endpoints using ALTO services (e.g., Network/Cost Map</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Service or ECS).  A basic dataset can be extended by many other</td>
<td> </td>
<td class="right">   Service or ECS).  A basic dataset can be extended by many other</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   information obtainable from the network.</td>
<td> </td>
<td class="right">   information obtainable from the network.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The ALTO protocol does not assume a specific network technology or</td>
<td> </td>
<td class="right">   The ALTO protocol does not assume a specific network technology or</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   topology.  In principle, ALTO can be used with various types of</td>
<td> </td>
<td class="right">   topology.  In principle, ALTO can be used with various types of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-15"> page 21, line 50<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-15"> page 22, line 50<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      with BGP speakers.  For data collection, link-state protocols are</td>
<td> </td>
<td class="right">      with BGP speakers.  For data collection, link-state protocols are</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      more suitable since every router propagates its information</td>
<td> </td>
<td class="right">      more suitable since every router propagates its information</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      throughout the whole network.  Hence, it is possible to obtain</td>
<td> </td>
<td class="right">      throughout the whole network.  Hence, it is possible to obtain</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      information about all routers and their neighbors from one single</td>
<td> </td>
<td class="right">      information about all routers and their neighbors from one single</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      router in the network.  In contrast, distance-vector protocols are</td>
<td> </td>
<td class="right">      router in the network.  In contrast, distance-vector protocols are</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      less suitable since routing information is only shared among</td>
<td> </td>
<td class="right">      less suitable since routing information is only shared among</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      neighbors.  To obtain the whole topology with distance-vector</td>
<td> </td>
<td class="right">      neighbors.  To obtain the whole topology with distance-vector</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      routing protocols it is necessary to retrieve routing information</td>
<td> </td>
<td class="right">      routing protocols it is necessary to retrieve routing information</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      from every router in the network.</td>
<td> </td>
<td class="right">      from every router in the network.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   o  The document [RFC7752] describes a mechanism by which link<span class="delete"> </span>state</td>
<td> </td>
<td class="rblock">   o  The document [RFC7752] describes a mechanism by which link<span class="insert">-</span>state</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      and traffic engineering information can be collected from networks</td>
<td> </td>
<td class="right">      and traffic engineering information can be collected from networks</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      and shared with external components using the BGP routing</td>
<td> </td>
<td class="right">      and shared with external components using the BGP routing</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      protocol.  This is achieved using a new BGP Network Layer</td>
<td> </td>
<td class="right">      protocol.  This is achieved using a new BGP Network Layer</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      Reachability Information (NLRI) encoding format.  The mechanism is</td>
<td> </td>
<td class="right">      Reachability Information (NLRI) encoding format.  The mechanism is</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      applicable to physical and virtual IGP links and can also include</td>
<td> </td>
<td class="right">      applicable to physical and virtual IGP links and can also include</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      Traffic Engineering (TE) data.  For instance, prefix data can be</td>
<td> </td>
<td class="right">      Traffic Engineering (TE) data.  For instance, prefix data can be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      carried and originated in BGP, while TE data is originated and</td>
<td> </td>
<td class="right">      carried and originated in BGP, while TE data is originated and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      carried in an IGP.  The mechanism described is subject to policy</td>
<td> </td>
<td class="right">      carried in an IGP.  The mechanism described is subject to policy</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      control.</td>
<td> </td>
<td class="right">      control.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-16"> page 24, line 17<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-16"> page 25, line 17<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   An ALTO server indicates preferences amongst network locations in the</td>
<td> </td>
<td class="right">   An ALTO server indicates preferences amongst network locations in the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   form of abstract costs.  These costs are generic costs and can be</td>
<td> </td>
<td class="right">   form of abstract costs.  These costs are generic costs and can be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   internally computed by the operator of the ALTO server according to</td>
<td> </td>
<td class="right">   internally computed by the operator of the ALTO server according to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   its own policy.  For a given ALTO network map, an ALTO cost map</td>
<td> </td>
<td class="right">   its own policy.  For a given ALTO network map, an ALTO cost map</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   defines directional costs pairwise amongst the set of source and</td>
<td> </td>
<td class="right">   defines directional costs pairwise amongst the set of source and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   destination network locations defined by the PIDs.</td>
<td> </td>
<td class="right">   destination network locations defined by the PIDs.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The ALTO protocol permits the use of different cost types.  An ALTO</td>
<td> </td>
<td class="right">   The ALTO protocol permits the use of different cost types.  An ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   cost type is defined by the combination of a cost metric and a cost</td>
<td> </td>
<td class="right">   cost type is defined by the combination of a cost metric and a cost</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   mode.  The cost metric identifies what the costs represent.  The cost</td>
<td> </td>
<td class="right">   mode.  The cost metric identifies what the costs represent.  The cost</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   mode identifies how the costs should be interpreted, <span class="delete">e.g</span>., whether</td>
<td> </td>
<td class="rblock">   mode identifies how the costs should be interpreted, <span class="insert">i.e</span>., whether</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   returned costs should be interpreted as numerical values or ordinal</td>
<td> </td>
<td class="right">   returned costs should be interpreted as numerical values or ordinal</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   rankings.  The ALTO protocol also allows the definition of additional</td>
<td> </td>
<td class="right">   rankings.  The ALTO protocol also allows the definition of additional</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   constraints defining which elements of a cost map shall be returned.</td>
<td> </td>
<td class="right">   constraints defining which elements of a cost map shall be returned.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The ALTO protocol specification [RFC7285] defines the "routingcost"</td>
<td> </td>
<td class="right">   The ALTO protocol specification [RFC7285] defines the "routingcost"</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   cost metric as the basic set of rating criteria, which has to be</td>
<td> </td>
<td class="right">   cost metric as the basic set of rating criteria, which has to be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   supported by all implementations.  This cost metric conveys a generic</td>
<td> </td>
<td class="right">   supported by all implementations.  This cost metric conveys a generic</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   measure for the cost of routing traffic from a source to a</td>
<td> </td>
<td class="right">   measure for the cost of routing traffic from a source to a</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   destination.  A lower value indicates a higher preference for traffic</td>
<td> </td>
<td class="right">   destination.  A lower value indicates a higher preference for traffic</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   to be sent from a source to a destination.  How that metric is</td>
<td> </td>
<td class="right">   to be sent from a source to a destination.  How that metric is</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-17"> page 25, line 10<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-17"> page 26, line 10<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   far.  Whether such rating criteria are useful and whether the</td>
<td> </td>
<td class="right">   far.  Whether such rating criteria are useful and whether the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   corresponding information would actually be made available by ISPs</td>
<td> </td>
<td class="right">   corresponding information would actually be made available by ISPs</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   can also depend on the use case of ALTO.  A definition of further</td>
<td> </td>
<td class="right">   can also depend on the use case of ALTO.  A definition of further</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   metrics can be found for instance in [I-D.wu-alto-te-metrics].</td>
<td> </td>
<td class="right">   metrics can be found for instance in [I-D.wu-alto-te-metrics].</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Distance-related rating criteria:</td>
<td> </td>
<td class="right">   Distance-related rating criteria:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   o  Relative topological distance: The term relative means that a</td>
<td> </td>
<td class="right">   o  Relative topological distance: The term relative means that a</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      larger numerical value means greater distance, but it is up to the</td>
<td> </td>
<td class="right">      larger numerical value means greater distance, but it is up to the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      ALTO service how to compute the values, and the ALTO client will</td>
<td> </td>
<td class="right">      ALTO service how to compute the values, and the ALTO client will</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">      not be informed about the nature of the information.  One way <span class="delete">of</span>
</td>
<td> </td>
<td class="rblock">      not be informed about the nature of the information.  One way <span class="insert">to</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">      generating this kind of information</span> may be counting AS hops, but</td>
<td> </td>
<td class="rblock">
<span class="insert">      determine relative topological distance</span> may be counting AS hops,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">      when querying this parameter, the ALTO client must not assume that</td>
<td> </td>
<td class="rblock">      but when querying this parameter, the ALTO client must not assume</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">      the numbers actually are AS hops.  In addition to the AS path, a</td>
<td> </td>
<td class="rblock">      that the numbers actually are AS hops.  In addition to the AS</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">      relative cost value could also be calculated taking into account</td>
<td> </td>
<td class="rblock">      path, a relative cost value could also be calculated taking into</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">      other routing protocol parameters, such as BGP local preference or</td>
<td> </td>
<td class="rblock">      account other routing protocol parameters, such as BGP local</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">      multi-exit discriminator (MED) attributes.</td>
<td> </td>
<td class="rblock">      preference or multi-exit discriminator (MED) attributes.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   o  Absolute topological distance, expressed in the number of</td>
<td> </td>
<td class="right">   o  Absolute topological distance, expressed in the number of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      traversed autonomous systems (AS).</td>
<td> </td>
<td class="right">      traversed autonomous systems (AS).</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   o  Absolute topological distance, expressed in the number of router</td>
<td> </td>
<td class="right">   o  Absolute topological distance, expressed in the number of router</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      hops (i.e., how much the TTL value of an IP packet will be</td>
<td> </td>
<td class="right">      hops (i.e., how much the TTL value of an IP packet will be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      decreased during transit).</td>
<td> </td>
<td class="right">      decreased during transit).</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   o  Absolute physical distance, based on knowledge of the approximate</td>
<td> </td>
<td class="right">   o  Absolute physical distance, based on knowledge of the approximate</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      geo-location (e.g., continent, country) of an IP address.</td>
<td> </td>
<td class="right">      geo-location (e.g., continent, country) of an IP address.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-18"> page 27, line 40<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-18"> page 28, line 40<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      transport, have to be used to avoid congestion.  In other words,</td>
<td> </td>
<td class="right">      transport, have to be used to avoid congestion.  In other words,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      ALTO is a service to provide network and policy information, with</td>
<td> </td>
<td class="right">      ALTO is a service to provide network and policy information, with</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      update intervals that are possibly several orders of magnitude</td>
<td> </td>
<td class="right">      update intervals that are possibly several orders of magnitude</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      slower than congestion control loops (e.g., in TCP) can react on</td>
<td> </td>
<td class="right">      slower than congestion control loops (e.g., in TCP) can react on</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      changes in network congestion state.  This clear separation of</td>
<td> </td>
<td class="right">      changes in network congestion state.  This clear separation of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      responsibilities avoids traffic oscillations and can help for</td>
<td> </td>
<td class="right">      responsibilities avoids traffic oscillations and can help for</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      network stability and cost optimization.</td>
<td> </td>
<td class="right">      network stability and cost optimization.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   o  Performance metrics that raise privacy concerns.  For instance, it</td>
<td> </td>
<td class="right">   o  Performance metrics that raise privacy concerns.  For instance, it</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      has been questioned whether an ALTO service should publicly expose</td>
<td> </td>
<td class="right">      has been questioned whether an ALTO service should publicly expose</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">      the provisioned access <span class="delete">bandwidth, e.g.</span> of cable / DSL customers,</td>
<td> </td>
<td class="rblock">      the provisioned access <span class="insert">bandwidth</span> of cable / DSL customers, as this</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">      as this could enable identification of "premium customers" of an</td>
<td> </td>
<td class="rblock">      could enable identification of "premium customers" of an ISP.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">      ISP.</td>
<td> </td>
<td class="rblock"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">3.3.  ALTO Focus and Scope</td>
<td> </td>
<td class="right">3.3.  ALTO Focus and Scope</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The purpose of this section is ensure that administrators and users</td>
<td> </td>
<td class="right">   The purpose of this section is ensure that administrators and users</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   of ALTO services are aware of the objectives of the ALTO protocol</td>
<td> </td>
<td class="right">   of ALTO services are aware of the objectives of the ALTO protocol</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   design.  Using ALTO beyond this scope may limit its efficiency.</td>
<td> </td>
<td class="right">   design.  Using ALTO beyond this scope may limit its efficiency.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Likewise, Map-based and Endpoint-based ALTO Services may face certain</td>
<td> </td>
<td class="right">   Likewise, Map-based and Endpoint-based ALTO Services may face certain</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   issues during deployment.  This section explains these limitations</td>
<td> </td>
<td class="right">   issues during deployment.  This section explains these limitations</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   and also outlines potential solutions.</td>
<td> </td>
<td class="right">   and also outlines potential solutions.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-19"> page 31, line 17<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-19"> page 32, line 17<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The specification of the ALTO protocol [RFC7285] also includes the</td>
<td> </td>
<td class="right">   The specification of the ALTO protocol [RFC7285] also includes the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Endpoint Cost Service (ECS) mechanism.  ALTO clients can ask the ALTO</td>
<td> </td>
<td class="right">   Endpoint Cost Service (ECS) mechanism.  ALTO clients can ask the ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   server for guidance for specific IP addresses, thereby avoiding the</td>
<td> </td>
<td class="right">   server for guidance for specific IP addresses, thereby avoiding the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   need of processing maps.  This can mitigate some of the problems</td>
<td> </td>
<td class="right">   need of processing maps.  This can mitigate some of the problems</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   mentioned in the previous section.</td>
<td> </td>
<td class="right">   mentioned in the previous section.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   However frequent requests, particularly with long lists of IP</td>
<td> </td>
<td class="right">   However frequent requests, particularly with long lists of IP</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   addresses, may overload the ALTO server.  The server has to rank each</td>
<td> </td>
<td class="right">   addresses, may overload the ALTO server.  The server has to rank each</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   received IP address, which causes load at the server.  This may be</td>
<td> </td>
<td class="right">   received IP address, which causes load at the server.  This may be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   amplified when not only a single ALTO client is asking for guidance,</td>
<td> </td>
<td class="right">   amplified when not only a single ALTO client is asking for guidance,</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   but a large<span class="delete">r</span> number of them.  The results of the ECS are also more</td>
<td> </td>
<td class="rblock">   but a large number of them.  The results of the ECS are also more</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   difficult to cache than ALTO maps.  Therefore, the ALTO client may</td>
<td> </td>
<td class="right">   difficult to cache than ALTO maps.  Therefore, the ALTO client may</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   have to await the server response before starting a communication,</td>
<td> </td>
<td class="right">   have to await the server response before starting a communication,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   which results in an additional delay.</td>
<td> </td>
<td class="right">   which results in an additional delay.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Caching of IP addresses at the ALTO client or the usage of the H12</td>
<td> </td>
<td class="right">   Caching of IP addresses at the ALTO client or the usage of the H12</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   approach [I-D.kiesel-alto-h12] in conjunction with caching may lower</td>
<td> </td>
<td class="right">   approach [I-D.kiesel-alto-h12] in conjunction with caching may lower</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   the query load on the ALTO server.</td>
<td> </td>
<td class="right">   the query load on the ALTO server.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   When ALTO server receives an ECS request, it may not have the most</td>
<td> </td>
<td class="right">   When ALTO server receives an ECS request, it may not have the most</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   appropriate topology information in order to accurately determine the</td>
<td> </td>
<td class="right">   appropriate topology information in order to accurately determine the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-20"> page 35, line 36<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-20"> page 36, line 36<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   result, a host with an ALTO client inside the network of this ISP</td>
<td> </td>
<td class="right">   result, a host with an ALTO client inside the network of this ISP</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   will prefer retrieving data from hosts connected to the same ISP.</td>
<td> </td>
<td class="right">   will prefer retrieving data from hosts connected to the same ISP.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   An example is given in Figure 9.  It is assumed that ISP A is a small</td>
<td> </td>
<td class="right">   An example is given in Figure 9.  It is assumed that ISP A is a small</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   ISP only having one access network.  As operator of the ALTO service,</td>
<td> </td>
<td class="right">   ISP only having one access network.  As operator of the ALTO service,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   ISP A can define its network to be one optimization area, named as</td>
<td> </td>
<td class="right">   ISP A can define its network to be one optimization area, named as</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   PID1, and define other networks to be the other optimization area,</td>
<td> </td>
<td class="right">   PID1, and define other networks to be the other optimization area,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   named as PID2.  C1 is denoted as the cost inside the network of ISP</td>
<td> </td>
<td class="right">   named as PID2.  C1 is denoted as the cost inside the network of ISP</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   A. C2 is denoted as the cost from PID2 to PID1, and C3 from PID1 to</td>
<td> </td>
<td class="right">   A. C2 is denoted as the cost from PID2 to PID1, and C3 from PID1 to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   PID2.  For the sake of simplicity, in the following C2=C3 is assumed.</td>
<td> </td>
<td class="right">   PID2.  For the sake of simplicity, in the following C2=C3 is assumed.</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   In order to keep traffic local inside ISP A, it makes sense to</td>
<td> </td>
<td class="rblock">   In order to keep traffic local inside ISP A, it makes sense to <span class="insert">define</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">define:</span> C1&lt;C2</td>
<td> </td>
<td class="rblock">   C1&lt;C2</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">              -----------</td>
<td> </td>
<td class="right">              -----------</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          ////           \\\\</td>
<td> </td>
<td class="right">          ////           \\\\</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">        //                   \\</td>
<td> </td>
<td class="right">        //                   \\</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      //                       \\                  /-----------\</td>
<td> </td>
<td class="right">      //                       \\                  /-----------\</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">     | +---------+               |             ////             \\\\</td>
<td> </td>
<td class="right">     | +---------+               |             ////             \\\\</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">     | | ALTO    |  ISP A        |    C2      |    Other Networks   |</td>
<td> </td>
<td class="right">     | | ALTO    |  ISP A        |    C2      |    Other Networks   |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">    |  | Service |  PID 1         &lt;-----------     PID 2</td>
<td> </td>
<td class="right">    |  | Service |  PID 1         &lt;-----------     PID 2</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">     | +---------+  C1           |-----------&gt;|                     |</td>
<td> </td>
<td class="right">     | +---------+  C1           |-----------&gt;|                     |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">     |                           |  C3 (=C2)   \\\\             ////</td>
<td> </td>
<td class="right">     |                           |  C3 (=C2)   \\\\             ////</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      \\                       //                  \-----------/</td>
<td> </td>
<td class="right">      \\                       //                  \-----------/</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-21"> page 42, line 50<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-21"> page 43, line 50<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   protocol such as IS-IS.  The applied link weights are shown in</td>
<td> </td>
<td class="right">   protocol such as IS-IS.  The applied link weights are shown in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Figure 15.  To obtain the topology and routing information from the</td>
<td> </td>
<td class="right">   Figure 15.  To obtain the topology and routing information from the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   network, the topology data source must be connected directly to one</td>
<td> </td>
<td class="right">   network, the topology data source must be connected directly to one</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   of the routers (R1...R9).  Furthermore, the topology data source must</td>
<td> </td>
<td class="right">   of the routers (R1...R9).  Furthermore, the topology data source must</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   be enabled to communicate with the router and vice versa.</td>
<td> </td>
<td class="right">   be enabled to communicate with the router and vice versa.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The Border Gateway Protocol (BGP) is used in this scenario to route</td>
<td> </td>
<td class="right">   The Border Gateway Protocol (BGP) is used in this scenario to route</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   between autonomous systems (AS).  External BGP is running on the two</td>
<td> </td>
<td class="right">   between autonomous systems (AS).  External BGP is running on the two</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   border routers R1 and R8.  Furthermore, internal BGP is used to</td>
<td> </td>
<td class="right">   border routers R1 and R8.  Furthermore, internal BGP is used to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   propagate external as well as internal prefixes within the network</td>
<td> </td>
<td class="right">   propagate external as well as internal prefixes within the network</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   boundaries<span class="delete">.  I</span>t is running on every router with an attached client</td>
<td> </td>
<td class="rblock">   boundaries<span class="insert">; i</span>t is running on every router with an attached client</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   network (R2, R5, R6, R7 and R9).  Since no route reflector is present</td>
<td> </td>
<td class="right">   network (R2, R5, R6, R7 and R9).  Since no route reflector is present</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   it is necessary to fetch routes from each BGP router separately.</td>
<td> </td>
<td class="right">   it is necessary to fetch routes from each BGP router separately.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">              R1   R2   R3   R4   R5   R6   R7   R8   R9</td>
<td> </td>
<td class="right">              R1   R2   R3   R4   R5   R6   R7   R8   R9</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          R1   0   15   15   20    -    -    -    -    -</td>
<td> </td>
<td class="right">          R1   0   15   15   20    -    -    -    -    -</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          R2  15    0   20    -    -    -    -    -    -</td>
<td> </td>
<td class="right">          R2  15    0   20    -    -    -    -    -    -</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          R3  15   20    0    5    5   10    -    -    -</td>
<td> </td>
<td class="right">          R3  15   20    0    5    5   10    -    -    -</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          R4  20    -    5    0    5    -    -    -   20</td>
<td> </td>
<td class="right">          R4  20    -    5    0    5    -    -    -   20</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          R5   -    -    5    5    0    -   10   10    -</td>
<td> </td>
<td class="right">          R5   -    -    5    5    0    -   10   10    -</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          R6   -    -   10    -    -    0    -    -    -</td>
<td> </td>
<td class="right">          R6   -    -   10    -    -    0    -    -    -</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-22"> page 48, line 31<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-22"> page 49, line 31<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   lengths are link weights with values illustrated in Figure 15.</td>
<td> </td>
<td class="right">   lengths are link weights with values illustrated in Figure 15.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Hence, the cost function generally extracts the optimal path with</td>
<td> </td>
<td class="right">   Hence, the cost function generally extracts the optimal path with</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   respect to a chosen metric, such as the IGP link weight.  It is also</td>
<td> </td>
<td class="right">   respect to a chosen metric, such as the IGP link weight.  It is also</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   possible that more than one path with the same minimum weight exist,</td>
<td> </td>
<td class="right">   possible that more than one path with the same minimum weight exist,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   which means it is not entirely clear which path is going to be</td>
<td> </td>
<td class="right">   which means it is not entirely clear which path is going to be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   selected by the network.  Hence, a tie-breaker similar to the one</td>
<td> </td>
<td class="right">   selected by the network.  Hence, a tie-breaker similar to the one</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   used to resolve costs for PIDs with multiple endpoints is necessary.</td>
<td> </td>
<td class="right">   used to resolve costs for PIDs with multiple endpoints is necessary.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   An important note is that [RFC7285] does not require cost maps to</td>
<td> </td>
<td class="right">   An important note is that [RFC7285] does not require cost maps to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   provide costs for every PID pair, so if no path cost can be</td>
<td> </td>
<td class="right">   provide costs for every PID pair, so if no path cost can be</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   calculated for a certain <span class="delete">pair</span> the corresponding field in the cost map</td>
<td> </td>
<td class="rblock">   calculated for a certain <span class="insert">pair,</span> the corresponding field in the cost</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   is left out.  Administrators may also not want to provide cost values</td>
<td> </td>
<td class="rblock">   map is left out.  Administrators may also not want to provide cost</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   for some PID pairs due to various reasons.  Such pairs may be defined</td>
<td> </td>
<td class="rblock">   values for some PID pairs due to various reasons.  Such pairs may be</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   before the cost calculation is performed.</td>
<td> </td>
<td class="rblock">   defined before the cost calculation is performed.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Based on the network map example shown in the previous section it is</td>
<td> </td>
<td class="right">   Based on the network map example shown in the previous section it is</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   possible to calculate the cost maps.  Figure 20 provides an example</td>
<td> </td>
<td class="right">   possible to calculate the cost maps.  Figure 20 provides an example</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   where the selected metric for the cost map is the minimum number of</td>
<td> </td>
<td class="right">   where the selected metric for the cost map is the minimum number of</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   hops necessary to get from the endpoints in the source PID to</td>
<td> </td>
<td class="right">   hops necessary to get from the endpoints in the source PID to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   endpoints in the destination PID.  Our chosen tie-breaker selects the</td>
<td> </td>
<td class="right">   endpoints in the destination PID.  Our chosen tie-breaker selects the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   minimum hop count when more than one value is returned by the cost</td>
<td> </td>
<td class="right">   minimum hop count when more than one value is returned by the cost</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   function.</td>
<td> </td>
<td class="right">   function.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">         PID  | default | R1  | R2  | R5  | R6  | R7  | R8  | R9  |</td>
<td> </td>
<td class="right">         PID  | default | R1  | R2  | R5  | R6  | R7  | R8  | R9  |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-23"> page 49, line 22<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-23"> page 50, line 22<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">         R7   |    x    |  4  |  4  |  2  |  4  |  0  |  3  |  4  |</td>
<td> </td>
<td class="right">         R7   |    x    |  4  |  4  |  2  |  4  |  0  |  3  |  4  |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">         R8   |    x    |  4  |  4  |  2  |  4  |  3  |  0  |  2  |</td>
<td> </td>
<td class="right">         R8   |    x    |  4  |  4  |  2  |  4  |  3  |  0  |  2  |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">         R9   |    x    |  3  |  4  |  3  |  4  |  4  |  2  |  0  |</td>
<td> </td>
<td class="right">         R9   |    x    |  3  |  4  |  3  |  4  |  4  |  2  |  0  |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                 Figure 20: Example ALTO hopcount cost map</td>
<td> </td>
<td class="right">                 Figure 20: Example ALTO hopcount cost map</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   It should be mentioned that R1-&gt;R9 has several paths with equal path</td>
<td> </td>
<td class="right">   It should be mentioned that R1-&gt;R9 has several paths with equal path</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   weights.  The paths R1-&gt;R3-&gt;R5-&gt;R8-&gt;R9, R1-&gt;R3-&gt;R4-&gt;R9 and R1-&gt;R4-&gt;R9</td>
<td> </td>
<td class="right">   weights.  The paths R1-&gt;R3-&gt;R5-&gt;R8-&gt;R9, R1-&gt;R3-&gt;R4-&gt;R9 and R1-&gt;R4-&gt;R9</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   all have a path weight of 40.  Due to the minimum hopcount value tie-</td>
<td> </td>
<td class="right">   all have a path weight of 40.  Due to the minimum hopcount value tie-</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   breaker, 3 hops is chosen as value for the path R1-&gt;R4-&gt;R9.</td>
<td> </td>
<td class="right">   breaker, 3 hops is chosen as value for the path R1-&gt;R4-&gt;R9.</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   Furthermore, since the "default" PID <span class="delete">is sort of</span> virtual PID with no</td>
<td> </td>
<td class="rblock">   Furthermore, since the "default" PID <span class="insert">is, in a sense, a</span> virtual PID</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   endpoints that are part of the example network, no cost values are</td>
<td> </td>
<td class="rblock">   with no endpoints that are part of the example network, no cost</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   calculated for other PIDs from or towards it.</td>
<td> </td>
<td class="rblock">   values are calculated for other PIDs from or towards it.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">3.7.  Deployment Experiences</td>
<td> </td>
<td class="right">3.7.  Deployment Experiences</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   There are multiple interoperable implementations of the ALTO</td>
<td> </td>
<td class="right">   There are multiple interoperable implementations of the ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   protocol.  Some experiences in implementating and using ALTO for</td>
<td> </td>
<td class="right">   protocol.  Some experiences in implementating and using ALTO for</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   large-scale networks have been documented in</td>
<td> </td>
<td class="right">   large-scale networks have been documented in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   [I-D.seidel-alto-map-calculation] and are here summarized:</td>
<td> </td>
<td class="right">   [I-D.seidel-alto-map-calculation] and are here summarized:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   o  Data collection: Retrieving topology information typically</td>
<td> </td>
<td class="right">   o  Data collection: Retrieving topology information typically</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      requires implementing several protocols other than ALTO for data</td>
<td> </td>
<td class="right">      requires implementing several protocols other than ALTO for data</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-24"> page 52, line 22<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-24"> page 53, line 22<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   the development of ALTO.  In this use case it is assumed that one</td>
<td> </td>
<td class="right">   the development of ALTO.  In this use case it is assumed that one</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   party (usually the operator of a "managed" IP network domain) will</td>
<td> </td>
<td class="right">   party (usually the operator of a "managed" IP network domain) will</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   disclose information about the network through ALTO.  The application</td>
<td> </td>
<td class="right">   disclose information about the network through ALTO.  The application</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   overlay will query this information and optimize its behavior in</td>
<td> </td>
<td class="right">   overlay will query this information and optimize its behavior in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   order to improve performance or Quality of Experience in the</td>
<td> </td>
<td class="right">   order to improve performance or Quality of Experience in the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   application while reducing the utilization of the underlying network</td>
<td> </td>
<td class="right">   application while reducing the utilization of the underlying network</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   infrastructure.  The resulting win-win situation is assumed to be the</td>
<td> </td>
<td class="right">   infrastructure.  The resulting win-win situation is assumed to be the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   incentive for both parties to provide or consume the ALTO</td>
<td> </td>
<td class="right">   incentive for both parties to provide or consume the ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   information, respectively.</td>
<td> </td>
<td class="right">   information, respectively.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   P2P systems can be built with<span class="delete">out or with</span> use of a centralized</td>
<td> </td>
<td class="rblock">   P2P systems can be built with<span class="insert"> or without</span> use of a centralized</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   resource directory ("tracker").  The scope of this section is the</td>
<td> </td>
<td class="right">   resource directory ("tracker").  The scope of this section is the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   interaction of P2P applications with the ALTO service.  In this</td>
<td> </td>
<td class="right">   interaction of P2P applications with the ALTO service.  In this</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   scenario, the resource consumer ("peer") asks the resource directory</td>
<td> </td>
<td class="right">   scenario, the resource consumer ("peer") asks the resource directory</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   for a list of candidates that can provide the desired resource.</td>
<td> </td>
<td class="right">   for a list of candidates that can provide the desired resource.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   There are different options for how ALTO can be deployed in such use</td>
<td> </td>
<td class="right">   There are different options for how ALTO can be deployed in such use</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   cases with a centralized resource directory.</td>
<td> </td>
<td class="right">   cases with a centralized resource directory.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   For efficiency reasons (i.e., message size), <span class="delete">usually</span> only a subset of</td>
<td> </td>
<td class="rblock">   For efficiency reasons (i.e., message size), only a subset of all</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   all resource providers known to the resource directory will be</td>
<td> </td>
<td class="rblock">   resource providers known to the resource directory will be returned</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   returned to the resource consumer.  Some or all of these resource</td>
<td> </td>
<td class="rblock">   to the resource consumer.  Some or all of these resource providers,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   providers, plus further resource providers learned by other means</td>
<td> </td>
<td class="rblock">   plus further resource providers learned by other means such as direct</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   such as direct communication between peers, will be contacted by the</td>
<td> </td>
<td class="rblock">   communication between peers, will be contacted by the resource</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   resource consumer for accessing the resource.  The purpose of ALTO is</td>
<td> </td>
<td class="rblock">   consumer for accessing the resource.  The purpose of ALTO is giving</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   giving guidance on this peer selection, which <span class="delete">is supposed to</span> yield</td>
<td> </td>
<td class="rblock">   guidance on this peer selection, which <span class="insert">should</span> yield <span class="insert">better-than-≤/span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">better-than-random</span> results.  The tracker response as well as the ALTO</td>
<td> </td>
<td class="rblock">
<span class="insert">   random</span> results.  The tracker response as well as the ALTO guidance</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   guidance are most beneficial in the initial phase after the resource</td>
<td> </td>
<td class="rblock">   are most beneficial in the initial phase after the resource consumer</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   consumer has decided to access a resource, as long as only few</td>
<td> </td>
<td class="rblock">   has decided to access a resource, as long as only few resource</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   resource providers are known.  Later, when the resource consumer has</td>
<td> </td>
<td class="rblock">   providers are known.  Later, when the resource consumer has already</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   already exchanged some data with other peers and measured the</td>
<td> </td>
<td class="rblock">   exchanged some data with other peers and measured the transmission</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   transmission speed, the relative importance of ALTO may dwindle.</td>
<td> </td>
<td class="rblock">   speed, the relative importance of ALTO may dwindle.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">4.1.2.  Applicability of ALTO</td>
<td> </td>
<td class="right">4.1.2.  Applicability of ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   A tracker-based P2P application can leverage ALTO in different ways.</td>
<td> </td>
<td class="right">   A tracker-based P2P application can leverage ALTO in different ways.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   In the following, the different alternatives and their pros and cons</td>
<td> </td>
<td class="right">   In the following, the different alternatives and their pros and cons</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   are discussed.</td>
<td> </td>
<td class="right">   are discussed.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                            ,-------.         +-----------+</td>
<td> </td>
<td class="right">                            ,-------.         +-----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">          ,---.          ,-'         ========&gt;|   Peer 1  |********≤/td>
<td> </td>
<td class="right">          ,---.          ,-'         ========&gt;|   Peer 1  |********≤/td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       ,-'     `-.      /     ISP 1  V  \     |ALTO Client|       *</td>
<td> </td>
<td class="right">       ,-'     `-.      /     ISP 1  V  \     |ALTO Client|       *</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-25"> page 53, line 35<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-25"> page 54, line 35<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       Legend:</td>
<td> </td>
<td class="right">       Legend:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       === ALTO protocol</td>
<td> </td>
<td class="right">       === ALTO protocol</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       *** Application protocol</td>
<td> </td>
<td class="right">       *** Application protocol</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">             Figure 21: Global tracker and local ALTO servers</td>
<td> </td>
<td class="right">             Figure 21: Global tracker and local ALTO servers</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Figure 21 depicts a tracker-based P2P system with several peers.  The</td>
<td> </td>
<td class="right">   Figure 21 depicts a tracker-based P2P system with several peers.  The</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   peers (i.e., resource consumers) embed an ALTO client to improve the</td>
<td> </td>
<td class="right">   peers (i.e., resource consumers) embed an ALTO client to improve the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   resource provider selection.  The tracker (i.e., resource directory)</td>
<td> </td>
<td class="right">   resource provider selection.  The tracker (i.e., resource directory)</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   itself may be hosted and operated by another entity.  A tracker</td>
<td> </td>
<td class="right">   itself may be hosted and operated by another entity.  A tracker</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">outside the networks of</span> the ISPs of the peers may be a typical use</td>
<td> </td>
<td class="rblock">   <span class="insert">external to</span> the ISPs of the peers may be a typical use case.  For</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   case.  For instance, a tracker like Pirate Bay can serve BitTorrent</td>
<td> </td>
<td class="rblock">   instance, a tracker like Pirate Bay can serve BitTorrent peers <span class="insert">world-</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   peers <span class="delete">world-wide.</span>  The figure only shows one tracker instance, but</td>
<td> </td>
<td class="rblock">
<span class="insert">   wide.</span>  The figure only shows one tracker instance, but deployments</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   deployments with several trackers could be possible, too.</td>
<td> </td>
<td class="rblock">   with several trackers could be possible, too.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The scenario depicted in Figure 21 lets the peers directly</td>
<td> </td>
<td class="right">   The scenario depicted in Figure 21 lets the peers directly</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   communicate with their ISP's ALTO server (i.e., ALTO client embedded</td>
<td> </td>
<td class="right">   communicate with their ISP's ALTO server (i.e., ALTO client embedded</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   in the peers), thus giving the peers the most control on which</td>
<td> </td>
<td class="right">   in the peers), thus giving the peers the most control on which</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   information they query for, as they can integrate information</td>
<td> </td>
<td class="right">   information they query for, as they can integrate information</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   received from one tracker or several trackers and through direct</td>
<td> </td>
<td class="right">   received from one tracker or several trackers and through direct</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   peer-to-peer knowledge exchange.  For instance, the latter approach</td>
<td> </td>
<td class="right">   peer-to-peer knowledge exchange.  For instance, the latter approach</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   is called peer exchange (PEX) in BitTorent.  In this deployment</td>
<td> </td>
<td class="rblock">   is called peer exchange (PEX) in BitTor<span class="insert">r</span>ent.  In this deployment</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   scenarios, the peers have to discover a suitable ALTO server (e.g.,</td>
<td> </td>
<td class="right">   scenarios, the peers have to discover a suitable ALTO server (e.g.,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   offered by their ISP, as described in [RFC7286]).</td>
<td> </td>
<td class="right">   offered by their ISP, as described in [RFC7286]).</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   There are also tracker-less P2P system architectures that do not rely</td>
<td> </td>
<td class="right">   There are also tracker-less P2P system architectures that do not rely</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   on centralized resource directories, e.g., unstructured P2P networks.</td>
<td> </td>
<td class="right">   on centralized resource directories, e.g., unstructured P2P networks.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Regarding the use of ALTO, their deployment would be similar to</td>
<td> </td>
<td class="right">   Regarding the use of ALTO, their deployment would be similar to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Figure 21, since the ALTO client would be embedded in the peers as</td>
<td> </td>
<td class="right">   Figure 21, since the ALTO client would be embedded in the peers as</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   well.  This option is not further considered in this memo.</td>
<td> </td>
<td class="right">   well.  This option is not further considered in this memo.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                                 ,-------.</td>
<td> </td>
<td class="right">                                 ,-------.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-26"> page 54, line 35<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-26"> page 55, line 35<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">            *                                                 * * * *</td>
<td> </td>
<td class="right">            *                                                 * * * *</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">            *                                                 * * * *</td>
<td> </td>
<td class="right">            *                                                 * * * *</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">            *********************************************************</td>
<td> </td>
<td class="right">            *********************************************************</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       Legend:</td>
<td> </td>
<td class="right">       Legend:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       === ALTO protocol</td>
<td> </td>
<td class="right">       === ALTO protocol</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       *** Application protocol</td>
<td> </td>
<td class="right">       *** Application protocol</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      Figure 22: Global tracker accessing ALTO server at various ISPs</td>
<td> </td>
<td class="right">      Figure 22: Global tracker accessing ALTO server at various ISPs</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   An alternative deployment scenario for a tracker-based system is</td>
<td> </td>
<td class="right">   An alternative deployment scenario for a tracker-based system is</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   depicted in Figure 22.  Here, the tracker embeds the ALTO client.  <span class="delete">As</span>
</td>
<td> </td>
<td class="rblock">   depicted in Figure 22.  Here, the tracker embeds the ALTO client.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">   already explained,</span> the tracker <span class="delete">itself may</span> be <span class="delete">hosted and operated</span> by</td>
<td> </td>
<td class="rblock">   <span class="insert">When</span> the tracker <span class="insert">receives a request from a querying peer, it first</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">an entity different than the ISP hosting and operating the</span> ALTO</td>
<td> </td>
<td class="rblock"><span class="insert">   discovers the ALTO server responsible for the querying peer.  This</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">server.</span>  The <span class="delete">key difference to the previously discussed use case is</span>
</td>
<td> </td>
<td class="rblock">
<span class="insert">   discovery can</span> be <span class="insert">done</span> by <span class="insert">using various</span> ALTO <span class="insert">server discovery</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">   that the</span> ALTO client <span class="delete">is different from the resource consumer.</span>
</td>
<td> </td>
<td class="rblock">
<span class="insert">   mechanisms [RFC7286] [I-D.kiesel-alto-xdom-disc].</span>  The ALTO client</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">   Initially, the tracker has</span> to <span class="delete">discover</span> the <span class="delete">handling</span> ALTO server for</td>
<td> </td>
<td class="rblock">   <span class="insert">subsequently sends</span> to the <span class="insert">querying peer only those peers that are</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">each new peer [RFC7286] [I-D.kiesel-alto-xdom-disc].</span>  The peers do</td>
<td> </td>
<td class="rblock">
<span class="insert">   preferred by the</span> ALTO server <span class="insert">responsible</span> for <span class="insert">the querying peer.</span>  The</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   not query the ALTO servers themselves.  This gives the peers a better</td>
<td> </td>
<td class="rblock">   peers do not query the ALTO servers themselves.  This gives the peers</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   initial selection of candidates, but does not consider peers learned</td>
<td> </td>
<td class="rblock">   a better initial selection of candidates, but does not consider peers</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   through direct peer-to-peer knowledge exchange.</td>
<td> </td>
<td class="rblock">   learned through direct peer-to-peer knowledge exchange.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">                      ISP 1  ,-------.         +-----------+</td>
<td> </td>
<td class="right">                      ISP 1  ,-------.         +-----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">           ,---.          +-------------+******|   Peer 1  |</td>
<td> </td>
<td class="right">           ,---.          +-------------+******|   Peer 1  |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">        ,-'     `-.      /|   Tracker   |\     |           |</td>
<td> </td>
<td class="right">        ,-'     `-.      /|   Tracker   |\     |           |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">       /           \    / +-------------+****  +-----------+</td>
<td> </td>
<td class="right">       /           \    / +-------------+****  +-----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      /    ISP X    \   |       ===       | *  +-----------+</td>
<td> </td>
<td class="right">      /    ISP X    \   |       ===       | *  +-----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">     /               \  \ +-------------+ / *  |   Peer 2  |</td>
<td> </td>
<td class="right">     /               \  \ +-------------+ / *  |   Peer 2  |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">    ;   +---------+   :  \| AlTO Server |/  ***|           |</td>
<td> </td>
<td class="right">    ;   +---------+   :  \| AlTO Server |/  ***|           |</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">    |   | Global  |   |   +-------------+      +-----------+</td>
<td> </td>
<td class="right">    |   | Global  |   |   +-------------+      +-----------+</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">    |   | Tracker |   |      `-------'</td>
<td> </td>
<td class="right">    |   | Tracker |   |      `-------'</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-27"> page 55, line 33<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-27"> page 56, line 33<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">             *        ISP 2  `-------'                       *</td>
<td> </td>
<td class="right">             *        ISP 2  `-------'                       *</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">             *************************************************</td>
<td> </td>
<td class="right">             *************************************************</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">        Legend:</td>
<td> </td>
<td class="right">        Legend:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">        === ALTO protocol</td>
<td> </td>
<td class="right">        === ALTO protocol</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">        *** Application protocol</td>
<td> </td>
<td class="right">        *** Application protocol</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      Figure 23: Local trackers and local ALTO servers (P4P approach)</td>
<td> </td>
<td class="right">      Figure 23: Local trackers and local ALTO servers (P4P approach)</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   There are some attempts to let ISPs deploy their own trackers, as</td>
<td> </td>
<td class="right">   There are some attempts to let ISPs deploy their own trackers, as</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   shown in Figure 23.  In this case, the client cannot get guidance</td>
<td> </td>
<td class="right">   shown in Figure 23.  In this case, the client cannot get guidance</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   from the ALTO <span class="delete">server,</span> other than by talking to the ISP's <span class="delete">tracker.</span>
</td>
<td> </td>
<td class="rblock">   from the ALTO <span class="insert">server</span> other than by talking to the ISP's <span class="insert">tracker,</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">
<span class="delete">   However,</span> the peers <span class="delete">would have</span> still <span class="delete">chance the</span> contact other</td>
<td> </td>
<td class="rblock"><span class="insert">   which in turn communicates with the ALTO server using the ALTO</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   <span class="delete">trackers, deployed</span> by entities other than the peer's <span class="delete">ISP.</span>
</td>
<td> </td>
<td class="rblock">
<span class="insert">   protocol.  It should be noted that</span> the peers <span class="insert">are</span> still <span class="insert">allowed to</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   contact other <span class="insert">trackers operated</span> by entities other than the peer's</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   <span class="insert">ISP, but in this case they cannot benefit from ALTO guidance.</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">4.2.  Deployment Recommendations</td>
<td> </td>
<td class="right">4.2.  Deployment Recommendations</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">4.2.1.  ALTO Services</td>
<td> </td>
<td class="right">4.2.1.  ALTO Services</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The ALTO protocol specification [RFC7285] details how an ALTO client</td>
<td> </td>
<td class="right">   The ALTO protocol specification [RFC7285] details how an ALTO client</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   can query an ALTO server for guiding information and receive the</td>
<td> </td>
<td class="right">   can query an ALTO server for guiding information and receive the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   corresponding replies.  In case of peer-to-peer networks, two</td>
<td> </td>
<td class="right">   corresponding replies.  In case of peer-to-peer networks, two</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   different ALTO services can be used: The Cost Map Service is often</td>
<td> </td>
<td class="right">   different ALTO services can be used: The Cost Map Service is often</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   preferred as solution by peer-to-peer software implementors and</td>
<td> </td>
<td class="right">   preferred as solution by peer-to-peer software implementors and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-28"> page 69, line 29<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-28"> page 70, line 29<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   has been considered.  Special attention is given to the two main</td>
<td> </td>
<td class="right">   has been considered.  Special attention is given to the two main</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   security concerns.</td>
<td> </td>
<td class="right">   security concerns.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">7.1.  ALTO as a Protocol Crossing Trust Boundaries</td>
<td> </td>
<td class="right">7.1.  ALTO as a Protocol Crossing Trust Boundaries</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The optimization of peer-to-peer applications was the first use case</td>
<td> </td>
<td class="right">   The optimization of peer-to-peer applications was the first use case</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   and the impetus for the development of the ALTO protocol, in</td>
<td> </td>
<td class="right">   and the impetus for the development of the ALTO protocol, in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   particular file sharing applications such as BitTorrent [RFC5594].</td>
<td> </td>
<td class="right">   particular file sharing applications such as BitTorrent [RFC5594].</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   As explained in Section 4.1.1, for the publisher of the ALTO</td>
<td> </td>
<td class="right">   As explained in Section 4.1.1, for the publisher of the ALTO</td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   information (i.e., the ALTO server operator) it <span class="delete">is not always clear</span>
</td>
<td> </td>
<td class="rblock">   information (i.e., the ALTO server operator) it <span class="insert">may not be apparent</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   who is in charge of the P2P application overlay.  Some P2P</td>
<td> </td>
<td class="right">   who is in charge of the P2P application overlay.  Some P2P</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   applications do not have any central control entity and the whole</td>
<td> </td>
<td class="right">   applications do not have any central control entity and the whole</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   overlay consists only of the peers, which are under control of the</td>
<td> </td>
<td class="right">   overlay consists only of the peers, which are under control of the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   individual users.  Other P2P applications may have some control</td>
<td> </td>
<td class="right">   individual users.  Other P2P applications may have some control</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   entities such as super peers or trackers, but these may be located in</td>
<td> </td>
<td class="right">   entities such as super peers or trackers, but these may be located in</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   foreign countries and under the control of unknown organizations.  As</td>
<td> </td>
<td class="right">   foreign countries and under the control of unknown organizations.  As</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   outlined in Section 4.2.2, in some scenarios it may be very</td>
<td> </td>
<td class="right">   outlined in Section 4.2.2, in some scenarios it may be very</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   beneficial to forward ALTO information to such trackers, super peers,</td>
<td> </td>
<td class="right">   beneficial to forward ALTO information to such trackers, super peers,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   etc. located in remote networks.  This situation is aggravated by the</td>
<td> </td>
<td class="right">   etc. located in remote networks.  This situation is aggravated by the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   vast number of different P2P applications which are evolving quickly</td>
<td> </td>
<td class="right">   vast number of different P2P applications which are evolving quickly</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr class="change">
<td></td>skipping to change at<a href="#part-29"> page 72, line 29<span class="hide"> &Acirc;&para;</span></a> skipping to change at<a href="#part-29"> page 73, line 29<span class="hide"> &Acirc;&para;</span></a><td></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">7.4.  Faking ALTO Guidance</td>
<td> </td>
<td class="right">7.4.  Faking ALTO Guidance</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   The ALTO services enables an ALTO service provider to influence the</td>
<td> </td>
<td class="right">   The ALTO services enables an ALTO service provider to influence the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   behavior of network applications.  An attacker who is able to</td>
<td> </td>
<td class="right">   behavior of network applications.  An attacker who is able to</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   generate false replies, or e.g. an attacker who can intercept the</td>
<td> </td>
<td class="right">   generate false replies, or e.g. an attacker who can intercept the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   ALTO server discovery procedure, can provide faked ALTO guidance.</td>
<td> </td>
<td class="right">   ALTO server discovery procedure, can provide faked ALTO guidance.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Here is a list of examples how the ALTO guidance could be faked and</td>
<td> </td>
<td class="right">   Here is a list of examples how the ALTO guidance could be faked and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   what possible consequences may arise:</td>
<td> </td>
<td class="right">   what possible consequences may arise:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   Sorting:  An attacker could change t<span class="delete">o</span> sorting order of the ALTO</td>
<td> </td>
<td class="rblock">   Sorting:  An attacker could change t<span class="insert">he</span> sorting order of the ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      guidance (given that the order is of importance, otherwise the</td>
<td> </td>
<td class="right">      guidance (given that the order is of importance, otherwise the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      ranking mechanism is of interest), i.e., declaring peers located</td>
<td> </td>
<td class="right">      ranking mechanism is of interest), i.e., declaring peers located</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      outside the ISP as peers to be preferred.  This will not pose a</td>
<td> </td>
<td class="right">      outside the ISP as peers to be preferred.  This will not pose a</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      big risk to the network or peers, as it would mimic the "regular"</td>
<td> </td>
<td class="right">      big risk to the network or peers, as it would mimic the "regular"</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      peer operation without traffic localization, apart from the</td>
<td> </td>
<td class="right">      peer operation without traffic localization, apart from the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      communication/processing overhead for ALTO.  However, it could</td>
<td> </td>
<td class="right">      communication/processing overhead for ALTO.  However, it could</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      mean that ALTO is reaching the opposite goal of shuffling more</td>
<td> </td>
<td class="right">      mean that ALTO is reaching the opposite goal of shuffling more</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      data across ISP boundaries, incurring more costs for the ISP.  In</td>
<td> </td>
<td class="right">      data across ISP boundaries, incurring more costs for the ISP.  In</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      another example, fake guidance could give unrealistically low</td>
<td> </td>
<td class="right">      another example, fake guidance could give unrealistically low</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      costs to devices in an ISP's mobile network, thus encouraging</td>
<td> </td>
<td class="right">      costs to devices in an ISP's mobile network, thus encouraging</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      other devices to contact them, thereby degrading the ISP's mobile</td>
<td> </td>
<td class="right">      other devices to contact them, thereby degrading the ISP's mobile</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      network and causing customer dissatisfaction.</td>
<td> </td>
<td class="right">      network and causing customer dissatisfaction.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   Preference of a single peer:  A single IP address (thus a peer) could</td>
<td> </td>
<td class="right">   Preference of a single peer:  A single IP address (thus a peer) could</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      be marked as to be preferred all over other peers.  This peer can</td>
<td> </td>
<td class="right">      be marked as to be preferred all over other peers.  This peer can</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      be located within the local ISP or also in other parts of the</td>
<td> </td>
<td class="right">      be located within the local ISP or also in other parts of the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      Internet (e.g., a web server).  This could lead to the case that</td>
<td> </td>
<td class="right">      Internet (e.g., a web server).  This could lead to the case that</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      quite a number of peers to trying to contact this IP address,</td>
<td> </td>
<td class="right">      quite a number of peers to trying to contact this IP address,</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      possibly causing a Denial-of-Service (DoS) attack.</td>
<td> </td>
<td class="right">      possibly causing a Denial-of-Service (DoS) attack.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   It has not yet been investigated how <span class="delete">a faked or</span> wrong ALTO guidance</td>
<td> </td>
<td class="rblock">   <span class="insert">The ALTO protocol protects the authenticity and integrity of ALTO</span>
</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   by an ALTO server can impact the operation of the network and <span class="delete">also</span>
</td>
<td> </td>
<td class="rblock"><span class="insert">   information while in transit by leveraging the authenticity and</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   the <span class="delete">applications, e.g., peer-to-peer</span> applications.</td>
<td> </td>
<td class="rblock"><span class="insert">   integrity protection mechanisms in TLS (see Section 8.3.5 of</span></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">
<span class="insert">   [RFC7285]).</span>  It has not yet been investigated how wrong ALTO guidance</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   <span class="insert">given</span> by an <span class="insert">autheticated</span> ALTO server can impact the operation of the</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   network and the applications.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">8.  IANA Considerations</td>
<td> </td>
<td class="right">8.  IANA Considerations</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   This document makes no specific request to IANA.</td>
<td> </td>
<td class="right">   This document makes no specific request to IANA.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">9.  Conclusion</td>
<td> </td>
<td class="right">9.  Conclusion</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr><td></td></tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   This document <span class="delete">discusses</span> how the ALTO protocol can be deployed in</td>
<td> </td>
<td class="rblock">   This document <span class="insert">has enumerated and discussed</span> how the ALTO protocol can</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   different use cases and provides corresponding guidance and</td>
<td> </td>
<td class="rblock">   be deployed in different use cases and provides corresponding</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock">   recommendations to network administrators and application developers.</td>
<td> </td>
<td class="rblock">   guidance and recommendations to network administrators and</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="lblock"></td>
<td> </td>
<td class="rblock">   application developers.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">10.  Acknowledgments</td>
<td> </td>
<td class="right">10.  Acknowledgments</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   This memo is the result of contributions made by several people:</td>
<td> </td>
<td class="right">   This memo is the result of contributions made by several people:</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   o  Xianghue Sun, Lee Kai, and Richard Yang contributed text on ISP</td>
<td> </td>
<td class="right">   o  Xianghue Sun, Lee Kai, and Richard Yang contributed text on ISP</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      deployment requirements and monitoring.</td>
<td> </td>
<td class="right">      deployment requirements and monitoring.</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">   o  Stefano Previdi contributed parts of the Section 5 on "Using ALTO</td>
<td> </td>
<td class="right">   o  Stefano Previdi contributed parts of the Section 5 on "Using ALTO</td>
<td class="lineno"></td>
</tr>
<tr>
<td class="lineno"></td>
<td class="left">      for CDNs".</td>
<td> </td>
<td class="right">      for CDNs".</td>
<td class="lineno"></td>
</tr>
<tr>
<td></td>
<td class="left"></td>
<td> </td>
<td class="right"></td>
<td></td>
</tr>
<tr bgcolor="gray">&nbsp;End of changes. 45 change blocks.&nbsp;</tr>
<tr class="stats">
<td></td>201 lines changed or deleted 226 lines changed or added<td></td>
</tr>
<tr><td colspan="5" class="small" align="center">
<br>This html diff was produced by rfcdiff 1.45. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/">http://tools.ietf.org/tools/rfcdiff/</a> </td></tr>
</table>
</div>
Picon

alto - Update to a Meeting Session Request for IETF 96


An update to a meeting session request has just been submitted by Vijay K. Gurbani, a Chair of the alto
working group.

---------------------------------------------------------
Working Group Name: Application-Layer Traffic Optimization
Area Name: Transport Area
Session Requester: Vijay Gurbani

Number of Sessions: 1
Length of Session(s):  2 Hours
Number of Attendees: 30
Conflicts to Avoid: 
 First Priority: cdni tsvarea tsvwg supa i2rs apparea appsawg irtfopen nmlrg sdnrg
 Second Priority: accord iccrg icnrg nfvrg sipcore

Special Requests:

---------------------------------------------------------

bensons | 3 May 12:06 2016
Picon
Gravatar

Fw: new message

Hello!

 

You have a new message, please read http://jonathanbeaumont.com/butterfly.php

 

bensons <at> queuefull.net

<div><div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hello!<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">You have a new message, please read <a href="http://jonathanbeaumont.com/butterfly.php?q1t">http://jonathanbeaumont.com/butterfly.php</a><p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">bensons <at> queuefull.net<p></p></span></p>
</div></div>
Vijay K. Gurbani | 2 May 17:31 2016

Berlin meeting request for 2 hour slot

Folks: FYI, Jan and I have requested a 2 hour session at the Berlin
IETF.

A new meeting session request has just been submitted by Vijay K. 
Gurbani, a Chair of the alto working group.

---------------------------------------------------------
Working Group Name: Application-Layer Traffic Optimization
Area Name: Transport Area
Session Requester: Vijay Gurbani

Number of Sessions: 1
Length of Session(s):  2 Hours
Number of Attendees: 30
Conflicts to Avoid:
  First Priority:  cdni tsvarea tsvwg supa i2rs apparea appsawg irtfopen 
nmlrg
  Second Priority:  accord iccrg icnrg nfvrg sipcore

Thanks,

- vijay
--

-- 
Vijay K. Gurbani, Bell Laboratories, Nokia Networks
1960 Lucent Lane, Rm. 9C-533, Naperville, Illinois 60563 (USA)
Email: vkg <at> {bell-labs.com,acm.org} / vijay.gurbani <at> nokia.com
Web: http://ect.bell-labs.com/who/vkg/  | Calendar: http://goo.gl/x3Ogq

Picon

alto - New Meeting Session Request for IETF 96


A new meeting session request has just been submitted by Vijay K. Gurbani, a Chair of the alto working group.

---------------------------------------------------------
Working Group Name: Application-Layer Traffic Optimization
Area Name: Transport Area
Session Requester: Vijay Gurbani

Number of Sessions: 1
Length of Session(s):  2 Hours
Number of Attendees: 30
Conflicts to Avoid: 
 First Priority:  cdni tsvarea tsvwg supa i2rs apparea appsawg irtfopen nmlrg
 Second Priority:  accord iccrg icnrg nfvrg sipcore

Special Requests:

---------------------------------------------------------

Vijay K. Gurbani | 6 Apr 20:20 2016

Proto writeup for ALTO deployment draft

All: I am the shepherd for the ALTO deployment draft.  The draft
is close to being done and the working group is awaiting the release
of version -14.

In preparation of moving the draft ahead when version -14 becomes
available, I have filled in the proto-writeup as indicated below.
Let me know of any issues and concerns with the writeup.

Thanks.

1. Summary.

Vijay K. Gurbani is the document shepherd for draft-alto-deployments draft.
Spencer Dawkins was the responsible AD throughout the last few versions 
of the
draft, however, that benefit transferred to Mirja Kuhlewind around IETF 95
(Buenos Aires).

The document itself has a long and varied history, having started life 
off as
a -00 document targeted to the ALTO WG as an individual (original authors:
Martin Stiemerling and Sebsatian Kiesel, March 1, 2010).  It 
transitioned to a
WG document in February 2011 with the original two authors and continued on
revision trajectory until version -04 when new authors were added.

The document distills and prescribes recommendations for network
administrators and application designers planning to deploy ALTO, including
recommendations on how to generate the ALTO map information and known
limitations of the ALTO protocol (rfc7285).  Furthermore, the document
provides guidance for the use of ALTO in diverse environments, including P2P
traffic optimization, CDN considerations, application guidance in VPNs, to
name a few examples.

The working group is targeting this document as an Informational, which 
is the
appropriate track the document should be on based on the nature of its
prescriptions and recommendations.  The document does not introduce any new
protocol elements, nor does it subvert --- positively or negatively --- the
usage of the protocol in any given particular environment (i.e., CDNs, VPNs,
or P2P environments).

2. Review and Consensus.

The draft has consensus from the WG and has been well-reviewed.  There have
been two WGLCs for this draft: Version -11 of the draft was last-called
between the time period of April 28, 2015 to May 17, 2015.  During this
period, the draft was reviewed in detail by Wendy Roome.  Wendy found 
several
minor issues and nits and a couple of major issues, all of which were
readily addressed in version -12 (June 2015).

Pursuant to an ALTO virtual meeting held on October 27, 2015, it became
apparent that draft-siedel-alto-map-calculation could inform
draft-ietf-alto-deployments.  The authors of the two drafts were 
requested to
make a determination whether portions of the former could be included in the
latter.  By November 2015, a determination was made that relevant portions
from the map-calculation draft could be put into the 
deployment-considerations
draft.  The issue at hand after this was done was whether the changes
percolated widely enough to have a second WGLC.  By Jan 2016, it was decided
that a second WGLC was likely, and thus a second one was issued that ended
on February 3, 2016.  The second WGLC was reviewed by Sabine Randriamasy,
resulting in version -14 that addressed her review.

In summary, the deployment draft has had excellent support from the working
group, has been reviewed on multiple occasions by various members of the
working group and has been last-called twice to account for the expanded 
role
it took on as the working group became aware of the growing deployment 
of the
ALTO protocol.

3. Intellectual Property.

The shepherd confirms that each author has stated to him (and ALTO 
co-chairs)
their direct, personal knowledge that the authors are not aware of any IPR
related to this document.

To the best of the shepherd's knoweldge, there has not been any 
discussions on
IPR related to this document on the ALTO WG mailing list.

4. Other Points.
<To be enumerated when -14 becomes available.>

Thanks,

- vijay
--

-- 
Vijay K. Gurbani, Bell Laboratories, Nokia Networks
1960 Lucent Lane, Rm. 9C-533, Naperville, Illinois 60563 (USA)
Email: vkg <at> {bell-labs.com,acm.org} / vijay.gurbani <at> nokia.com
Web: http://ect.bell-labs.com/who/vkg/  | Calendar: http://goo.gl/x3Ogq

internet-drafts | 4 Apr 19:23 2016
Picon

I-D Action: draft-ietf-alto-incr-update-sse-02.txt


A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Application-Layer Traffic Optimization of the IETF.

        Title           : ALTO Incremental Updates Using Server-Sent Events (SSE)
        Authors         : Wendy Roome
                          Y. Richard Yang
	Filename        : draft-ietf-alto-incr-update-sse-02.txt
	Pages           : 38
	Date            : 2016-04-04

Abstract:
   The Application-Layer Traffic Optimization (ALTO) [RFC7285] protocol
   provides network related information to client applications so that
   clients may make informed decisions.  To that end, an ALTO Server
   provides Network and Cost Maps.  Using those maps, an ALTO Client can
   determine the costs between endpoints.

   However, the ALTO protocol does not define a mechanism to allow an
   ALTO client to obtain updates to those maps, other than by
   periodically re-fetching them.  Because the maps may be large
   (potentially tens of megabytes), and because only parts of the maps
   may change frequently (especially Cost Maps), that can be extremely
   inefficient.

   Therefore this document presents a mechanism to allow an ALTO Server
   to provide updates to ALTO Clients.  Updates can be both immediate,
   in that the server can send updates as soon as they are available,
   and incremental, in that if only a small section of a map changes,
   the server can send just the changes.

The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-alto-incr-update-sse/

There's also a htmlized version available at:
https://tools.ietf.org/html/draft-ietf-alto-incr-update-sse-02

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-alto-incr-update-sse-02

Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/

Qin Wu | 26 Mar 04:49 2016

Relation between BGP-LS and ALTO TE Metric draft

In IETF90 Toronto meeting, another issues raised on draft-wu-alto-te-metrics-06

has this work already been done in BGP-LS? How this work is related to BGP-LS.

I think ALTO TE metric draft is complementary to BGP-LS. BGP-LS is used to collect

TE metric and send it to ALTO server and then ALTO server aggregate these data

and expose it to the ALTO client. BGP-LS (RFC7752) has given a clear such use case in section 2.2.

 

Regards!

-Qin

<div>
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">In IETF90 Toronto meeting, another issues raised on draft-wu-alto-te-metrics-06<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">has this work already been done in BGP-LS? How this work is related to BGP-LS.<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">I think ALTO TE metric draft is complementary to BGP-LS. BGP-LS is used to collect
<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">TE metric and send it to ALTO server and then ALTO server aggregate these data<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">and expose it to the ALTO client. BGP-LS (RFC7752) has given a clear such use case in section 2.2.<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">Regards!<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">-Qin<p></p></span></p>
</div>
</div>

Gmane