draft-ietf-tcpm-tcp-edo-02.txt   draft-ietf-tcpm-tcp-edo-03.txt 
TCPM WG J. Touch TCPM WG J. Touch
Internet Draft USC/ISI Internet Draft USC/ISI
Updates: 793 Wes Eddy Updates: 793 Wes Eddy
Intended status: Standards Track MTI Systems Intended status: Standards Track MTI Systems
Expires: October 2015 April 15, 2015 Expires: October 2015 April 15, 2015
TCP Extended Data Offset Option TCP Extended Data Offset Option
draft-ietf-tcpm-tcp-edo-02.txt draft-ietf-tcpm-tcp-edo-03.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 2, line 31 skipping to change at page 2, line 31
2. Conventions used in this document..............................3 2. Conventions used in this document..............................3
3. Motivation.....................................................3 3. Motivation.....................................................3
4. Requirements for Extending TCP's Data Offset...................4 4. Requirements for Extending TCP's Data Offset...................4
5. The TCP EDO Option.............................................4 5. The TCP EDO Option.............................................4
5.1. EDO Supported.............................................5 5.1. EDO Supported.............................................5
5.2. EDO Extension.............................................5 5.2. EDO Extension.............................................5
5.3. The two EDO Extension variants............................8 5.3. The two EDO Extension variants............................8
6. TCP EDO Interaction with TCP...................................9 6. TCP EDO Interaction with TCP...................................9
6.1. TCP User Interface........................................9 6.1. TCP User Interface........................................9
6.2. TCP States and Transitions................................9 6.2. TCP States and Transitions................................9
6.3. TCP Segment Processing....................................9 6.3. TCP Segment Processing...................................10
6.4. Impact on TCP Header Size................................10 6.4. Impact on TCP Header Size................................10
6.5. Connectionless Resets....................................11 6.5. Connectionless Resets....................................11
6.6. ICMP Handling............................................11 6.6. ICMP Handling............................................11
7. Interactions with Middleboxes.................................11 7. Interactions with Middleboxes.................................12
7.1. Middlebox Coexistence with EDO...........................12 7.1. Middlebox Coexistence with EDO...........................12
7.2. Middlebox Interference with EDO..........................12 7.2. Middlebox Interference with EDO..........................13
8. Comparison to Previous Proposals..............................14 8. Comparison to Previous Proposals..............................14
8.1. EDO Criteria.............................................14 8.1. EDO Criteria.............................................14
8.2. Summary of Approaches....................................15 8.2. Summary of Approaches....................................15
8.3. Extended Segments........................................16 8.3. Extended Segments........................................16
8.4. TCPx2....................................................16 8.4. TCPx2....................................................16
8.5. LO/SLO...................................................16 8.5. LO/SLO...................................................17
8.6. LOIC.....................................................17 8.6. LOIC.....................................................17
8.7. Problems with Extending the Initial SYN..................17 8.7. Problems with Extending the Initial SYN..................18
9. Implementation Issues.........................................19 9. Implementation Issues.........................................19
10. Security Considerations......................................19 10. Security Considerations......................................20
11. IANA Considerations..........................................20 11. IANA Considerations..........................................20
12. References...................................................20 12. References...................................................20
12.1. Normative References....................................20 12.1. Normative References....................................20
12.2. Informative References..................................20 12.2. Informative References..................................20
13. Acknowledgments..............................................22 13. Acknowledgments..............................................22
1. Introduction 1. Introduction
TCP's Data Offset (DO)is a 4-bit field, which indicates the number TCP's Data Offset (DO)is a 4-bit field, which indicates the number
of 32-bit words of the entire TCP header [RFC793]. This limits the of 32-bit words of the entire TCP header [RFC793]. This limits the
skipping to change at page 7, line 14 skipping to change at page 7, line 14
>> If EDO has been negotiated, any subsequent segments arriving >> If EDO has been negotiated, any subsequent segments arriving
without the EDO Extension option MUST be silently ignored. Such without the EDO Extension option MUST be silently ignored. Such
events MAY be logged as warning errors and logging MUST be rate events MAY be logged as warning errors and logging MUST be rate
limited. limited.
When processing a segment, EDO needs to be visible within the area When processing a segment, EDO needs to be visible within the area
indicated by the Data Offset field, so that processing can use the indicated by the Data Offset field, so that processing can use the
EDO Header_length to override the field for that segment. EDO Header_length to override the field for that segment.
>> The EDO Extension or EDO Verified Extension options MUST occur >> The EDO Extension option MUST occur within the space indicated by
within the space indicated by the TCP Data Offset. the TCP Data Offset.
>> The EDO Extension or EDO Verified Extension options indicates the >> The EDO Extension option indicates the total length of the
total length of the header. The EDO Header_length field MUST NOT header. The EDO Header_length field MUST NOT exceed that of the
exceed that of the total segment size (i.e., TCP Length). total segment size (i.e., TCP Length).
>> The EDO Header Length MUST be at least as large as the TCP Data >> The EDO Header Length MUST be at least as large as the TCP Data
Offset field of the segment in which they both appear. When the EDO Offset field of the segment in which they both appear. When the EDO
Header Length equals the Data Offset length, the EDO Extension Header Length equals the Data Offset length, the EDO Extension
option is present but it does not extend the option space. When the option is present but it does not extend the option space. When the
EDO Header Length is invalid, the TCP segment MUST be silently EDO Header Length is invalid, the TCP segment MUST be silently
dropped. dropped.
>> The EDO Supported option SHOULD be aligned on a 16-bit boundary >> The EDO Supported option SHOULD be aligned on a 16-bit boundary
and the EDO Extension option SHOULD be aligned on a 32-bit boundary, and the EDO Extension option SHOULD be aligned on a 32-bit boundary,
skipping to change at page 8, line 32 skipping to change at page 8, line 32
indicated by the EDO Header_Length field. Such effects are described indicated by the EDO Header_Length field. Such effects are described
in further detail in Section 7.2. in further detail in Section 7.2.
>> An endpoint MAY use either variant of the EDO Extension option >> An endpoint MAY use either variant of the EDO Extension option
interchangeably. interchangeably.
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. such as might occur when segments are split or merged, that occurs
without also updating the Segment Length field as well. The Segment
Length field thus helps endpoints detects 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
field as needed, but would also ensure that the user data is handled
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
error SHOULD be logged in a rate-limited manner. error SHOULD be logged in a rate-limited manner.
 End of changes. 10 change blocks. 
13 lines changed or deleted 19 lines changed or added

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