TSVWG                                                           J. Touch
Internet Draft                                    Independent Consultant
Updates: 4727
Intended status: Standards Track                          August 4, 2022
Expires: February 2023


                         User Ports for Experiments
                      draft-touch-tsvwg-usr-exp-01.txt


Abstract

   This document defines user ports for experiments using transport
   protocols. It describes the use of experiment identifiers to enable
   shared use of these user ports, as well as updating the use of
   system ports for experiments [RFC4727] in the same manner.

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), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   https://www.ietf.org/shadow.html

   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 September 4, 2022.

Copyright Notice

   Copyright (c) 2022 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



Touch                  Expires February 4, 2023                 [Page 1]


Internet-Draft        User Ports for Experiments             August 2022


   (http://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.

Table of Contents


   1. Introduction.................................................. 2
   2. User Ports for Experiments.................................... 2
   3. Security Considerations....................................... 4
   4. IANA Considerations........................................... 4
   5. References.................................................... 4
      5.1. Normative References..................................... 4
      5.2. Informative References................................... 5
   6. Acknowledgments............................................... 5

1. Introduction

   Various network codepoints have been allocated for experimental use,
   including those for IP, ICMP, UDP, and TCP [RFC4727]. These include
   transport protocol port numbers 1021 and 1022, using the service
   names "EXP1" and "EXP2".

   There has always been an expectation that experiments needing
   privileged (system) ports use these assignments and unprivileged
   ports use those from the dynamic range [RFC7605]. However, dynamic
   ports can be difficult to reserve in some systems or blocked from
   traversing some firewalls. As a consequence, there is a need for
   non-privileged, non-dynamic ports - i.e., user ports - for
   experiments.

   This document reserves user ports experimentation and describes the
   use of experiment identifiers to differentiate shared use of these
   ports for concurrent experiments.

2. User Ports for Experiments

   The system, user, and dynamic ranges vary in their properties
   [RFC7605]. System ports often include privileged access, sometimes
   known as 'root'. Dynamic ports are used as client ports when
   establishing associations with services on registered ports. User
   ports have neither privilege nor the risk of use by other
   connections. User ports are also more likely to allow configuration
   to pass through firewalls, where system and dynamic ports can be
   difficult to 'un-block'.



Touch                  Expires February 4, 2023                 [Page 2]


Internet-Draft        User Ports for Experiments             August 2022


   This document registers USR-EXP1 and USR-EXP2 for user port
   experiments, using port numbers #UPORT1 and #UPORT2. These ports are
   assigned from the user range, allowing non-privileged experiments
   without the need to use ports from the dynamic range.

   This document also creates a registry for port experiment
   identifiers (PExIDs), in the same manner as those created for shared
   TCP option experiments [RFC6994]. Experimenters are encouraged to
   register PExIDs with IANA and to include them in at the beginning of
   their transport data, i.e., at the front of each separate message or
   byte stream, in network standard byte order. The use of PEdIDs helps
   differentiate experiments without the need for additional port
   assignments.

   This document also encourages the use of these PExIDs for
   experiments using existing experiment ports, i.e., system ports EXP1
   and EXP2.

   PExIDs differentiate experiments but are not intended to be specific
   to a given experiment port, whether system or user, so a single
   registration is used for all experiment ports. It is the
   responsibility of the experimenter to determine which port(s) each
   experiment uses.

3. Using PExIDs in Transport Protocols

   PExIDs differentiate use of the experiment transport ports, both for
   TCP as previously assigned [RFC4722] and for other transports as
   defined in this document.

   PExIDs are intended appear first in each independent transport data.
   It is intended to appear in network-standard byte order.

   For connection-oriented protocols, such as TCP, SCTP, and DCCP, the
   PExID typically appears once for each connection. That socket pair
   is then associated with the experiment identified by that PExID for
   the duration of the connection.

   For connectionless protocols, such as UDP, the PExID is typically
   included in every message.

   Two endpoints can engage in multiple experiments using the same
   experimental port number and transport protocol. In such cases,
   users are expected to support demultiplexing of those different
   experiments using the PExID.




Touch                  Expires February 4, 2023                 [Page 3]


Internet-Draft        User Ports for Experiments             August 2022


4. Security Considerations

   The creation of new ports for experiment purposes does not create
   any new security considerations. At best, it potentially reduces the
   use of privileged system ports for such experiments, which avoids
   the associated risk of unnecessary privileged access.

   Experimenters are encouraged to include security in any new
   experiment, regardless of port (per Section 7.4 of [RFC7605]).

5. IANA Considerations

   This document hereby requests the assignment of two user ports for
   experimental purposes below. IANA is asked to replace instances of
   #UPORT1 and #UPORT2 throughout this document based on the actual
   allocation. This paragraph is intended to be removed prior to final
   publication.

   IANA has assigned the following user ports for experiments:

      USR-EXP1 #UPORT1 (desired port 1031) all transports

      USR-EXP2 #UPORT2 (desired port 1032) all transports

   This document directs IANA to create a "Port Experimental Option
   Experiment Identifiers (PExIDs)" registry.  The registry records 32-
   bit PExIDs, consisting of a brief description, document pointer if
   available, assignee name, and e-mail contact for each entry. Once
   registered, PExIDs can be used with either the system (EXP1, EXP2)
   or user (USR-EXP1, USR-EXP2) ports and with any transport protocol.

   Entries are assigned on a First Come, First Served (FCFS) basis
   [RFC5226]. IANA will also record known duplicate uses to assist the
   community in both debugging assigned uses as well as correcting
   unauthorized duplicate uses.

   IANA should impose no requirements on making a registration request
   other than indicating the desired codepoint and providing a point of
   contact. A short description or acronym for the use is desired but
   not required.

6. References

6.1. Normative References

   [RFC4727] Fenner, B., "Experimental Values in IPv4, IPv6, ICMPv4,
             ICMPv6, UDP, and TCP Headers," RFC 4727, Nov. 2026.


Touch                  Expires February 4, 2023                 [Page 4]


Internet-Draft        User Ports for Experiments             August 2022


   [RFC5226] Narten, T., H. Alvestrand," Guidelines for Writing an IANA
             Considerations Section in RFCs,", RFC 5226, May 2008.

   [RFC6994] Touch, J., "Shared Use of Experimental TCP Options," RFC
             6994, Aug. 2013.

6.2. Informative References

   [RFC7605] Touch, J., "Recommendations on Using Assigned Transport
             Port Numbers," RFC 7605, Aug. 2015.

7. Acknowledgments

   This document was prepared using 2-Word-v2.0.template.dot.

Authors' Addresses

   Joe Touch
   Manhattan Beach, CA 90266 USA
   Phone: +1 (310) 560-0334
   Email: touch@strayalpha.com




























Touch                  Expires February 4, 2023                 [Page 5]