MMUSIC                                                          A. Begen
Internet-Draft                                                    Y. Cai
Intended status:  Standards Track                                  H. Ou
Expires:  September 6, 2011                                        Cisco
                                                           March 5, 2011


   Redundancy Grouping Semantics in the Session Description Protocol
               draft-begen-mmusic-redundancy-grouping-00

Abstract

   Packet loss is undesirable for real-time multimedia sessions, but it
   is not avoidable due to congestion or other unplanned network
   outages.  This is especially the case for IP multicast networks.  One
   technique to recover from packet loss without incurring unbounded
   delay for all the receivers is to send redundant streams.  This
   document defines the semantics for grouping RTP-encapsulated
   redundant streams in the Session Description Protocol (SDP).  The
   semantics defined in this document are to be used with the SDP
   Grouping Framework [RFC5888].  SSRC-level (Synchronization Source)
   grouping semantics are also defined in this document for RTP streams
   using SSRC multiplexing.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on September 6, 2011.

Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents



Begen, et al.           Expires September 6, 2011               [Page 1]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Requirements Notation  . . . . . . . . . . . . . . . . . . . .  3
   3.  Dual Streaming . . . . . . . . . . . . . . . . . . . . . . . .  3
     3.1.  (Routing-Plane) Identical Streams  . . . . . . . . . . . .  4
     3.2.  Single RTP Session . . . . . . . . . . . . . . . . . . . .  5
     3.3.  Multiple RTP Sessions  . . . . . . . . . . . . . . . . . .  5
     3.4.  Summary  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   4.  Redundancy Grouping  . . . . . . . . . . . . . . . . . . . . .  6
     4.1.  "RED" Grouping Semantics . . . . . . . . . . . . . . . . .  6
     4.2.  RED Grouping for SSRC-Multiplexed RTP Streams  . . . . . .  6
     4.3.  SDP Offer/Answer Model Considerations  . . . . . . . . . .  7
   5.  SDP Examples . . . . . . . . . . . . . . . . . . . . . . . . .  7
     5.1.  Single RTP Session with SSM  . . . . . . . . . . . . . . .  7
     5.2.  Multiple RTP Sessions with Different Destination
           Addresses  . . . . . . . . . . . . . . . . . . . . . . . .  8
     5.3.  Multiple RTP Sessions with the Same Destination Address  .  8
   6.  Performance Evaluation and Reporting . . . . . . . . . . . . .  9
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . .  9
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  9
   9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 10
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 10
     10.2. Informative References . . . . . . . . . . . . . . . . . . 11
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11
















Begen, et al.           Expires September 6, 2011               [Page 2]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


1.  Introduction

   RTP [RFC3550]transport is widely used today for delivering real-time
   multimedia streams.  Most of the applications also rely on IP
   multicast to reach many receivers efficiently.

   While the combination proves successful, there does exist a weakness.
   As [RFC2354] noted, packet loss is not avoidable.  This might be due
   to congestion, it might also be a result of an unplanned outage
   caused by a flapping link, link or interface failure, a software bug,
   or a maintenance person accidentally cutting the wrong fiber.  Since
   UDP does not provide any means for detecting loss and retransmitting
   packets, it leaves up to the RTP or the applications to detect and
   recover from the loss.  For retransmission-based recovery, one
   example is described by [RFC4588].

   In this document, we describe a technique that involves transmitting
   redundant RTP-encapsulated streams to overcome packet loss.
   Variations of the technique have already been implemented and
   deployed today [IC2011].  We also describe the semantics needed in
   the Session Description Protocol (SDP) [RFC4566] to support this
   technique.

   A work-in-progress draft specification [I-D.singh-avtcore-mprtp]
   proposes changes to the RTP protocol so that a single RTP session can
   benefit from using multiple paths between two endpoints (to increase
   the aggregated throughput and improve reliability).  While we also
   discuss spatial diversity in our specification, we use diverse paths
   solely for sending redundant streams.  For our purposes, we do not
   require changes in the RTP protocol but if any changes or additions
   will be required for RTP Control Protocol (RTCP), they will be
   documented in the future or separately.


