Re: [alto] Comments on draft-ietf-alto-new-transport-08

kaigao@scu.edu.cn Tue, 23 May 2023 05:28 UTC

Return-Path: <kaigao@scu.edu.cn>
X-Original-To: alto@ietfa.amsl.com
Delivered-To: alto@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 85FA3C15107B; Mon, 22 May 2023 22:28:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.591
X-Spam-Level:
X-Spam-Status: No, score=-5.591 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_VALIDITY_RPBL=1.31, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jweOqT-VaWvV; Mon, 22 May 2023 22:28:36 -0700 (PDT)
Received: from instance-20230309-1410.icoremail.net (sgoci-sdnproxy-2.icoremail.net [168.138.187.110]) by ietfa.amsl.com (Postfix) with ESMTP id 0D5F0C14CE55; Mon, 22 May 2023 22:28:33 -0700 (PDT)
Received: from kaigao$scu.edu.cn ( [10.135.0.39] ) by ajax-webmail-app1 (Coremail) ; Tue, 23 May 2023 13:26:48 +0800 (GMT+08:00)
X-Originating-IP: [10.135.0.39]
Date: Tue, 23 May 2023 13:26:48 +0800
X-CM-HeaderCharset: UTF-8
From: kaigao@scu.edu.cn
To: "maqiufang (A)" <maqiufang1@huawei.com>
Cc: "draft-ietf-alto-new-transport@ietf.org" <draft-ietf-alto-new-transport@ietf.org>, IETF ALTO <alto@ietf.org>
X-Priority: 3
X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20220420(bbe86039) Copyright (c) 2002-2023 www.mailtech.cn mail
In-Reply-To: <da0db3af90004190950f72d27e8fee6b@huawei.com>
References: <da0db3af90004190950f72d27e8fee6b@huawei.com>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="UTF-8"
MIME-Version: 1.0
Message-ID: <2e72a4db.2e294.18847130493.Coremail.kaigao@scu.edu.cn>
X-Coremail-Locale: en_US
X-CM-TRANSID: 4wAACgAHermZTmxk9e1EAw--.14080W
X-CM-SenderInfo: 5ndlwt3r6vu3oohg3hdfq/1tbiAQYAB2RrQooReQAAsv
X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VWxJw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU=
Archived-At: <https://mailarchive.ietf.org/arch/msg/alto/7IcgBErB2ZJpfv6tTPrzClomg44>
Subject: Re: [alto] Comments on draft-ietf-alto-new-transport-08
X-BeenThere: alto@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Application-Layer Traffic Optimization \(alto\) WG mailing list" <alto.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/alto>, <mailto:alto-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/alto/>
List-Post: <mailto:alto@ietf.org>
List-Help: <mailto:alto-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/alto>, <mailto:alto-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 May 2023 05:28:41 -0000

Hi Qiufang,

Thanks for the review! It is very helpful. Please see the responses inline.

Best,
Kai


&gt; -----Original Messages-----
&gt; From: "maqiufang (A)" <maqiufang1@huawei.com>
&gt; Sent Time: 2023-05-19 15:59:03 (Friday)
&gt; To: "draft-ietf-alto-new-transport@ietf.org" <draft-ietf-alto-new-transport@ietf.org>
&gt; Cc: "IETF ALTO" <alto@ietf.org>
&gt; Subject: [alto] Comments on draft-ietf-alto-new-transport-08
&gt; 
&gt; Hi, all
&gt; 
&gt; Notice that Jordi was asking for volunteers to review ALTO WG documents, I tried to spend some time reviewing this ALTO new transport document and my comments are following.
&gt; Note that some of my questions/comments may be due to my not fully understanding of this document(sorry!)...
&gt; 
&gt; Sec.1 Introduction
&gt; Specifically, this document specifies the
&gt;    following:
&gt; 
&gt;    *  Extensions to the ALTO Protocol to create, update, or remove an
&gt;       incrementally changing network information resource.
&gt; So I thought that the ALTO client can request to create and delete a TIPS view, and also query the content of the TIPS or receive push updates. But I am not sure how the ALTO protocol could be extended to allow the client to update that view. I thought ALTO is a network information exposure protocol, the capability to update a network information resource sounds surprising to me.
&gt; 

