| < draft-marjou-behave-app-rtp-keepalive-00.txt | draft-marjou-behave-app-rtp-keepalive-01.txt > | |||
|---|---|---|---|---|
| BEHAVE Working Group X. Marjou, Ed. | BEHAVE Working Group X. Marjou, Ed. | |||
| Internet-Draft France Telecom | Internet-Draft France Telecom | |||
| Intended status: Informational August 3, 2006 | Intended status: Informational February 2, 2007 | |||
| Expires: February 4, 2007 | Expires: August 6, 2007 | |||
| Application Requirements for maintaining alive the Network Address | Application Mechanism for maintaining alive the Network Address | |||
| Translator (NAT) mappings associated to RTP flows. | Translator (NAT) mappings associated to RTP flows. | |||
| draft-marjou-behave-app-rtp-keepalive-00 | draft-marjou-behave-app-rtp-keepalive-01 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 35 ¶ | skipping to change at page 1, line 35 ¶ | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on February 4, 2007. | This Internet-Draft will expire on August 6, 2007. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2006). | Copyright (C) The IETF Trust (2007). | |||
| Abstract | Abstract | |||
| This document defines a mechanism that enables applications using | This document defines a mechanism that enables applications using | |||
| Real Time Protocol (RTP) to maintain their RTP Network Address | Real Time Protocol (RTP) to maintain their RTP Network Address | |||
| Translator (NAT) mappings alive. | Translator (NAT) mappings alive. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. List of alternatives for performing RTP keepalive . . . . . . . 4 | 4. List of Alternatives for Performing RTP Keepalive . . . . . . . 4 | |||
| 4.1. UDP packet of 0-byte . . . . . . . . . . . . . . . . . . . 5 | 4.1. UDP Packet of 0-byte . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.2. RTCP packets multiplexed with RTP packets . . . . . . . . . 5 | 4.2. RTCP Packets Multiplexed with RTP Packets . . . . . . . . . 5 | |||
| 4.3. STUN packet . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4.3. STUN Packet . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.4. RTP packet with Comfort Noise payload . . . . . . . . . . . 5 | 4.4. RTP Packet with Comfort Noise Payload . . . . . . . . . . . 5 | |||
| 4.5. RTP packet with No-Op payload . . . . . . . . . . . . . . . 6 | 4.5. RTP Packet with No-Op Payload . . . . . . . . . . . . . . . 6 | |||
| 4.6. RTP packet with incorrect version number . . . . . . . . . 6 | 4.6. RTP Packet with Incorrect Version Number . . . . . . . . . 6 | |||
| 4.7. RTP packet with unknown payload type . . . . . . . . . . . 6 | 4.7. RTP Packet with Unknown Payload Type . . . . . . . . . . . 6 | |||
| 5. Recommended solution . . . . . . . . . . . . . . . . . . . . . 6 | 5. Recommended Solution . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 8 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . . 9 | Intellectual Property and Copyright Statements . . . . . . . . . . 9 | |||
| 1. Introduction | 1. Introduction | |||
| [Note: The content of this draft is basically a copy and paste of the | [Note: The content of this draft is basically a copy and paste of the | |||
| current 7.12 section of ICE [5] concerning binding keepalives | current 7.12 section of ICE [5] concerning binding keepalives | |||
| skipping to change at page 4, line 47 ¶ | skipping to change at page 4, line 47 ¶ | |||
| REQ 6: Session signaling protocols SHOULD not be impacted. | REQ 6: Session signaling protocols SHOULD not be impacted. | |||
| REQ 7: Session description protocols SHOULD not be impacted. | REQ 7: Session description protocols SHOULD not be impacted. | |||
| REQ 8: Impacts on existing software SHOULD be minimized. | REQ 8: Impacts on existing software SHOULD be minimized. | |||
| REQ 9: Remote peer SHOULD not be impacted. | REQ 9: Remote peer SHOULD not be impacted. | |||
| REQ 10: One single mechanism MUST be recommended. | REQ 10: One single mechanism MUST be recommended. | |||
| 4. List of alternatives for performing RTP keepalive | 4. List of Alternatives for Performing RTP Keepalive | |||
| This section lists some alternatives that could be used in order to | This section lists some alternatives that could be used in order to | |||
| perform a keepalive message within RTP media streams. | perform a keepalive message within RTP media streams. | |||
| A common drawback of most of these alternatives is that they require | A common drawback of most of these alternatives is that they require | |||
| media packets be sent by the application during "on hold" procedures, | media packets be sent by the application during "on hold" procedures, | |||
| which violates the behavior of the inactive and recvonly attributes | which violates the behavior of the inactive and recvonly attributes | |||
| specified in SDP-NEW [10] and in RFC3264 [6]. Although there can | specified in SDP-NEW [10] and in RFC3264 [6]. Although there can | |||
| exist some debate whether STUN is a media flow or not, STUN also | exist some debate whether STUN is a media flow or not, STUN also | |||
| requires the application to send some packets within the media stream | requires the application to send some packets within the media stream | |||
| during on-hold procedures. | during on-hold procedures. | |||
| 4.1. UDP packet of 0-byte | 4.1. UDP Packet of 0-byte | |||
| The application sends an empty UDP packet. | The application sends an empty UDP packet. | |||
| Cons: | Cons: | |||
| o This alternative is specific to UDP. | o This alternative is specific to UDP. | |||
| o There may be some implementations that will not ignore these | o There may be some implementations that will not ignore these | |||
| packets. | packets. | |||
| 4.2. RTCP packets multiplexed with RTP packets | 4.2. RTCP Packets Multiplexed with RTP Packets | |||
| The application sends RTCP packets in the RTP media stream itself | The application sends RTCP packets in the RTP media stream itself | |||
| (i.e. same tuples for both RTP and RTCP packets) [8]. RTCP packets | (i.e. same tuples for both RTP and RTCP packets) [8]. RTCP packets | |||
| therefore maintain the NAT mappings open. | therefore maintain the NAT mappings open. | |||
| Cons: | Cons: | |||
| o Multiplexing RTP and RTCP must be supported by the remote peer. | o Multiplexing RTP and RTCP must be supported by the remote peer. | |||
| o Multiplexing RTP and RTCP must be signalled in SDP offer/answer. | o Multiplexing RTP and RTCP must be signalled in SDP offer/answer. | |||
| o This alternative may significantly impact existing software and | o This alternative may significantly impact existing software and | |||
| specifications. | specifications. | |||
| 4.3. STUN packet | 4.3. STUN Packet | |||
| The application sends a STUN Request packet [9] | The application sends a STUN Binding Request packet and receives a | |||
| STUN Binding Response [9] | ||||
| Cons: | Cons: | |||
| o This alternative requires that both endpoints support STUN. | o This alternative requires that the remote endpoint support STUN. | |||
| o For media sessions negotiated with SDP, there is a need for the | ||||
| endpoint to use ICE. | ||||
| 4.4. RTP packet with Comfort Noise payload | 4.4. RTP Packet with Comfort Noise Payload | |||
| The application sends a RTP packet with a comfort-noise payload [11]. | The application sends a RTP packet with a comfort-noise payload [11]. | |||
| Cons: | Cons: | |||
| o This alternative is limited to voice payload formats only. | o This alternative is limited to voice payload formats only. | |||
| o For each payload type, the content of the payload needs to be | o For each payload type, the content of the payload needs to be | |||
| specified. | specified. | |||
| 4.5. RTP packet with No-Op payload | 4.5. RTP Packet with No-Op Payload | |||
| The application sends a RTP No-OP payload [12] . | The application sends a RTP No-OP payload [12] . | |||
| Cons: | Cons: | |||
| o This payload type needs to be supported by the remote peer. | o This payload type needs to be supported by the remote peer. | |||
| o This payload type needs to be signalled in SDP offer/answer. | o This payload type needs to be signalled in SDP offer/answer. | |||
| 4.6. RTP packet with incorrect version number | 4.6. RTP Packet with Incorrect Version Number | |||
| The application sends a RTP with an incorrect version number. | The application sends a RTP with an incorrect version number. | |||
| Based on RTP specification [4], the peer should perform a header | Based on RTP specification [4], the peer should perform a header | |||
| validity check, and therefore ignore these types of packet. | validity check, and therefore ignore these types of packet. | |||
| Cons: | Cons: | |||
| o Only four version numbers are possible. Using one of them for RTP | o Only four version numbers are possible. Using one of them for RTP | |||
| keepalive would be wasteful. | keepalive would be wasteful. | |||
| 4.7. RTP packet with unknown payload type | 4.7. RTP Packet with Unknown Payload Type | |||
| The application sends a RTP packet with an unknow payload type. | The application sends a RTP packet with an unknown payload type. | |||
| Normally the peer will ignore it, as RTP [4] states that "a receiver | Normally the peer will ignore it, as RTP [4] states that "a receiver | |||
| MUST ignore packets with payload types that it does not understand". | MUST ignore packets with payload types that it does not understand". | |||
| For example, the keepalive RTP packets contain a dynamic payload type | For example, the keepalive RTP packets contain a dynamic payload type | |||
| that has not been negotiated for the session. | that has not been negotiated for the session. | |||
| [Note: more details on the selection of the payload type are needed | [Note: more details on the selection of the payload type are needed | |||
| here.] | here.] | |||
| Cons: | Cons: | |||
| o None | o None | |||
| 5. Recommended solution | 5. Recommended Solution | |||
| An application supporting this specification MUST send keepalive | An application supporting this specification MUST send keepalive | |||
| packets under the form of ... [Note: The recommended solution needs | packets under the form of ... [Note: The recommended solution needs | |||
| to be discussed. However recommending a single method among the | to be discussed. However recommending a single method among the | |||
| alternatives of the previous section is the best in term of | alternatives of the previous section is the best in term of | |||
| interoperability. Proposal is the alternative of Section 4.7] | interoperability. Proposal is the alternative of Section 4.7] | |||
| Keepalives packets MUST be sent for each RTP stream regardless of | Keepalives packets MUST be sent for each RTP stream regardless of | |||
| whether the media stream is currently inactive, sendonly, recvonly or | whether the media stream is currently inactive, sendonly, recvonly or | |||
| sendrecv. | sendrecv. | |||
| skipping to change at page 7, line 35 ¶ | skipping to change at page 7, line 33 ¶ | |||
| Jonathan Rosenberg, via the ICE specification, provided the major | Jonathan Rosenberg, via the ICE specification, provided the major | |||
| inputs for this draft. In addition, thanks to the following folks | inputs for this draft. In addition, thanks to the following folks | |||
| for useful inputs and comments: Dan Wing, and Aurelien Sollaud. | for useful inputs and comments: Dan Wing, and Aurelien Sollaud. | |||
| 8. References | 8. References | |||
| [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | |||
| Levels", RFC 2119, March 1997. | Levels", RFC 2119, March 1997. | |||
| [2] Audet, F. and C. Jennings, "NAT Behavioral Requirements for | [2] Audet, F. and C. Jennings, "Network Address Translation (NAT) | |||
| Unicast UDP", draft-ietf-behave-nat-udp-07 (work in progress), | Behavioral Requirements for Unicast UDP", RFC 4787, | |||
| June 2006. | January 2007. | |||
| [3] Guha, S., Biswas, K., Ford, B., Francis, P., Sivarkumar, S., | [3] Guha, S., Biswas, K., Ford, B., Francis, P., Sivarkumar, S., | |||
| and P. Srisuresh, "NAT Behavioral Requirements for TCP", | and P. Srisuresh, "NAT Behavioral Requirements for TCP", | |||
| draft-ietf-behave-tcp-01 (work in progress), June 2006. | draft-ietf-behave-tcp-04 (work in progress), January 2007. | |||
| [4] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, | [4] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, | |||
| "RTP: A Transport Protocol for Real-Time Applications", | "RTP: A Transport Protocol for Real-Time Applications", | |||
| RFC 3550, July 2003. | RFC 3550, July 2003. | |||
| [5] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A | [5] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A | |||
| Methodology for Network Address Translator (NAT) Traversal for | Methodology for Network Address Translator (NAT) Traversal for | |||
| Offer/Answer Protocols", draft-ietf-mmusic-ice-09 (work in | Offer/Answer Protocols", draft-ietf-mmusic-ice-13 (work in | |||
| progress), June 2006. | progress), January 2007. | |||
| [6] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with | [6] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with | |||
| the Session Description Protocol (SDP)", RFC 3264, June 2002. | the Session Description Protocol (SDP)", RFC 3264, June 2002. | |||
| [7] Hellstrom, G. and P. Jones, "RTP Payload for Text | [7] Hellstrom, G. and P. Jones, "RTP Payload for Text | |||
| Conversation", RFC 4103, June 2005. | Conversation", RFC 4103, June 2005. | |||
| [8] Perkins, C. and M. Magnus, "Multiplexing RTP and RTCP on a | [8] Perkins, C. and M. Magnus, "Multiplexing RTP Data and Control | |||
| Single Port", draft-perkins-avt-rtp-and-rtcp-mux-00 (work in | Packets on a Single Port", draft-ietf-avt-rtp-and-rtcp-mux-03 | |||
| progress), August 2006. | (work in progress), December 2006. | |||
| [9] Rosenberg, J., Huitema, C., Mahy, R., and D. Wing, "Simple | [9] Rosenberg, J., Huitema, C., Mahy, R., and D. Wing, "Simple | |||
| Traversal Underneath Network Address Translators (NAT) (STUN)", | Traversal Underneath Network Address Translators (NAT) (STUN)", | |||
| draft-ietf-behave-rfc3489bis-04 (work in progress), June 2006. | draft-ietf-behave-rfc3489bis-05 (work in progress), | |||
| October 2006. | ||||
| [10] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | [10] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | |||
| Description Protocol", RFC 4566, July 2006. | Description Protocol", RFC 4566, July 2006. | |||
| [11] Robert, R., "Real-time Transport Protocol (RTP) Payload for | [11] Robert, R., "Real-time Transport Protocol (RTP) Payload for | |||
| Comfort Noise (CN)", RFC 3389, September 2002. | Comfort Noise (CN)", RFC 3389, September 2002. | |||
| [12] Andreason, F., Oran, D., and D. Wing, "A No-Op Payload Format | [12] Andreason, F., Oran, D., and D. Wing, "A No-Op Payload Format | |||
| for RTP", draft-ietf-avt-rtp-no-op-00 (work in progress), | for RTP", draft-ietf-avt-rtp-no-op-00 (work in progress), | |||
| May 2005. | May 2005. | |||
| Author's Address | Author's Address | |||
| Xavier Marjou (editor) | Xavier Marjou (editor) | |||
| France Telecom | France Telecom | |||
| 2, hent Pierre Marzin | 2, hent Pierre Marzin | |||
| Lannion, Brittany 22307 | Lannion, Brittany 22307 | |||
| France | France | |||
| Email: xavier.marjou@orange-ft.com | Email: xavier.marjou@orange-ftgroup.com | |||
| Full Copyright Statement | Full Copyright Statement | |||
| Copyright (C) The Internet Society (2006). | Copyright (C) The IETF Trust (2007). | |||
| This document is subject to the rights, licenses and restrictions | This document is subject to the rights, licenses and restrictions | |||
| contained in BCP 78, and except as set forth therein, the authors | contained in BCP 78, and except as set forth therein, the authors | |||
| retain all their rights. | retain all their rights. | |||
| This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | |||
| ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | |||
| INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | |||
| INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | |||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
| Intellectual Property | Intellectual Property | |||
| The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
| Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
| pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
| this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |||
| might or might not be available; nor does it represent that it has | might or might not be available; nor does it represent that it has | |||
| made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |||
| End of changes. 27 change blocks. | ||||
| 46 lines changed or deleted | 45 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||