idnits 2.17.1 draft-tuexen-tsvwg-sctp-sack-immediately-07.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 (September 2, 2011) is 4612 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) == Outdated reference: A later version (-32) exists of draft-ietf-tsvwg-sctpsocket-31 Summary: 2 errors (**), 0 flaws (~~), 2 warnings (==), 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: March 5, 2012 R. Stewart 6 Adara Networks 7 September 2, 2011 9 SACK-IMMEDIATELY Extension for the Stream Control Transmission Protocol 10 draft-tuexen-tsvwg-sctp-sack-immediately-07.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 March 5, 2012. 35 Copyright Notice 37 Copyright (c) 2011 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 . . . . . . . . . . . . . . . . . . . . . . . . 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 Some upper layers of SCTP (see [RFC6083], for example) stop sending 89 further user messages until all sent user messages have been 90 acknowledged by the SCTP peer. Delaying the SACK would result in a 91 longer pause of sending user messages. Because setting the I-bit in 92 these cases involves the upper layer, this document provides an 93 socket API extension. 95 There are also situations in which the SCTP implementation can set 96 the I-bit without interacting with the upper layer. If the 97 association is in the SHUTDOWN-PENDING state, the I-bit should be 98 set. This reduces the number of simultaneous associations in case of 99 a busy server handling short living associations. Another case is 100 where the sending of a DATA chunk fills the congestion or receiver 101 window. Setting the I-bit in these cases improves the throughput of 102 the transfer. 104 2. Conventions 106 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 107 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 108 document are to be interpreted as described in [RFC2119]. 110 3. The I-bit in the DATA Chunk Header 112 The following Figure 1 shows the extended DATA chunk. 114 0 1 2 3 115 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 116 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 117 | Type = 0 | Res |I|U|B|E| Length | 118 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 119 | TSN | 120 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 121 | Stream Identifier | Stream Sequence Number | 122 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 123 | Payload Protocol Identifier | 124 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 125 \ \ 126 / User Data / 127 \ \ 128 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 130 Figure 1: Extended DATA chunk format 132 The only difference between the DATA chunk in Figure 1 and the DATA 133 chunk defined in [RFC4960] is the addition of the I-bit in the flags 134 field of the chunk header. 136 4. Procedures 138 4.1. Sender Side Considerations 140 Whenever the sender of a DATA chunk can benefit from the 141 corresponding SACK chunk being sent back without delay, the sender 142 MAY set the I-bit in the DATA chunk header. Please note that it is 143 irrelevant to the receiver why the sender has set the I-bit. 145 Reasons for setting the I-bit include but are not limited to the 146 following: 148 o The application requests to set the I-bit of the last DATA chunk 149 of a user message when providing the user message to the SCTP 150 implementation (see Section 6). 152 o The sender is in the SHUTDOWN-PENDING state. 154 o The sending of a DATA chunk fills the congestion or receiver 155 window. 157 4.2. Receiver Side Considerations 159 On reception of an SCTP packet containing a DATA chunk with the I-bit 160 set, the receiver SHOULD NOT delay the sending of the corresponding 161 SACK chunk and SHOULD send it back immediately. 163 5. Interoperability Considerations 165 According to [RFC4960] the receiver of a DATA chunk with the I-bit 166 set should ignore this bit when it does not support the extension 167 described in this document. Since the sender of the DATA chunk is 168 able to handle this case, there is no requirement for negotiating the 169 support of the feature described in this document. 171 6. Socket API Considerations 173 This section describes how the socket API defined in 174 [I-D.ietf-tsvwg-sctpsocket] is extended to provide a way for the 175 application to set the I-bit. 177 Please note that this section is informational only. 179 A socket API implementation based on [I-D.ietf-tsvwg-sctpsocket] is 180 extended by supporting a flag called SCTP_SACK_IMMEDIATELY, which can 181 be set in the snd_flags field of the struct sctp_sndinfo structure or 182 the sinfo_flags field of the struct sctp_sndrcvinfo structure, which 183 is 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, and Kacheong 212 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 [RFC6083] Tuexen, M., Seggelmann, R., and E. Rescorla, "Datagram 231 Transport Layer Security (DTLS) for Stream Control 232 Transmission Protocol (SCTP)", RFC 6083, January 2011. 234 [I-D.ietf-tsvwg-sctpsocket] 235 Stewart, R., Tuexen, M., Poon, K., Lei, P., and V. 236 Yasevich, "Sockets API Extensions for Stream Control 237 Transmission Protocol (SCTP)", 238 draft-ietf-tsvwg-sctpsocket-31 (work in progress), 239 August 2011. 241 URIs 243 [1] 245 Authors' Addresses 247 Michael Tuexen 248 Muenster University of Applied Sciences 249 Stegerwaldstr. 39 250 48565 Steinfurt 251 Germany 253 Email: tuexen@fh-muenster.de 255 Irene Ruengeler 256 Muenster University of Applied Sciences 257 Stegerwaldstr. 39 258 48565 Steinfurt 259 Germany 261 Email: i.ruengeler@fh-muenster.de 263 Randall R. Stewart 264 Adara Networks 265 Chapin, SC 29036 266 USA 268 Email: randall@lakerest.net