KAI: Thanks for the comment. There might be a misunderstanding here -- this paragraph does not mean that the ALTO *client* should update the resource -- but I see your point. The proposed text is:

* Extensions to the ALTO protocol to allow dynamic subscription and efficient uniform update delivery for an incrementally changing network information resource.

&gt; 
&gt; Sec.2.1 Transport Requirements
&gt; s/direct/directly

KAI: Good catch. Fixed.

&gt; 
&gt; Sec.2.2 TIPS Terminology
&gt; 
&gt; *         In the definition of Updates graph, the authors mention that:
&gt;       A static network information resource (e.g., Cost Map,
&gt;       Network Map) may need only a single updates graph. A dynamic
&gt;       network information resource (e.g., Filtered Cost Map) may create
&gt;       an updates graph (within a new TIPS view) for each unique filter
&gt;       request.
&gt; 
&gt; How to understand cost map and network map as static network information resource? I don't see the 7285 making that distinction, I think the cost map information could be dynamically changing. Maybe you mean something else I failed to get, but I don't think there exists static network information resource on a time span.
&gt; 
&gt; 

KAI: Good point. We propose to follow the terms in RFC 7285 and replace "A static network information resource" with "An ALTO map service".

&gt; 
&gt; *         The definition of snapshot/incremental update is a full/partial replacement of resource contained within an updates graph, but the word "replacement" sounds quite strange to me. Why it is a replacement? Could you clarify a little bit more? Or maybe you want to use generation/creation?
&gt; 
&gt; 

KAI: Replacement means that the content returned by a resource is "replaced" by some other content and is also used to refer to the new content that replaces either all (i.e., full replacement) or only a subset (partial replacement) of the old content. I feel that replacement is the right term here.

&gt; 
&gt; *         The definition for ID#i-#j:
&gt; 
&gt;       Denotes the update item (op, data) on a specific edge in the
&gt;       updates graph to transition from version at node i to version at
&gt;       node j, where i and j are the respective sequence numbers of the
&gt;       nodes the edge connects.
&gt;       What's the abbreviation for op, operation? I don't see this field in the ALTO message. The update item is defined as either a snapshot or incremental update, I don't know how this is related to (op,data).
&gt; 
&gt; 

KAI: Good point. The update item is not properly defined. A new entry for update item is now added to the terminology, see below:

   Update item:  Refers to the content on an edge of the updates graph,
      which can be either a snapshot or incremental update.  An update
      item can be considered as a pair (op, data) where op denotes
      whether the item is an incremental update or a snapshot, and data
      is the content of the item.

&gt; 
&gt; *         The text below Information Resource Directory(IRD)
&gt; 
&gt; Figure 4 shows an example illustrating the TIPS abstraction.  Each
&gt; 
&gt; ALTO client (Client 1, Client 2, or Client 3) maintains a single HTTP
&gt; 
&gt; connection with the ALTO server.
&gt; 
&gt; s/Figure 4/Figure 1?  Also note that you described this figure as the TIPS abstraction, but the figure 1 title is "ALTO Transport Information".
&gt; 
&gt; 

KAI: Good catch. Fixed. We have hanged the title to "Overview of ALTO TIPS" and the text has been expanded, see below:

   Figure 1 shows an example illustrating an overview of the ALTO TIPS
   service.  The server provides the TIPS service of two information
   resources (#1 and #2) where we assume #1 is an ALTO map service, and
   #2 is a filterable service.  There are 3 ALTO clients (Client 1,
   Client 2, and Client 3) that are connected to the ALTO server.  Each
   client maintains a single HTTP connection with the ALTO server and
   uses the TIPS view to retrieve updates.  Specifically, a TIPS view
   (tv1) is created for the map service #1, and is shared by multiple
   clients.  For the filtering service #2, two different TIPS view (tv2
   and tv3) are created upon different client requests.

&gt; 
&gt; *         Regarding Figure 1, I found that description of information resource #2 is lost, is this intentional? Maybe add some description for resource #2 to communicate the intent? Or simply remove it and rename resource#3 to resource#2.
&gt; 
&gt;
 
