TCPM Working Group R. Bonica Internet-Draft T. Li Intended status: Experimental Juniper Networks Expires: 1 December 2025 30 May 2025 TCP Extended Options draft-bonica-tcpm-extended-options-00 Abstract The TCP header can accommodates 40 octets of TCP options. However, modern applications may require more than 40 octets of TCP Options. Therefore, this document describes an experiment that extends the TCP Options field. If this experiment is successful, it will demonstrate the extension procedures described herein are implementable and deployable. It will also demonstrate that they maintain backwards compatibility. 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 1 December 2025. Copyright Notice Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved. Bonica & Li Expires 1 December 2025 [Page 1] Internet-Draft tcp-ext-opt May 2025 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 4 3. Extending The TCP Options field . . . . . . . . . . . . . . . 4 4. Checksum Considerations . . . . . . . . . . . . . . . . . . . 5 5. Backwards Compatibility Considerations . . . . . . . . . . . 5 6. Security Considerations . . . . . . . . . . . . . . . . . . . 5 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 8. Experimental Results . . . . . . . . . . . . . . . . . . . . 5 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 10.1. Normative References . . . . . . . . . . . . . . . . . . 6 10.2. Informative References . . . . . . . . . . . . . . . . . 6 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 1. Introduction Figure 1 depicts a TCP [RFC9293] segment. Bonica & Li Expires 1 December 2025 [Page 2] Internet-Draft tcp-ext-opt May 2025 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ = | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | T +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ C | Acknowledgment Number | P +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |C|E|U|A|P|R|S|F| | H | Offset| Rsrvd |W|C|R|C|S|S|Y|I| Window | E | | |R|E|G|K|H|T|N|N| | A +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ D | Checksum | Urgent Pointer | E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ R | [Options] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ = | : : Data : : | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ = Figure 1: TCP Segment Every TCP segment contains a header. Some TCP segments also contain data. Each field in the TCP header, except for the last, has a fixed length. The fixed length fields in the TCP header occupy 20 octets. One of these fields is called the Data Offset field. The last field in the TCP header is called the Options field. When present, the Options field contains a list of TCP options [TCPOPTS]. Its length varies from 0 to 40 octets. The Data Offset field represents the offset of the Data field in the TCP segment, measured in 4-octet units. The Data Offset field also determines the length of the Options field. This is because the Options field consumes all of the space between the fixed length fields in the TCP header and the Data field. The Data Offset field contains 4 bits. So, its value ranges nominally from 0 to 15. However, the value of the Data Offset field must be 5 or greater. This is because the Data field must follow the fixed length fields in the TCP header. As stated above, those fields occupy 20 octets. Bonica & Li Expires 1 December 2025 [Page 3] Internet-Draft tcp-ext-opt May 2025 Because the value of the Data Offset field cannot exceed 15, the offset of the Data field cannot exceed 60 and the length of the Options field cannot exceed 40 (i.e., 60 minus 20). Modern applications may require more than 40 octets of TCP Options. Therefore, this document describes an experiment that extends the TCP Options field. If this experiment is successful, it will demonstrate the extension procedures described herein are implementable and deployable. It will also demonstrate that they maintain backwards compatibility. 2. Conventions and Definitions 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 BCP14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 3. Extending The TCP Options field According to [RFC9293]: * The Data Offset field must have a value of 5 or greater * TCP Options can be present only when the Data Offset field has a value greater than 5. This document allows TCP options to be present when the Data Offset field has a value of 0. When the Data Offset field has a value of 0, the format of the TCP Options field is as depicted in Figure 2. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | : +-+-+-+-+-+-+-+-+ : | Individual Options : : : : : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: TCP Options * Length: 8-bit unsigned integer. Represents the length of the TCP Options field, including the length field, measured in 4-octet units. Bonica & Li Expires 1 December 2025 [Page 4] Internet-Draft tcp-ext-opt May 2025 * Individual Options: Defined in [RFC9293]. When a TCP segment contains 40 bytes of TCP Options or fewer, it MUST be formatted exactly as described in [RFC9293]. When a TCP segment contains more than 40 bytes of TCP Options, the Data Offset field MUST be equal to 0 and the Options field MUST be formatted as described in this section. 4. Checksum Considerations As per [RFC9293], checksums are calculated over the entire Options field. 5. Backwards Compatibility Considerations Legacy TCP implementations, including middleboxes, cannot parse segments in which the Data Offset is equal to 0. [RFC9293] is silent regarding the required behavior when a TCP implementation receives a segment with Data Offset equal to 0. The following TCP implementations have been tested and are known to discard the segment: * One * Two * Three 6. Security Considerations Legacy middleboxes, including firewalls, cannot parse segments in which the Data Offset is equal to 0. They are likely to discard packets that they cannot parse. 7. IANA Considerations This document does not request any IANA actions. 8. Experimental Results Parties participating in this experiment should publish experimental results within one year of the publication of this document Experimental results should address the following: * Effort required to deploy - Was deployment incremental or network-wide? Bonica & Li Expires 1 December 2025 [Page 5] Internet-Draft tcp-ext-opt May 2025 - Was there a need to synchronize configurations at each node or could nodes be configured independently? - Did the deployment require hardware upgrade? * Scale of deployment * Interoperability - Did you deploy two interoperable implementations? - Did you experience interoperability problems? * Effectiveness and sufficiency of OAM mechanisms - Did Wireshark work? - Did TCPDUMP work? 9. Acknowledgements The authors wish to acknowledge Keshwan Hamlin, Jordan Head, and Joe Touch for their review and helpful comments. 10. References 10.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, . [RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)", STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022, . 10.2. Informative References [TCPOPTS] Internet Assigned Numbers Authority (IANA), "Transmission Control Protocol (TCP) Parameters -", Web https://www.iana.org/assignments/tcp-parameters/tcp- parameters.xhtml#tcp-parameters-1. Bonica & Li Expires 1 December 2025 [Page 6] Internet-Draft tcp-ext-opt May 2025 Authors' Addresses Ron Bonica Juniper Networks Herndon, Virginia United States of America Email: rbonica@juniper.net Tony Li Juniper Networks Sunnyvale, California United States of America Email: tli@juniper.net Bonica & Li Expires 1 December 2025 [Page 7]