2.  Requirements Notation

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   [RFC2119].


3.  Dual Streaming

   Dual streaming refers to a technique that involves transmitting two
   RTP streams of the same content, with each stream itself capable of
   supporting the playback when there is no packet loss.  Therefore,
   adding an additional stream provides a protection against packet



Begen, et al.           Expires September 6, 2011               [Page 3]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


   loss.  The level of protection depends on how the packets are built
   and sent.

   It is important to note that the technique and specification
   described by this document can easily be extended to support cases
   when more than two streams are desired.  But triple, quadruple, or
   more, streaming is rarely used in practice, and therefore the
   solutions developed by this document are not optimized for them.

3.1.  (Routing-Plane) Identical Streams

   From a routing perspective, two streams are considered identical if
   their following two fields are the same since they will be both
   routed over the same path:

   o  IP Source Address

   o  IP Destination Address

   Two RTP streams can be routing-plane identical, however, they might
   differ in their UDP destination ports, Synchronization Sources (SSRC)
   or payload types.  For example, two such RTP streams also sharing the
   same UDP destination port but differing in their SSRCs can carry the
   same payload in their respective RTP packets with common sequence
   numbers.  This allows the receiver (or any other node responsible for
   duplicate suppression) to identify the duplicate packets.
   Alternatively, each RTP packet can also be duplicated and the
   receiver identifies them based on the sequence numbers.

   In these cases (where the two RTP streams are routing-plane identical
   and share the same UDP destination port), there will be only one "m"
   line in the SDP description regardless of how many redundant streams
   are generated.  Thus, the SDP Grouping Framework [RFC5888] cannot be
   used.  Instead, either the 'ssrc-group' attribute [RFC5576] or the
   'temporal-interleaving' attribute
   [I-D.begen-mmusic-temporal-interleaving] has to be used to describe
   the redundancy relations.

   If the two routing-plane identical RTP streams have different UDP
   destination ports, there will be two "m" lines in the SDP description
   and in this case, new grouping semantics are needed to describe the
   redundancy relations.  Based on this grouping, the receiver or the
   node responsible for duplicate suppression can look into various RTP
   related fields to identify and suppress the duplicate packets.







Begen, et al.           Expires September 6, 2011               [Page 4]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


3.2.  Single RTP Session

   If the two streams use different IP source addresses, but the same IP
   destination address and UDP port, the two streams are considered to
   be using the same RTP session.  These streams can be routed over
   diverse or identical paths.  Similar to the above, the receiver or
   the node responsible for duplicate suppression can look into various
   RTP related fields to identify and suppress the duplicate packets.

   Note that in source-specific multicast (SSM) scenarios, the host has
   to join the two streams separately via Internet Group Management
   Protocol (IGMP) version 3 [RFC3376] or the Multicast Listener
   Discovery Protocol (MLD) version 2 [RFC3810] since the source
   addresses are different.

3.3.  Multiple RTP Sessions

   When dual streaming is done via multiple RTP sessions, the two
   streams use different IP destination addresses and/or UDP destination
   ports.  In this case, new grouping semantics are needed to describe
   the redundancy relations.

3.4.  Summary

   Having described the characteristics of the streams, one can reach
   the following conclusions:

   1.  When two routing-plane identical streams are used, the two
       streams will have identical IP headers.  This makes it
       impractical to forward the packets onto different paths.  In
       order to minimize packet loss, the packets belonging to one
       stream are often interleaved with packets belonging to the other,
       and with a delay, so that if there is a packet loss, such a delay
       would allow the same packet from the other stream to reach the
       receivers because the chances that the same packet is lost in
       transit again is often small.  This is what is also known as
       Temporal Interleaving or Temporal Redundancy
       [I-D.begen-mmusic-temporal-interleaving] [IC2011].  This approach
       can be used with all three types of dual streaming described in
       Section 3.1, Section 3.2 and Section 3.3.

   2.  If the two streams have different IP headers, an additional
       opportunity arises in that one is able to build a network, with
       physically diverse paths, to deliver the two streams concurrently
       to the intended receivers.  This reduces the delay when packet
       loss occurs and needs to be recovered.  Additionally, it also
       further reduces chances for packet loss.  An unrecoverable loss
       happens only when two network failures happen in such a way that



