Network Working Group W. Eddy Internet-Draft MTI Systems Updates: 4727 (if approved) August 16, 2011 Intended status: Standards Track Expires: February 17, 2012 Additional TCP Experimental-Use Options draft-eddy-tcpm-addl-exp-options-00 Abstract There have been multiple issues with the allocation of TCP option kind numbers recently. Two of these issues, which this document attempts to address, are that there were only a small number of options reserved by RFC 4727 for experiment and test use in the RFC 3692 style to begin with, and both of these have been used in shipping products. This impacts the ability of other research and experimental efforts to develop and test running code since registration of other option numbers requires either IESG Approval or Standards Action. This document proposes designation of additional experimental options in the IANA registry for TCP Option Kind Numbers, intended to resolve the possible barriers to using the existing RFC 3962 experimental-use options. Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. This document may not be modified, and derivative works of it may not be created, except to format it for publication as an RFC and to translate it into languages other than English. 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 http://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 February 17, 2012. Copyright Notice Copyright (c) 2011 IETF Trust and the persons identified as the Eddy Expires February 17, 2012 [Page 1] Internet-Draft TCP Experimental Options August 2011 document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (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 Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Additional Experimental-Use Options . . . . . . . . . . . . . . 4 3. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.1. Normative References . . . . . . . . . . . . . . . . . . . 6 6.2. Informative References . . . . . . . . . . . . . . . . . . 6 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 6 Eddy Expires February 17, 2012 [Page 2] Internet-Draft TCP Experimental Options August 2011 1. Introduction TCP options are a fundamental mechanism for extending and enhancing TCP's functionality. In the past, the addition of TCP options (e.g. Window Scale, Timestamp [RFC1323], and Selective Acknowledgements [RFC2018]) has supported the protocol's evolution and helped its applicability to expand as the Internet and types of links available grew. However, there has been significant confusion with regards to how TCP option kind numbers are managed. This is, frankly, dangerous to the Internet, if it persists. There is a limited pool of options and due to misunderstandings the usable portion of this pool has shrunk to an unknown extent. Registration of TCP option kind numbers is a function of the IANA [RFC2780]. Values are assigned following either (1) IESG Approval, or (2) Standards Action process, which are defined in [RFC2434]. Some vendors have not followed these procedures and simply shipped products using option kind numbers chosen themselves. This poisons the pool of options available, as it potentially causes conflicts if IANA later registers those same kind numbers for a use that followed the proper registration process. This has been recognized as a mistake, and vendors have expressed a desire to avoid it in the future and are working towards possible transition of such products to registered options numbers. Two TCP option numbers have been designated for experimental use [RFC4727], which are not intended to be used in general deployments or enabled by default in products or other general releases unless explicitly enabled by an end-user [RFC3692]. Unfortunately, at least one vendor intending to avoid shipping its products using unregistered option numbers, actually shipped products using the experimental-use numbers. These numbers are being used by some deployed middleboxes and the impacts to other people trying to use the same kind numbers for other purposes is not broadly understood, especially since the presence of such middleboxes on a path may be unknown a priori. A recent TCP research effort testing running code over the Internet that would have been a perfect candidate for using the experimental- use numbers shied away from this due to the deployed middlebox issue and chose to improperly use yet more unregistered TCP option kind numbers. Another recent issue is that with multiple ongoing efforts to extend TCP, there may be implementations that integrate a number of Eddy Expires February 17, 2012 [Page 3] Internet-Draft TCP Experimental Options August 2011 extensions requiring experimental-use options. Two kind numbers may not be sufficient for such cases, and adding sub-kind identifiers within the option payload may be complex or even impossible. This document attempts to mitigate the situation and remove excuses for such instances in the future by requesting IANA to register a greater number of TCP experimental-use options that would also follow the RFC 3692 spirit for their intended use. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. [RFC2119] 2. Additional Experimental-Use Options This document proposes to create an additional sixteen experimental- use TCP option kinds in the spirit of RFC 3692. As this may seem like a large number compared to the current two that RFC 4727 requested, some rationale is provided in the next section. Of these sixteen option kinds, the option-length field for all of them will be defined as variable, but in all cases will hold a value of at least 2 in order to account for the kind and length fields. The option kind numbers allocated should be contiguous in order to support potential ease of updating filter rules and other databases used in firewalls and other middleboxes, as well as various other software tools for packet analysis and other uses. 3. Rationale There are only 8 bits that comprise a TCP Option Kind field, lending 256 possible unique codepoints. Of these, there are the 2 identified in RFC 4727 for experimental-use and 19 with registrations that are currently not identified as obsolete (historic and currently unused) or unassigned due to release of prior registrations. Of these, several are not known to be in general use and could likely be reaped if needed. Additionally, 11 kind numbers have been identified as obsolete or unassigned due to registration being released, and 6 more are known to be deployed without proper IANA assignment. One further protocol under development in the IETF (Multipath TCP) requires an IANA option kind assignment yet-to-be-made. This leaves 217 option kind values that both have never been registered and are not known to have been under deployment without registration. Even though this document proposes to claim 16 of Eddy Expires February 17, 2012 [Page 4] Internet-Draft TCP Experimental Options August 2011 these values for experimental-use, there will still be 201 option kind values seemingly fully available, which represents over 78% of the option kind numbers. Based on TCP's existence for several decades without even using a quarter of the available options space, the remaining pool of kind numbers should be sufficient for many more decades to come. Further, 16 option numbers for experimental use should be more than sufficient by a factor of 2 to 4 in order to permit implementing and testing combinations of experimental TCP extensions that do not yet have their own registered option kind numbers. This is especially true as recently Multipath TCP design has set an example for using a sub-kind / subtype field in order to avoid requiring multiple kind numbers from the TCP registry. This practice could be reused by future similar extensions making extensive use of TCP options. 4. Security Considerations This document creates no additional security considerations for TCP implementations. Firewalls and other network devices that aggressively filter unrecognized TCP options may cause difficulties in using the new experimental-use kind numbers defined by this document. Managers and vendors of such firewalls should reconsider whether such filtering is necessary or useful as this practice represents a major impediment to innovation in TCP. 5. IANA Considerations This document requests that IANA allocate sixteen contiguous TCP option values for experimental-use in the spirit of RFC 3692, which will be described in the registry as: o Length: N o Meaning: RFC3692-style Experiment - MUST NOT be used by default in shipping products, or other uncontrolled wide-scale deployments outside of an experimental context o Reference: (this document's RFC number, to be filled in) Allocation from the rear of the available reserved space adjacent below the two existing experimental-use options (253 and 254) is desirable. Eddy Expires February 17, 2012 [Page 5] Internet-Draft TCP Experimental Options August 2011 6. References 6.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, November 2006. 6.2. Informative References [RFC1323] Jacobson, V., Braden, B., and D. Borman, "TCP Extensions for High Performance", RFC 1323, May 1992. [RFC2018] Mathis, M., Mahdavi, J., Floyd, S., and A. Romanow, "TCP Selective Acknowledgment Options", RFC 2018, October 1996. [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998. [RFC2780] Bradner, S. and V. Paxson, "IANA Allocation Guidelines For Values In the Internet Protocol and Related Headers", BCP 37, RFC 2780, March 2000. [RFC3692] Narten, T., "Assigning Experimental and Testing Numbers Considered Useful", BCP 82, RFC 3692, January 2004. Author's Address Wesley M. Eddy MTI Systems MS 500-ASRC NASA Glenn Research Center 21000 Brookpark Road Cleveland, OH 44135 USA Phone: +1-216-433-6682 Email: wes@mti-systems.com Eddy Expires February 17, 2012 [Page 6]