KAI: Good point. Fixed as suggested.

&gt; 
&gt; *         Note that you also refer to network Map as static resource here, see my similar comments above.
&gt; 

KAI: Fixed as in the previous comment.

&gt; 
&gt; *         Above Figure 1: tvi/ug = incremental updates graph associated with tsi
&gt; s/tsi/tvi?
&gt; 

KAI: Fixed.

&gt; Sec.3.1 Basic Data Model of Updates Graph
&gt; 
&gt; *         Mandatory incremental updates and optional incremental updates are mentioned in the explanation of Figure 2, but I never see this defined, so what is mandatory/optional incremental updates? What is the difference between mandatory and optional ones? Maybe point to some reference here, or clarify in the document.
&gt; 

KAI: Good point. We add the definitions of mandatory and optional incremental update as part of the incremental update, see below.


   Incremental update:  Is a partial replacement of a resource contained
      within an updates graph, codified in this document as a JSON Merge
      Patch or JSON Patch.  An incremental update is mandatory if the
      source version (i) and target version (j) are consecutive, i.e., i
      + 1 = j, and optional otherwise.  Mandatory incremental updates
      are always in an updates graph, while optional incremental updates
      may or may not be included in an updates graph.

&gt; 
&gt; Sec.3.2 Resource Location Schema
&gt; 
&gt; *         I guess I don't really understand what is a location schema. Maybe add a reference or more text for clarity.
&gt; 

KAI: Fair argument. We add a sentence to clarify the meaning of resource location schema:

   Update items are exposed as HTTP resources and the URLs of these
   items follow specific patterns that we call the resource location
   schema.

&gt; *         At the very beginning of this section:
&gt; 
&gt; To access each individual update in an updates graph, consider the
&gt; 
&gt;    model represented as a "virtual" file system (adjacency list)...
&gt; 
&gt; In my opinion, it is not a real file system. The file system is a tree structure, each non-root node has and only has one parent, but in figure 3, for example, node 103 has both 0 and 102 as parents node, fine for a directed acyclic graph, but not a file  structure. Maybe I am wrong, but please check that.
&gt; 

KAI: The schema IS a tree structure. Note that <tvr>/ug/102/103 and <tvr>/ug/0/103 are two different nodes in the tree structure and represent two different edges in the updates graph.

&gt; *         It is not easy to understand your figure 3. At first I was struggling to understand what the indentation means for each number, and what the shortcut means. Then I've got some understanding which I am not sure is correct. Maybe you want to add more explanation for this figure.
&gt; 

KAI: Figure 3 is the tree structure for the virtual file system. Indentation means that the items is in the subdirectory rooted at the parent. We redraw the figure to make the structure more explicit, see snippets below.

<tips-view-root>
 |_ ug
    |_ 0
       |_ 101
       ...
       \_ 105

&gt; 
&gt; Sec.3.3 Updates Graph Modification Invariants
&gt; 
&gt; *         Sorry, but I guess I still don't understand what the title means, what is the modification invariant?
&gt; 

KAI: Modification invariants mean properties that must not change or be violated after a updates graph modification.

&gt; *         You mentioned in the last paragraph that a server might compact a resource's update graph to save space, and [105,106] are valid set for server to save. But then what if a client requests content from 101 to 105? Doesn't this mean that resource state prior to 105 is no longer reachable for clients?
&gt; 

KAI: Yes, when the server shrinks the updates graph to [105, 106], states prior to 105 are not reachable any more by intention.

&gt; 
&gt; Sec.6.3 Open Example
&gt; 
&gt; *         The client sends a request to ALTO server, how its username and password is reflected on the request? It is the Authorization field? Maybe mention it more explicit like that: The user name and password are combined in the format of user:password and encoded using Base64 in the Authorization field. Otherwise I would rather not even mention this authorization thing

KAI: The current text says:

   For simplicity, assume that the ALTO server is using the Basic
   authentication. ... 

Personally I think this is already clear enough how the username and password is reflected in the request.</tips-view-root></tvr></tvr></alto@ietf.org></draft-ietf-alto-new-transport@ietf.org></maqiufang1@huawei.com>