Re: [alto] Some questions for alto-xdom-disc

xin wang <> Tue, 05 December 2017 05:30 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 80237124C27; Mon, 4 Dec 2017 21:30:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.874
X-Spam-Status: No, score=-0.874 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FORGED_HOTMAIL_RCVD2=0.874, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id E4hJJwS7Dxld; Mon, 4 Dec 2017 21:30:22 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id DA5B4124234; Mon, 4 Dec 2017 21:30:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=M2Fx1u189RTzNzBKkln0Cn3a/H8iv+z6YyM70i5ZWFo=; b=nUo5t+JZpI8yms06AKP/j2NW/07eVjadQK0dbqJS/eOczQ9NwtPB55sF/1IP4g8jlpv8LbWmkhXMpE17/9nJ3nu/THIQ4fq0GbsW7pZb0iFCZdr9FT2bnvQzOa/QAYQvzVj6teqXVuNlVK27vzOFvETH0mMVh1cHNSdSHsqeZETYlhkRBoZcvFQ/PCaE46UCryWODtFVxdaCabIYCiOSEpuvlKgTgRP9TPUEiCdbe4GAFqmgXqudTmxgMFsBMOT+au0s8llv1v0fZWnxfOJD5L/wwZqTzZpC8e4K+LuQOL2GuyPFjV+cwalfZ24FlKPehM4pI0WxYVd2f0cQO7OMuA==
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id; Tue, 5 Dec 2017 05:30:21 +0000
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id via Frontend Transport; Tue, 5 Dec 2017 05:30:21 +0000
Received: from ([fe80::818c:4121:13c4:2fa7]) by ([fe80::818c:4121:13c4:2fa7%15]) with mapi id 15.20.0282.012; Tue, 5 Dec 2017 05:30:20 +0000
From: xin wang <>
To: Sebastian Kiesel <>
CC: "" <>, IETF ALTO <>
Thread-Topic: Some questions for alto-xdom-disc
Thread-Index: AQHTallX4KCqNlp+v0CCce0S3MxUOqMzta4AgACHQXs=
Date: Tue, 5 Dec 2017 05:30:20 +0000
Message-ID: <>
References: <>, <>
In-Reply-To: <>
Accept-Language: en-US, zh-CN
Content-Language: en-US
x-incomingtopheadermarker: OriginalChecksum:AE820C367ED6CA00E97526F39EE3E44AD0D260B7D210E446BDC2E17EA60C9E08; UpperCasedChecksum:8566344688FC2C98DF9A12E87D3DC66948DD67BC328D6A0E096F1EE65790CDE9; SizeAsReceived:7183; Count:47
x-ms-exchange-messagesentrepresentingtype: 1
x-tmn: [cbjLgdvBHwPXiCG0SGkoYsfHOunuZVpo]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; CO1NAM03HT166; 6:PtEjxEdyF7Jt7ujBB+F3FsP5p6zgUN8ZBaz5rHUYB1PvAe6dFnGqYn46eyPuhIz8TAy+5cP/X6JNCugE1MsFpgUabE7g0zv33qdF+iMHOWdsqhiOakx/ki/GbrmgIieRpmskbUiw7OZ1M/nwVce+XZecQ4tgb+98hxH6orj/ROfAIYuLpQi4Y2Wwfv8cNBnNxeGP4wRE97Omhlp1DNPSSt+FxquMB1Rg1xekkt2PZxMcU5FQ831EgkxkyZ8TDmF8pcKYYL0IBvBZfJGKavgv2GesEkPedFvc5P8YaE8R6PHKSYz1gZdA8bdxFPw9MdvvBdIIP4yfLRa7j/cuqSNvDJ3WfFdeaCe5WAnCrgZ6er4=; 5:65RMxx7r2hDtcfqusmI9kksgDpuT42cUl+Q/G83pjtRVtpgrsRv5jxZeeBt41Rn5JYnCkr/xXW/CNHS7KkTxT04ISXyMyPwceKF/Gz4Utf8B69veze+xFqTncZ6hOgvxEuIG6DulkZiGoJG3FrO/HcdYfGHfah7Bjeo3COadfsE=; 24:JFB1438gR0vgsA4RleIcn6Wn2ZlB4toFV6hcSkJ0MIcHr11ZeJnrIM3hqJrTaiRDYo51hlJzSSAMIkBVLY4AA4hHTbG+Cm5526R6B1MVkKU=; 7:QBXu7YekZ+1ieCFP27h/VMSRPlISIynkItwB2Wr9ewd6HDzacdBHWZ7mymYPj35Z7H8Ra14O/sYJuJWIts1zTkRlq/+lxH/J9C7W+2g0vb3fTo4mKX/sxd0r5FtIWiWOMbafhZ+bDufZhEZ5tVaLjryBKcoyFYWrg5efPKXZHyEFZyAS9LbqrvOdKe1kZyM6+tIoFMjuGHQu3WoOKnIgauouqq8x3ACEX1zSfqwjczxGg7ftvSKOTmt6E080Q3r7
x-incomingheadercount: 47
x-eopattributedmessage: 0
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125374)(1603101448)(1701031045); SRVR:CO1NAM03HT166;
x-ms-traffictypediagnostic: CO1NAM03HT166:
x-ms-office365-filtering-correlation-id: 8cb4b0e7-55e9-457e-304d-08d53ba146fe
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:CO1NAM03HT166; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:CO1NAM03HT166;
x-forefront-prvs: 0512CC5201
x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:CO1NAM03HT166;; FPR:; SPF:None; LANG:;
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_DM2PR08MB1337F84526435E6E5B8DE566A83D0DM2PR08MB1337namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 8cb4b0e7-55e9-457e-304d-08d53ba146fe
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2017 05:30:20.8224 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Internet
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1NAM03HT166
Archived-At: <>
Subject: Re: [alto] Some questions for alto-xdom-disc
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Application-Layer Traffic Optimization \(alto\) WG mailing list" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 05 Dec 2017 05:30:24 -0000

