idnits 2.17.1 draft-eddy-rfc793bis-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. == The document seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (October 21, 2013) is 3833 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Obsolete informational reference (is this intentional?): RFC 793 (ref. '2') (Obsoleted by RFC 9293) == Outdated reference: A later version (-08) exists of draft-ietf-tcpm-tcp-rfc4614bis-00 Summary: 0 errors (**), 0 flaws (~~), 4 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force W. Eddy 3 Internet-Draft MTI Systems 4 Obsoletes: 793 (if approved) A. Oppermann 5 Intended status: Standards Track 6 Expires: April 24, 2014 October 21, 2013 8 Transmission Control Protocol Specification 9 draft-eddy-rfc793bis-00 11 Abstract 13 This document specifies the Internet's Transmission Control Protocol 14 (TCP). TCP is an important transport layer protocol in the Internet 15 stack, and has continuously evolved over decades of use and growth of 16 the Internet. In this time, a number of changes have been made to 17 TCP as it was specified in RFC 793, though these are only documented 18 in a piecemeal fashion. This document collects and brings those 19 changes together with the protocol specification from RFC 793. This 20 document obsoletes RFC 793 and several other RFCs (TODO: list actual 21 RFCs). 23 Requirements Language 25 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 26 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 27 document are to be interpreted as described in RFC 2119 [1]. 29 Status of This Memo 31 This Internet-Draft is submitted in full conformance with the 32 provisions of BCP 78 and BCP 79. 34 Internet-Drafts are working documents of the Internet Engineering 35 Task Force (IETF). Note that other groups may also distribute 36 working documents as Internet-Drafts. The list of current Internet- 37 Drafts is at http://datatracker.ietf.org/drafts/current/. 39 Internet-Drafts are draft documents valid for a maximum of six months 40 and may be updated, replaced, or obsoleted by other documents at any 41 time. It is inappropriate to use Internet-Drafts as reference 42 material or to cite them other than as "work in progress." 44 This Internet-Draft will expire on April 24, 2014. 46 Copyright Notice 47 Copyright (c) 2013 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (http://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 This document may contain material from IETF Documents or IETF 61 Contributions published or made publicly available before November 62 10, 2008. The person(s) controlling the copyright in some of this 63 material may not have granted the IETF Trust the right to allow 64 modifications of such material outside the IETF Standards Process. 65 Without obtaining an adequate license from the person(s) controlling 66 the copyright in such materials, this document may not be modified 67 outside the IETF Standards Process, and derivative works of it may 68 not be created outside the IETF Standards Process, except to format 69 it for publication as an RFC or to translate it into languages other 70 than English. 72 Table of Contents 74 1. Purpose and Scope . . . . . . . . . . . . . . . . . . . . . . 2 75 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 76 3. Functional Specification . . . . . . . . . . . . . . . . . . 3 77 3.1. Segment Format . . . . . . . . . . . . . . . . . . . . . 3 78 3.2. State Machine . . . . . . . . . . . . . . . . . . . . . . 4 79 3.3. Event Processing . . . . . . . . . . . . . . . . . . . . 4 80 4. Changes from RFC 793 . . . . . . . . . . . . . . . . . . . . 4 81 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 82 6. Security Considerations . . . . . . . . . . . . . . . . . . . 5 83 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 84 7.1. Normative References . . . . . . . . . . . . . . . . . . 5 85 7.2. Informative References . . . . . . . . . . . . . . . . . 5 86 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5 88 1. Purpose and Scope 90 In 1983, RFC 793 [2] was released, documenting the Transmission 91 Control Protocol (TCP), and replacing earlier specifications for TCP 92 that had been published in the past. 94 Since that time, TCP has been implemented many times, and has been 95 used as a transport protocol for numerous applications on the 96 Internet. 98 For several decades, RFC 793 plus a number of other documents have 99 combined to serve as the specification for TCP [3]. Over time, 100 errata have been identified on RFC 793, as well as deficiencies in 101 security, performance, and other aspects. A number of enhancements 102 has grown and been documented separately. 104 The purpose of this document is to bring together all of the IETF 105 Standards Track changes that have been made to the TCP specification 106 and adopt them into an update of the RFC 793 protocol specification. 108 In addition to the protocol specification that descibes the TCP 109 segment format, generation, and processing rules that are to be 110 implemented in code, RFC 793 and other updates also contain 111 informative and descriptive text for human readers to understand 112 aspects of the protocol design and operation. This document does not 113 attempt to alter or update those parts of RFC 793, and is focused 114 only on updating the normative protocol specification. 116 2. Introduction 118 RFC 793 contains a discussion of the TCP design goals and provides 119 examples of its operation, including examples of connection 120 establishment, closing connections, and retransmitting packets to 121 repair losses. 123 This document describes the functionality expected in modern 124 implementations of TCP, and replaces the protocol specification in 125 RFC 793. It does not replicate or attempt to update the examples and 126 other discussion in RFC 793. Other documents are referenced to 127 provide explanation of the theory of operation, rationale, and 128 detailed discussion of design decisions. This document only focuses 129 on the normative behavior of the protocol. 131 TODO: describe the subsequent structure of the document to-be (e.g. 132 will it follow the newtcp BSD implementation?), and mention that a 133 list of changes from RFC 793 will be kept in the final section 135 3. Functional Specification 137 TODO 139 3.1. Segment Format 141 TODO 143 3.2. State Machine 145 TODO 147 3.3. Event Processing 149 TODO 151 4. Changes from RFC 793 153 TODO: Incomplete list of changes - these need to be added to and made 154 more specific, as the document proceeds: 156 1. incorporate the accepted errata 158 2. incorporate 1122 additions 160 3. point to major additional docs like 1323bis and 5681 162 4. incorporate relevant parts of 3168 (ECN) 164 5. incorporate 6093 (urgent pointer) 166 6. incorporate 6528 (sequence number) 168 7. incorporate Fernando's new number-checking fixes (if past the 169 IESG in time) 171 8. point to PMTUD? 173 9. point to 5461 (soft errors) 175 10. mention 5961 state machine option 177 11. mention 6161 (reducing TIME-WAIT) 179 12. incorporate 6429 (ZWP/persist) 181 13. incorporate 6691 (MSS) 183 5. IANA Considerations 185 This memo includes no request to IANA. Existing IANA registries for 186 TCP parameters are sufficient. 188 TODO: check whether entries pointing to 793 and other documents 189 obsoleted by this one should be updated to point to this one instead. 191 6. Security Considerations 193 TODO 195 7. References 197 7.1. Normative References 199 [1] Bradner, S., "Key words for use in RFCs to Indicate 200 Requirement Levels", BCP 14, RFC 2119, March 1997. 202 7.2. Informative References 204 [2] Postel, J., "Transmission Control Protocol", STD 7, RFC 205 793, September 1981. 207 [3] Duke, M., Braden, R., Eddy, W., Blanton, E., and A. 208 Zimmermann, "A Roadmap for Transmission Control Protocol 209 (TCP) Specification Documents", draft-ietf-tcpm-tcp- 210 rfc4614bis-00 (work in progress), August 2013. 212 Authors' Addresses 214 Wesley M. Eddy 215 MTI Systems 216 US 218 Email: wes@mti-systems.com 220 Andre Oppermann 222 Email: andre@freebsd.org