< draft-ietf-tcpm-tcp-edo-10.txt   draft-ietf-tcpm-tcp-edo-11.txt >
TCPM WG J. Touch TCPM WG J. Touch
Internet Draft Internet Draft Independent consultant
Updates: 793 Wes Eddy Updates: 793 Wes Eddy
Intended status: Standards Track MTI Systems Intended status: Standards Track MTI Systems
Expires: January 2019 July 19, 2018 Expires: April 2022 October 12, 2021
TCP Extended Data Offset Option TCP Extended Data Offset Option
draft-ietf-tcpm-tcp-edo-10.txt draft-ietf-tcpm-tcp-edo-11.txt
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 32 skipping to change at page 1, line 32
months and may be updated, replaced, or obsoleted by other documents months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress." reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
This Internet-Draft will expire on January 19, 2019. This Internet-Draft will expire on April 12, 2022.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without Section 4.e of the Trust Legal Provisions and are provided without
skipping to change at page 8, line 37 skipping to change at page 8, line 37
When the longer, 6-byte variant is used, the Segment_Length field is When the longer, 6-byte variant is used, the Segment_Length field is
used to check whether modification of the segment was performed used to check whether modification of the segment was performed
consistent with knowledge of the EDO option. The Segment_Length consistent with knowledge of the EDO option. The Segment_Length
field will detect any modification of the length of the segment, field will detect any modification of the length of the segment,
such as might occur when segments are split or merged, that occurs such as might occur when segments are split or merged, that occurs
without also updating the Segment Length field as well. The Segment without also updating the Segment Length field as well. The Segment
Length field thus helps endpoints detects devices that merge or Length field thus helps endpoints detects devices that merge or
split TCP segments without support for EDO. Devices that merge or split TCP segments without support for EDO. Devices that merge or
split TCP segments that support EDO would update the Segment Length split TCP segments that support EDO would update the Segment Length
field as needed, but would also ensure that the user data is handled field as needed but would also ensure that the user data is handled
separately from the extended option space indicate by EDO. separately from the extended option space indicate by EDO.
>> When an endpoint creates a new segment using the 6-byte EDO >> When an endpoint creates a new segment using the 6-byte EDO
Extension option, the Segment_Length field is initialized with a Extension option, the Segment_Length field is initialized with a
copy of the segment length from the TCP pseudoheader. copy of the segment length from the TCP pseudoheader.
>> When an endpoint receives a segment using the 6-byte EDO >> When an endpoint receives a segment using the 6-byte EDO
Extension option, it MUST validate the Segment_Length field with the Extension option, it MUST validate the Segment_Length field with the
length of the segment as indicated in the TCP pseudoheader. If the length of the segment as indicated in the TCP pseudoheader. If the
segment lengths do not match, the segment MUST be discarded and an segment lengths do not match, the segment MUST be discarded and an
skipping to change at page 10, line 16 skipping to change at page 10, line 16
TCP EDO alters segment processing during the TCP option processing TCP EDO alters segment processing during the TCP option processing
step. Once detected, the TCP EDO Extension option overrides the TCP step. Once detected, the TCP EDO Extension option overrides the TCP
Data Offset field for all subsequent option processing. Option Data Offset field for all subsequent option processing. Option
processing continues at the next option (if present) after the EDO processing continues at the next option (if present) after the EDO
Extension option. Extension option.
6.4. Impact on TCP Header Size 6.4. Impact on TCP Header Size
The TCP EDO Supported option increases SYN header length by a The TCP EDO Supported option increases SYN header length by a
minimum of 2 bytes, but could increase it by more depending on 32- minimum of 2 bytes but could increase it by more depending on 32-bit
bit word alignment. Currently popular SYN options total 19 bytes, word alignment. Currently popular SYN options total 19 bytes, which
which leaves more than enough room for the EDO Supported option: leaves more than enough room for the EDO Supported option:
o SACK permitted (2 bytes in SYN, optionally 2 + 8N bytes after) o SACK permitted (2 bytes in SYN, optionally 2 + 8N bytes after)
[RFC2018][RFC6675] [RFC2018][RFC6675]
o Timestamp (10 bytes) [RFC7323] o Timestamp (10 bytes) [RFC7323]
o Window scale (3 bytes) [RFC7323] o Window scale (3 bytes) [RFC7323]
o MSS option (4 bytes) [RFC793] o MSS option (4 bytes) [RFC793]
skipping to change at page 11, line 17 skipping to change at page 11, line 17
The full combination of the above options (47 bytes for TS, WS, MSS, The full combination of the above options (47 bytes for TS, WS, MSS,
SACK, TCP-AO, and MPTCP) does not fit in the existing SYN option SACK, TCP-AO, and MPTCP) does not fit in the existing SYN option
space and (as noted) that space cannot be extended within a single space and (as noted) that space cannot be extended within a single
SYN segment. There has been a proposal to change TS to a 2 byte "TS SYN segment. There has been a proposal to change TS to a 2 byte "TS
permitted" signal in the initial SYN, provided it can be safely permitted" signal in the initial SYN, provided it can be safely
enabled during the connection later or might be avoided completely enabled during the connection later or might be avoided completely
[Ni15]. Even using "TS-permitted", the total space is still too [Ni15]. Even using "TS-permitted", the total space is still too
large to support in the initial SYN without SYN option space large to support in the initial SYN without SYN option space
extension [Bo14][Br14][To18]. extension [Bo14][Br14][To18].
The EDO Extension option has negligible impact on other headers, The EDO Extension option has negligible impact on other headers
because it can either come first or just after security information, because it can either come first or just after security information,
and in either case the additional 4 or 6 bytes are easily and in either case the additional 4 or 6 bytes are easily
accommodated within the TCP Data Offset length. Once the EDO option accommodated within the TCP Data Offset length. Once the EDO option
is processed, the entirety of the remainder of the TCP segment is is processed, the entirety of the remainder of the TCP segment is
available for any remaining options. available for any remaining options.
6.5. Connectionless Resets 6.5. Connectionless Resets
A RST may arrive during a currently active connection or may be A RST may arrive during a currently active connection or may be
needed to cleanup old state from an abandoned connection. The latter needed to cleanup old state from an abandoned connection. The latter
skipping to change at page 18, line 19 skipping to change at page 18, line 19
The key difficulty with most previous proposals is the desire to The key difficulty with most previous proposals is the desire to
extend the option space in all TCP segments, including the initial extend the option space in all TCP segments, including the initial
SYN, i.e., SYN with no ACK, typically the first segment of a SYN, i.e., SYN with no ACK, typically the first segment of a
connection, as well as possibly the SYN/ACK. It has proven difficult connection, as well as possibly the SYN/ACK. It has proven difficult
to extend space within the segment of the initial SYN in the absence to extend space within the segment of the initial SYN in the absence
of prior negotiation while maintaining current TCP three-way of prior negotiation while maintaining current TCP three-way
handshake properties, and it may be similarly challenging to extend handshake properties, and it may be similarly challenging to extend
the SYN/ACK (depending on asymmetric middlebox assumptions). the SYN/ACK (depending on asymmetric middlebox assumptions).
A new TCP option cannot extend the Data Offset of a single TCP A new TCP option cannot extend the Data Offset of a single TCP
initial SYN segment, and cannot extend a SYN/ACK in a single segment initial SYN segment and cannot extend a SYN/ACK in a single segment
when considering misbehaving middleboxes. All TCP segments, when considering misbehaving middleboxes. All TCP segments,
including the initial SYN and SYN/ACK, may include user data in the including the initial SYN and SYN/ACK, may include user data in the
payload data [RFC793], and this can be useful for some proposed payload data [RFC793], and this can be useful for some proposed
features such as TCP Fast Open [RFC7413]. Legacy endpoints that features such as TCP Fast Open [RFC7413]. Legacy endpoints that
ignore the new option would process the payload contents as user ignore the new option would process the payload contents as user
data and send an ACK. Once ACK'd, this data cannot be removed from data and send an ACK. Once ACK'd, this data cannot be removed from
the user stream. the user stream.
The Reserved TCP header bits cannot be redefined easily, even though The Reserved TCP header bits cannot be redefined easily, even though
three of the six total bits have already been redefined (ECE/CWR three of the six total bits have already been redefined (ECE/CWR
skipping to change at page 22, line 21 skipping to change at page 22, line 21
"TCP Extensions for Multipath Operation with Multiple "TCP Extensions for Multipath Operation with Multiple
Addresses", RFC 6824, January 2013. Addresses", RFC 6824, January 2013.
[RFC7323] Borman, D., Braden, B., Jacobson, V., and R. Scheffenegger [RFC7323] Borman, D., Braden, B., Jacobson, V., and R. Scheffenegger
(Ed.), "TCP Extensions for High Performance", RFC 7323, (Ed.), "TCP Extensions for High Performance", RFC 7323,
September 2014. September 2014.
[RFC7413] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP [RFC7413] Cheng, Y., Chu, J., Radhakrishnan, S., and A. Jain, "TCP
Fast Open", RFC 7413, December 2014. Fast Open", RFC 7413, December 2014.
[To18] Touch, J., T. Faber, "TCP SYN Extended Option Space Using [To21] Touch, J., T. Faber, "TCP SYN Extended Option Space Using
an Out-of-Band Segment", draft-touch-tcpm-tcp-syn-ext-opt an Out-of-Band Segment", draft-touch-tcpm-tcp-syn-ext-opt
(work in progress), Jan. 2018. (work in progress), Oct. 2019.
[Yo11] Yourtchenko, A., "Introducing TCP Long Options by Invalid [Yo11] Yourtchenko, A., "Introducing TCP Long Options by Invalid
Checksum", draft-yourtchenko-tcp-loic-00 (work in Checksum", draft-yourtchenko-tcp-loic-00 (work in
progress), April 2011. progress), April 2011.
13. Acknowledgments 13. Acknowledgments
The authors would like to thank the IETF TCPM WG for their feedback, The authors would like to thank the IETF TCPM WG for their feedback,
in particular: Oliver Bonaventure, Bob Briscoe, Ted Faber, John in particular: Oliver Bonaventure, Bob Briscoe, Ted Faber, John
Leslie, Pasi Sarolahti, Richard Scheffenegger, and Alexander Leslie, Pasi Sarolahti, Richard Scheffenegger, and Alexander
 End of changes. 11 change blocks. 
13 lines changed or deleted 13 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/