Re: [dtn] Barry Leiba's No Objection on draft-ietf-dtn-tcpclv4-18: (with COMMENT)
Barry Leiba <barryleiba@computer.org> Sun, 01 March 2020 16:33 UTC
Return-Path: <barryleiba@gmail.com>
X-Original-To: dtn@ietfa.amsl.com
Delivered-To: dtn@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 750DB3A08B6; Sun, 1 Mar 2020 08:33:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.399
X-Spam-Level:
X-Spam-Status: No, score=-1.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qRahaTcnthCb; Sun, 1 Mar 2020 08:33:31 -0800 (PST)
Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 650A23A08B1; Sun, 1 Mar 2020 08:33:31 -0800 (PST)
Received: by mail-il1-f177.google.com with SMTP id f5so7212253ilq.5; Sun, 01 Mar 2020 08:33:31 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Xl4/YwNb4vmMcN3rA/9j5lizMQ5zqL4qcPOTItzJ7W8=; b=Xyk6UWvxPhWR10Pn6PGN0kY8VYd+NtQJmIXX5t60jPO90ndPznZRx6JG1DVIwsJ26S +/P2uEih9IFLendsh26xmU1igo4bghDxCjzHNKwdzFC+Jn7JHCrmtfgAU0Z4RgVwqQxO PeYDPm0AQ03JlmBOPTjTzi5Ix3HkwG+ZzRZtiSVsbK2wk+vL2vxSC8KRaxb83eqfSGJB O01wQJMLXX41sKMUW9s+DBc4f0QO/L8a9j8pWOBoVqCyDYB5hQwT6qpn//XBHkZ+EBHW qgwogdEkMQtT4i/MeT5EKvCtveXM41IE8Miou9xbmSF7myVy7EbQ1Ui0zMXeCiZh5WrA Gl1Q==
X-Gm-Message-State: APjAAAWSe1Ub6ssA899VtM7H23u9Xxlo3T57WL0u+K/Gb0mY6Ps3om8W yNoy7yPDGJvR7NplCy+8OWOCm6gc8+NYRvYcOqw=
X-Google-Smtp-Source: APXvYqykafjFK02hHgBuTQz94QPkTbKwy+tFNi4qg/nc20v9GIJwPs9ytq2Kp3zs7nzBKIkygK+hTxHCQ8Q0smo/osA=
X-Received: by 2002:a92:2907:: with SMTP id l7mr13117077ilg.140.1583080410213; Sun, 01 Mar 2020 08:33:30 -0800 (PST)
MIME-Version: 1.0
References: <158163559251.20564.15042284700274126090.idtracker@ietfa.amsl.com> <a751efc27d9b5c6a561f7c0dd7601b4f404b2fc3.camel@rkf-eng.com>
In-Reply-To: <a751efc27d9b5c6a561f7c0dd7601b4f404b2fc3.camel@rkf-eng.com>
From: Barry Leiba <barryleiba@computer.org>
Date: Sun, 01 Mar 2020 11:33:18 -0500
Message-ID: <CALaySJJkqQ4xDubHiRzHEWf=6-AXjVx8io=xfEk9c0c2MdVSAw@mail.gmail.com>
To: Brian Sipos <BSipos@rkf-eng.com>
Cc: "iesg@ietf.org" <iesg@ietf.org>, "dtn-chairs@ietf.org" <dtn-chairs@ietf.org>, "draft-ietf-dtn-tcpclv4@ietf.org" <draft-ietf-dtn-tcpclv4@ietf.org>, "dtn@ietf.org" <dtn@ietf.org>, "edward.birrane@jhuapl.edu" <edward.birrane@jhuapl.edu>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/xe2eKaNAMdfHjk3h_5n_MSNS3zQ>
Subject: Re: [dtn] Barry Leiba's No Objection on draft-ietf-dtn-tcpclv4-18: (with COMMENT)
X-BeenThere: dtn@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Delay Tolerant Networking \(DTN\) discussion list at the IETF." <dtn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dtn>, <mailto:dtn-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dtn/>
List-Post: <mailto:dtn@ietf.org>
List-Help: <mailto:dtn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dtn>, <mailto:dtn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Mar 2020 16:33:34 -0000
Thanks, Brian, for your responses, and it all looks good. I appreciate your addressing my comments! Barry On Fri, Feb 28, 2020 at 10:42 PM Brian Sipos <BSipos@rkf-eng.com> wrote: > > Barry, > I'm including responses below with prefix "BS: " > > On Thu, 2020-02-13 at 15:13 -0800, Barry Leiba via Datatracker wrote: > > Barry Leiba has entered the following ballot position for > > draft-ietf-dtn-tcpclv4-18: No Objection > > > > When responding, please keep the subject line intact and reply to all > > email addresses included in the To and CC lines. (Feel free to cut this > > introductory paragraph, however.) > > > > > > Please refer to > > https://www.ietf.org/iesg/statement/discuss-criteria.html > > > > for more information about IESG DISCUSS and COMMENT positions. > > > > > > The document, along with other ballot positions, can be found here: > > https://datatracker.ietf.org/doc/draft-ietf-dtn-tcpclv4/ > > > > > > > > > > ---------------------------------------------------------------------- > > COMMENT: > > ---------------------------------------------------------------------- > > > > TCPCL: I’ve chosen to mentally pronounce this as “tee cee pickle”. Just so > > you know... > > > > Thank you for the work on this stuff. I have a number of comments, a few of > > which are substantive but minor; the rest are editorial and don’t need > > explicit > > responses. > > > > The substantive ones: > > > > — Section 3.1 — > > > > Session State Changed: The TCPCL supports indication when the > > session state changes. > > > > What does “supports indication” mean? Are you saying that the TCPCL > > “indicates > > when the session state changes”? Or does some other entity provide those > > indications? If the latter, it would be better to say what entity or entities > > do that, something like, “The TCPCL supports indications of session state > > changes from the BP agent.” It should also be clear, whatever entity provides > > the indications, whether they always happen or are optional. For example, can > > we *rely* on getting “Sesson Negotiating” and “Established” indications, or is > > it an implementation/deployment/configuration choice that they’re produced? > > (Same comment for Session Idle Changed, and all other items in this section > > that talk about indications.) > > > BS: This text should read as "The TCPCL entity indicates ..." and this section > should more clearly use nouns "TCPCL entity" and "BP agent" to distinguish > between the implementation (entity) vs. the specification. > I will clarify mandatory vs. optional for each of the session and transfer state > changes. > > > — Section 4.1 — > > > > If the > > passive entity does not receive a Contact Header after some > > implementation-defined time duration after TCP connection is > > established, the entity SHALL close the TCP connection. > > > > Should there be any recommendation about that implementation-defined time > > duration, as there is in the previous paragraph? No judgment here, but just a > > question. I’ll note that if I never close the TCP connection I can say that > > I’m obeying the “SHALL”, and it’s just that my implementation defines the time > > duration at 17 years. > > > BS: CH timeout guidance will be added similar to the KEEPALIVE guidance of 10 > minutes. > > > — Section 4.4 — > > > > Once > > established, there is no mechanism available to downgrade a TCPCL > > session to non-TLS operation. If this is desired, the entire TCPCL > > session MUST be terminated and a new non-TLS-negotiated session > > established. > > > > I suggest that it’s unlikely that this will be necessary, and I suggest being > > stronger about not doing it. Does this work for you?: > > > > NEW > > Once > > established, there is no mechanism available to downgrade a TCPCL > > session to non-TLS operation. If such a downgrade is necessary, > > the entire TCPCL session would have to be terminated and a new > > non-TLS-negotiated session established. This is NOT RECOMMENDED. > > END > > > BS: I agree that this is not a recommended procedure, and since it involves > agent behavior outside of a TCPCL session (and the spec doesn't have any real > requirements about how and when sessions are established) I am going to strike > the second half of this paragraph and leave the statement about "... no > mechanism ..." > > > — Section 6.1 — > > > > After sending a SESS_TERM message, an entity MAY continue a possible > > in-progress transfer in either direction. After sending a SESS_TERM > > message, an entity SHALL NOT begin any new outgoing transfer for the > > remainder of the session. After receving a SESS_TERM message, an > > entity SHALL NOT accept any new incoming transfer for the remainder > > of the session. > > > > Checking something here… according to this, if A sends SESS_TERM to B: > > - A MUST NOT begin a new transfer to B > > - B MUST NOT accept a new transfer from A > > - But B is allowed to begin a new transfer to A, and A can accept it > > > > Is that as intended? > > > BS: The phrasing is a bit ambiguous. I'm going to tie those requirements to the > TCPCL session being in the Ending state and give a concrete definition of the > Ending state based on the earlier state diagrams. > > > - - - - - - - - > > > > Editorial comments: > > > > — Section 1.1 — > > > > o Policies or mechanisms for assigning X.509 certificates, > > provisioning, deploying, or accessing certificates and private > > keys, deploying or accessing certificate revocation lists (CRLs), > > or configuring security parameters on an individual entity or > > across a network. > > > > When a list item contains commas, it’s customary to use semicolons to delimit > > the outer list, in order to avoid confusion. So: > > > > NEW > > o Policies or mechanisms for assigning X.509 certificates; > > provisioning, deploying, or accessing certificates and private > > keys; deploying or accessing certificate revocation lists (CRLs); > > or configuring security parameters on an individual entity or > > across a network. > > END > > > BS: Makes sense and I will update the spec. > > > — Section 2.1 — > > > > Idle Session: A TCPCL session is idle while the only messages being > > transmitted or received are KEEPALIVE messages. > > > > It would be useful to have a forward reference here, “(see Section 5.1.1)”. > > > > Live Session: A TCPCL session is live while any messages are being > > transmitted or received. > > > > Maybe “while any messages other than KEEPALIVEs are being...” > > > BS: Makes sense and I will update this phrasing to be consistent with other > areas of the spec. The state is not about messages but about in-progress > transfers. > > > — Section 3.3 — > > > > The states of a nominal TCPCL session (i.e. without session failures) > > are indicated in Figure 4. > > > > Why “nominal”? Or do you mean to say “normal”? (And “i.e.” needs a comma > > after it throughout the document, as does “e.g.”.) > > > > Session "Live" means transmitting or reeiving over a transfer > > > > Typo: “receiving” > > > BS: Will fix these typos and use the term "normal". > > > — Section 3.4 — > > > > In a situation where network "goodput" is dynamic, the > > transfer segmentation size can also be dynamic > > > > It may be cute, but is there really a need to make up that word and use it > > just > > once? Will everyone understand it, or will it just make some people (whose > > grasp of English isn’t as good as ours) pause and wonder for an unnecessary > > moment? I don’t feel strongly about it — just asking the question. > > > BS: Makes sense and I am rephrasing this to "TCP throughput" to be more > specific. > > > — Section 4 — > > > > For example, some sessions MAY be opened proactively and > > maintained for as long as is possible given the network conditions, > > while other sessions MAY be opened only when there is a bundle that > > > > I think these are not BCP 14 “MAY”, but just plain English “may” (or “might”). > > > BS: Agreed, I'm removing the requirement terms from these statements. > > > — Section 4.1 — > > > > Therefore, the entity MUST retry the > > connection setup no earlier than some delay time from the last > > attempt > > > > This starts to look as though “the entity MUST retry the connection setup”, > > which is not what you mean. You can avoid this by moving the negative, and I > > think it reads more cleanly that way: > > > > NEW > > Therefore, the entity MUST NOT retry the > > connection setup without some delay time from the last attempt > > END > > > BS: Agreed and going to rephrase this. > > > — Section 4.3 — > > > > The first negotiation is on the TCPCL protocol version to use. The > > active entity always sends its Contact Header first and waits for a > > response from the passive entity. The active entity can repeatedly > > attempt different protocol versions in descending order until the > > passive entity accepts one with a corresponding Contact Header reply. > > Only upon response of a Contact Header from the passive entity is the > > TCPCL protocol version established and parameter negotiation begun. > > > > During contact initiation, the active TCPCL node SHALL send the > > highest TCPCL protocol version on a first session attempt for a TCPCL > > peer. If the active entity receives a Contact Header with a > > different protocol version than the one sent earlier on the TCP > > connection, the TCP connection SHALL be closed. If the active entity > > receives a SESS_TERM message with reason of "Version Mismatch", that > > node MAY attempt further TCPCL sessions with the peer using earlier > > protocol version numbers in decreasing order. Managing multi-TCPCL- > > session state such as this is an implementation matter. > > > > The latter paragraph repeats some of what’s in the former, as though they were > > written separately and pasted together. May I suggest merging them this way?: > > > > NEW > > The first negotiation is on the TCPCL protocol version to use. The > > active entity always sends its Contact Header first and waits for a > > response from the passive entity. During contact initiation, the > > active TCPCL node SHALL send the highest acceptable TCPCL protocol > > version on a first session attempt to a TCPCL peer. If the active > > entity receives a Contact Header with a different protocol version > > than the one it had sent, the TCP connection SHALL be closed. If > > the active entity receives a SESS_TERM message with reason of > > "Version Mismatch", that node MAY attempt further TCPCL sessions > > with the peer, using earlier protocol version numbers in decreasing > > order. Managing multi-TCPCL-session state such as this is an > > implementation matter. Only upon response of an acceptable Contact > > Header from the passive entity is the TCPCL protocol version > > established and parameter negotiation begun. > > END > BS: Agreed and edited. > > > the node MAY either terminate the session > > (with a reason code of "Version mismatch") or the node MAY adapt its > > operation to conform to the older version of the protocol. > > > > The first “the node MAY” is already factored out of the “either”, so you can > > strike the second instance: > > > > NEW > > the node MAY either terminate the session > > (with a reason code of "Version mismatch") or adapt its > > operation to conform to the older version of the protocol. > > END > > > BS: Agreed and edited. > > > > > — Section 4.6 — > > > > The order and > > mulitplicity of these Session Extension Items MAY be significant, > > as defined in the associated type specification(s). > > > > This is not a BCP 14 “MAY”, but just a plain English “may” (or “might”). > > > BS: This is actually a requirement for implementations to not assume that order > is insignificant. I'm going to change this from a "MAY be" to an "is" statement > of fact. > > > — Section 4.7 — > > > > If the > > either Transfer MRU or Segment MRU is unacceptable > > > > “If either the” — words swapped. > > > BS: Agreed and fixed. > > > Session Keepalive: Negotiation of the Session Keepalive parameter is > > performed by taking the minimum of this two contact headers' > > Keepalive Interval. > > > > “of the two” and “Intervals”. > > > BS: Agreed and fixed. > > > It can be a > > reasonable security policy to both require or disallow the use of > > TLS depending upon the desired network flows. > > > > You can’t both require and disallow at the same time. You mean “either”, not > > “both”. > > > BS: Agreed and fixed. > > > — Section 4.8 — > > > > Flags: A one-octet field containing generic bit flags > > > > This field is called “Item Flags” in the diagram, and should be called that > > here as well. > BS: Agreed and fixed. > > > > > — Section 5.1.1 — > > > > Note: The Keepalive Interval SHOULD NOT be chosen too short as TCP > > retransmissions MAY occur in case of packet loss. > > … > > KEEPALIVE messages MAY experience noticeable latency. > > > > These are not BCP 14 “MAY”, but just plain English “may” (or “might”). > > > BS: Agreed and fixed. > > > — Section 5.2 — > > > > The choice of the length to use for segments is > > an implementation matter, but each segment MUST be no larger than the > > > > As I recommended earlier, I think MUST NOT is clearer than MUST in sentences > > such as this, so I suggest, “but each segment MUST NOT be larger than”. > > > BS: Agreed and fixed. > > > — Section 5.2.2 — > > > > The order and > > mulitplicity of these transfer extension items MAY be significant, > > as defined in the associated type specification(s). > > > > This is not a BCP 14 “MAY”, but just a plain English “may” (or “might”). > > > BS: Will apply same treatment as earlier transfer items. > > > — Section 5.2.4 — > > > > As data segments and > > acknowledgments MAY cross on the wire > > > > This is not a BCP 14 “MAY”, but just a plain English “may” (or “might”). > > > BS: Agreed and fixed. > > > bundle after transmitting a XFER_REFUSE message since messages MAY > > cross on the wire; > > > > This is not a BCP 14 “MAY”, but just a plain English “may” (or “might”). > > > BS: Agreed and fixed. > > > Note: If a bundle transmission is aborted in this way, the receiver > > MAY not receive a segment with the 'END' flag set to 1 for the > > aborted bundle. > > > > This is not a BCP 14 “MAY”, but just a plain English “may” (or “might”). But, > > perhaps what you really want here is “will not”? > > > BS: Changed to "does not" as statement of fact. > > > — Section 5.2.5 — > > > > Flags: A one-octet field containing generic bit flags > > > > This field is called “Item Flags” in the diagram, and should be called that > > here as well. > > > BS: Agreed and fixed.
- [dtn] Barry Leiba's No Objection on draft-ietf-dt… Barry Leiba via Datatracker
- Re: [dtn] Barry Leiba's No Objection on draft-iet… Brian Sipos
- Re: [dtn] Barry Leiba's No Objection on draft-iet… Barry Leiba