Internet DRAFT - draft-blanchet-dtn-http-over-bp

draft-blanchet-dtn-http-over-bp







Internet Engineering Task Force                              M. Blanchet
Internet-Draft                                              4 March 2024
Intended status: Standards Track                                        
Expires: 5 September 2024


Encapsulation of HTTP over Delay-Tolerant Networks(DTN) using the Bundle
                                Protocol
                   draft-blanchet-dtn-http-over-bp-01

Abstract

   This document describes the encapsulation of HTTP requests and
   responses in the payload of bundles of the Bundle Protocol for the
   use case of Delay-Tolerant Networks(DTN) such as in space
   communications.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 5 September 2024.

Copyright Notice

   Copyright (c) 2024 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.




Blanchet                Expires 5 September 2024                [Page 1]

Internet-Draft          HTTP over Bundle Protocol             March 2024


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   2
     1.2.  Vocabulary  . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Encapsulation . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Negotiation, Redirect and other Considerations  . . . . . . .   4
   4.  Encapsulation Format  . . . . . . . . . . . . . . . . . . . .   4
   5.  Considerations  . . . . . . . . . . . . . . . . . . . . . . .   5
   6.  Use case where the endpoint is only a BP agent  . . . . . . .   5
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .   5
     9.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   6

1.  Introduction

   An important use case of Delay-Tolerant Networks(DTN) using the
   Bundle Protocol[RFC9171](BP) is in space communications.  Current
   scenarios by space agencies[ioag] involves the use of an Internet
   Protocol (IP) network on the planetary body and the use of the Bundle
   Protocol between planetary bodies, including Earth.  Therefore, there
   are IP endpoints at both ends, and then bundles could be used as a
   transport of Internet related application payload.  This document
   describes the encapsulation of http requests and responses over
   bundles so that end-users on the remote end (aka on a planetary body
   such as Moon or Mars) or processes can use typical Internet HTTP
   software and tools to use http-based applications, while the http
   requests and responses when transiting in space is encapsulated into
   bundles of the Bundle Protocol.

   It should be noted that in DTNs, delays may be very large compared to
   normal delays on (Earth) Internet.  In theory, there should be no
   timeout at the HTTP layer, but timeouts are typical at the transport
   layer.  Therefore, care should be taken on how to setup the whole
   path to avoid those potential issues.  This document describes some
   possible solutions.

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.



Blanchet                Expires 5 September 2024                [Page 2]

Internet-Draft          HTTP over Bundle Protocol             March 2024


1.2.  Vocabulary

   *  Internet: identifies the global IP network on Earth as we know it

   *  Planetary body: describes Moon, Mars and others.  In this
      document, we only care about ones that would have some IP
      networking installed.

2.  Encapsulation

   Similar to [draft-blanchet-dtn-over-email], this document defines the
   encapsulation of HTTP requests and responses into bundles of the
   Bundle Protocol

   Since HTTP is a query-response protocol, the client must keep a
   handle of its communication with the server to get the response.  On
   regular IP networks, this is done together with the transport which
   accomplishes a direct connection between the two peers.  That notion
   of direct //connection does not exist when using BP.  Therefore, the
   encapsulation is prepended with a connection ID and a sequence
   number.  The connection ID is generated by the client.  The
   connection ID is a random number which should have similar
   characteristics to UUIDs.  The actual details of the connection ID is
   left to the implementation, however, the connection ID appears as a
   string of ASCII characters, with the same restrictions as [RFC4122].
   The sequence number is a positive integer and is set by the client
   and the server.  It is zero if the query or response is complete in
   the single return.  In case of long responses such as real-time
   media, the response is continuous and in this case, the server starts
   with the value 1 and increase the sequence number by one each time it
   sends a new packet for the same response and the same connection id.
   The client may also use the sequence number to tell the server that
   the query is still not finished in the first packet, for example,
   when a POST is used with an embedded large file.  Similarly, the
   client increments the sequence number by one for each packet.

   Herein, the client and server are in fact a small piece of software
   between the bundle protocol agent and the HTTP client or server.

   In case the http request or response is too large for the bundle
   agent and that the client or server did not slice the request or
   response into smaller pieces as described in the previous paragraph,
   then the bundle agent uses bundle fragmentation as described in
   section 5.8 of RFC9171 to slice the http data in multiple bundles.
   It is the responsability of the receiving bundle agent to properly
   reassemble the http data into the source http content.  Both sides
   may use their sequence numbers and they are independent and can be
   used at the same time.  Both the client and the server keeps track of



Blanchet                Expires 5 September 2024                [Page 3]

