MMUSIC                                                          A. Begen
Internet-Draft                                                    Y. Cai
Intended status:  Standards Track                                  H. Ou
Expires:  April 12, 2012                                           Cisco
                                                        October 10, 2011


   Duplication Grouping Semantics in the Session Description Protocol
               draft-begen-mmusic-redundancy-grouping-02

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 duplicate the packets and send them
   in separate redundant streams.  This document defines the semantics
   for grouping 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 April 12, 2012.

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 April 12, 2012                 [Page 1]


Internet-Draft    Duplication Grouping Semantics in SDP     October 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.  Using Separate Source Interfaces . . . . . . . . . . . . .  5
     3.3.  Using Separate Destination Addresses and/or Ports  . . . .  5
     3.4.  Dual Streaming over a Single Path or Multiple Paths  . . .  5
   4.  Duplication Grouping . . . . . . . . . . . . . . . . . . . . .  6
     4.1.  "DUP" Grouping Semantics . . . . . . . . . . . . . . . . .  6
     4.2.  DUP Grouping for SSRC-Multiplexed RTP Streams  . . . . . .  7
     4.3.  SDP Offer/Answer Model Considerations  . . . . . . . . . .  7
   5.  SDP Examples . . . . . . . . . . . . . . . . . . . . . . . . .  7
     5.1.  Separate Source Interfaces . . . . . . . . . . . . . . . .  8
     5.2.  Separate Destination Addresses . . . . . . . . . . . . . .  8
     5.3.  Delayed Duplication  . . . . . . . . . . . . . . . . . . .  9
   6.  Performance Evaluation and Reporting . . . . . . . . . . . . . 10
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 11
   9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 11
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 11
     10.2. Informative References . . . . . . . . . . . . . . . . . . 12
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13

















Begen, et al.            Expires April 12, 2012                 [Page 2]


