Re: [dtn] Concept of BP conversations and ephemeral services

Marc Blanchet <marc.blanchet@viagenie.ca> Thu, 13 April 2023 23:47 UTC

Return-Path: <marc.blanchet@viagenie.ca>
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 6836CC13AE43 for <dtn@ietfa.amsl.com>; Thu, 13 Apr 2023 16:47:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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=viagenie-ca.20221208.gappssmtp.com
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 0hKfPi91yNQX for <dtn@ietfa.amsl.com>; Thu, 13 Apr 2023 16:47:37 -0700 (PDT)
Received: from mail-qt1-x833.google.com (mail-qt1-x833.google.com [IPv6:2607:f8b0:4864:20::833]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ABFF8C13AE42 for <dtn@ietf.org>; Thu, 13 Apr 2023 16:47:37 -0700 (PDT)
Received: by mail-qt1-x833.google.com with SMTP id cm23so7785088qtb.3 for <dtn@ietf.org>; Thu, 13 Apr 2023 16:47:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=viagenie-ca.20221208.gappssmtp.com; s=20221208; t=1681429656; x=1684021656; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=6ey75OS/zK+W6RFLTu6xb+UN5F1RZ4ONp/eRmNK2MQY=; b=ThymirU4218Sn90tJ6qehcFE8FZjkHNiH4bQwcHzJDhD+Zq6eFZv8xisWw9HFtYmgZ fJep3q1Yfh+wxVpmfYhct9phnHW6cnupqVqkwkT958MCggeT/pv9xovL7ypXz9itSfSE hYX4eneVzqxuJRdnuLRotSbpDdgy+b2o7ihwbyQ9dFL2E0E9aC34BmZCYxJdIF7uZ6LY 5RT36uUaaAlVu3ZlLLtfvJEstad48UonE5ubIVxrPsKUvAIjdnD4623ofTZS8hMo4BEx Qcw7s8YBbNttwDUxZ/N+K613bByd7v9zoQuKJqQGemrr1RMAjY9YZk6bUxxbH1nCfQdg K13w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681429656; x=1684021656; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=6ey75OS/zK+W6RFLTu6xb+UN5F1RZ4ONp/eRmNK2MQY=; b=hs/AUHMHYnd+G64+FE/S0U7wI5MPtkyUdv2K4cpvANBiEj5XaUAK2lv2/GDrEqPLhD KluSgT1I7o/IrzIv6VlL5ziPz7ydH7ea4JizqVnd1cKd+tgMN7ux7HINyku5SqKmfcI9 qgFGAPbeUwMf/dJaroAc5XsiDV1uEpvlRijKYoJmcJF2xW2ibcCHuwGnSzFrgQJSrf+C g6LlRfi9ktl6zK3SbyNu4H4d9pQPTjMXpfh+E62AbAs1iPr9Obo8lM06UbghxUXkV65F tDWcP285b0B5CunU+6H7xuD2I0uYOma2c14St/JQ59DVm7QgHJ+Nxd3FyVyrF8rX8VRy 0NOA==
X-Gm-Message-State: AAQBX9fz/mywCF/c0Sc9LjNrbUO2nTBgNHg/cfNtw9MSrqfc2J1/PVvt 5KkMSkn65iXOEUi6RR8uNN1HTA==
X-Google-Smtp-Source: AKy350bBIS744Cgt7FxNTxYeRG17HYCTQx20WhRVEojiNpda0AltKOK0Tuf/dZpucUTX0FKQ/QmQDw==
X-Received: by 2002:ac8:4e49:0:b0:3e3:9621:bd1f with SMTP id e9-20020ac84e49000000b003e39621bd1fmr6957525qtw.19.1681429656038; Thu, 13 Apr 2023 16:47:36 -0700 (PDT)
Received: from smtpclient.apple (modemcable161.124-162-184.mc.videotron.ca. [184.162.124.161]) by smtp.gmail.com with ESMTPSA id f20-20020a05620a20d400b0074ace08ee5dsm822057qka.64.2023.04.13.16.47.34 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Apr 2023 16:47:34 -0700 (PDT)
From: Marc Blanchet <marc.blanchet@viagenie.ca>
Message-Id: <27911B36-0235-4D98-B834-BF87DE86DD22@viagenie.ca>
Content-Type: multipart/alternative; boundary="Apple-Mail=_401A1F99-19A2-4F90-A785-AB1E2A175DDD"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.500.231\))
Date: Thu, 13 Apr 2023 19:47:23 -0400
In-Reply-To: <46c2da786c3f490f89dbf8880249809b@jhuapl.edu>
Cc: "dtn@ietf.org" <dtn@ietf.org>
To: "Sipos, Brian J." <Brian.Sipos@jhuapl.edu>
References: <46c2da786c3f490f89dbf8880249809b@jhuapl.edu>
X-Mailer: Apple Mail (2.3731.500.231)
Archived-At: <https://mailarchive.ietf.org/arch/msg/dtn/CVHfhiwaJYWDFajMq9wunwhmHzA>
Subject: Re: [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 23:47:41 -0000


> Le 13 avr. 2023 à 10:21, Sipos, Brian J. <Brian.Sipos@jhuapl.edu> a écrit :
> 
> All,
> Now that we are getting into discussions of codifying BP application protocols (e.g. Marc’s proposals for SNMP/BP

Sorry I did not try to encapsulate SNMP over BP, but email.

> 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.

In IP world, there is a quadruple: source IP and port, destination IP and port. That creates a unique connection id on both ends. Right now, we don’t have that in BP.
Moreover, we need to support multiple application connections (that you call conversations) from the same source and destination: therefore the source should create a unique id to be used to recognize the “reply”, and keep a mapping of the ids.

> 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.

Nooo. BP is already super complex.

> 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).

If the same source is sending thousands/millions of application bundle payloads to the same destination and these are for loooong delays, as that is this wg actual use case!, and that some may never come back, we will end up using a large number space and I’m not sure any BP stack is able to cope with this large set.

Moreover, it is the application protocol that knows when a “connection” is finished, not the BP stack. Therefore, the BP node has no clue when to unallocate that source “connection id”. 

I think it is in fact much easier to deal with this at the application layer, with the appropriate semantics that are known by the application protocol. BP is there to deliver bundles to an application agent, and BP is really doing its only job good here.

I’m not sure we will have so many applications that require what you are describing. To me, with SMTP and HTTP done, we are in pretty good shape a large majority of apps nowadays are over http. And you see by the http-over-bp draft, your proposal won’t be enough anyway to support http.

Marc.

>  
> 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
>  
> _______________________________________________
> dtn mailing list
> dtn@ietf.org <mailto:dtn@ietf.org>
> https://www.ietf.org/mailman/listinfo/dtn