idnits 2.17.1 draft-ietf-tsvwg-sctp-sack-immediately-00.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 date (February 16, 2013) is 4086 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 (==), 1 comment (--). 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: August 20, 2013 R. Stewart 6 Adara Networks 7 February 16, 2013 9 SACK-IMMEDIATELY Extension for the Stream Control Transmission Protocol 10 draft-ietf-tsvwg-sctp-sack-immediately-00.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 August 20, 2013. 35 Copyright Notice 37 Copyright (c) 2013 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 . . . . . . . . . . . . . . 4 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 . . . . . . . . . . . . . . . . . . . . . . . . 7 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. If an SCTP association supports the SCTP Stream 104 Reconfiguration extension defined in [RFC6525], the performance can 105 be improved by setting the I-bit when there are pending 106 reconfiguration requests requiring no outstanding DATA chunks. 108 2. Conventions 110 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 111 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 112 document are to be interpreted as described in [RFC2119]. 114 3. The I-bit in the DATA Chunk Header 116 The following Figure 1 shows the extended DATA chunk. 118 0 1 2 3 119 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 120 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 121 | Type = 0 | Res |I|U|B|E| Length | 122 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 123 | TSN | 124 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 125 | Stream Identifier | Stream Sequence Number | 126 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 127 | Payload Protocol Identifier | 128 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 129 \ \ 130 / User Data / 131 \ \ 132 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 134 Figure 1: Extended DATA chunk format 136 The only difference between the DATA chunk in Figure 1 and the DATA 137 chunk defined in [RFC4960] is the addition of the I-bit in the flags 138 field of the chunk header. 140 4. Procedures 142 4.1. Sender Side Considerations 144 Whenever the sender of a DATA chunk can benefit from the 145 corresponding SACK chunk being sent back without delay, the sender 146 MAY set the I-bit in the DATA chunk header. Please note that it is 147 irrelevant to the receiver why the sender has set the I-bit. 149 Reasons for setting the I-bit include but are not limited to the 150 following: 152 o The application requests to set the I-bit of the last DATA chunk 153 of a user message when providing the user message to the SCTP 154 implementation (see Section 6). 156 o The sender is in the SHUTDOWN-PENDING state. 158 o The sending of a DATA chunk fills the congestion or receiver 159 window. 161 o The sending of an Outgoing SSN Reset Request Parameter or an SSN/ 162 TSN Reset Request Parameter is pending, if the association 163 supports the Stream Reconfiguration extension defined in 164 [RFC6525]. 166 4.2. Receiver Side Considerations 168 On reception of an SCTP packet containing a DATA chunk with the I-bit 169 set, the receiver SHOULD NOT delay the sending of the corresponding 170 SACK chunk and SHOULD send it back immediately. 172 5. Interoperability Considerations 174 According to [RFC4960] the receiver of a DATA chunk with the I-bit 175 set should ignore this bit when it does not support the extension 176 described in this document. Since the sender of the DATA chunk is 177 able to handle this case, there is no requirement for negotiating the 178 support of the feature described in this document. 180 6. Socket API Considerations 182 This section describes how the socket API defined in [RFC6458] is 183 extended to provide a way for the application to set the I-bit. 185 Please note that this section is informational only. 187 A socket API implementation based on [RFC6458] is extended by 188 supporting a flag called SCTP_SACK_IMMEDIATELY, which can be set in 189 the snd_flags field of the struct sctp_sndinfo structure or the 190 sinfo_flags field of the struct sctp_sndrcvinfo structure, which is 191 deprecated. 193 If the SCTP_SACK_IMMEDIATELY flag is set when sending a user message, 194 the I-bit of the last DATA chunk of the corresponding user message is 195 set. 197 7. IANA Considerations 199 [NOTE to RFC-Editor: 201 "RFCXXXX" is to be replaced by the RFC number you assign this 202 document. 204 ] 205 Following the chunk flag registration procedure defined in [RFC6096] 206 IANA should register a new bit, the I-bit, for the DATA chunk. The 207 suggested value is 0x08. The reference for the new chunk flag in the 208 chunk flags table for the DATA chunk available at sctp-parameters [1] 209 should be RFCXXXX. 211 8. Security Considerations 213 This document does not add any additional security considerations in 214 addition to the ones given in [RFC4960] and [RFC6458]. 216 9. Acknowledgments 218 The authors wish to thank Mark Allmann, Brian Bidulock, Janardhan 219 Iyengar, and Kacheong Poon for their invaluable comments. 221 10. References 223 10.1. Normative References 225 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 226 Requirement Levels", BCP 14, RFC 2119, March 1997. 228 [RFC4960] Stewart, R., "Stream Control Transmission Protocol", 229 RFC 4960, September 2007. 231 [RFC6096] Tuexen, M. and R. Stewart, "Stream Control Transmission 232 Protocol (SCTP) Chunk Flags Registration", RFC 6096, 233 January 2011. 235 [RFC6525] Stewart, R., Tuexen, M., and P. Lei, "Stream Control 236 Transmission Protocol (SCTP) Stream Reconfiguration", 237 RFC 6525, February 2012. 239 10.2. Informative References 241 [RFC6458] Stewart, R., Tuexen, M., Poon, K., Lei, P., and V. 242 Yasevich, "Sockets API Extensions for the Stream Control 243 Transmission Protocol (SCTP)", RFC 6458, December 2011. 245 URIs 247 [1] 249 Authors' Addresses 251 Michael Tuexen 252 Muenster University of Applied Sciences 253 Stegerwaldstr. 39 254 48565 Steinfurt 255 DE 257 Email: tuexen@fh-muenster.de 259 Irene Ruengeler 260 Muenster University of Applied Sciences 261 Stegerwaldstr. 39 262 48565 Steinfurt 263 DE 265 Email: i.ruengeler@fh-muenster.de 267 Randall R. Stewart 268 Adara Networks 269 Chapin, SC 29036 270 US 272 Email: randall@lakerest.net