Begen, et al.           Expires September 6, 2011               [Page 5]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


       the same packet is affected on both paths.  This is referred to
       as Spatial Diversity or Spatial Redundancy [IC2011].  The
       techniques used to build diverse paths are beyond the scope of
       this document.

       Note that spatial redundancy often offers less delay in
       recovering from packet loss provided that the forwarding delay of
       the network paths are more or less the same.  For both temporal
       and spatial redundancy approaches, packet misordering might still
       happen and needs to be handled using the RTP sequence numbers.

   To summarize, dual streaming allows an application and a network to
   work together to provide a near zero-loss transport with a bounded or
   minimum delay.  The additional advantage includes a predictable
   bandwidth overhead that is proportional to the minimum bandwidth
   needed for the multimedia session, but independent of the number of
   receivers experiencing a packet loss and requesting a retransmission.
   For a survey and comparison of similar approaches, refer to [IC2011].


4.  Redundancy Grouping

4.1.  "RED" Grouping Semantics

   Each "a=group" line is used to indicate an association relationship
   between the redundant streams.  The streams included in one "a=group"
   line are called a Redundancy Group.

   Using the framework in [RFC5888], this document defines "RED" as the
   grouping semantics for redundant streams.

   The "a=group:RED" semantics MUST be used to group the redundant
   streams except when the streams are specified in the same media
   description, i.e., in the same "m" line (See Section 4.2) or when the
   'interleaving-period' attribute is used as defined in
   [I-D.begen-mmusic-temporal-interleaving].

4.2.  RED Grouping for SSRC-Multiplexed RTP Streams

   [RFC5576] defines an SDP media-level attribute, called 'ssrc-group',
   for grouping the RTP streams that are SSRC multiplexed and carried in
   the same RTP session.  The grouping is based on the SSRC identifiers.
   Since SSRC-multiplexed RTP streams are defined in the same "m" line,
   the 'group' attribute cannot be used.

   This section specifies how redundancy is used with SSRC-multiplexed
   streams using the 'ssrc-group' attribute [RFC5576].




Begen, et al.           Expires September 6, 2011               [Page 6]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


   The semantics of "RED" for the 'ssrc-group' attribute are the same as
   the one defined for the 'group' attribute except that the SSRC
   identifiers are used to designate the redundancy grouping
   associations:  a=ssrc-group:RED *(SP ssrc-id) [RFC5576].

   The SSRC identifiers for the RTP streams that are carried in the same
   RTP session MUST be unique per [RFC3550].  However, the SSRC
   identifiers are not guaranteed to be unique among different RTP
   sessions.  Thus, the 'ssrc-group' attribute MUST only be used at the
   media level [RFC5576].

4.3.  SDP Offer/Answer Model Considerations

   When offering redundancy grouping using SDP in an Offer/Answer model
   [RFC3264], the following considerations apply.

   A node that is receiving an offer from a sender may or may not
   understand line grouping.  It is also possible that the node
   understands line grouping but it does not understand the "RED"
   semantics.  From the viewpoint of the sender of the offer, these
   cases are indistinguishable.

   When a node is offered a session with the "RED" grouping semantics
   but it does not support line grouping or the redundancy grouping
   semantics, as per [RFC5888], the node responds to the offer either
   (1) with an answer that ignores the grouping attribute or (2) with a
   refusal to the request (e.g., 488 Not Acceptable Here or 606 Not
   Acceptable in SIP).

   In the first case, the original sender of the offer must send a new
   offer without any redundancy grouping.  In the second case, if the
   sender of the offer still wishes to establish the session, it should
   retry the request with an offer without the redundancy grouping.
   This behavior is specified in [RFC5888].


