idnits 2.17.1 draft-tuexen-tsvwg-sctp-sack-immediately-10.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 seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (October 9, 2012) is 4210 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 normative reference: RFC 4960 (Obsoleted by RFC 9260) ** Obsolete normative reference: RFC 6096 (Obsoleted by RFC 9260) Summary: 2 errors (**), 0 flaws (~~), 1 warning (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group M. Tuexen 3 Internet-Draft I. Ruengeler 4 Intended status: Standards Track Muenster Univ. of Appl. Sciences 5 Expires: April 12, 2013 R. Stewart 6 Adara Networks 7 October 9, 2012 9 SACK-IMMEDIATELY Extension for the Stream Control Transmission Protocol 10 draft-tuexen-tsvwg-sctp-sack-immediately-10.txt 12 Abstract 14 This document defines a method for the sender of a DATA chunk to 15 indicate that the corresponding SACK chunk should be sent back 16 immediately and not be delayed. 18 Status of this Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at http://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on April 12, 2013. 35 Copyright Notice 37 Copyright (c) 2012 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (http://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 53 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . 3 54 3. The I-bit in the DATA Chunk Header . . . . . . . . . . . . . . 3 55 4. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . 4 56 4.1. Sender Side Considerations . . . . . . . . . . . . . . . . 4 57 4.2. Receiver Side Considerations . . . . . . . . . . . . . . . 5 58 5. Interoperability Considerations . . . . . . . . . . . . . . . . 5 59 6. Socket API Considerations . . . . . . . . . . . . . . . . . . . 5 60 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 61 8. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 62 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 6 63 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 64 10.1. Normative References . . . . . . . . . . . . . . . . . . . 6 65 10.2. Informative References . . . . . . . . . . . . . . . . . . 6 66 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6 68 1. Introduction 70 According to [RFC4960] the receiver of a DATA chunk should use 71 delayed SACKs. This delaying is completely controlled by the 72 receiver of the DATA chunk. 74 In specific situations the delaying of SACKs results in reduced 75 performance of the protocol. If such a situation can be detected by 76 the receiver, the corresponding SACK can be sent immediately. For 77 example, [RFC4960] recommends the immediate sending if the receiver 78 has detected message loss or message duplication. However, if the 79 situation can only be detected by the sender of the DATA chunk, 80 [RFC4960] provides no method of avoiding the delaying of the SACK. 81 Thus the protocol performance might be reduced. 83 This document overcomes this limitation and describes a simple 84 extension of the SCTP DATA chunk by defining a new flag, the I-bit. 85 The sender of a DATA chunk indicates by setting this bit that the 86 corresponding SACK chunk should not be delayed. 88 Upper layers of SCTP using the socket API as defined in [RFC6458] may 89 subscribe to the SCTP_SENDER_DRY_EVENT for getting a notification as 90 soon as no user data is outstanding anymore. To avoid an unnecessary 91 delay while waiting for such an event, the application might set the 92 I-Bit on the last DATA chunk sent before waiting for the event. This 93 enabling is possible using the extension of the socket API described 94 in Section 6. 96 There are also situations in which the SCTP implementation can set 97 the I-bit without interacting with the upper layer. If the 98 association is in the SHUTDOWN-PENDING state, the I-bit should be 99 set. This reduces the number of simultaneous associations in case of 100 a busy server handling short living associations. Another case is 101 where the sending of a DATA chunk fills the congestion or receiver 102 window. Setting the I-bit in these cases improves the throughput of 103 the transfer. 105 2. Conventions 107 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 108 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 109 document are to be interpreted as described in [RFC2119]. 111 3. The I-bit in the DATA Chunk Header 113 The following Figure 1 shows the extended DATA chunk. 115 0 1 2 3 116 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 117 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 118 | Type = 0 | Res |I|U|B|E| Length | 119 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 120 | TSN | 121 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 122 | Stream Identifier | Stream Sequence Number | 123 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 124 | Payload Protocol Identifier | 125 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 126 \ \ 127 / User Data / 128 \ \ 129 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 131 Figure 1: Extended DATA chunk format 133 The only difference between the DATA chunk in Figure 1 and the DATA 134 chunk defined in [RFC4960] is the addition of the I-bit in the flags 135 field of the chunk header. 137 4. Procedures 139 4.1. Sender Side Considerations 141 Whenever the sender of a DATA chunk can benefit from the 142 corresponding SACK chunk being sent back without delay, the sender 143 MAY set the I-bit in the DATA chunk header. Please note that it is 144 irrelevant to the receiver why the sender has set the I-bit. 146 Reasons for setting the I-bit include but are not limited to the 147 following: 149 o The application requests to set the I-bit of the last DATA chunk 150 of a user message when providing the user message to the SCTP 151 implementation (see Section 6). 153 o The sender is in the SHUTDOWN-PENDING state. 155 o The sending of a DATA chunk fills the congestion or receiver 156 window. 158 4.2. Receiver Side Considerations 160 On reception of an SCTP packet containing a DATA chunk with the I-bit 161 set, the receiver SHOULD NOT delay the sending of the corresponding 162 SACK chunk and SHOULD send it back immediately. 164 5. Interoperability Considerations 166 According to [RFC4960] the receiver of a DATA chunk with the I-bit 167 set should ignore this bit when it does not support the extension 168 described in this document. Since the sender of the DATA chunk is 169 able to handle this case, there is no requirement for negotiating the 170 support of the feature described in this document. 172 6. Socket API Considerations 174 This section describes how the socket API defined in [RFC6458] is 175 extended to provide a way for the application to set the I-bit. 177 Please note that this section is informational only. 179 A socket API implementation based on [RFC6458] is extended by 180 supporting a flag called SCTP_SACK_IMMEDIATELY, which can be set in 181 the snd_flags field of the struct sctp_sndinfo structure or the 182 sinfo_flags field of the struct sctp_sndrcvinfo structure, which is 183 deprecated. 185 If the SCTP_SACK_IMMEDIATELY flag is set when sending a user message, 186 the I-bit of the last DATA chunk of the corresponding user message is 187 set. 189 7. IANA Considerations 191 [NOTE to RFC-Editor: 193 "RFCXXXX" is to be replaced by the RFC number you assign this 194 document. 196 ] 198 Following the chunk flag registration procedure defined in [RFC6096] 199 IANA should register a new bit, the I-bit, for the DATA chunk. The 200 suggested value is 0x08. The reference for the new chunk flag in the 201 chunk flags table for the DATA chunk available at sctp-parameters [1] 202 should be RFCXXXX. 204 8. Security Considerations 206 This document does not add any additional security considerations in 207 addition to the ones given in [RFC4960]. 209 9. Acknowledgments 211 The authors wish to thank Mark Allmann, Brian Bidulock, Janardhan 212 Iyengar, and Kacheong Poon for their invaluable comments. 214 10. References 216 10.1. Normative References 218 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 219 Requirement Levels", BCP 14, RFC 2119, March 1997. 221 [RFC4960] Stewart, R., "Stream Control Transmission Protocol", 222 RFC 4960, September 2007. 224 [RFC6096] Tuexen, M. and R. Stewart, "Stream Control Transmission 225 Protocol (SCTP) Chunk Flags Registration", RFC 6096, 226 January 2011. 228 10.2. Informative References 230 [RFC6458] Stewart, R., Tuexen, M., Poon, K., Lei, P., and V. 231 Yasevich, "Sockets API Extensions for the Stream Control 232 Transmission Protocol (SCTP)", RFC 6458, December 2011. 234 URIs 236 [1] 238 Authors' Addresses 240 Michael Tuexen 241 Muenster University of Applied Sciences 242 Stegerwaldstr. 39 243 48565 Steinfurt 244 DE 246 Email: tuexen@fh-muenster.de 247 Irene Ruengeler 248 Muenster University of Applied Sciences 249 Stegerwaldstr. 39 250 48565 Steinfurt 251 DE 253 Email: i.ruengeler@fh-muenster.de 255 Randall R. Stewart 256 Adara Networks 257 Chapin, SC 29036 258 US 260 Email: randall@lakerest.net