Section 5. Changes from RFC 793

This document obsoletes RFC 793 as well as RFCs 6093 and 6528, which
   updated 793.  In all cases, only the normative protocol specification
   and requirements have been incorporated into this document, and some
   informational text with background and rationale may not have been
   carried in.  The informational content of those documents is still
   valuable in learning about and understanding TCP, and they are valid
   Informational references, even though their normative content has
   been incorporated into this document.
   The main body of this document was adapted from RFC 793's Section 3,
   titled "FUNCTIONAL SPECIFICATION", with an attempt to keep formatting
   and layout as close as possible.
   The collection of applicable RFC errata that have been reported and
   either accepted or held for an update to RFC 793 were incorporated
   (Errata IDs: 573 [73], 574 [74], 700 [75], 701 [76], 1283 [77], 1561
   [78], 1562 [79], 1564 [80], 1571 [81], 1572 [82], 2297 [83], 2298
   [84], 2748 [85], 2749 [86], 2934 [87], 3213 [88], 3300 [89], 3301
   [90], 6222 [91]).  Some errata were not applicable due to other
   changes (Errata IDs: 572 [92], 575 [93], 1565 [94], 1569 [95], 2296
   [96], 3305 [97], 3602 [98]).
   Changes to the specification of the urgent pointer described in RFCs
   1011, 1122, and 6093 were incorporated.  See RFC 6093 for detailed
   discussion of why these changes were necessary.
   The discussion of the RTO from RFC 793 was updated to refer to RFC
   6298.  The text on the RTO in RFC 1122 originally replaced the text
   in RFC 793; however, RFC 2988 should have updated RFC 1122 and has
   subsequently been obsoleted by RFC 6298.
   RFC 1011 [18] contains a number of comments about RFC 793, including
   some needed changes to the TCP specification.  These are expanded in
   RFC 1122, which contains a collection of other changes and
   clarifications to RFC 793.  The normative items impacting the
   protocol have been incorporated here, though some historically useful
   implementation advice and informative discussion from RFC 1122 is not
   included here.  The present document, which is now the TCP
   specification rather than RFC 793, updates RFC 1011, and the comments
   noted in RFC 1011 have been incorporated.
   RFC 1122 contains more than just TCP requirements, so this document
   can't obsolete RFC 1122 entirely.  It is only marked as "updating"
   RFC 1122; however, it should be understood to effectively obsolete
   all of the material on TCP found in RFC 1122.
   The more secure initial sequence number generation algorithm from RFC
   6528 was incorporated.  See RFC 6528 for discussion of the attacks
   that this mitigates, as well as advice on selecting PRF algorithms
   and managing secret key data.
   A note based on RFC 6429 was added to explicitly clarify that system
   resource management concerns allow connection resources to be
   reclaimed.  RFC 6429 is obsoleted in the sense that the clarification
   it describes has been reflected within this base TCP specification.
   The description of congestion control implementation was added based
   on the set of documents that are IETF BCP or Standards Track on the
   topic and the current state of common implementations.