[dtn] Concept of BP conversations and ephemeral services

"Sipos, Brian J." <Brian.Sipos@jhuapl.edu> Thu, 13 April 2023 14:21 UTC

Return-Path: <Brian.Sipos@jhuapl.edu>
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 25F33C151B15 for <dtn@ietfa.amsl.com>; Thu, 13 Apr 2023 07:21:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.396
X-Spam-Level:
X-Spam-Status: No, score=-4.396 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=jhuapl.edu
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 OsY7dAcvE2Tg for <dtn@ietfa.amsl.com>; Thu, 13 Apr 2023 07:21:52 -0700 (PDT)
Received: from aplegw02.jhuapl.edu (aplegw02.jhuapl.edu [128.244.251.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9BFD7C15154F for <dtn@ietf.org>; Thu, 13 Apr 2023 07:21:51 -0700 (PDT)
Received: from pps.filterd (aplegw02.jhuapl.edu [127.0.0.1]) by aplegw02.jhuapl.edu (8.17.1.19/8.17.1.19) with ESMTP id 33DCHxV9019114 for <dtn@ietf.org>; Thu, 13 Apr 2023 10:21:50 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jhuapl.edu; h=from : to : subject : date : message-id : content-type : mime-version; s=JHUAPLDec2018; bh=l1PEd2Rv605O8nA5AbfpWatouaFDl8x+nF/VQAUyEm4=; b=Xi3SV7dxbQx5kQuiiTUpXhDUAQosocl+V7cG2Rcu30I9XNkU/pl2nAzTzN9/EnbYn/YI 3K+ctqC+vIeDMZbeUxyTFM1aRsNA41y+NlMM8vrZk98eGkzv1ISHqBS1aKAy3n044dnM 81axRZLVJqloaJBR+4EMqEs+A2deLM6XHZRjpZRD0UL6u51pQBOUy94VMZy/MPOfnLNB N3jsjrHwDeBGRfN2aAci981ip9KUz1921Mge84YBZXmC4121dFXkIA/wkYUI3zgqCO6n O6lNMmRwx0CHwTAdoCI7sYK54BcPzNgo8nNLAp1Fp22gTPMg7D9wHbTMzr7lAKMgRYRx dg==
Received: from aplex23.dom1.jhuapl.edu (aplex23.dom1.jhuapl.edu [10.114.162.8]) by aplegw02.jhuapl.edu (PPS) with ESMTPS id 3pu4g1vskq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for <dtn@ietf.org>; Thu, 13 Apr 2023 10:21:50 -0400
Received: from APLEX21.dom1.jhuapl.edu (10.114.162.6) by APLEX23.dom1.jhuapl.edu (10.114.162.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Thu, 13 Apr 2023 10:21:50 -0400
Received: from APLEX21.dom1.jhuapl.edu ([fe80::20d7:9545:f01e:9b2]) by APLEX21.dom1.jhuapl.edu ([fe80::20d7:9545:f01e:9b2%5]) with mapi id 15.02.1118.026; Thu, 13 Apr 2023 10:21:50 -0400
From: "Sipos, Brian J." <Brian.Sipos@jhuapl.edu>
To: "dtn@ietf.org" <dtn@ietf.org>
Thread-Topic: Concept of BP conversations and ephemeral services
Thread-Index: AdluCVOhKadky8XQQPmJoLY2djfAjQ==
Date: Thu, 13 Apr 2023 14:21:49 +0000
Message-ID: <46c2da786c3f490f89dbf8880249809b@jhuapl.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [10.114.162.27]
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="SHA1"; boundary="----=_NextPart_000_0589_01D96DF1.C1B54A90"
MIME-Version: 1.0
X-CrossPremisesHeadersFilteredBySendConnector: APLEX23.dom1.jhuapl.edu
X-OrganizationHeadersPreserved: APLEX23.dom1.jhuapl.edu
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-13_09,2023-04-13_01,2023-02-09_01
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/7MLEZrRAaIYC98DZU0rcUuYpfhk>
Subject: [dtn] Concept of BP conversations and ephemeral services
X-BeenThere: dtn@ietf.org
X-Mailman-Version: 2.1.39
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, 13 Apr 2023 14:21:57 -0000

All,

Now that we are getting into discussions of codifying BP application
protocols (e.g. Marc's proposals for SNMP/BP and HTTP/BP, the DTN management
protocol, etc.) there is a need to codify what is required, allowed, and not
allowed regarding what some protocols and tools would call a "conversation"
which means a multi-datagram sequence between two endpoints. My suggestion
for how BP can handle this is to simply swap the Source and Destination EID
as a way to participate in a conversation. This is terribly simple but does
impose constraints on the application-side API for a BPA, which is that an
application has some visibility into a received bundle's source and
destination EID (in the same way that POSIX socket API allows `bind`,
`recvfrom`, and `sendto` to identify port number).

 

This is equivalent to how TCP, SCTP, and DCCP operate but because the BP
EIDs are names and are separated from the CL transport there is no need for
BP to ever introduce an explicit (and complex) logic for multi-homing,
multi-pathing, etc. The EID is a stable name for one end of a conversation
regardless of how the bundles are transported in either direction or how
that may change over time. The point of codifying the notion of a
conversation is so that both applications and diagnostic tools (like
Wireshark) can have a shared understanding of "how things are supposed to
work" that is independent of how the application protocol is actually using
the conversation. There is even a bundle signaling flag in the form of
"Acknowledgement by application is requested" [2] which seems to be
otherwise undefined and could be used as an indication that a bundle is the
start of a (possibly brief, one response) conversation.

 

Taking analogy from protocols that use UDP, but not required by UDP itself,
there are two general types of UDP port used: assigned and dynamic [1]. For
many uses of UDP one side of a conversation will use an assigned port for a
well-known service but the other side is free to use a dynamic port number.
This has a few benefits, but the one most applicable to scaling of services
is that while the "provider" of a service can use an assigned number, the
"user" of a service can use a dynamic number without the need for any
pre-configuration or negotiation. The disambiguation between
users/conversations is by allowing each user to register its own ephemeral
endpoint in the local BPA without the need to coordinate with any other
endpoint. This also doesn't exclude the case where both endpoints use
assigned numbers (which is how some protocols like SNMP or DNS can operate)
but makes that more of a special case. The concrete effect of this would be
to reserve a large chunk of 32-bit IPN service number space [3] and maybe
reserve a prefix or pattern in the DTN service demux space for ephemeral
endpoints (the tilde prefix is already reserved for non-singleton
endpoints).

 

The reason for all of this is that I think applications are going to
naturally fall into this pattern, both because existing protocols (over UDP
and the other connection-oriented transport) already use this pattern and
because it is a genuinely useful thing to not need to reinvent every time
there is a two-way exchange of bundles between applications. Finally, this
isn't a proposal for "this is what you must do" but more like "if you need a
conversation this is the standard pattern of behavior," which is equivalent
to BPSec as "if you need bundle security this is what you use."

 

Any thoughts or interest in a short draft to nail down some of these
concepts?

Brian S.

 

[1] https://www.rfc-editor.org/rfc/rfc6335.html

[2] https://www.rfc-editor.org/rfc/rfc9171#section-4.2.3

[3] https://www.ietf.org/id/draft-ietf-dtn-ipn-update-01.html#section-8.3