Internet DRAFT - draft-ietf-tsvwg-usr-exp
draft-ietf-tsvwg-usr-exp
TSVWG J. Touch
Internet Draft Independent Consultant
Updates: 4727
Intended status: Standards Track December 27, 2022
Expires: June 2023
User Ports for Experiments
draft-ietf-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 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
https://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 June 27, 2009.
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 June 27, 2023 [Page 1]
Internet-Draft User Ports for Experiments December 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. 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.
Table of Contents
1. Introduction.................................................. 2
2. User Ports for Experiments.................................... 3
3. Security Considerations....................................... 4
4. IANA Considerations........................................... 5
5. References.................................................... 6
5.1. Normative References..................................... 6
5.2. Informative References................................... 6
6. Acknowledgments............................................... 7
1. Introduction
Various network codepoints have been allocated for experimental use,
including those for IPv4 [RFC791], IPv6 [RFC8200], ICMPv4 [RFC792],
ICMPv6 [RFC4443], UDP [RFC768], and TCP [RFC9293]. These include
transport protocol port numbers 1021 and 1022, using the service
names "EXP1" and "EXP2" [RFC4727].
There has always been an expectation that experiments needing
privileged (system) ports use these assignments and unprivileged
ports use those from the dynamic range [RFC6335][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. Conventions used in this document
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.
Touch Expires June 27, 2023 [Page 2]
Internet-Draft User Ports for Experiments December 2022
3. 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'.
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 PExIDs 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.
4. Using PExIDs in Transport Protocols
PExIDs differentiate use of the experiment transport ports, both for
TCP as previously assigned [RFC4727] 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 transport protocols, such as TCP [RFC9293],
SCTP [RFC9260], and DCCP [RFC4340], the PExID is typically sent once
for each connection and echoed upon receipt, enabling both ends to
Touch Expires June 27, 2023 [Page 3]
Internet-Draft User Ports for Experiments December 2022
confirm the experiment for the connection's socket pair. That socket
pair is then associated with the experiment identified by that PExID
for the duration of the connection.
For connectionless transport protocols, such as UDP [RFC768], the
PExID is typically included in every message in both directions.
In most cases, the PExID is sent as user data. SCTP is an exception,
because of its Payload Protocol Identifier (PPID), as discussed
further in Section 5.
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.
5. SCTP
SCTP includes a Payload Protocol Identifier (PPID), which identifies
the information within each user message. PPIDs are assigned on a
first-come, first-served (FCFS) basis and are abundant (2^32
codepoints), so there is no need for a separate experimental-use
PPID. The PExID differentiate shared use of the user experimental
port number and thus serves a different purpose than the PPID; both
can be used together or separately for SCTP.
Because SCTP supports multiple concurrent streams, it is useful for
experiments to be identified in a particular stream before
proceeding with other streams, to avoid excessive buffering. For
SCTP, users SHOULD send the PExID ordered and reliably as the first
chunk in stream 0 (the default stream). Until the PExID chunk is
echoed back on stream 0, messages on stream 0 SHOULD be sent ordered
and the user SHOULD avoid transmitting chunks on other streams. The
echoed chunk SHOULD use the PPID of #PPID1 assigned for this
purpose. That PPID chunk MUST contain only the PExID in network
standard byte order.
6. 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]).
Touch Expires June 27, 2023 [Page 4]
Internet-Draft User Ports for Experiments December 2022
7. 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.
This document also hearby requests the assignment of the SCTP PPID
"PEXID" for use in association with these port numbers. IANA is
asked to replace instances of #PPID1 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) for TCP, UDP, DCCP, and SCTP
USR-EXP2 #UPORT2 (desired port 1032) for TCP, UDP, DCCP, and SCTP
IANA has assigned the following SCTP Payload Protocol Identifier
(PPID) for experiments associated with these port numbers:
SCTP PPID #PPID1
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
[RFC8126]. 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.
Touch Expires June 27, 2023 [Page 5]
Internet-Draft User Ports for Experiments December 2022
8. References
8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4727] Fenner, B., "Experimental Values in IPv4, IPv6, ICMPv4,
ICMPv6, UDP, and TCP Headers," RFC 4727, Nov. 2026.
[RFC6994] Touch, J., "Shared Use of Experimental TCP Options," RFC
6994, Aug. 2013.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, June 2017.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, May 2017.
[RFC9260] Stewart, R. (Ed.), "Stream Control Transmission Protocol,"
RFC 9260, Sep. 2007.
8.2. Informative References
[RFC768] Postel, J., "User Datagram Protocol," STD 6, RFC 768, Aug.
1980.
[RFC791] Postel, J., "Internet Protocol," STD 5, RFC 791, Sep.
1981.
[RFC792] Postel, J., "Internet Control Message Protocol," STD 5,
RFC 792, Sep. 1981.
[RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram
Congestion Control Protocol (DCCP)," RFC 4340, March 2006.
[RFC4443] Conta, A., Deering, S., and M. Gupta, (Ed.), "Internet
Control Message Protocol (ICMPv6) for the Internet
Protocol Version 6 (IPv6) Specification," STD 89, RFC
4443, Mar. 2006.
[RFC6335] Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S.
Cheshire, "Internet Assigned Numbers Authority (IANA)
Procedures for the Management of the Service Name and
Transport Protocol Port Number Registry," BCP 165, RFC
6335, Aug. 2011.
Touch Expires June 27, 2023 [Page 6]
Internet-Draft User Ports for Experiments December 2022
[RFC7605] Touch, J., "Recommendations on Using Assigned Transport
Port Numbers," BCP 165, RFC 7605, Aug. 2015.
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification," STD 86, RFC 8200, Jul. 2017.
[RFC9293] Eddy, W. (Ed.), "Transmission Control Protocol (TCP), Aug.
STD 7, RFC 9293, 2022.
9. 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 June 27, 2023 [Page 7]