Network Working Group N. Karstens Internet-Draft Garmin International Intended status: Standards Track S. Cheshire Expires: 18 July 2025 Apple Inc. M. McBride Futurewei 14 January 2025 The Multicast Application Port draft-karstens-multicast-application-port-00 Abstract This document discusses the drawbacks of the current practice of assigning a UDP port to each multicast application. Such assignments are redundant because the multicast address already uniquely identifies the data. The document proposes assigning a UDP port specifically for use with multicast applications and lists requirements for using this port. 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 18 July 2025. Copyright Notice Copyright (c) 2025 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 Karstens, et al. Expires 18 July 2025 [Page 1] Internet-Draft Mcast App Port January 2025 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 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2. Assignment . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Host Requirements . . . . . . . . . . . . . . . . . . . . . . 3 4. Application Requirements . . . . . . . . . . . . . . . . . . 3 5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 4 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 8.1. Normative References . . . . . . . . . . . . . . . . . . 5 8.2. Informative References . . . . . . . . . . . . . . . . . 5 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5 1. Introduction The Internet community has recognized the need to be judicious when assigning port numbers (see [RFC7605], Section 6). With unicast applications, the need for explicit port assignment has been reduced by techniques such as locally assigning a dynamic port, combined with some mechanism for advertising that port (see [RFC7605], Section 7.1). Dynamic assignment does not work with multicast applications because it is impossible to guarantee that the port remains unused by all hosts that may want to join a given multicast group. The result is that each multicast application-layer protocol has had to have its own dedicated port assignment. Even worse, each different use of that multicast application-layer protocol has had to have a different unique port assigned. In the TCP/IP model, the port number in the transport layer multiplexes applications within a host (see [RFC1122], Section 4.1.1 and [RFC7605], Section 5). With Any-Source Multicast, the use of a port number to multiplex applications is unnecessary because the destination multicast address already provides a unique identifier for the application. The same applies to Source-Specific Multicast if both source address and destination multicast address are considered. Because of the desire to conserve port numbers and the fact that a port is not necessary to multiplex multicast applications, this document assigns a UDP port that may be used with multicast applications. Karstens, et al. Expires 18 July 2025 [Page 2] Internet-Draft Mcast App Port January 2025 Use of this port is optional because there may be circumstances where assigning a port is preferred, such as when participants cannot meet the requirements in Section 3 and Section 4. 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. 2. Assignment This document REQUESTS assignment of UDP port 49149 and gives it the service name "Multicast Application Port". This port is near the end of the range of User ports [RFC6335], Section 6 to differentiate it from other port assignments. The REQUESTED port may be used as a source port if the application exclusively uses multicast messages. If any application messages are unicast, then a dynamic port should be used as the source port. This allows receivers to know which port to send replies to. 3. Host Requirements Hosts shall require applications using this port to use it non- exclusively. In practice, this means hosts using POSIX-like socket APIs would require applications to set the SO_REUSEADDR and/or SO_REUSEPORT socket options before binding the socket [POSIX]. This ensures that applications developed on a conformant host will also work on a non-conformant host. Hosts shall discard all incoming, non-multicast packets that use this destination port. 4. Application Requirements Applications running on non-conformant hosts can ensure compatibility with conformant hosts by meeting the requirements in this section. Applications running on a non-conformant host shall not prevent other applications from using this port. In practice, this means that applications using POSIX-like socket APIs would enable the SO_REUSEADDR and/or SO_REUSEPORT socket options before binding the socket [POSIX]. Karstens, et al. Expires 18 July 2025 [Page 3] Internet-Draft Mcast App Port January 2025 Applications running on a non-conformant host shall discard all datagrams that do not have the multicast address used by the application. 5. Security Considerations Applications running on non-conformant hosts are vulnerable to a denial of service attack if another application claims exclusive access to the port. Systems that use POSIX-like socket APIs typically have restrictions on binding multiple sockets to the same port. This can serve as a rudimentary security mechanism in that other local applications cannot eavesdrop on the multicast stream. A necessary side-effect of using the Multicast Application Port is that applications can no longer rely on these security mechanisms. These applications may want to incorporate additional security measures into their protocol. Note that the problem of local eavesdropping is typically no worse than eavesdropping in-flight, so it is likely that both attack vectors can be resolved by the same security measure. 6. IANA Considerations IANA is REQUESTED to assign the following port: Service Name Multicast Application Port Transport Protocol UDP Assignee IESG Contact IETF Chair Description Multicast data where the application is identified by the multicast address Reference This document Port Number 49149 IANA is requested to update its "Application for Service Names and User Port Numbers" [IANA-APP] to reference this document, ask if a Multicast Application Port may be used, and require an explanation if not. 7. Acknowledgement Special thanks to the National Marine Electronics Association for their contributions in developing marine industry standards and their support for this research. Thanks also to the members of the PIM and INT-AREA working groups for their review of this draft and to Dr. Joe Touch for consulting on port assignment. Karstens, et al. Expires 18 July 2025 [Page 4] Internet-Draft Mcast App Port January 2025 8. References 8.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, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . 8.2. Informative References [IANA-APP] Internet Assigned Numbers Authority, "Application for Service Names and User Port Numbers", . [POSIX] The Open Group, ""The Open Group Base Specifications", Issue 7, 2018 edition", December 2001, . [RFC1122] Braden, R., Ed., "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122, DOI 10.17487/RFC1122, October 1989, . [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, DOI 10.17487/RFC6335, August 2011, . [RFC7605] Touch, J., "Recommendations on Using Assigned Transport Port Numbers", BCP 165, RFC 7605, DOI 10.17487/RFC7605, August 2015, . Authors' Addresses Nate Karstens Garmin International Email: nate.karstens@gmail.com Stuart Cheshire Apple Inc. Karstens, et al. Expires 18 July 2025 [Page 5] Internet-Draft Mcast App Port January 2025 Email: cheshire@apple.com Mike McBride Futurewei Email: michael.mcbride@futurewei.com Karstens, et al. Expires 18 July 2025 [Page 6]