5.  SDP Examples

5.1.  Single RTP Session with SSM

   In this example, the redundant streams use the same IP destination
   address (232.252.0.1) but they are sourced from different addresses
   (198.51.100.1 and 198.51.100.2).  Thus, the host needs to join both
   SSM sessions separately.  The important requirement here is that the
   RTP packets with the same sequence numbers in each RTP stream carries
   the same payload and after duplicate suppression, a single RTP stream
   is delivered to the application.




Begen, et al.           Expires September 6, 2011               [Page 7]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


       v=0
       o=ali 1122334455 1122334466 IN IP4 red.example.com
       s=RED Grouping Semantics
       t=0 0
       m=video 30000 RTP/AVP 100 101
       c=IN IP4 232.252.0.1/127
       a=source-filter:incl IN IP4 232.252.0.1 198.51.100.1 198.51.100.2
       a=rtpmap:100 MP2T/90000
       a=rtpmap:101 MP2T/90000
       a=ssrc:1000 cname:ch1@example.com
       a=ssrc:2000 cname:ch1@example.com
       a=ssrc-group:RED 1000 2000
       a=mid:Group1

   Note that in actual use, SSRC values, which are random 32-bit
   numbers, can be much larger than the ones shown in this example.
   Also, note that before receiving an RTP packet for each stream, the
   receiver cannot know which SSRC identifier is associated with which
   payload type.

5.2.  Multiple RTP Sessions with Different Destination Addresses

   In this example, the redundant streams have different IP destination
   addresses.  The example shows the same UDP port number and IP source
   addresses, but either or both can be different for the two streams.


        v=0
        o=ali 1122334455 1122334466 IN IP4 red.example.com
        s=RED Grouping Semantics
        t=0 0
        a=group:RED S1 S2
        m=video 30000 RTP/AVP 100
        c=IN IP4 233.252.0.1/127
        a=source-filter:incl IN IP4 233.252.0.1 198.51.100.1
        a=rtpmap:100 MP2T/90000
        a=mid:S1
        m=video 30000 RTP/AVP 101
        c=IN IP4 233.252.0.2/127
        a=source-filter:incl IN IP4 233.252.0.2 198.51.100.1
        a=rtpmap:101 MP2T/90000
        a=mid:S2

5.3.  Multiple RTP Sessions with the Same Destination Address

   In this example, the redundant streams have the same IP source and
   destination addresses but different UDP port numbers.




Begen, et al.           Expires September 6, 2011               [Page 8]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


        v=0
        o=ali 1122334455 1122334466 IN IP4 red.example.com
        s=RED Grouping Semantics
        t=0 0
        a=group:RED S1 S2
        m=video 30000 RTP/AVP 100
        c=IN IP4 233.252.0.1/127
        a=source-filter:incl IN IP4 233.252.0.1 198.51.100.1
        a=rtpmap:100 MP2T/90000
        a=mid:S1
        m=video 40000 RTP/AVP 101
        c=IN IP4 233.252.0.1/127
        a=source-filter:incl IN IP4 233.252.0.1 198.51.100.1
        a=rtpmap:101 MP2T/90000
        a=mid:S2


6.  Performance Evaluation and Reporting

   Editor's note:  TBD


7.  Security Considerations

   There is a weak threat for the receiver that the redundancy grouping
   can be modified to indicate relationships that do not exist.  Such
   attacks might result in failure of the redundancy mechanisms, and/or
   mishandling of the media streams by the receivers.

   In order to avoid attacks of this sort, the SDP description needs to
   be integrity protected and provided with source authentication.  This
   can, for example, be achieved on an end-to-end basis using S/MIME
   [RFC5652] [RFC5751] when the SDP is used in a signaling packet using
   MIME types (application/sdp).  Alternatively, HTTPS [RFC2818] or the
   authentication method in the Session Announcement Protocol (SAP)
   [RFC2974] could be used as well.