Internet-Draft          HTTP over Bundle Protocol             March 2024


   the connection ids and sequence numbers.  When multiple packets are
   sent and therefore sequence numbers were incremented from 1, the last
   packet of the sending agent is indicated with sequence number zero.
   In other words, sequence number zero means no more packets.

   The receiving bundle agent will receive the http-containing bundle(s)
   on the specific assigned IANA service number.  It is expected that
   the agent will transfer the http data to a http listener that will
   deliver to the appropriate location as normal practice on (Earth)
   Internet.

3.  Negotiation, Redirect and other Considerations

   Given the nature of DTN networks, negotiations such as HTTP version
   negotiations, URL redirection, and other techniques are still
   possible and working in this proposal, but not recommended as they
   would trigger additional bundles over a long delay network, which may
   end up triggering timeouts at some level, such as the application.
   Therefore, careful configuration of both endpoints to avoid that
   extra trafic is advised.  Initial key negotiation is however
   difficult to avoid, unless offpath or static key configuration is
   done.  Given that http2 and http3 create possible long standing
   connections, then the extra initial key negotiation is not too costly
   compared to the possible duration of the connection between the two
   peers.

4.  Encapsulation Format

   The encapsulation is done as follows inside a bundle: First appears
   at the beginning of all bundles the connection idm which is a string
   of undefined length terminated with ASCII CR-LF.  Then the sequence
   number follows for all bundles, as a string representing a positive
   integer of undefined length terminated with ASCII CR-LF.  As
   described above, the sequence number can be zero when no other packet
   will come.  Following the CR-LF of the sequence number is the actual
   HTTP content.  For example, for an HTTP1.1 query, the HTTP content
   after the terminated sequence number could be: "GET /index.html
   HTTP/1.1".  Various HTTP headers may be added as needed.  After the
   terminated sequence number could be any HTTP content of any HTTP
   version, including binary frames.  This specification is agnostic of
   the HTTP version.

   TBD: artwork of bundle encapsulation








Blanchet                Expires 5 September 2024                [Page 4]

Internet-Draft          HTTP over Bundle Protocol             March 2024


5.  Considerations

   Configuring and deploying an isolated IP network on a planetary body
   with local HTTP servers or clients, DNS servers or other
   infrastructure needs careful considerations.  These operational
   considerations are not described here and are outside the scope of
   this document.

6.  Use case where the endpoint is only a BP agent

   There are cases such as a spacecraft currently moving in space where
   there might be no IP network attached to it and has only a BP agent.
   However, this specification works as is, if that device is augmented
   by a local IP stack, with an HTTP listener, where the final source or
   destination of the HTTP packet is within the spacecraft.

7.  IANA Considerations

   This document requests IANA to allocate a new Bundle Protocol service
   number under the current CBHE Service Numbers and assign it to this
   document.  Description should be: "HTTP content".  If the registry is
   updated to indicate the Bundle Protocol version, this specification
   do apply for both BPv6 and BPv7, as it is agnostic of the BP version.

8.  Security Considerations

   Sending any payload with bad data over a space link is a somewhat DOS
   attack.  It is expected that this environment will be highly managed
   and controlled, therefore, before a bundle is sent, the payload is
   properly verified and access control to the space network will be
   tightly controlled.

   BPSEC[RFC9172] can be used to provide authentication and encryption
   at the Bundle layer.

9.  References

9.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4122]  Leach, P., Mealling, M., and R. Salz, "A Universally
              Unique IDentifier (UUID) URN Namespace", RFC 4122,
              DOI 10.17487/RFC4122, July 2005,
              <https://www.rfc-editor.org/info/rfc4122>.



Blanchet                Expires 5 September 2024                [Page 5]

Internet-Draft          HTTP over Bundle Protocol             March 2024


   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC9171]  Burleigh, S., Fall, K., and E. Birrane, III, "Bundle
              Protocol Version 7", RFC 9171, DOI 10.17487/RFC9171,
              January 2022, <https://www.rfc-editor.org/info/rfc9171>.

9.2.  Informative References

   [RFC9172]  Birrane, III, E. and K. McKeever, "Bundle Protocol
              Security (BPSec)", RFC 9172, DOI 10.17487/RFC9172, January
              2022, <https://www.rfc-editor.org/info/rfc9172>.

   [ioag]     Lunar Communications Architecture Working Group,
              Interagency Operations Advisory Group, "The Future Lunar
              Communications Architecture, Report of the Interagency
              Operations Advisory Group", January 2022.

   [draft-blanchet-dtn-over-email]
              Blanchet, MB., "Encapsulation of Email over Delay-Tolerant
              Networks(DTN) using the Bundle Protocol", 17 January 2023,
              <draft-blanchet-dtn-over-email-00>.

Acknowledgements

   The following people have reviewed and provided comments to improve
   this document (in no particular order): Stuart Card, Mark Nottingham,
   Ed Birrane.

Author's Address

   Marc Blanchet
   Email: marc.blanchet@viagenie.ca

















Blanchet                Expires 5 September 2024                [Page 6]