idnits 2.17.1 draft-ietf-sipping-event-throttle-reqs-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 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 8, 2003) is 7508 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 informational reference (is this intentional?): RFC 3265 (ref. '2') (Obsoleted by RFC 6665) == Outdated reference: A later version (-04) exists of draft-ietf-sipping-mwi-02 Summary: 2 errors (**), 0 flaws (~~), 3 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SIPPING WG A. Niemi 3 Internet-Draft Nokia 4 Expires: March 8, 2004 September 8, 2003 6 Requirements for Limiting the Rate of Event Notifications 7 draft-ietf-sipping-event-throttle-reqs-00 9 Status of this Memo 11 This document is an Internet-Draft and is in full conformance with 12 all provisions of Section 10 of RFC2026. 14 Internet-Drafts are working documents of the Internet Engineering 15 Task Force (IETF), its areas, and its working groups. Note that other 16 groups may also distribute working documents as Internet-Drafts. 18 Internet-Drafts are draft documents valid for a maximum of six months 19 and may be updated, replaced, or obsoleted by other documents at any 20 time. It is inappropriate to use Internet-Drafts as reference 21 material or to cite them other than as "work in progress." 23 The list of current Internet-Drafts can be accessed at http:// 24 www.ietf.org/ietf/1id-abstracts.txt. 26 The list of Internet-Draft Shadow Directories can be accessed at 27 http://www.ietf.org/shadow.html. 29 This Internet-Draft will expire on March 8, 2004. 31 Copyright Notice 33 Copyright (C) The Internet Society (2003). All Rights Reserved. 35 Abstract 37 All event packages are required to specify a maximum rate at which 38 event notifications are generated by a single notifier. Such a limit 39 is provided in order to reduce network congestion. In addition to the 40 fixed limits introduced by specific event packages, further 41 mechanisms for limiting the rate of event notification are also 42 allowed to be defined by event package specifications but none have 43 been specified so far. This memo discusses the requirements for a 44 throttle mechanism that allows a subscriber to further limit the rate 45 of event notification. 47 Table of Contents 49 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 50 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 51 3. Event Throttle Model . . . . . . . . . . . . . . . . . . . . . 3 52 4. Example Use Case . . . . . . . . . . . . . . . . . . . . . . . 4 53 4.1 Pre-conditions . . . . . . . . . . . . . . . . . . . . . . . . 4 54 4.2 Normal Flow . . . . . . . . . . . . . . . . . . . . . . . . . 5 55 4.3 Post-conditions . . . . . . . . . . . . . . . . . . . . . . . 5 56 5. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 5 57 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 58 7. Document Change History . . . . . . . . . . . . . . . . . . . 6 59 7.1 Changes to "draft-niemi-sipping-event-throttle-reqs-02" . . . 6 60 7.2 Changes to "draft-niemi-sipping-event-throttle-reqs-01" . . . 6 61 7.3 Changes to "draft-niemi-sipping-event-throttle-reqs-00" . . . 7 62 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7 63 Normative References . . . . . . . . . . . . . . . . . . . . . 7 64 Informative References . . . . . . . . . . . . . . . . . . . . 7 65 Author's Address . . . . . . . . . . . . . . . . . . . . . . . 8 66 Intellectual Property and Copyright Statements . . . . . . . . 9 68 1. Introduction 70 The SIP events framework described in RFC 3265 [2] mandates that each 71 event package specification defines an absolute maximum on the rate 72 at which notifications are allowed to be generated by a single 73 notifier. Such a limit is provided in order to reduce network 74 congestion. 76 All of the existing event package specifications include a maximum 77 notification rate recommendation, ranging from once in every five 78 seconds [3], [4], [5] to once per second [6]. 80 Per the SIP events framework, each event package specification is 81 also allowed to define additional throttling mechanisms which allow 82 the subscriber to further limit the rate of event notification. So 83 far none of the event package specifications have defined such 84 throttling mechanisms. 86 This memo discusses the requirements for a generic throttling 87 mechanism, which allows the subscriber to limit the rate of event 88 notifications. It is intended that the throttle mechanism is not 89 event package specific, but commonly available to be used with all 90 event subscriptions. 92 2. Conventions 94 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 95 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 96 document are to be interpreted as described in BCP 14, RFC 2119 [1], 97 and indicate requirement priorities. 99 3. Event Throttle Model 101 A throttle is defined as a protocol element that establishes a 102 throttling policy at the notifier. This policy simply indicates the 103 minimum time period allowed between two notifications. In practice, 104 this throttling policy only extends the default policy of each event 105 package, making it subscriber-configurable. 107 Using notations from traffic theory, we can model the notifier as a 108 statistical multiplexer with an input rate of Ci (i = 1,...,n), and 109 an output rate of C <= C1 + ... + Cn. Typically, the statistical 110 multiplexer is lossy, with a finite buffer size. The loss probability 111 of the statistical multiplexer can be decreased by enlarging this 112 buffer. Figure 1 illustrates the model. 114 C1 |\ 115 1 ---------| \ 116 ---------| \ C 117 ---------| ||||O---------- 1 118 ---------| / 119 n ---------| / 120 Cn |/ 122 Figure 1: Notifier modeled as a statistical multiplexer 124 In event notification, there is typically only a single input 125 connection, characterized by the event package, and consisting of a 126 stream of event notification packets. Properties of the buffer, such 127 as buffer size, policy (e.g., FIFO, LIFO), and packet treatment in 128 lossy conditions, are all implementation and event package specific. 130 A valid buffer model is a LIFO (Last In First Out) buffer with a 131 size of one notification. Out of all buffered notifications, only 132 the latest one is ever sent to the subscriber. Another equally 133 valid buffer model might be one that has a near infinite buffer 134 size. In that case, it is enough that the output rate C exceeds 135 the aggregate average rate of all the inputs. Under lossy 136 conditions, notifications might be dropped or their state merged, 137 depending on the event package. 139 The main implication of this model for event throttles is that they 140 are lossy. Either some state changes are lost, or some level of 141 accuracy in notifications is lost. The former will affect state 142 changes that occur more frequent than what the throttling policy 143 allows; and the latter will affect notifications of "stateless" 144 nature, e.g., accuracy of buffered location updates decreases. 146 4. Example Use Case 148 There are many applications that potentially would make use of a 149 throttle mechanism. This chapter only illustrates one possible use 150 case, in which a device uses the event throttling mechanism to limit 151 the amount of traffic it may receive. 153 4.1 Pre-conditions 155 A presence application in Lisa's device contains a list of 100 156 presentities. In order to decrease the processing and network load of 157 watching 100 presentities, Lisa's presence application has included 158 an event throttle to each of the subscriptions, to limit the maximum 159 rate at which notifications are to be generated to once per 20 160 seconds. 162 4.2 Normal Flow 164 o Heikki is one of the presentities Lisa is wathcing. Heikki's 165 presence agent conforms to the throttling policy requested by 166 Lisa's presence application. 168 o Heikki changes his location, which results in a presence 169 notification to be sent to Lisa. 171 o Heikki's location changes again, and now very fast. His presence 172 agent receives outgoing presence notification much more frequently 173 than what the throttling policy allows it to generate 174 notifications out to Lisa. The notifications are buffered. 176 o Lisa receives presence updates conforming to the set throttling 177 policy. 179 o Now Heikki's movements stabilize, and his location remains stable. 181 4.3 Post-conditions 183 The throttled subscriptions even out rapid changes in presence 184 status. Lisa still receives all of the buffered presence 185 notifications. Her understanding of Heikki's presence status is 186 temporarily different from Heikki's current real-time status, but as 187 the buffered notifications get exhausted, will eventually converge to 188 the real-time status. 190 5. Requirements 192 REQ1: The subscriber MUST be able to set using a throttle mechanism 193 the minimum time period between two notifications in a specific 194 subscription. 196 REQ2: The subscriber MUST be able to indicate that it requires the 197 notifier to comply with the suggested throttling policy in a 198 specific subscription. 200 REQ3: The notifier MUST be able to indicate that it does not support 201 the use of a throttle mechanism in the subscription. 203 REQ4: It MUST be possible to use the throttle mechanism in 204 subscriptions to all events. 206 REQ5: It MUST be possible to use the throttle mechanism together with 207 any event filtering mechanism. 209 REQ6: The notifier MUST be allowed to use a throttling policy in 210 which the minimum time period between two notifications is 211 longer than the one given by the subscriber. 213 For example, due to congestion reasons, local policy at the 214 notifier could temporarily dictate a throttling policy that 215 in effect increases the subscriber-configured minimum time 216 period between two notifications. 218 REQ7: The throttle mechanism MUST provide a reasonable resolution for 219 setting the minimum period between two notifications. At a 220 minimum, the throttling mechanism MUST include discussion of 221 the situation resulting from a minimum time period which 222 exceeds the subscription duration, and SHOULD provide 223 mechanisms for avoiding this situation. 225 REQ8: A throttle mechanism MUST allow for the application of 226 authentication and integrity protection mechanisms to 227 subscriptions invoking that mechanism. 229 Note that Section 6 contains further discussion on the security 230 implications of the throttle mechanism. 232 6. Security Considerations 234 Naturally all of the security considerations for event subscriptions 235 and notifications also apply to subscriptions and notifications that 236 use the throttle mechanism. In addition, using the event throttle 237 mechanism may introduce some new security issues to consider. 238 However, there are no additional requirements regarding security at 239 this stage. 241 7. Document Change History 243 This chapter lists the change history of this Internet Draft. 245 7.1 Changes to "draft-niemi-sipping-event-throttle-reqs-02" 247 Changes since the last version were: 249 o Submitted as SIPPING WG work item. 251 7.2 Changes to "draft-niemi-sipping-event-throttle-reqs-01" 253 Changes from the last version were: 255 o Refined the model based on feedback. 257 o Clarified language and terminology used in the requirements, based 258 on feedback. 260 7.3 Changes to "draft-niemi-sipping-event-throttle-reqs-00" 262 Changes from the previous version include: 264 o Added the chapter describing the model for event throttles. 266 o Reworded the requirements to reflect the model discussion 268 o Added acknowledgements, changelog, and open issues sections 270 8. Acknowledgements 272 The author would like to thank Tim Moran, Jonathan Rosenberg, Hisham 273 Khartabil, Juha Kalliokulju, Paul Kyzivat, Henning Schulzrinne and 274 Dean Willis for their valuable comments. 276 Normative References 278 [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement 279 Levels", BCP 14, RFC 2119, March 1997. 281 Informative References 283 [2] Roach, A., "Session Initiation Protocol (SIP)-Specific Event 284 Notification", RFC 3265, June 2002. 286 [3] Rosenberg, J., "A Presence Event Package for the Session 287 Initiation Protocol (SIP)", draft-ietf-simple-presence-10 (work 288 in progress), January 2003. 290 [4] Rosenberg, J., "A Session Initiation Protocol (SIP) Event 291 Package for Registrations", draft-ietf-sipping-reg-event-00 292 (work in progress), October 2002. 294 [5] Rosenberg, J., "A Watcher Information Event Template-Package for 295 the Session Initiation Protocol (SIP)", 296 draft-ietf-simple-winfo-package-05 (work in progress), January 297 2003. 299 [6] Mahy, R., "A Message Summary and Message Waiting Indication 300 Event Package for the Session Initiation Protocol (SIP)", 301 draft-ietf-sipping-mwi-02 (work in progress), March 2003. 303 Author's Address 305 Aki Niemi 306 Nokia 307 P.O. Box 321 308 NOKIA GROUP, FIN 00045 309 Finland 311 Phone: +358 50 389 1644 312 EMail: aki.niemi@nokia.com 314 Intellectual Property Statement 316 The IETF takes no position regarding the validity or scope of any 317 intellectual property or other rights that might be claimed to 318 pertain to the implementation or use of the technology described in 319 this document or the extent to which any license under such rights 320 might or might not be available; neither does it represent that it 321 has made any effort to identify any such rights. Information on the 322 IETF's procedures with respect to rights in standards-track and 323 standards-related documentation can be found in BCP-11. Copies of 324 claims of rights made available for publication and any assurances of 325 licenses to be made available, or the result of an attempt made to 326 obtain a general license or permission for the use of such 327 proprietary rights by implementors or users of this specification can 328 be obtained from the IETF Secretariat. 330 The IETF invites any interested party to bring to its attention any 331 copyrights, patents or patent applications, or other proprietary 332 rights which may cover technology that may be required to practice 333 this standard. Please address the information to the IETF Executive 334 Director. 336 Full Copyright Statement 338 Copyright (C) The Internet Society (2003). All Rights Reserved. 340 This document and translations of it may be copied and furnished to 341 others, and derivative works that comment on or otherwise explain it 342 or assist in its implementation may be prepared, copied, published 343 and distributed, in whole or in part, without restriction of any 344 kind, provided that the above copyright notice and this paragraph are 345 included on all such copies and derivative works. However, this 346 document itself may not be modified in any way, such as by removing 347 the copyright notice or references to the Internet Society or other 348 Internet organizations, except as needed for the purpose of 349 developing Internet standards in which case the procedures for 350 copyrights defined in the Internet Standards process must be 351 followed, or as required to translate it into languages other than 352 English. 354 The limited permissions granted above are perpetual and will not be 355 revoked by the Internet Society or its successors or assignees. 357 This document and the information contained herein is provided on an 358 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 359 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 360 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 361 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 362 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 364 Acknowledgement 366 Funding for the RFC Editor function is currently provided by the 367 Internet Society.