Re: [dtn] [EXTERNAL] Alexey Melnikov's Discuss on draft-ietf-dtn-bpbis-22: (with DISCUSS and COMMENT)

"Alexey Melnikov" <aamelnikov@fastmail.fm> Thu, 20 February 2020 11:47 UTC

Return-Path: <aamelnikov@fastmail.fm>
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 EDD9E12004A; Thu, 20 Feb 2020 03:47:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmail.fm header.b=llAxB1Dn; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=gtZvqShI
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 AyA6f8YLjD8O; Thu, 20 Feb 2020 03:47:13 -0800 (PST)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 74B8312001A; Thu, 20 Feb 2020 03:47:13 -0800 (PST)
Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 6F80C21B84; Thu, 20 Feb 2020 06:47:12 -0500 (EST)
Received: from imap21 ([10.202.2.71]) by compute7.internal (MEProxy); Thu, 20 Feb 2020 06:47:12 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.fm; h= mime-version:message-id:in-reply-to:references:date:from:to:cc :subject:content-type:content-transfer-encoding; s=fm2; bh=rcPt8 xcOud+LHnOLqHTrsAHZDVS9PiscixPaOOxsjt8=; b=llAxB1DnDZDoTdj/BzS9a 4FfxEcd8cgHujDUIQ6gcVv+Dh1AcnBhaz+t0GWbe+QZFpkDy74khm+1WaHMoflRU U7gr6eyYRzPzUN5/qrYl7xTUigusaIcl8yos+VPFpfL4sWyjwUoDsAaJ+wMhxO/p GWuFyZ2HK5QNzo+iGbOXHwu/HaGwNwAl40Dg1HUDlFiUDMwMe4F/RB8rNdHctEfi 2wx3PWHZ4BP+6/nPI6W3rlmOwiWZHZmU4j9AwiiojEY00pgf0wi6EM1s6fDgqlbe 4pCtMFTiR/f3vPvgNyfxwOGghf3vPlErb+SviqhNDOYy5X4juHn6FVaOT8ww2s4E A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=rcPt8xcOud+LHnOLqHTrsAHZDVS9PiscixPaOOxsj t8=; b=gtZvqShI03/qlobq9JeL6+5SV/eB5yfW2mik1AB2/jH/AfNvPyRdFY5bd 2MH4ZqxrY8TPdPPPPcP1uaP4QNGzpzHCLbEcbY/1Gqj7ENDWttzUd7BOH6V04sbP USpt5fe7Tfy218wZUvKLUF2ZcwnJwkyLOfsI/aC9g8t3cDzapPAI0Ijc1e0PwDbH BxC4/rpTlY9eag15oGvE+6LCS8k8CcHUxOw/IExjAz0tICXwKs98eAma5mr1mUZx PPofHACBjTTVpPgGFAjoGACFqt83nUr7KN/U/IXmRrxmB3Ypt2q+51INncXhP6Ew HWiDdbpt9Nl4CSeYLvQUEgxaf3DkQ==
X-ME-Sender: <xms:v3FOXkt2sjL-Bi6ukzbvhR-yGMFuF6FV8a6TZ1VFe9hhnc8yJPVDRw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedrkedvgdeffecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvufgtgfesthhqredtreerjeenucfhrhhomhepfdetlhgv gigvhicuofgvlhhnihhkohhvfdcuoegrrghmvghlnhhikhhovhesfhgrshhtmhgrihhlrd hfmheqnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhep rggrmhgvlhhnihhkohhvsehfrghsthhmrghilhdrfhhm
X-ME-Proxy: <xmx:v3FOXsHv54SUa1BOuVFYiIEsdsQAg1i-BRcTbKxSe8lyV7vzel9u_w> <xmx:v3FOXlwxtm1txgOAooMbxWpGqDzo8SN6OuriKMLLnEXxJgYugGDMIQ> <xmx:v3FOXm2owni0dRp40epEY8abRAtrvGGFHpgN7SYvVvOARniL7eyODw> <xmx:wHFOXvZ1nEwMxvj1L96eKb6TF5FhrHOPf4H3YoXUh0gycDyhPbbFcg>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id AF9E7660069; Thu, 20 Feb 2020 06:47:11 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.7-802-g7a41c81-fmstable-20200203v1
Mime-Version: 1.0
Message-Id: <8c48803a-7d6f-4710-a4aa-c0e48fad0657@www.fastmail.com>
In-Reply-To: <00dfa2dda9b344ebbd87705b34e74a79@jpl.nasa.gov>
References: <158108452583.11606.5428367878223035583.idtracker@ietfa.amsl.com> <b77a3734d0ae427c920962e438c16a60@jpl.nasa.gov> <32b82572-64ad-4b22-b4bc-9c2dd779172d@www.fastmail.com> <00dfa2dda9b344ebbd87705b34e74a79@jpl.nasa.gov>
Date: Thu, 20 Feb 2020 11:46:50 +0000
From: Alexey Melnikov <aamelnikov@fastmail.fm>
To: "Burleigh, Scott C (US 312B)" <scott.c.burleigh@jpl.nasa.gov>, The IESG <iesg@ietf.org>
Cc: "draft-ietf-dtn-bpbis@ietf.org" <draft-ietf-dtn-bpbis@ietf.org>, Fred Templin <fred.l.templin@boeing.com>, "dtn-chairs@ietf.org" <dtn-chairs@ietf.org>, "dtn@ietf.org" <dtn@ietf.org>, Benjamin Schwartz <bemasc@google.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/19lqvVIiNRAzYoy4dEFhWn5gL9M>
Subject: Re: [dtn] [EXTERNAL] Alexey Melnikov's Discuss on draft-ietf-dtn-bpbis-22: (with DISCUSS and 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: Thu, 20 Feb 2020 11:47:16 -0000

