| < 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.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||