Dear Sebastian and all,

Thank you for the clarification!

First, I agree with your point that “the best source of information for costs between source IP address S and destination address D, is the network operator that runs the network in which S is located”, which is quite natural and reasonable. My consideration is that what is the best source of information really depends on the implementation of reverse DNS where network operators put records for ALTO server discovery. Therefore, it is possible that different network operator may have different strategies to choose the best source of information. I think we should not restrict these network operators with the same strategy. Instead, the protocol should define what the best source (return of XDOMDISC(X,"ALTO:https")) would look like, I think. The following is my comments on Sec. 3:

For Sec. 3.1, as the list of IRD URI(s) is computed by XDOMDISC(X,"ALTO:https”), I think it is acceptable that the result is very sparse. We can see that the result basically captures all the cost values related to “X” which satisfies the requirement of the ALTO client invoking the service for “X”.

However, one thing not sure is that do we have a formal definition of “related” in Sec. 2.1 where the definition of the interface is given? From your draft, my understanding of “related” (i.e., the return of XDOMDISC) is the following:

If an IRD contains an ALTO server which can give at least one useful cost value either with “X” as a source or destination, then the URI of the IRD can be returned for XDOMDISC(X,"ALTO:https”).

This definition can match the case 2 in Sec. 3.4 where the input of XDOMDISC is the destination address. However, the definition would degrade the return of XDOMDISC in the case 1 in Sec. 3.4 as in the extreme case for each destination address Di, there is an ALTO server “related” to Di. Hence, the return of XDOMDISC(S1,"ALTO:https”) would have n + 1 entities where n is the number of destination addresses. Then, how to find the best one among these n + 1 entities becomes a new issue.

One direct solution I can think of is that can we also add the “position” of “X” as an additional input of XDOMDISC? The “position” field has three possible values: “source”, “destination”, and “both" which means the discovered ALTO server can give at least one useful cost value with “X” as “source”, “destination”, and “both" respectively. Then, the interface would be XDOMDISC(X, Position, "ALTO:https”). If this sounds reasonable, we can then generalize the “position” field in a more abstract way if possible.


X. Tony Wang

From: Sebastian Kiesel <>
Sent: Monday, December 4, 2017 16:16
To: xin wang
Subject: Re: Some questions for alto-xdom-disc

Dear xin wang, all,

please see below

On Fri, Dec 01, 2017 at 04:05:47AM +0000, xin wang wrote:
> Dear authors of alto-xdom-disc and all,
> Do you have any new updates on the draft of alto-xdom-disc?

we are working on a new version of the draft, which will give a better
specification of the discovery procedure as such (i.e., section 2).
We are not planning to make a change on how the procedure is supposed
to work, just give a better explanation.

> I know that the draft intends to address the IRD discovery issue in
> the cross-domain setting, but I find that the cross-domain itself
> arouse my great interest.

Well, the immediate outcome of the procedure is one or more IRD URIs.

However, nobody is interested in discovering IRDs as such - it is just
an intermediate step, so you can lookup the ECS or EPS in the IRD.
In fact, our procedure is intended to be used with the
Endpoint Property Service and the Endpoint Cost Service.

> Considering that each domain has one ALTO server that can give a
> useful cost value (not default) between any two endpoints in the
> domain for the ECS. Then, the ALTO server discovery works when a
> client asks for the cost value between any two endpoints in the same
> domain, as it will direct to the right ALTO server which can give cost
> values for some endpoint-pairs. It might involve multiple ALTO servers
> to answer a single query of ECS service but the requirement of the
> client can be satisfied.
> However, if a client asks for a cost value between two endpoints which
> locate in different domains, then who should be able to give the cost
> value?

We believe that in many scenarios, the best source of information
for costs between source IP address S and destination address D,
is the network operator that runs the network in which S is located.
Consequently, we believe that this network operator should be able
to announce "if you want to do ECS(S,D) please ask the ALTO server
at http://...some.uri..."

> This should be a common case if we target to deploy ALTO across
> the public Internet as you listed as one of the requirements for ALTO
> cross-domain server discovery.


> There are basically two approaches for the issue above: one is to
> depend each ALTO server itself to compute cost values across domains
> (e.g., recursive sending queries to other servers); the other is to
> set up a hierarchy structure to relay the query to an upper ALTO
> server which is able to support ECS across domains. In either way,
> there need substantial efforts to consider/design a protocol between
> two ALTO servers (which is discussed a little in the Sec. 1.1.2 in
> your draft).
> Do you think there are potential solutions can resolve the issue
> without depending too much on the inter-ALTO-server information
> exchanging? Or design inter-ALTO-server protocol is the best
> direction?

We do a classification and discussion of several approaches.
However, we then focus on one approach, which does not need any
communication between ALTO servers, neither using the regular ALTO
protocol nor a to-be-defined inter-ALTO-server protocol.

Instead, we let the ALTO client do the work.

If an ALTO client wants to query the ECS with specific source and
destination addresses, it has to discover an appropriate ALTO server
first.  Then, it can ask this server, and this server is supposed to
answer without any consultation of other servers.

Furthermore, we want to avoid that a new "rendezvous point" or
Internet-wide directory of ALTO servers would have to be established.
We want to build on an existing infrastructure.

The idea is as follows:

Conceptually, the ECS does a query on a large N x N matrix,
where the column headers are labeled "from IP address (or prefix)" and
the row headers are labeled "to IP address (or prefix)".
However, we believe that it is unlikely that a single ALTO server will
ever accumulate so much data that it can give reasonable values for
every element of the matrix, in an Internet-wide deployment scenario.

Instead, we split our large matrix into many small 1 x N "column vectors".
Each of them indicates the cost from one specific IP address (or prefix)
to all possible IP addresses (or prefixes).  Then, we can install each
of these column vectors on a different ALTO server. So, in total we can
have up to N ALTO servers, each with one stripe of the overall matrix.
Of course, one ALTO server can also host more than one column vector, so
we may work with fewer than N servers.

Those who control the reverse DNS for S (i.e. the mapping from IP
address S to a host name) can put a record in the DNS pointing from S
to the URI of that ALTO server that knows the column vector
"from S to all possible IP addresses (or prefixes)".
This is how we use an existing infrastructure (the DNS) for the
discovery job.

As I wrote above, we are working on an update to section 2.
Could you please review section 3, which explains the interaction
of the procedure with ECS and the other ALTO services?  Thanks!

best regards,