idnits 2.17.1 draft-fwmiller-ping-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 14. -- Found old boilerplate from RFC 3978, Section 5.5 on line 303. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 280. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 287. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 293. ** This document has an original RFC 3978 Section 5.4 Copyright Line, instead of the newer IETF Trust Copyright according to RFC 4748. ** This document has an original RFC 3978 Section 5.5 Disclaimer, instead of the newer disclaimer which includes the IETF Trust according to 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.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 87: '...eartbeat. A UAC MUST NOT have more th...' RFC 2119 keyword, line 89: '...ific UAS. A UAC MUST space PING trans...' RFC 2119 keyword, line 162: '...cluded in the PING request, it MUST be...' RFC 2119 keyword, line 186: '... MUST only send one possible respons...' RFC 2119 keyword, line 189: '... the PING method MUST respond IMMEDIAT...' (7 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year -- The exact meaning of the all-uppercase expression 'MAY NOT' is not defined in RFC 2119. If it is intended as a requirements expression, it should be rewritten using one of the combinations defined in RFC 2119; otherwise it should not be all-uppercase. == The expression 'MAY NOT', while looking like RFC 2119 requirements text, is not defined in RFC 2119, and should not be used. Consider using 'MUST NOT' instead (if that is what you mean). Found 'MAY NOT' in this paragraph: A PING request MAY NOT be canceled. -- 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 (May 15, 2006) is 6555 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) No issues found here. Summary: 6 errors (**), 0 flaws (~~), 3 warnings (==), 8 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group F. Miller 3 Internet-Draft Cornfed Systems, LLC 4 Expires: November 16, 2006 May 15, 2006 6 The SIP PING Method 7 draft-fwmiller-ping-03 9 Status of this Memo 11 By submitting this Internet-Draft, each author represents that any 12 applicable patent or other IPR claims of which he or she is aware 13 have been or will be disclosed, and any of which he or she becomes 14 aware will be disclosed, in accordance with Section 6 of BCP 79. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that 18 other groups may also distribute working documents as Internet- 19 Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet-Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt. 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html. 32 This Internet-Draft will expire on November 16, 2006. 34 Copyright Notice 36 Copyright (C) The Internet Society (2006). 38 Abstract 40 The Session Initiation Protocol (SIP) has the potential for long 41 periods of time to elapse when no signaling traffic is sent between a 42 User Agent Client (UAC) and a User Agent Server (UAS). There are 43 situations when it may be necessary for some signaling traffic to 44 flow periodically between these endpoints or to have a quick, 45 lightweight check for whether a UAS is alive. The PING method is 46 proposed that can be used for these purposes. 48 Table of Contents 50 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 51 2. PING Method . . . . . . . . . . . . . . . . . . . . . . . . . 4 52 2.1. Header Field Support for PING Method . . . . . . . . . . . 4 53 2.2. Response to the PING Method . . . . . . . . . . . . . . . 6 54 2.3. Message Body Inclusion . . . . . . . . . . . . . . . . . . 6 55 2.4. User Agent Behavior . . . . . . . . . . . . . . . . . . . 6 56 2.5. Behavior of SIP Proxy and Redirect Servers . . . . . . . . 7 57 2.5.1. Proxy Server . . . . . . . . . . . . . . . . . . . . . 7 58 2.5.2. Forking Proxy Server . . . . . . . . . . . . . . . . . 7 59 2.5.3. Redirection Server . . . . . . . . . . . . . . . . . . 7 60 3. Security Considerations . . . . . . . . . . . . . . . . . . . 8 61 4. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 62 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 9 63 Intellectual Property and Copyright Statements . . . . . . . . . . 10 65 1. Introduction 67 Two SIP entities pass signaling traffic between them as required to 68 support SIP-based services. There can be long periods of time either 69 when session is established or when no session exists when no traffic 70 is flowing between the endpoints. There are situations where some 71 signaling traffic should be sent during these long intervals between 72 the UAC and UAS. For example, if one of the endpoints is behind a 73 Network Address Translation (NAT), signaling traffic may be used to 74 keep the NAT port bindings alive. The PING method is intended to 75 confirm that the endpoints are alive and verify that a signaling path 76 is still valid. 78 2. PING Method 80 The PING method is used to determine if a UAS is alive and to 81 validate a signaling path. The PING method is not used to change the 82 state of SIP calls, nor does it change the state of sessions 83 initiated by SIP. Rather, it provides an indication to both ends of 84 a session that signaling messages can still flow between them. 86 A PING request may be sent at any time. PINGs may be sent 87 periodically to serve as a heartbeat. A UAC MUST NOT have more than 88 one outstanding PING transaction in existence at any time with a 89 specific UAS. A UAC MUST space PING transactions with the same UAS 90 at least 500 milliseconds apart. 92 A PING request is routed the same way any other request is routed. 93 This can be either direct signaling between the UAC and UAS or a 94 signaling path involving SIP servers that potentially add themselves 95 to the Record-Route headers. The sending of a PING request initiates 96 a nominal non-INVITE transaction as specified in Section 17.1.2 of 97 [1]. 99 2.1. Header Field Support for PING Method 101 The PING request does not carry any information other than the intent 102 to check for the liveness of the UAS and the signaling path validity. 103 As such, only a few headers are used in both the PING request and its 104 associated response. 106 Header Where PING 107 ------ ----- ---- 108 Accept - - 109 Accept-Encoding - - 110 Accept-Language - - 111 Alert-Info - - 112 Allow - - 113 Authentication-Info - - 114 Authorization - - 115 Call-ID R m 116 Call-ID 200 m 117 Call-Info - - 118 Contact - - 119 Content-Disposition - - 120 Content-Encoding - - 121 Content-Language - - 122 Content-Length R t 123 Content-Type - - 124 CSeq R m 125 CSeq 200 m 126 Date - - 127 Error-Info - - 128 Expires - - 129 From R m 130 From 200 m 131 In-Reply-To - - 132 Max-Forwards R m 133 Max-Forwards 200 m 134 Min-Expires - - 135 MIME-Version - - 136 Organization - - 137 Priority - - 138 Proxy-Authenticate - - 139 Proxy-Authorization - - 140 Proxy-Require - - 141 Record-Route R o 142 Record-Route 200 o 143 Reply-To - - 144 Require - - 145 Retry-After - - 146 Route R c 147 Route 200 c 148 Server - - 149 Subject - - 150 Supported - - 151 Timestamp - - 152 To R m 153 To 200 m 154 Unsupported - - 155 User-Agent R o 156 User-Agent 200 o 157 Via R m 158 Via 200 m 159 Warning - - 160 WWW-Authenticate - - 162 If a Content-Length field is included in the PING request, it MUST be 163 set to zero (0). 165 The intent is to provide as simple a message as possible to allow for 166 implementations (particularly for servers) to optimize PING message 167 processing. 169 2.2. Response to the PING Method 171 A UAC formats a PING request as desired and sends it to the UAS. The 172 request is sent using the same retransmission and routing rules by 173 which an OPTIONS non-INVITE transaction would be sent. 175 UAC UAS 176 | | 177 | PING | 178 |--------->| 179 | | 180 | 200 OK | 181 |<---------| 182 | | 184 There is only one defined response to a PING messages. This means 185 that a UAS that receives, recognizes, and supports the PING method 186 MUST only send one possible response back to the UAC. 188 The defined response is a 200 OK response. A UAS that supports 189 reception of the PING method MUST respond IMMEDIATELY with a 200 OK 190 message when it receives a PING request. 192 If a UAS that does not support the PING method receives a PING 193 request, it will generate other responses, e.g. a 501 Not Implemented 194 per [1]. A UAC SHOULD accept any response other than a 1xx 195 provisional response or a 3xx redirection. If a response other than 196 a 1xx or a 3xx is received, the UAC SHOULD assume that the UAS does 197 not recognize or support the PING method but the UAC SHOULD accept 198 the response as if it were a 200 OK response. A UAC receiving a 1xx 199 or 3xx response SHOULD drop the response as if it were never 200 received. 202 2.3. Message Body Inclusion 204 A PING request MUST NOT contain a message body. 206 2.4. User Agent Behavior 208 Unless otherwise stated, the protocol rules for the PING request 209 governing the usage of tags, Route, and Record-Route, retransmission 210 and reliability, CSeq incrementing and message formatting follow 211 those in [1] as defined for the OPTIONS request. 213 An implementation may want to optimize the processing of received 214 PING requests. One potential implementation optimization is to 215 recognize the PING method on the request line by scanning the first 216 four characters of a incoming request for the PING method name. 218 Implementations may then initiate expedited processing of the request 219 in order to return a 200 OK response as quickly as possible. For 220 example, an implementation may simply copy the To, From, Via, 221 Call-ID, and CSeq headers from the request into the response. 223 A PING request MAY NOT be canceled. 225 2.5. Behavior of SIP Proxy and Redirect Servers 227 2.5.1. Proxy Server 229 Unless stated otherwise, the protocol rules for the PING request at a 230 proxy are identical to those for a OPTIONS request as specified in 231 [1]. 233 2.5.2. Forking Proxy Server 235 Unless stated otherwise, the protocol rules for the PING request at a 236 proxy are identical to those for a OPTIONS request as specified in 237 [1]. 239 2.5.3. Redirection Server 241 Unless stated otherwise, the protocol rules for the PING request at a 242 proxy are identical to those for a OPTIONS request as specified in 243 [1]. 245 3. Security Considerations 247 The only security consideration is that of a Denial of Service (DoS). 248 A "PING Storm" DoS attack can be launched at a UAS if PING requests 249 are sent at closer intervals than 500 milliseconds. Even 500 250 milliseconds can be considered tight. It is RECOMMENDED that PING 251 request intervals be at least several seconds if possible. 253 4. References 255 [1] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., 256 Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: 257 Session Initiation Protocol", RFC 3261, June 2002. 259 Author's Address 261 Frank W. Miller 262 Cornfed Systems, LLC 263 103 Overhill Road 264 Baltimore, MD 21210 265 US 267 Phone: +1 410 404 8790 268 Email: fwmiller@cornfed.com 269 URI: http://www.cornfed.com/ 271 Intellectual Property Statement 273 The IETF takes no position regarding the validity or scope of any 274 Intellectual Property Rights or other rights that might be claimed to 275 pertain to the implementation or use of the technology described in 276 this document or the extent to which any license under such rights 277 might or might not be available; nor does it represent that it has 278 made any independent effort to identify any such rights. Information 279 on the procedures with respect to rights in RFC documents can be 280 found in BCP 78 and BCP 79. 282 Copies of IPR disclosures made to the IETF Secretariat and any 283 assurances of licenses to be made available, or the result of an 284 attempt made to obtain a general license or permission for the use of 285 such proprietary rights by implementers or users of this 286 specification can be obtained from the IETF on-line IPR repository at 287 http://www.ietf.org/ipr. 289 The IETF invites any interested party to bring to its attention any 290 copyrights, patents or patent applications, or other proprietary 291 rights that may cover technology that may be required to implement 292 this standard. Please address the information to the IETF at 293 ietf-ipr@ietf.org. 295 Disclaimer of Validity 297 This document and the information contained herein are provided on an 298 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 299 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET 300 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, 301 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE 302 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 303 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 305 Copyright Statement 307 Copyright (C) The Internet Society (2006). This document is subject 308 to the rights, licenses and restrictions contained in BCP 78, and 309 except as set forth therein, the authors retain all their rights. 311 Acknowledgment 313 Funding for the RFC Editor function is currently provided by the 314 Internet Society.