8.  IANA Considerations

   This document registers the following semantics with IANA in
   Semantics for the 'group' SDP Attribute under SDP Parameters:

   Note to the RFC Editor:  In the following registrations, please
   replace "XXXX" with the number of this document prior to publication
   as an RFC.





Begen, et al.           Expires September 6, 2011               [Page 9]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


   Semantics                              Token   Reference
   -------------------------------------  ------  ---------
   Redundancy                             RED     [RFCXXXX]

   This document also registers the following semantics with IANA in
   Semantics for the 'ssrc-group' SDP Attribute under SDP Parameters:


   Token    Semantics                      Reference
   -------  -----------------------------  ---------
   RED      Redundancy                     [RFCXXXX]


9.  Acknowledgments

   The authors would like to thank Bill Ver Steeg, Dave Oran and
   Toerless Eckert for their inputs and suggestions.


10.  References

10.1.  Normative References

   [I-D.begen-mmusic-temporal-interleaving]
              Begen, A., Cai, Y., and H. Ou, "Temporal Interleaving
              Attribute in the Session Description Protocol",
              draft-begen-mmusic-temporal-interleaving-00 (work in
              progress), March 2011.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
              with Session Description Protocol (SDP)", RFC 3264,
              June 2002.

   [RFC3376]  Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
              Thyagarajan, "Internet Group Management Protocol, Version
              3", RFC 3376, October 2002.

   [RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport Protocol for Real-Time
              Applications", STD 64, RFC 3550, July 2003.

   [RFC3810]  Vida, R. and L. Costa, "Multicast Listener Discovery
              Version 2 (MLDv2) for IPv6", RFC 3810, June 2004.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session



Begen, et al.           Expires September 6, 2011              [Page 10]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


              Description Protocol", RFC 4566, July 2006.

   [RFC5576]  Lennox, J., Ott, J., and T. Schierl, "Source-Specific
              Media Attributes in the Session Description Protocol
              (SDP)", RFC 5576, June 2009.

   [RFC5888]  Camarillo, G. and H. Schulzrinne, "The Session Description
              Protocol (SDP) Grouping Framework", RFC 5888, June 2010.

10.2.  Informative References

   [I-D.singh-avtcore-mprtp]
              Singh, V., Karkkainen, T., Ott, J., Ahsan, S., and L.
              Eggert, "Multipath RTP (MPRTP)",
              draft-singh-avtcore-mprtp-00 (work in progress),
              February 2011.

   [IC2011]   Evans, J., Begen, A., Greengrass, J., and C. Filsfils,
              "Towards Lossless Video Transport (in submission to IEEE
              Internet Computing)", 2011.

   [RFC2354]  Perkins, C. and O. Hodson, "Options for Repair of
              Streaming Media", RFC 2354, June 1998.

   [RFC2818]  Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.

   [RFC2974]  Handley, M., Perkins, C., and E. Whelan, "Session
              Announcement Protocol", RFC 2974, October 2000.

   [RFC4588]  Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R.
              Hakenberg, "RTP Retransmission Payload Format", RFC 4588,
              July 2006.

   [RFC5652]  Housley, R., "Cryptographic Message Syntax (CMS)", STD 70,
              RFC 5652, September 2009.

   [RFC5751]  Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet
              Mail Extensions (S/MIME) Version 3.2 Message
              Specification", RFC 5751, January 2010.












Begen, et al.           Expires September 6, 2011              [Page 11]


Internet-Draft    Redundancy Grouping Semantics in SDP        March 2011


Authors' Addresses

   Ali Begen
   Cisco
   181 Bay Street
   Toronto, ON  M5J 2T3
   Canada

   Email:  abegen@cisco.com


   Yiqun Cai
   Cisco
   170 W. Tasman Dr.
   San Jose, CA  95134
   USA

   Email:  ycai@cisco.com


   Heidi Ou
   Cisco
   170 W. Tasman Dr.
   San Jose, CA  95134
   USA

   Email:  hou@cisco.com
























Begen, et al.           Expires September 6, 2011              [Page 12]