Internet-Draft    Duplication Grouping Semantics in SDP     October 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 in [RFC4588].

   In this document, we describe a technique that involves transmitting
   redundant streams to overcome packet loss.  Variations of this
   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 this document, we use diverse paths
   solely for sending redundant streams.  For our purposes, we do not
   require changes in the RTP protocol.


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
   redundant (often 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 loss.  The level of protection depends on how the
   packets are sent and transmitted inside the network.




Begen, et al.            Expires April 12, 2012                 [Page 3]


Internet-Draft    Duplication Grouping Semantics in SDP     October 2011


   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.

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 routing-plane identical RTP streams might carry the same payload
   but they could use different Synchronization Sources (SSRC) to
   differentiate the RTP packets belonging to each stream.  In the
   context of dual streaming, we assume that the source duplicates the
   RTP packets and put them into separate RTP streams each with a unique
   SSRC identifier.  All the redundant streams are transmitted in the
   same RTP session.

   For example, two redundant RTP streams can be sent to the same IP
   destination address and UDP destination port with a certain delay
   between them [I-D.begen-mmusic-temporal-interleaving].  The streams
   carry the same payload in their respective RTP packets with identical
   sequence numbers.  This allows the receiver (or any other node
   responsible for duplicate suppression) to identify and suppress the
   duplicate packets, and subsequently produce a hopefully loss-free and
   duplication-free output stream (called stream merging).

   In such a scenario (where the 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 to indicate the grouping for the redundant streams.  Instead,
   the 'ssrc-group' attribute [RFC5576] with new semantics has to be
   used to describe the redundancy relation (See Section 4.2).

   If the two routing-plane identical RTP streams were sent to different
   UDP destination ports, there would have been two "m" lines in the SDP
   description and in this case, the 'group' attribute [RFC5888] with
   new semantics would have to be used to describe the redundancy
   relation (See Section 4.1).






Begen, et al.            Expires April 12, 2012                 [Page 4]


Internet-Draft    Duplication Grouping Semantics in SDP     October 2011


3.2.  Using Separate Source Interfaces

   An RTP source might have multiple network interfaces associated with
   it and it can send two redundant streams from two separate
   interfaces.  Such streams can be routed over diverse or identical
   paths depending on the routing algorithm inside the network.  At the
   receiving end, the node responsible for duplicate suppression can
   look into various RTP related fields to identify and suppress the
   duplicate packets.

   If source-specific multicast (SSM) transport is used to carry such
   redundant streams, there will be a separate SSM session for each
   redundant stream since the streams are sourced from different
   interfaces (i.e., IP addresses).  The receiving host has to join each
   SSM session separately via Internet Group Management Protocol (IGMP)
   version 3 [RFC3376] or the Multicast Listener Discovery Protocol
   (MLD) version 2 [RFC3810].  Note that despite being transmitted in
   separate SSM sessions, there is still only one RTP session and the
   redundant streams still have to use unique SSRC identifiers.

3.3.  Using Separate Destination Addresses and/or Ports

   An RTP source might send the redundant streams to separate IP
   destination addresses and/or UDP ports.  In this case, there will be
   multiple "m" lines in the SDP description and the 'group' attribute
   [RFC5888] with new semantics will be used to describe the redundancy
   relation.

3.4.  Dual Streaming over a Single Path or Multiple Paths

   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
       receiver because the chances that the same packet is lost in
       transit again is often small.  This is what is also known as
       Time-shifted Redundancy, Temporal Redundancy or simply Delayed
       Duplication [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.





Begen, et al.            Expires April 12, 2012                 [Page 5]


Internet-Draft    Duplication Grouping Semantics in SDP     October 2011


   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
       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.  Duplication Grouping

4.1.  "DUP" 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 Duplication Group.

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

   The "a=group:DUP" 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).

   The SSRC identifiers for the RTP streams that are carried in the same
   RTP session MUST be unique per [RFC3550].  Thus, each redundant RTP
   stream MUST have its own unique SSRC identifier.  This way, dual
   streaming does not break RTCP reporting.  When the redundant streams
   are described in separate "m" lines and the 'group' attribute is used
   to describe the redundancy relation, the SSRCs for each redundant



Begen, et al.            Expires April 12, 2012                 [Page 6]


Internet-Draft    Duplication Grouping Semantics in SDP     October 2011


   stream MUST be announced in the SDP description using the 'ssrc'
   attribute [RFC5576].

4.2.  DUP 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 duplication is used with SSRC-multiplexed
   streams using the 'ssrc-group' attribute [RFC5576].

   The semantics of "DUP" 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 duplication grouping
   associations:  a=ssrc-group:DUP *(SP ssrc-id) [RFC5576].

4.3.  SDP Offer/Answer Model Considerations

   When offering duplication 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 "DUP"
   semantics.  From the viewpoint of the sender of the offer, these
   cases are indistinguishable.

   When a node is offered a session with the "DUP" grouping semantics
   but it does not support line grouping or the duplication 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 duplication 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 duplication grouping.
   This behavior is specified in [RFC5888].


5.  SDP Examples






Begen, et al.            Expires April 12, 2012                 [Page 7]


Internet-Draft    Duplication Grouping Semantics in SDP     October 2011


5.1.  Separate Source Interfaces

   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 receiving host needs to
   join both SSM sessions separately.


       v=0
       o=ali 1122334455 1122334466 IN IP4 dup.example.com
       s=DUP Grouping Semantics
       t=0 0
       m=video 30000 RTP/AVP 100
       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=ssrc:1000 cname:ch1@example.com
       a=ssrc:1010 cname:ch1@example.com
       a=ssrc-group:DUP 1000 1010
       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.

5.2.  Separate 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 could have been different for the two
   streams.





















Begen, et al.            Expires April 12, 2012                 [Page 8]


Internet-Draft    Duplication Grouping Semantics in SDP     October 2011


        v=0
        o=ali 1122334455 1122334466 IN IP4 dup.example.com
        s=DUP Grouping Semantics
        t=0 0
        a=group:DUP S1a S1b
        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=ssrc:1000 cname:ch1@example.com
        a=mid:S1a
        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=ssrc:1010 cname:ch1@example.com
        a=mid:S1b

   Editor's note:  What if there are multiple streams per "m" line but
   grouping has to take place across "m" lines?  Could we implicitly use
   the CNAMEs to infer the redundancy relation (note that 'ssrc-group'
   attribute is media-level only)?

5.3.  Delayed Duplication

   In this example, the redundant streams have the same IP source and
   destination addresses but different UDP port numbers.  Due to the
   same source and destination addresses, the packets in both streams
   will be routed over the same path.  To provide resiliency against
   packet loss, the duplicate of an original packet is transmitted 50 ms
   later as indicated by the 'duplication-delay' attribute (defined in
   [I-D.begen-mmusic-temporal-interleaving]).



















Begen, et al.            Expires April 12, 2012                 [Page 9]


Internet-Draft    Duplication Grouping Semantics in SDP     October 2011


        v=0
        o=ali 1122334455 1122334466 IN IP4 dup.example.com
        s=DUP Grouping Semantics
        t=0 0
        a=group:DUP S1a S1b
        a=duplication-delay:50
        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=ssrc:1000 cname:ch1@example.com
        a=mid:S1a
        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=ssrc:1010 cname:ch1@example.com
        a=mid:S1b


6.  Performance Evaluation and Reporting

   Each duplicated stream has a separate (unique) SSRC identifier.
   Thus, individual RTCP receiver reports can be sent as usual for each
   of them from the receiving node that suppresses the duplicate
   packets.  This way, the sender can be notified about the delivery
   performance of the individual streams.

   Editor's note:  The receiving node can also produce a new XR report
   to report on the (loss/delay/jitter/etc.) performance of the output
   stream after the stream merging process.  This is TBD.


7.  Security Considerations

   There is a weak threat for the receiver that the duplication grouping
   can be modified to indicate relationships that do not exist.  Such
   attacks might result in failure of the duplication 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.




Begen, et al.            Expires April 12, 2012                [Page 10]


Internet-Draft    Duplication Grouping Semantics in SDP     October 2011


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.


   Semantics                              Token   Reference
   -------------------------------------  ------  ---------
   Duplication                            DUP     [RFCXXXX]

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


   Token    Semantics                      Reference
   -------  -----------------------------  ---------
   DUP      Duplication                    [RFCXXXX]


9.  Acknowledgments

   The authors would like to thank Colin Perkins, 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, "Delayed Duplication
              Attribute in the Session Description Protocol",
              draft-begen-mmusic-temporal-interleaving-02 (work in
              progress), June 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



Begen, et al.            Expires April 12, 2012                [Page 11]


Internet-Draft    Duplication Grouping Semantics in SDP     October 2011


              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
              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-02 (work in progress),
              July 2011.

   [IC2011]   Evans, J., Begen, A., Greengrass, J., and C. Filsfils,
              "Toward Lossless Video Transport (to appear in IEEE
              Internet Computing)", November 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



Begen, et al.            Expires April 12, 2012                [Page 12]


Internet-Draft    Duplication Grouping Semantics in SDP     October 2011


              Specification", RFC 5751, January 2010.


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 April 12, 2012                [Page 13]