Hi Scott,

On Sat, Feb 8, 2020, at 12:45 AM, Burleigh, Scott C (US 312B) wrote:

 [snip]

> > I think you need to create a new section in this document specifying 
> > requirements on URI scheme documents and include this as a MUST level 
> > requirement there. (If you already have a document that does this, you 
> > can just normatively point to it.)
> > 
> > 		Can you please explain what you mean by "requirements on URI scheme 
> > documents"?
> > 		I don't know of any requirements on URI scheme documents that are 
> > implied by this specification.  Can you give an example?
> 
> When a new URI scheme is registered for use with DTN (to get a new 
> scheme specific number), a document describing this registration needs 
> to be written. Let's imagine that I want to use "mailto:" URIs with 
> DTN. In the document describing use of mailto: with DTN I would 
> describe how routing is going to be performed. This might be something 
> like this:
> 
>    When "mailto:" URIs are used with BPv7, SMTP protocol [RFC 5321] 
> would be used for convergence layer. Location of the next node is done 
> by using standard SMTP mechanism which is use of MX DNS records on the 
> domain extracted from the right hand side of mailto: address.
> 
> (The above text happens to cover both routing and discovery of a next 
> node to forward to by referencing SMTP.)
> 
> 
> So the section with requirements on use of URI schemes with DTN would 
> have something like:
> 
> When registering a new URI scheme with BPv7, the document registering 
> the URI scheme MUST describe how URIs are used for next forwarding node 
> location discovery. Such document MUST also define whether the URI 
> scheme depends on any specific convergence layer(s).
> 
> Does this help?
> 
> 	***	Thanks, I think I understand what you mean.  My original thought 
> was that the URI-scheme-specific information that needed to be captured 
> was limited
> 		to CBOR representation rules, which I figured could simply be 
> included in the entries of the BP URI Scheme Type registry.  What 
> you're talking about
> 		here is additional URI-scheme-specific information.
> 
> 		From that perspective, it sounds like each entry in the BP URI Scheme 
> Type registry needs two references: one to the document that the 
> defines the URI
> 		scheme itself and a second reference to a document that defines the 
> manner in which the URIs formed in that scheme are used as BP endpoint 
> IDs: how
> 		such an endpoint ID must be represented in transmission (CBOR), what 
> convergence-layer protocol(s) may be used to forward a bundle to a BP 
> destination
> 		endpoint identified by such an ID, and how the ID of the 
> convergence-layer protocol endpoint to use for that purpose can be 
> inferred from that destination 			endpoint ID.

