draft-ietf-mmusic-fec-grouping-05.txt   rfc4756.txt 
MMUSIC Working Group Adam Li Network Working Group A. Li
INTERNET-DRAFT HyerVision Request for Comments: 4756 Hyervision
Expires: December 25, 2006 June 25, 2006 Category: Standards Track November 2006
Forward Error Correction Grouping Semantics Forward Error Correction Grouping Semantics
in Session Description Protocol in Session Description Protocol
<draft-ietf-mmusic-fec-grouping-05.txt>
Status of this 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 of the Internet Engineering Status of This Memo
Task Force (IETF), its areas, and its 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 months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at This document specifies an Internet standards track protocol for the
http://www.ietf.org/1id-abstracts.html Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
The list of Internet-Draft Shadow Directories can be accessed at Copyright Notice
http://www.ietf.org/shadow.html
This document is an individual submission to the IETF. Comments Copyright (C) The IETF Trust (2006).
should be directed to the authors.
Abstract Abstract
This document defines the semantics that allows for grouping of This document defines the semantics that allow for grouping of
forward error correction (FEC) streams with the protected payload Forward Error Correction (FEC) streams with the protected payload
streams in Session Description Protocol (SDP). The semantics defined streams in Session Description Protocol (SDP). The semantics defined
in this document is to be used with Grouping of Media Lines in the in this document are to be used with "Grouping of Media Lines in the
Session Description Protocol (RFC 3388) to group together "m" lines Session Description Protocol" (RFC 3388) to group together "m" lines
in the same session. in the same session.
Table of Contents Table of Contents
1. Introduction.....................................................2 1. Introduction ....................................................2
2. Terminology......................................................2 2. Terminology .....................................................2
3. Forward Error Correction (FEC)...................................2 3. Forward Error Correction (FEC) ..................................2
4. FEC Grouping.....................................................3 4. FEC Grouping ....................................................3
4.1. FEC Group...................................................3 4.1. FEC Group ..................................................3
4.2. Offer / Answer Consideration................................3 4.2. Offer / Answer Consideration ...............................3
4.3. Example of FEC Grouping.....................................4 4.3. Example of FEC Grouping ....................................3
5. Security Consideration...........................................4 5. Security Considerations .........................................4
6. IANA Considerations..............................................5 6. IANA Considerations .............................................4
7. Acknowledgments..................................................5 7. Acknowledgments .................................................5
8. Author's Address.................................................5 8. References ......................................................5
9. References.......................................................5 8.1. Normative References .......................................5
9.1. Normative References........................................5 8.2. Informative References .....................................5
9.2. Informative References......................................5
1. Introduction 1. Introduction
The media lines in an SDP [3] session may be associated with each 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 other in various ways. SDP itself does not provide methods to convey
the relationships between the media lines. Such relationships are the relationships between the media lines. Such relationships are
indicated the extension to SDP as defined in Grouping of Media Lines indicated by the extension to SDP as defined in "Grouping of Media
in the Session Description Protocol (RFC 3388) [2]. RFC 3388 defines Lines in the Session Description Protocol" (RFC 3388) [2]. RFC 3388
two types of semantics: Lip Synchronization, and Flow Identification. defines two types of semantics: Lip Synchronization and Flow
Identification.
Forward Error Correction (FEC) is a common technique to achieve Forward Error Correction (FEC) is a common technique to achieve
robust communication in error-prone environments. In this document, robust communication in error-prone environments. In this document,
we define the semantics that allows for grouping of FEC streams with we define the semantics that allows for grouping of FEC streams with
the protected payload streams in SDP by further extending RFC 3388. the protected payload streams in SDP by further extending RFC 3388.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD, "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD, "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [1]. document are to be interpreted as described in RFC 2119 [1].
3. Forward Error Correction (FEC) 3. Forward Error Correction (FEC)
Forward Error Correction (FEC) is a common technique to achieve Forward Error Correction (FEC) is a common technique to achieve
robust communication in error-prone environments. In FEC, robust communication in error-prone environments. In FEC,
communication uses a bandwidth that is more than payload to send communication uses a bandwidth that is more than payload to send
redundantly coded payload information. The receivers can readily redundantly coded payload information. The receivers can readily
recover the original payload even when some communication is lost in recover the original payload even when some communication is lost in
the transmission. Compare to other error correction technique (such the transmission. Compared to other error correction techniques
as re-transmission), FEC can achieve much lower transmission delay, (such as retransmission), FEC can achieve much lower transmission
and does not have the problem of implosion from retransmission delay, and it does not have the problem of implosion from
requests in various multicast scenarios. retransmission requests in various multicast scenarios.
In general, the FEC data can be sent in two different ways: (1) In general, the FEC data can be sent in two different ways: (1)
multiplexed together with the original payload stream, or (2) as a multiplexed together with the original payload stream or (2) as a
separate stream. It is thus necessary to define mechanisms to separate stream. It is thus necessary to define mechanisms to
indicate the association relationship between the FEC data and the indicate the association relationship between the FEC data and the
payload data they protect. payload data they protect.
When FEC data are multiplexed with the original payload stream, the When FEC data are multiplexed with the original payload stream, the
association relationship is indicated as specified in RTP Payload for association relationship may, for example, be indicated as specified
Redundant Audio Data (RFC 2198) [4]. As an example, such relationship in "An RTP Payload for Redundant Audio Data" (RFC 2198) [4]. The
can be indicated as in the generic RFC payload format for FEC [5]. generic RTP payload format for FEC [5] uses that method.
When FEC data are sent as a separate stream from the payload data, When FEC data are sent as a separate stream from the payload data,
the association relationship can be indicated in various ways. This the association relationship can be indicated in various ways. This
document on the FEC media line grouping specifies a mechanism for document on the FEC media line grouping specifies a mechanism for
indicating such relationships. indicating such relationships.
4. FEC Grouping 4. FEC Grouping
4.1. FEC Group 4.1. FEC Group
Each "a=group" line is used to indicate an association relationship Each "a=group" line is used to indicate an association relationship
between the FEC streams and the payload stream. The streams included between the FEC streams and the payload streams. The streams
in one "a=group" line are called a "FEC Group". included in one "a=group" line are called a "FEC Group".
Each FEC group MAY have one or more than one FEC streams, and one or Each FEC group MAY have one or more than one FEC stream, and one or
more than one payload streams. For example, it is possible to have more than one payload stream. For example, it is possible to have
one payload streams protected by more than one FEC streams, or one payload stream protected by more than one FEC stream , or
multiple payload streams sharing one FEC stream. multiple payload streams sharing one FEC stream.
Grouping streams in a FEC group only indicates the association Grouping streams in a FEC group only indicates the association
relationship between streams. The detailed FEC protection relationship between streams. The detailed FEC protection
scheme/parameters are conveyed through the mechanism of the scheme/parameters are conveyed through the mechanism of the
particular FEC algorithm used. For example, the FEC grouping is used particular FEC algorithm used. For example, the FEC grouping is used
for generic RTP payload for FEC (RFC YYYY) [5] to indicate the for generic RTP payload for FEC [5] to indicate the association
association relationship between the FEC stream and the payload relationship between the FEC stream and the payload stream. The
stream. The detailed protection level and length information for the detailed protection level and length information for the Unequal Loss
ULP algorithm is communicated in band within the FEC stream. Protection (ULP) algorithm is communicated in band within the FEC
stream.
4.2. Offer / Answer Consideration 4.2. Offer / Answer Consideration
The backward compatibility in offer / answer is generally handled as The backward compatibility in offer / answer is generally handled as
specified in RFC 3388 [2]. specified in RFC 3388 [2].
Depending on the implementation, a node that does not understand FEC Depending on the implementation, a node that does not understand FEC
grouping (either does not understand line grouping at all, or just grouping (either does not understand line grouping at all, or just
does not understand the FEC semantics) SHOULD respond to an offer does not understand the FEC semantics) SHOULD respond to an offer
containing FEC grouping either (1) with an answer which ignores the containing FEC grouping either (1) with an answer that ignores the
grouping attribute, or (2) with a refusal to the request (e.g., 488 grouping attribute or (2) with a refusal to the request (e.g., 488
Not acceptable here or 606 Not Acceptable in SIP). Not acceptable here or 606 Not acceptable in SIP).
In the first case, the original sender of the offer MUST establish 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 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 offer still wishes to establish the session, it SHOULD re-try the
request with an offer without FEC. request with an offer without FEC.
4.3. Example of FEC Grouping 4.3. Example of FEC Grouping
The following example shows a session description of a multicast The following example shows a session description of a multicast
conference. The first media stream (mid:1) contains the audio stream. conference. The first media stream (mid:1) contains the audio
The second media stream (mid:2) contains the Generic FEC [5] stream. The second media stream (mid:2) contains the Generic FEC [5]
protection for the audio stream. These two streams form an FEC Group. protection for the audio stream. These two streams form an FEC
The relationship between the two streams is indicated by the 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 "a=group:FEC 1 2" line. The FEC stream is sent to the same multicast
group and has the same TTL as the audio, but on a port number two group and has the same Time to Live (TTL) as the audio, but on a port
higher. Likewise, the video stream (mid:3) and its Generic FEC number two higher. Likewise, the video stream (mid:3) and its
protection stream (mid:4) forms another FEC group. The relationship Generic FEC protection stream (mid:4) form another FEC group. The
between the two streams is indicated by the "a=group:FEC 3 4" line. relationship between the two streams is indicated by the "a=group:FEC
The FEC stream is sent to a different multicast address, but has the 3 4" line. The FEC stream is sent to a different multicast address,
same port number (30004) as the payload video stream. but has the same port number (30004) as the payload video stream.
v=0 v=0
o=adam 289083124 289083124 IN IP4 host.example.com o=adam 289083124 289083124 IN IP4 host.example.com
s=ULP FEC Seminar s=ULP FEC Seminar
t=0 0 t=0 0
c=IN IP4 224.2.17.12/127 c=IN IP4 224.2.17.12/127
a=group:FEC 1 2 a=group:FEC 1 2
a=group:FEC 3 4 a=group:FEC 3 4
m=audio 30000 RTP/AVP 0 m=audio 30000 RTP/AVP 0
a=mid:1 a=mid:1
m=audio 30002 RTP/AVP 100 m=audio 30002 RTP/AVP 100
a=rtpmap:100 ulpfec/8000 a=rtpmap:100 ulpfec/8000
a=mid:2 a=mid:2
m=video 30004 RTP/AVP 31 m=video 30004 RTP/AVP 31
a=mid:3 a=mid:3
m=video 30004 RTP/AVP 101 m=video 30004 RTP/AVP 101
c=IN IP4 224.2.17.13/127 c=IN IP4 224.2.17.13/127
a=rtpmap:101 ulpfec/8000 a=rtpmap:101 ulpfec/8000
a=mid:4 a=mid:4
5. Security Consideration 5. Security Considerations
There is a weak threat for the receiver that the FEC grouping can be There is a weak threat for the receiver that the FEC grouping can be
modified to indicate FEC relationships that do not exist. Such modified to indicate FEC relationships that do not exist. Such
attacks may result in failure of FEC protect, and/or mishandling of attacks may result in failure of FEC to protect, and/or mishandling
other media payload streams. It is recommended that the receiver of other media payload streams. It is recommended that the receiver
SHOULD do integrity check on SDP and follow the security SHOULD do integrity check on SDP and follow the security
considerations of SDP to only trust SDP from trusted sources. considerations of SDP [3] to only trust SDP from trusted sources.
6. IANA Considerations 6. IANA Considerations
This document defines the semantics to be used with grouping of media 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 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 in document are to be registered by the IANA when they are published in
standard track RFCs. standards track RFCs.
The following semantics need to be registered with IANA in Semantic The following semantics have been registered by IANA in Semantics for
for the "group" SDP Attribute under SDP Parameters. the "group" SDP Attribute under SDP Parameters.
Semantics Token Reference Semantics Token Reference
------------------------ ----- ---------- ------------------------ ----- ----------
Forward Error Correction FEC [RFC XXXX] Forward Error Correction FEC RFC 4756
7. Acknowledgments 7. Acknowledgments
The author would like to thank Magnus Westerlund, Colin Perkins, The author would like to thank Magnus Westerlund, Colin Perkins,
Joerg Ott, and Cullen Jennings for their feedback on this document. Joerg Ott, and Cullen Jennings for their feedback on this document.
8. Author's Address 8. References
Adam Li 8.1. Normative References
HyerVision
10194 Wateridge Circle #152
San Diego, CA 92121
U.S.A.
Tel: +1 858 622 9038
Email: adamli@hyervision.com
9. References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
9.1. Normative References [2] Camarillo, G., Eriksson, G., Holler, J., and H. Schulzrinne,
"Grouping of Media Lines in the Session Description Protocol
(SDP)", RFC 3388, December 2002.
[1] S. Bradner, "Key words for use in RFCs to Indicate Requirement [3] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Levels", RFC 2119, March 1997. Description Protocol", RFC 4566, July 2006.
[2] G. Camarillo, J. Holler, and H. Schulzrinne, "Grouping of Media
Lines in the Session Description Protocol (SDP)", RFC 3388,
December 2002.
9.2. Informative References 8.2. Informative References
[3] M. Handley, V. Jacobson, and C. Perkins, "SDP: Session [4] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., Handley, M.,
Description Protocol", IETF work in progress, January 2006. Bolot, J., Vega-Garcia, A., and S. Fosse-Parisis, "RTP Payload
[4] C. Perkins, I. Kouvelas, O. Hodson, V. Hardman, M. Handley, J.C. for Redundant Audio Data", RFC 2198, September 1997.
Bolot, A. Vega-Garcia, and S. Fosse-Parisis, "RTP Payload for
Redundant Audio Data", RFC 2198, September 1997.
[5] A. Li, "An RFC Payload Format for Generic FEC", IETF work in
progress, March 2006.
Copyright Statement [5] Li, A., "An RFC Payload Format for Generic FEC", Work in
Progress.
Copyright (C) The Internet Society (2006). Author's Address
Adam H. 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) The IETF Trust (2006).
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.
Disclaimer of Validity
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,
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE.
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
on the procedures with respect to rights in RFC documents can be on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79. found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an 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 attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf- this standard. Please address the information to the IETF at
ipr@ietf.org. ietf-ipr@ietf.org.
RFC Editor Considerations
The RFC-editor is kindly 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 with the
corresponding title and RFC number of that ID when it is published.
- Remove this Section. Acknowledgement
This Internet-Draft expires December 25, 2006. Funding for the RFC Editor function is currently provided by the
Internet Society.
 End of changes. 39 change blocks. 
130 lines changed or deleted 111 lines changed or added

This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/