MMUSICNetwork Working GroupAdamA. LiINTERNET-DRAFT HyerVision Expires: December 25, 2006 June 25,Request for Comments: 4756 Hyervision Category: Standards Track November 2006 Forward Error Correction Grouping Semantics in Session Description Protocol<draft-ietf-mmusic-fec-grouping-05.txt>Status ofthis memo By submitting this Internet-Draft, each author represents that any 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 aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents ofThis Memo This document specifies an Internet standards track protocol for the InternetEngineering Task Force (IETF), its areas,community, andits working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six monthsrequests discussion andmay be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material orsuggestions for improvements. Please refer tocite them other than as "work in progress." The list ofthe currentInternet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The listedition ofInternet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html This document is an individual submission totheIETF. Comments should be directed to"Internet Official Protocol Standards" (STD 1) for theauthors.standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The IETF Trust (2006). Abstract This document defines the semantics thatallowsallow for grouping offorward error correctionForward Error Correction (FEC) streams with the protected payload streams in Session Description Protocol (SDP). The semantics defined in this documentisare to be used withGrouping"Grouping of Media Lines in the Session DescriptionProtocolProtocol" (RFC 3388) to group together "m" lines in the same session. Table of Contents 1.Introduction.....................................................2Introduction ....................................................2 2.Terminology......................................................2Terminology .....................................................2 3. Forward Error Correction(FEC)...................................2(FEC) ..................................2 4. FECGrouping.....................................................3Grouping ....................................................3 4.1. FECGroup...................................................3Group ..................................................3 4.2. Offer / AnswerConsideration................................3Consideration ...............................3 4.3. Example of FECGrouping.....................................4Grouping ....................................3 5. SecurityConsideration...........................................4Considerations .........................................4 6. IANAConsiderations..............................................5Considerations .............................................4 7.Acknowledgments..................................................5Acknowledgments .................................................5 8.Author's Address.................................................5 9. References.......................................................5 9.1.References ......................................................5 8.1. NormativeReferences........................................5 9.2.References .......................................5 8.2. InformativeReferences......................................5References .....................................5 1. Introduction The media lines in an SDP [3] session may be associated with each other in various ways. SDP itself does not provide methods to convey the relationships between the media lines. Such relationships are indicated by the extension to SDP as defined inGrouping"Grouping of Media Lines in the Session DescriptionProtocolProtocol" (RFC 3388) [2]. RFC 3388 defines two types of semantics: LipSynchronization,Synchronization and Flow Identification. Forward Error Correction (FEC) is a common technique to achieve robust communication in error-prone environments. In this document, we define the semantics that allows for grouping of FEC streams with the protected payload streams in SDP by further extending RFC 3388. 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD, "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [1]. 3. Forward Error Correction (FEC) Forward Error Correction (FEC) is a common technique to achieve robust communication in error-prone environments. In FEC, communication uses a bandwidth that is more than payload to send redundantly coded payload information. The receivers can readily recover the original payload even when some communication is lost in the transmission.CompareCompared to other error correctiontechniquetechniques (such asre-transmission),retransmission), FEC can achieve much lower transmission delay, and it does not have the problem of implosion from retransmission requests in various multicast scenarios. In general, the FEC data can be sent in two different ways: (1) multiplexed together with the original payloadstream,stream or (2) as a separate stream. It is thus necessary to define mechanisms to indicate the association relationship between the FEC data and the payload data they protect. When FEC data are multiplexed with the original payload stream, the association relationshipismay, for example, be indicated as specified in "An RTP Payload for Redundant AudioDataData" (RFC 2198) [4].As an example, such relationship can be indicated as in theThe genericRFCRTP payload format for FEC[5].[5] uses that method. When FEC data are sent as a separate stream from the payload data, the association relationship can be indicated in various ways. This document on the FEC media line grouping specifies a mechanism for indicating such relationships. 4. FEC Grouping 4.1. FEC Group Each "a=group" line is used to indicate an association relationship between the FEC streams and the payloadstream.streams. The streams included in one "a=group" line are called a "FEC Group". Each FEC group MAY have one or more than one FECstreams,stream, and one or more than one payloadstreams.stream. For example, it is possible to have one payloadstreamsstream protected by more than one FECstreams,stream , or multiple payload streams sharing one FEC stream. Grouping streams in a FEC group only indicates the association relationship between streams. The detailed FEC protection scheme/parameters are conveyed through the mechanism of the particular FEC algorithm used. For example, the FEC grouping is used for generic RTP payload for FEC(RFC YYYY)[5] to indicate the association relationship between the FEC stream and the payload stream. The detailed protection level and length information for theULPUnequal Loss Protection (ULP) algorithm is communicated in band within the FEC stream. 4.2. Offer / Answer Consideration The backward compatibility in offer / answer is generally handled as specified in RFC 3388 [2]. Depending on the implementation, a node that does not understand FEC grouping (either does not understand line grouping at all, or just does not understand the FEC semantics) SHOULD respond to an offer containing FEC grouping either (1) with an answerwhichthat ignores the groupingattribute,attribute or (2) with a refusal to the request (e.g., 488 Not acceptable here or 606 NotAcceptableacceptable in SIP). In the first case, the original sender of the offer MUST establish the connection without FEC. In the second case, if the sender of the offer still wishes to establish the session, it SHOULD re-try the request with an offer without FEC. 4.3. Example of FEC Grouping The following example shows a session description of a multicast conference. The first media stream (mid:1) contains the audio stream. The second media stream (mid:2) contains the Generic FEC [5] protection for the audio stream. These two streams form an FECGroup.group. The relationship between the two streams is indicated by the "a=group:FEC 1 2" line. The FEC stream is sent to the same multicast group and has the sameTTLTime to Live (TTL) as the audio, but on a port number two higher. Likewise, the video stream (mid:3) and its Generic FEC protection stream (mid:4)formsform another FEC group. The relationship between the two streams is indicated by the "a=group:FEC 3 4" line. The FEC stream is sent to a different multicast address, but has the same port number (30004) as the payload video stream. v=0 o=adam 289083124 289083124 IN IP4 host.example.com s=ULP FEC Seminar t=0 0 c=IN IP4 224.2.17.12/127 a=group:FEC 1 2 a=group:FEC 3 4 m=audio 30000 RTP/AVP 0 a=mid:1 m=audio 30002 RTP/AVP 100 a=rtpmap:100 ulpfec/8000 a=mid:2 m=video 30004 RTP/AVP 31 a=mid:3 m=video 30004 RTP/AVP 101 c=IN IP4 224.2.17.13/127 a=rtpmap:101 ulpfec/8000 a=mid:4 5. SecurityConsiderationConsiderations There is a weak threat for the receiver that the FEC grouping can be modified to indicate FEC relationships that do not exist. Such attacks may result in failure of FEC to protect, and/or mishandling of other media payload streams. It is recommended that the receiver SHOULD do integrity check on SDP and follow the security considerations of SDP [3] to only trust SDP from trusted sources. 6. IANA Considerations This document defines the semantics to be used with grouping of media lines in SDP as defined in RFC 3388. The semantics defined in this document are to be registered by the IANA when they are published instandardstandards track RFCs. The following semanticsneed to behave been registeredwithby IANA inSemanticSemantics for the "group" SDP Attribute under SDP Parameters. Semantics Token Reference ------------------------ ----- ---------- Forward Error Correction FEC[RFC XXXX]RFC 4756 7. Acknowledgments The author would like to thank Magnus Westerlund, Colin Perkins, Joerg Ott, and Cullen Jennings for their feedback on this document. 8.Author's Address Adam Li HyerVision 10194 Wateridge Circle #152 San Diego, CA 92121 U.S.A. Tel: +1 858 622 9038 Email: adamli@hyervision.com 9.References9.1.8.1. Normative References [1]S.Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2]G.Camarillo,J.G., Eriksson, G., Holler, J., and H. Schulzrinne, "Grouping of Media Lines in the Session Description Protocol (SDP)", RFC 3388, December 2002.9.2. Informative References[3]M.Handley, M., V. Jacobson, and C. Perkins, "SDP: Session Description Protocol",IETF workWork inprogress, January 2006.Progress. 8.2. Informative References [4]C.Perkins,I.C., Kouvelas,O.I., Hodson,V.O., Hardman,M.V., Handley,J.C.M., Bolot,A.J., Vega-Garcia, A., and S. Fosse-Parisis, "RTP Payload for Redundant Audio Data", RFC 2198, September 1997. [5]A.Li, A., "An RFC Payload Format for Generic FEC",IETF workWork inprogress, March 2006.Progress. Author's Address Adam Li HyerVision 10194 Wateridge Circle #152 San Diego, CA 92121 U.S.A. Tel: +1 858 622 9038 EMail: adamli@hyervision.com Full Copyright Statement Copyright (C) TheInternet SocietyIETF Trust (2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.Disclaimer of ValidityThis document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNETSOCIETYSOCIETY, THE IETF TRUST, AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in 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 made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF atietf- ipr@ietf.org.ietf-ipr@ietf.org. Acknowledgement Funding for the RFC EditorConsiderations The RFC-editorfunction iskindly requested to perform the following modifications upon the publication of this specification: - Replace all occurrences of RFC XXXX with the RFC number this specification receives when being published. - Replace reference [5] and all occurrences of RFC YYYY withcurrently provided by thecorresponding title and RFC number of that ID when it is published. - Remove this Section. This Internet-Draft expires December 25, 2006.Internet Society.