Exactly.

> 		Note, though, that in the general case the next BP node to forward to 
> -- in a multi-hop path to the final destination node -- cannot be 
> inferred from the
> 		destination EID.  Nor can the convergence-layer protocol that should 
> be used to forward the bundle to that BP node.  This is the "late 
> binding" concept that
> 		has been fundamental to the DTN architecture from the beginning.

To continue my mailto/SMTP example: it has exactly the same properties and the rules to discover the next hop are done by each intermediate note at the time a relay/delivery attempt is made.

> 		Taking up your example: suppose I am on Mars and I want to use BP to 
> send an email.  My destination EID is a "mailto:" URI, but there is no 
> SMTP server
> 		on Mars and SMTP itself does not run over BP.  My bundle will be 
> forwarded to its final destination by an SMTP server on Earth, but I 
> have to convey the
> 		bundle to that server somehow.  To do so, I need to forward the 
> bundle to a relay node that uses two convergence-layer protocols: SMTP, 
> for forwarding 			"mailto:" bundles to SMTP servers (acting as an SMTP 
> client), and some protocol stack that operates over the space network 
> (BP over LTP over encapsulation 			packets, for example), for receiving 
> bundles forwarded from Mars.

This is perfectly fine. In this example you would use DNS MX records (mechanism used by SMTP) to get a bundle to an intermediary node that can gateway (possibly rewriting mailto: URI into another URI scheme in the process) to the space network.

> I need to use that space network stack to 
> get the bundle to the relay node, and the 				destination EID doesn't 
> tell me how to do that.

The destination EID might tell you how to get to a relay node that knows how to gateway to another transport. EID doesn't have to describe the destination node, just a node that knows what to do with a bundle.

> 		Mechanisms for route selection and convergence-layer protocol 
> selection in DTN are going to be developed in multiple companion 
> specifications as DTN is 			deployed in new environments and new 
> requirements emerge.  Appealing as it would be to nail these things 
> down in this specification somehow, we cannot.

I think my problem with the current document is that it is not sufficient to implement complete system. If these are future documents to be produced by the WG, that would be Ok with me.


 [snip]

> > ## Section 1
> > 
> > Title: If this document doesn’t describe the operation, routing, or 
> > management of bundles, maybe it doesn’t describe a complete protocol.
> > Consider retitling to “Bundle Protocol Version 7: Format and 
> > Architecture”
> > 
> > [[Alexey]]: This relates to my DISCUSS points, but my DISCUSS position 
> > is stronger than this statement.
> > 
> > 		Please see my response to the DISCUSS position.
> > 		I would note that RFC 791 doesn't include procedures for making 
> > routing decisions (absent source routing) or retrying transmissions.
> 
> But there are other documents that do. They are required to implement 
> an interoperable system.
> 
> To give you an example of why specifying retry behaviour is important:
> 
> a) one system implements no retries. As you don't specify that it is 
> illegal, it is legal.
> b) another system always retries once and only once. Again, as you 
> don't specify that it is illegal, it is legal.
> 
> Systems a) and b) are not going to be interoperable.
> 
> I don't think you need to require a specific number of retries, but 
> maybe specify that at least N retries should be attempted (unless the 
> bundle expires before that) and maybe specify some minimum time period 
> for retries.
> 
> 	***	I disagree.  Systems (a) and (b) will interoperate; they will just 
> exhibit different performance characteristics.

No, if one node doesn't retry, it degrades the whole service, because no sender can rely on nodes retrying.

>  Why don't we let 
> network operators make
> 		these kinds of decisions, based on the specific conditions under 
> which their nodes run, rather than try to decide everything for them in 
> this specification?
> ...

I am not saying that this information need to be specified in this document, but some document needs to specify this. And having minimum requirements (e.g. "MUST retry 3 times, unless the bundle expires before that") on all implementation would improve interoperability.

Best Regards,
Alexey