One document matched: draft-versteeg-avt-rapid-synchronization-for-rtp-01.txt
Differences from draft-versteeg-avt-rapid-synchronization-for-rtp-00.txt
AVT B. VerSteeg
Internet-Draft A. Begen
Intended status: Standards Track Cisco Systems
Expires: May 7, 2009 T. VanCaenegem
Alcatel-Lucent Bell
November 3, 2008
Unicast-Based Rapid Synchronization with RTP Multicast Sessions
draft-versteeg-avt-rapid-synchronization-for-rtp-01
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
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
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on May 7, 2009.
Copyright Notice
Copyright (C) The IETF Trust (2008).
Abstract
When a receiver joins a multicast session, it may need to acquire and
parse certain key information before it can process any data sent in
the multicast session. Depending on the join time, length of the key
information repetition interval, size of the key information as well
as the application and transport properties, the time lag before a
receiver can usefully consume the multicast data, which we refer to
VerSteeg, et al. Expires May 7, 2009 [Page 1]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
as the synchronization delay, varies and may be large. This is an
undesirable phenomenon for receivers that frequently switch among
different multicast sessions, such as video broadcasts. In this
document, we describe a method using existing RTP and RTCP protocol
machinery that reduces the synchronization delay. In this method, an
auxiliary unicast RTP session carrying the key information to the
receiver precedes/accompanies the multicast flow. This unicast flow
may be transmitted at a faster than natural rate to further
accelerate the synchronization. The motivating use case for this
capability is multicast applications that carry real-time compressed
audio and video. However, the proposed method can also be used in
other types of multicast applications where the synchronization delay
is long enough to be a problem.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 6
3. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4. Elements of Delay in Multicast Streams . . . . . . . . . . . . 7
5. Elements of Delay in Video Systems . . . . . . . . . . . . . . 9
5.1. Overview of MPEG-2 Transport Streams . . . . . . . . . . . 9
5.2. Key Information Latency in Video Applications . . . . . . 11
5.2.1. PSI (PAT/CAT/PMT) Acquisition Delay . . . . . . . . . 11
5.2.2. Random Access Point Acquisition Delay . . . . . . . . 11
5.3. Buffering Delays in Video Applications . . . . . . . . . . 12
5.3.1. Network-Related Buffering Delays . . . . . . . . . . . 12
5.3.2. Application-Related Buffering Delays . . . . . . . . . 13
5.4. Breakdown of Typical Synchronization Delays in IPTV . . . 14
6. Rapid Multicast Synchronization . . . . . . . . . . . . . . . 14
6.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2. Message Flows and State Machines . . . . . . . . . . . . . 16
6.3. Shaping the Unicast Burst . . . . . . . . . . . . . . . . 20
6.4. Failure Cases . . . . . . . . . . . . . . . . . . . . . . 20
7. Encoding of the Signaling Protocol in RTCP . . . . . . . . . . 20
7.1. Transport-Layer Feedback Messages . . . . . . . . . . . . 21
7.1.1. RMS Request . . . . . . . . . . . . . . . . . . . . . 21
7.1.2. RMS Information . . . . . . . . . . . . . . . . . . . 22
7.1.3. RMS Termination . . . . . . . . . . . . . . . . . . . 25
7.2. Payload-Specific Feedback Messages . . . . . . . . . . . . 25
7.2.1. MPEG2-TS TSRAP . . . . . . . . . . . . . . . . . . . . 25
7.3. Multicast Join Report Block . . . . . . . . . . . . . . . 26
7.3.1. Report Block Format . . . . . . . . . . . . . . . . . 26
7.3.2. SDP Signaling . . . . . . . . . . . . . . . . . . . . 27
8. SDP Definitions and Examples . . . . . . . . . . . . . . . . . 28
8.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 28
8.2. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 28
VerSteeg, et al. Expires May 7, 2009 [Page 2]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
9. NAT Considerations . . . . . . . . . . . . . . . . . . . . . . 31
10. Open Source RTP Receiver Implementation . . . . . . . . . . . 31
11. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 31
12. Security Considerations . . . . . . . . . . . . . . . . . . . 31
13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31
13.1. Registration of SDP Attribute Values . . . . . . . . . . . 32
13.2. Registration of FMT Values . . . . . . . . . . . . . . . . 32
13.3. Registration of RTCP XR Block Types . . . . . . . . . . . 33
14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 33
15. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 33
15.1. draft-versteeg-avt-rapid-synchronization-for-rtp-01 . . . 33
16. References . . . . . . . . . . . . . . . . . . . . . . . . . . 34
16.1. Normative References . . . . . . . . . . . . . . . . . . . 34
16.2. Informative References . . . . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 35
Intellectual Property and Copyright Statements . . . . . . . . . . 37
VerSteeg, et al. Expires May 7, 2009 [Page 3]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
1. Introduction
Most multicast flows carry a stream of inter-related data. Certain
information must first be acquired by the receivers to start
processing any data sent in the multicast session. This document
refers to this information as Key Information. The key information
is conventionally sent periodically in the multicast session and
usually consists of items such as a description of the schema for the
rest of the data, references to which data to process for the
receivers, encryption information including keys, as well as any
other information required to process the data in the multicast flow.
Real-time multicast applications require the receivers to buffer
data. The receiver may have to buffer data to smooth out the network
jitter, to allow loss-repair methods such as Forward Error Correction
and retransmission to recover the missing packets, and to satisfy the
data processing requirements of the application layer.
When a receiver joins a multicast session, it has no control over
what point in the flow is currently being transmitted. Sometimes the
receiver may join the session right before the key information is
sent in the session. In this case, the required waiting time is
usually minimal. Similarly, the receiver may also join the session
right after the key information has been transmitted. In this case
the receiver has to wait for the key information to appear again in
the stream before it can start processing any multicast data. In
some other cases, the key information is not contiguous in the flow
but dispersed over a large period, which forces the receiver to wait
for all of the key information to arrive before starting to process
the rest of the data.
The net effect of waiting for the key information and waiting for
various buffers to fill up is that the receivers may experience
significantly large delays in data processing. In this document, we
refer to the difference between the time a receiver joins the
multicast session and the time the receiver acquires all the
necessary key information as the Synchronization Delay. The
synchronization delay may not be the same for different receivers; it
usually varies depending on the join time, length of the key
information repetition interval, size of the key information as well
as the application and transport properties.
The varying nature of the synchronization delay adversely affects the
receivers that frequently switch among multicast sessions. In this
specification, we address this problem for RTP-based multicast
applications and describe a method that uses the fundamental tools
offered by the existing RTP and RTCP protocols [RFC3550]. In this
method, either the multicast source (or the distribution source in a
VerSteeg, et al. Expires May 7, 2009 [Page 4]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
single-source multicast (SSM) session) retains key information for a
period after transmission, or an intermediary network element joins
the multicast session and continuously caches the key information as
it is sent in the session and acts as a feedback target (See
[I-D.ietf-avt-rtcpssm]) for the session. When a receiver wishes to
join the same multicast session, instead of simply issuing an
Internet Group Management Protocol (IGMP) [RFC3376] Join message, it
sends a request to the feedback target address for the session asking
for the key information. The feedback target starts a unicast
retransmission RTP session and sends the key information to the
receiver over that session. If there is spare bandwidth, the
feedback target may also burst the key information at a faster than
natural rate. As soon as the receiver acquires the key information,
it can join the multicast group and start processing the multicast
data. This method potentially reduces the synchronization delay. We
refer to this method as Unicast-based Rapid Synchronization with RTP
Multicast Sessions. A simplified network diagram showing the rapid
synchronization method through an intermediary network element is
depicted in Figure 1.
+-----------------+
+--->| Intermediary |
| ...| Network Element |
| : |(Feedback Target)|
| : +-----------------+
| v
+--------+ +------+ +--------+
| RTP |---->|Router|........>|Joining |
| Sender | | |-------->| RTP |
+--------+ +------+ |Receiver|
| +--------+
|
| +--------+
+----------->|Existing|
| RTP |
|Receiver|
+--------+
---> Multicast RTP Flow
...> Unicast RTP Flow
Figure 1: Rapid synchronization through an intermediary network
element
A primary design goal in this solution is to use the existing tools
in the RTP protocol family. This improves the versatility of the
existing implementations, and promotes faster deployment and better
interoperability. To this effect, we use the unicast retransmission
VerSteeg, et al. Expires May 7, 2009 [Page 5]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
support of RTP [RFC4588] and the capabilities of RTCP to handle the
signaling needed to accomplish the synchronization. The packet(s)
carrying the key information are sent by the feedback target in the
auxiliary unicast session for rapid synchronization. These are
constructed as retransmission packets that would have been sent in a
unicast RTP session to recover the missing packets at a receiver that
has never received any packet. In fact, there is a single RTP
session used for both rapid synchronization and retransmission-based
loss repair. The conventional RTCP feedback message that requests
the retransmission of the missing packets [RFC4585] indicates their
sequence numbers. However, upon joining a new session the receiver
has never received a packet and thus, does not know the sequence
numbers. Instead, the receiver sends a newly defined RTCP feedback
message to request the key information needed to rapidly synchronize
with the main multicast session. It is also worth noting that in
order to issue the initial RTCP message to the feedback target, the
SSRC of the session to be joined must be known prior to any packet
reception, and hence, needs to be signaled out-of-band (or in-band).
In a Session Description Protocol (SDP) description, the SSRC MUST be
signaled through the 'ssrc' attribute [I-D.ietf-avt-rtcpssm].
In the rest of this specification, we have the following outline: In
Section 4, we describe the delay components in generic multicast
applications. In Section 5, we introduce the delay components that
are specific to video systems. We provide the protocol details of
the rapid multicast synchronization method in Section 6 and
Section 7. Section 8 and Section 9 discuss the SDP signaling issues
with examples and NAT-related issues, respectively. Finally, in
Section 10 we provide a pointer to an open source RTP Receiver code
that implements the functionalities introduced in this document.
Note that Section 3 provides a list of the acronyms frequently used
in this document.
It should be noted that while this document primarily focuses on
multicast applications that carry compressed audio and video, the
core of the described method is payload-independent and can also be
used in multicast applications that carry other types of data.
2. Requirements Notation
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 [RFC2119].
VerSteeg, et al. Expires May 7, 2009 [Page 6]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
3. Acronyms
This document uses the following acronyms frequently:
CAT: Conditional access table.
DTS: Decoding timestamp.
ECM: Entitlement control message.
EMM: Entitlement management message.
ES: Elementary stream.
GoP: Group of pictures.
IDR: Instantaneous decoding refresh.
MPEG2-TS: MPEG2 transport stream.
MPTS: Multi program transport stream.
PAT: Program association table.
PCR: Program clock reference.
PMT: Program map table.
PSI: Program specific information.
PTS: Presentation timestamp.
RAP: Random access point.
SPTS: Single program transport stream.
TSRAP: Transport stream random access point.
4. Elements of Delay in Multicast Streams
In an any-source (ASM) or a single-source (SSM) multicast delivery
system, there are three major elements that contribute to the overall
synchronization delay when a receiver switches from one multicast
session to another one. These are:
VerSteeg, et al. Expires May 7, 2009 [Page 7]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
o Multicast switching delay
o Key information latency
o Buffering delays
Multicast switching delay is the delay that is experienced to leave
the current multicast session (if any) and join the new multicast
session. In typical systems, the multicast join and leave operations
are handled by a group management protocol. For example, the
receivers and routers participating in a multicast session may use
the Internet Group Management Protocol (IGMP) [RFC3376]. In
[RFC3376], when a receiver wants to join a multicast session, it
sends an IGMP Join message to its upstream router and the routing
infrastructure sets up the multicast forwarding state to deliver the
packets of the multicast session to the new receiver. Depending on
the proximity of the upstream router, the current state of the
multicast tree, the load on the system and the protocol
implementation, the join times vary. Current systems provide join
latencies usually less than 200 milliseconds (ms). If the receiver
had been participating in another multicast session before joining
the new session, it needs to send an IGMP Leave message to its
upstream router to leave the session. In IGMP version 3 [RFC3376],
the leave times are usually smaller than the join times, however, it
is possible that the Leave and Join messages may get lost, in which
case the multicast switching delay inevitably increases.
Key information latency is the time it takes the receiver to acquire
the key information. It is highly dependent on the proximity of the
actual time the receiver joined the session to the next time the key
information will be sent to the receivers in the session, whether the
key information is sent contiguously or not, and the size of the key
information. For some multicast flows, there is a little or no
interdependency in the data, in which case the key information
latency will be nil or negligible. For other multicast flows, there
is a high degree of interdependency. One example of interest is the
multicast flows that carry compressed audio/video. For these flows,
the key information latency may become quite large and be a major
contributor to the overall delay. We describe the interdependency
associated with audio/video flows in detail in Section 5.
The buffering component of the overall synchronization delay is
driven by the way the application layer processes the payload. In
many multicast applications, an unreliable transport protocol such as
UDP [RFC0768] is often used to transmit the data packets, and the
reliability, if needed, is usually addressed through other means such
as Forward Error Correction and retransmission
[I-D.ietf-rmt-pi-norm-revised]. These loss-repair methods require
VerSteeg, et al. Expires May 7, 2009 [Page 8]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
buffering at the receiver side to function properly. In many
applications, it is also often necessary to de-jitter the incoming
data packets before feeding them to the application. The de-
jittering process also increases the buffering delays. Besides these
network-related buffering delays, there are also specific buffering
needs that are required by the individual applications. For example,
MPEG decoders require a significant amount of content to be available
in the decoder buffers prior to starting to decode the content. We
describe these buffering requirements for audio/video applications in
detail in Section 5.
5. Elements of Delay in Video Systems
For typical multicast-based video delivery systems, the multicast
switching delay (time required to leave the previous multicast
session and join the new session) is not the primary contributor to
the overall synchronization delay. The multicast flows are typically
already present at the edge or deep in the network, the propagation
delays for join operations are modest, and the multicast routers can
typically process the Join and Leave messages quickly. Even if the
edge multicast router is not currently a member of the requested
multicast session, the multicast routing control messages propagate
through the network rapidly and trees are built without experiencing
large delays. Even in cases where a number of tree branches need to
be built to the edge multicast router, this cost is frequently
amortized over a large number of receivers such that only the first
receiver joining the group experiences the increased delay. Further,
this delay can be eliminated at the cost of extra bandwidth in the
network core by having the edge routers do static joins for the set
of sessions they expect receivers to be interested in. These
techniques usually provide a well-bounded multicast switching delay.
Once the join operation completes and a receiver starts receiving
media content for the first time in a multicast session, it often
experiences a considerable amount of key information latency and
buffering delays. In the following subsections, we discuss the
details of these delay elements, using MPEG2 Transport Streams as the
motivating use case.
5.1. Overview of MPEG-2 Transport Streams
MPEG2 Transport Stream (MPEG2-TS) [MPEG2TS] is an encapsulation
method and transport that multiplexes digital video and audio
content, together with ancillary metadata, and produces a
synchronized multiplexed stream that is tailored for transport over
packet or cell-oriented networks. MPEG2-TS is ubiquitous in
broadcast applications over both terrestrial and satellite networks.
VerSteeg, et al. Expires May 7, 2009 [Page 9]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
Both Advanced Television Systems Committee (ATSC) in North America
and Digital Video Broadcasting (DVB) in Europe use MPEG2-TS in their
standards. MPEG2-TS has been standardized by both ISO and ITU
[MPEG2TS]. While MPEG2-TS was originally limited to carry MPEG-2
encoded content, the specification was later extended to cover MPEG-
4/AVC audio/video encoding standards as well.
MPEG2-TS is a container format that describes the schema of the audio
and video content and the in-band control information. Prior to
multiplexing, an audio and a video encoder output audio and video
Elementary Streams (ES), respectively. The ES streams are then
packetized to form the Packetized Elementary Streams (PES). The
resulting elements are called PES packets. A transport stream (TS)
encapsulates several PES streams and other data, and carries them in
TS packets. The RTP payload format for carrying TS packets in an RTP
stream is specified in [RFC2250]. In addition to the audio and video
ES streams, there are ES streams that carry control data.
Program Specific Information (PSI) consists of metadata carried in
the transport stream. PSI includes Program Association Table (PAT),
Conditional Access Table (CAT) and Program Map Table (PMT). A PAT
has information about all the programs carried in the transport
stream. It lists the 13-bit Program IDs (PID) for all the PMTs,
associating them with the individual programs. Each of the ES
streams of a particular program in the transport stream also has the
same PID values. This way, a decoder at the receiving side can
extract the desired TS packets from the transport stream by checking
their PID values. If the transport stream is not a Multi-Program
Transport Stream (MPTS), but rather it is a Single-Program Transport
Stream (SPTS), all the ES streams in the transport stream correspond
to a single program.
CAT defines the type of the scrambling used (either at the PES or TS
level), and identifies all the PID values of the TS packets that
contain the Entitlement Management Messages (EMM). In addition to
containing the PID values of each ES stream associated with a
particular program, the PMT table also includes private data
associated with the program such as the PID value of the packet
containing the Entitlement Control Messages (ECM). The data
contained in the EMM and ECM messages are vital in descrambling
encrypted content. Note that PSI is carried in clear and is never
scrambled so that a receiver which just started receiving the
transport stream can process the PSI. The PAT, CAT and PMT tables
must be parsed by the decoder in order to find the ES streams,
private data as well as the encryption information for a given
program.
MPEG2-TS produces output that is synchronized to a common clock
VerSteeg, et al. Expires May 7, 2009 [Page 10]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
across all the ESs in the multiplex. To assist the audio and video
decoders, programs periodically provide a Program Clock Reference
(PCR) value in the transport stream. PCR values are embedded in the
TS adaptation field headers and are inserted by the encoder at least
every 100 ms. A PCR timestamp represents the value of the encoder's
system clock when it was sampled. The system clock is driven by a
local 27 MHz oscillator.
PCR is extremely important in native MPEG-2 transport to keep the
decoders synchronized. For example, the periodically sent Decoding
Timestamps (DTS) and Presentation Timestamps (PTS) are specified
relative to the PCR value and the decoders use the PCR value as the
basis for a master clock during decoding and playout.
5.2. Key Information Latency in Video Applications
We classify the key information latency into two categories.
5.2.1. PSI (PAT/CAT/PMT) Acquisition Delay
As we discussed in Section 5.1, the video (and the audio as well) in
an MPEG2-TS is self describing, and the receiver must parse certain
control information in the PAT, CAT and PMT tables (i.e., PSI)
contained in the transport stream in order to know how to parse the
rest of the stream (i.e., to find the audio and video elementary
streams, private data and the encryption information for a given
program).
Many video services employ content encryption and the encryption keys
must be parsed as well for decrypting the content. In order to
enable various system elements to process video effectively, certain
portions of the stream are left unencrypted. The PAT/PMT tables are
always in the clear. The structure of the ECMs is also in the clear,
although the ECM content which contains keying material is encrypted.
The PSI information is repeated periodically in the transport stream,
thus, when a receiver joins the multicast session, it needs to wait
until the next time PSI is sent in the transport stream.
5.2.2. Random Access Point Acquisition Delay
Conventional MPEG2 video encoders encode the video content in Groups
of Pictures (GoP). Each GoP is encoded independently from other GoPs
and starts with an intra-coded frame (I-frame) that does not have any
reference to other frames in the same GoP, i.e., an I-frame contains
the representation of an entire picture and can be decoded
independently. Thus, the start of an I-frame is said to be a Random
Access Point (RAP).
VerSteeg, et al. Expires May 7, 2009 [Page 11]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
On the other hand, due to the temporal compression, rest of the
frames in the same GoP may have references to the I-frame or to other
frames in the same GoP. Due to this interdependency among the
frames, one generally has to receive certain elements of the GoP
prior to decoding or rendering any part of the GoP. For example, the
decoder can decode a frame that is dependent on two other frames only
after these two frames are decoded.
Usually, GoP durations are between 500 ms and one second. However,
more advanced codecs may use longer GoPs to gain from the encoding
efficiency. When a receiver joins the multicast session, it needs to
wait until the next RAP shows up in the multicast stream before it
can start decoding. Since the frame that is currently being
multicast does not depend on the join time, the average time a
receiver waits for RAP, i.e., the average RAP acquisition delay, is
approximately equal to half of the GoP duration. Hence, for longer
GoPs, the RAP acquisition delay is proportionally longer.
Advanced Video Coding (AVC) (also called MPEG4 part 10) compression
is very similar to MPEG2 compression. It has a few more compression
tools available, including Hierarchical GoPs. In a hierarchical GoP,
the dependent frames of a GoP may reference the key frame at the
start of this GoP or the key frame at the start of the next GoP.
This additional dependency causes a longer RAP acquisition delay, as
the decoder must receive two I-frames (spread between two logical
GoPs) before decoding can commence. In an Open GOP, a frame in one
GoP may refer to a frame in a previous GoP. AVC also has the ability
to insert Instantaneous Decoding Refresh (IDR) frames. Frames that
follow an IDR frame cannot reference frames that precede an IDR
frame. IDR frames are useful for editing AVC streams, but are
typically do not appear often enough in streaming video to be useful
in a stream synchronization context.
Note that in order for an intermediary network element such as a
retransmission server to find the random access points in the video
stream (e.g., I-frames), the necessary structural information must be
in the clear if the intermediary is not in possession of the
necessary keys.
5.3. Buffering Delays in Video Applications
We classify the buffering delays into two categories.
5.3.1. Network-Related Buffering Delays
In general, multicast-based video applications use an unreliable
underlying transport protocol such as UDP [RFC0768] to distribute the
content to a large number of receivers. This is largely due to the
VerSteeg, et al. Expires May 7, 2009 [Page 12]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
fact that these applications are one way in nature and providing
closed-loop reliability does not scale well when the number of
receivers is large or the acceptable playout delay is small, or both.
Rather, if there is a need for reliability, the applications may
employ one or more loss-repair methods to recover the packets missing
at each receiver (The Reliable Multicast Transport Working Group has
several standardized solutions for this problem. Refer to
[I-D.ietf-rmt-pi-norm-revised] for details). For example, Forward
Error Correction (FEC) may be used proactively and/or on-demand to
provide reliable transmission to a potentially very large multicast
group in a scalable manner [I-D.ietf-fecframe-framework]. Similarly,
retransmissions may be used in RTP-based multicast sessions where the
retransmissions can be handled by local repair servers rather than
the source itself [I-D.ietf-avt-rtcpssm]. However, regardless of the
type of the loss-repair method(s) adopted by an application, loss-
recovery operations always require additional buffering at the
receiver side. The amount of buffering increases with the FEC block
size when FEC is used, and with the round-trip time between the
receiver and the local repair server when retransmission is used.
Audio and video decoders demand almost jitter-free content. If any
jitter is introduced during the transmission in the network or due to
the loss-repair methods, the jitter has to be smoothed out before the
content is fed to the decoder. This is called de-jittering and it
usually adds up to the buffering delay.
5.3.2. Application-Related Buffering Delays
The application buffering requirements for MPEG-encoded content are
quite rigorous, particularly for the MPEG-based video applications.
Video compression devices apply more bits to represent certain scenes
than they do for other scenes. A very complex scene (individual
picture) requires considerably more information than a simple scene.
Furthermore, pictures that are entirely intra-coded, e.g., I-frames,
consume more bits compared to pictures that make use of predictive
coding. Each scene is shown by the decoder at a certain fixed frame
rate (e.g., 24 fps or 30 fps). Since some scenes are comprised more
bits than other scenes, the output rate of the decoder buffer is
usually variable. However, the network flow is typically Constant
Bit Rate (CBR) or Capped Variable Bit Rate (Capped VBR). The net
effect is that the input rate to the decoder buffer is close to
constant, but the output rate is highly variable.
The video encoders keep track of the decoder buffer size, and use
this information to regulate the temporal compression. This forces
the decoder buffer to "breathe." In order to avoid underflow, the
decoder buffer must fill up to a certain level prior to starting to
decode and play the content. The decoder buffer size required to
VerSteeg, et al. Expires May 7, 2009 [Page 13]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
avoid underflow is dependent on the encoder, and the encoder signals
the decoder buffering requirements in-band. Typical decoder buffer
requirements for MPEG2 content range from a few hundreds of
milliseconds to a few seconds. However, AVC/MPEG4 part 10 encoders
usually tend to use more temporal compression, and thus require a
larger buffer at the decoder side. This consequently increases the
buffering delays.
5.4. Breakdown of Typical Synchronization Delays in IPTV
Editor's note: This section may provide typical ranges for each of
the delay components based on the observations in the field. This
section is for educational and illustrative purposes.
6. Rapid Multicast Synchronization
The video systems we consider as a use case in this document
encapsulate multicast video flows in an IP/UDP/RTP/MPEG2-TS/<codec>
format. Typical codecs supported by MPEG2-TS include MPEG2 and AVC/
MPEG4 part 10, although other codecs are also in use. For more
details on RTP encapsulation of TS packets, refer to [RFC2250].
Note that many legacy video deployments today do not use RTP
encapsulation. However, in order to use the rapid synchronization
method specified in this document, RTP encapsulation is clearly
required.
We start this section with an overview of the rapid (multicast)
synchronization method.
6.1. Overview
RTP [RFC3550], together with [RFC4588] and [RFC4585] provide the
mechanisms needed to encapsulate a data flow and use RTCP feedback to
implement a robust loss-recovery mechanism for that flow. When
packets are lost, a receiver may use RTCP NACK messages to request
retransmission of those packets using RTP retransmission packets.
In order to achieve rapid synchronization, the receiver can use this
retransmission mechanism to request all of the data from the most
recent RAP. We therefore employ a new RTP/RTCP-based mechanism that
boils down to "I do not have synchronization with the stream. Send
me a repair burst that will cover all of the required data from a
recent RAP to the point the stream has reached in the multicast
session." Since the receiver does not actually know the starting RTP
sequence number of the RAP data, it cannot use the conventional RTCP
NACK message. Instead, we define a new RTCP transport-layer feedback
VerSteeg, et al. Expires May 7, 2009 [Page 14]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
message.
Note that the rapid synchronization flow and the normal
retransmission flow share the same RTP session.
In order to reduce the synchronization delay associated with
processing a new RTP encapsulated multicast flow, either the media
source may retain the stream state, and/or a Retransmission Server
(RS) may cache that flow near the egress edge and provide an
accelerated unicast burst to the requesting receiver. Which element
performs these functions depends on the desired scale of the system.
The protocol machinery is agnostic to the difference, as both use the
RTCP feedback target address as the way to identify the element
performing these functions.
Where a Retransmission Server (RS) is employed, it semi-permanently
joins the multicast session and receives the RTP steams it wishes to
cache so that it can perform the retransmission functions. For the
rapid synchronization support, RS parses the incoming flows, looking
for the key information. The key information may be segregated by RS
into two components - the key information that occurs in sequence
with the RTP data and that which does not occur in RTP sequence
order.
When acquiring an RTP session, the RTP Receiver (RR) sends an RTCP
message to the feedback target requesting an accelerated burst of
data from the multicast session via unicast including any key
information that occurs in sequence with the RTP data plus any
optional key information that does not occur in RTP sequence order.
In the case of IP/UDP/RTP/MPEG2-TS encapsulated video streams, the
key information that may not occur in the RTP sequence order may
consist of the information required to demultiplex and decode the
MPEG2-TS. We refer to this information as the Transport Stream
Random Access Point (TSRAP). The TSRAP information includes the PAT,
PMT, PCR and optionally the ECMs. The TSRAP information is sent from
the feedback target to RR in a newly defined RTCP payload-specific
feedback message.
The sequential key information, on the other hand, (i.e., the PES
header, I-frame and subsequent data) is always sent in the unicast
RTP flow, using the RTP retransmission payload format. This has
several advantages, including easy correlation between the packets in
the RTP session carrying the unicast burst and those of the multicast
session, and the ability of the receiver to utilize the same
algorithms for reception and processing the key information as it
does for dealing with RTP retransmissions during the normal session
operation.
VerSteeg, et al. Expires May 7, 2009 [Page 15]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
The RTP data is sent from the feedback target to the receiver
starting with the sequential key information via unicast as described
above. The MPEG data sent in the unicast burst starts with an
Elementary Stream Random Access Point (ESRAP). This includes a PES
header containing a PTS, followed by a sequence header, followed by
an I-frame. The unicast burst continues at a higher than natural
rate until the unicast burst catches up with the real-time multicast
flow.
6.2. Message Flows and State Machines
The flow diagram for unicast-based rapid synchronization is sketched
in Figure 2. In this figure, we have an RTP Sender and an RTP
Receiver (RR). The rapid synchronization support is provided in this
scenario by a Retransmission Server (RS), although the message flows
are identical to the case where the rapid synchronization is
performed by a feedback target co-located with the media source.
Note that [I-D.ietf-avt-rtcpssm] permits the feedback target to be a
retransmission server, since it is a logical function to which RRs
send their unicast feedback.
VerSteeg, et al. Expires May 7, 2009 [Page 16]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
+--------+
| RTP |
| Sender |
+--------+
|
v
+--------------+
| Router |
| |<----- (4) IGMP Join ------+
+--------------+ |
| | |
+-------+ +--- (5) New Multicast Flow ---+ |
| | |
v v |
+--------------+ +----------+
| | <. (1) Rapid Synch Request . | |
| | & Additional Requirements | |
|Retransmission| .. (2) Burst Description ..> | RTP |
| Server | .... (3) Unicast Burst ....> | Receiver |
| (RS) | & Payload-specific Info | (RR) |
| | <..... (6) Termination ..... | |
| | & Rapid Synch Report(s) | |
+--------------+ +----------+
---> Multicast Flows and IGMP Messages
...> Unicast Flows
Figure 2: Flow diagram for unicast-based rapid synchronization
The following steps describe rapid synchronization in detail:
1. RR sends a rapid synchronization request for the new multicast
RTP session to the feedback target address of that session. This
request is sent in an RTCP transport-layer feedback message
[RFC4585], which is defined in Section 7.1.1. The RTCP message
contains the SSRC of RR and the SSRC of the media source. Note
that since no RTP packets have been received yet for this
session, the SSRC must be obtained out-of-band or in-band. For
sessions described using SDP [RFC4566], the SSRC MUST be signaled
using the 'ssrc' attribute of the media description (The 'cname'
source attribute MUST also be present
[I-D.ietf-mmusic-sdp-source-attributes]).
In the RTCP message, RR MAY also specify additional requirements.
This information is used by RS to prepare a rapid synchronization
burst that conforms with RR's requirements.
VerSteeg, et al. Expires May 7, 2009 [Page 17]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
2. RS receives the rapid synchronization request, and decides
whether to accept it or not. If RS accepts the request, it sends
an RTCP message to RR that comprises fields that describe the
burst RS will generate and send, possibly including the
indication when RR should switch to the multicast stream. This
new RTCP transport-layer feedback message is defined in
Section 7.1.2. For redundancy purposes, this message MAY be sent
multiple times towards RR. Note that RS learns the IP address
and port information for RR from the rapid synchronization
request it received. (This description glosses over the NAT
details. Refer to Section 9 for a discussion of NAT-related
issues.)
If RS cannot provide a unicast rapid synchronization, RS rejects
the request and informs RR immediately via the RTCP feedback
message. If RR receives a message indicating that its rapid
synchronization request has been denied, it abandons the rapid
synchronization attempt and SHOULD immediately join the RTP
multicast session by sending an IGMP Join message [RFC3376] to
its upstream multicast router for the new multicast session.
3. If RS accepts the rapid synchronization request, it transmits (in
addition to the RTCP feedback message describing the burst) the
unicast RTP burst data and any additional payload-specific RTCP
message(s) that may contain information that is not provided in
the unicast RTP burst. Note that these RTCP messages are usually
sent in a compound RTCP packet (See Section 6.1 of [RFC4585]),
which is either sent prior to the data burst or during the data
burst.
4. At the appropriate moment (as indicated or computed from the
burst parameters specified in the burst description), RR sends an
IGMP Join message [RFC3376] to its upstream multicast router for
the new multicast session.
5. RR starts receiving the multicast RTP flow.
6. RS may know when it needs to stop the unicast burst based on the
burst parameters. Or, RR may explicitly let RS know the sequence
number of the first RTP packet it received from the multicast
session via a new RTCP transport-layer feedback message (defined
in Section 7.1.3). With this information, RS can decide when to
terminate the unicast burst. Against the possibility of a packet
loss, this message MAY be sent multiple times towards RS as long
as RR follows the RTCP timer rules of [RFC4585].
Note that one or more of the data packets may have been dropped
by the network during bursting. To recover them, RR MAY
VerSteeg, et al. Expires May 7, 2009 [Page 18]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
explicitly request a retransmission for those packets after the
burst completes.
It is possible that RR may decide to switch to a new multicast
session while an earlier rapid synchronization request is still
pending or active. In that case, RR SHOULD cancel the pending/active
rapid synchronization operation before it sends a new request for the
new multicast session.
It is also possible that the rapid synchronization request sent by RR
may get lost. Or, RS may have received the request and accepted to
service the request, however, the payload-specific RTCP message(s)
sent by RS may be dropped in the network. In such cases RR either
would not receive any RTP burst data, or it would receive the RTP
burst data but it would not be able to benefit from it without the
payload-specific information. Thus, when RR infers that rapid
synchronization has failed, it SHOULD first cancel the pending/active
rapid synchronization operation. Then, if staying on the same
session, RR SHOULD join the multicast session; if switching to a new
session, RR MAY send a new rapid synchronization request for the new
session. See Section 6.4 for more details.
To cancel the pending request and stop any existing rapid
synchronization operation, RR SHOULD send an RTCP BYE message for the
unicast retransmission session. Upon receiving an RTCP BYE message,
RS MUST terminate the rapid synchronization operation, and cease
transmitting any further packets of the associated unicast burst.
Section 6.1 of [RFC3550] mandates the RTCP BYE message always to be
sent with a sender or receiver report in a compound RTCP packet (If
no data has been received, an empty receiver report MUST be
included). With the information contained in the receiver report, RS
can also figure out how many duplicate RTP packets have been
delivered to RR (Note that this will be an upper-bound estimate as
one or more packets might have been lost during the burst
transmission). The impact of duplicate packets and measures that can
be taken to minimize the impact of receiving duplicate packets will
be addressed in Section 6.3.
Note that sending an RTCP BYE message for the unicast session would
not prevent RR from asking for a retransmission from RS at a later
time since the next time RR sends a retransmission request to RS, the
logical retransmission session will be re-instantiated. Thus, if RR
is already seeing an overlap in the data received from the unicast
and multicast sessions, RR MAY also send an RTCP BYE message to make
RS stop the unicast burst.
Also note that if RR decides to switch to a new multicast session
after it already joined a multicast session following a rapid
VerSteeg, et al. Expires May 7, 2009 [Page 19]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
synchronization request, RR MUST also send an RTCP BYE message for
the session associated with the current multicast source stream.
Whether RR completes the rapid synchronization successfully or not,
it is a good practice to gather detailed information about RR's rapid
synchronization experience. For this purpose, in Section 7.3, we
define a new RTCP extended report (XR) block type, which we refer to
as Multicast Join Report. This report is designed to be payload-
independent, thus, it can be used by any multicast application that
supports rapid synchronization.
6.3. Shaping the Unicast Burst
Editor's note: This section may discuss sizing of the buffers,
output buffer overload protection, output bandwidth management,
adjustment of burst rate and duration.
TBC.
6.4. Failure Cases
Editor's note: This section may discuss what happens if the request
for rapid synchronization gets lost, or rapid synchronization fails,
or when there are no available resources, etc.
TBC.
7. Encoding of the Signaling Protocol in RTCP
This section defines the formats of the RTCP transport-layer feedback
messages that are exchanged between the Retransmission Server (RS)
and RTP Receiver (RR) during rapid synchronization. These messages
are payload-independent and SHOULD be used by all RTP-based multicast
applications that support rapid synchronization regardless of the
payload they carry.
This section also defines the format of the RTCP payload-specific
feedback message that is used for rapid synchronization by the RTP
applications carrying MPEG2-TS. Other RTCP payload-specific feedback
messages MAY similarly be defined in other documents for different
payload types.
Finally, a new RTCP extended report block type to be used with the
rapid synchronization method is also defined in this section.
The common packet format for the RTCP feedback messages is defined in
Section 6.1 of [RFC4585]. Each feedback message has a fixed-length
VerSteeg, et al. Expires May 7, 2009 [Page 20]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
field for version, padding, feedback message type (FMT), payload type
(PT), length, SSRC of packet sender, SSRC of media source as well as
a variable-length field for feedback control information (FCI).
In the transport-layer feedback messages, the PT field is set to
RTPFB (205), whereas in the payload-specific feedback messages, the
PT field is set to PSFB (206).
7.1. Transport-Layer Feedback Messages
In this section, we define three transport-layer feedback messages
for rapid multicast synchronization (RMS).
7.1.1. RMS Request
The RMS Request message is identified by PT=RTPFB and FMT=2.
The FCI field MUST contain only one RMS Request.
The RMS Request is used by RR to request rapid synchronization for a
new multicast RTP session.
The FCI field has the structure depicted in Figure 3.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Min RMS Buffer Fill Requirement |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max RMS Buffer Fill Requirement |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max Receive Bitrate |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: FCI field syntax for the RMS Request message
Min RMS Buffer Fill Requirement (32 bits): The minimum amount of
data (in ms) required by RR after the burst completes. A zero
value means it is not specified.
If specified, the amount of backfill that will be provided by the
unicast burst SHOULD NOT be smaller than this value since it will
not be able to build up the desired level of buffer at RR and may
cause buffer underruns.
VerSteeg, et al. Expires May 7, 2009 [Page 21]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
Max RMS Buffer Fill Requirement (32 bits): The maximum amount of
data (in ms) that can be received by RR after the burst completes.
A zero value means it is not specified.
If specified, the amount of backfill that will be provided by the
unicast burst SHOULD NOT be larger than this value since it may
cause buffer overflows at RR.
Max Receive Bitrate (32 bits): The maximum bitrate (in bits per
second) that RR can receive. A zero value means it is not
specified.
If specified, the unicast burst bitrate SHOULD NOT be larger than
this value since it may cause congestion and packet loss.
The length of the feedback message MUST be set to 5. The semantics
of this feedback message is independent of the payload type.
7.1.2. RMS Information
The RMS Information message is identified by PT=RTPFB and FMT=3.
The FCI field MUST contain only one RMS Information.
The RMS Information is used to describe the unicast burst that will
be sent for rapid synchronization. It also includes other useful
information for RR.
There are currently two proposals for RMS Information:
7.1.2.1. Encoding Option A
The FCI field has the structure depicted in Figure 4.
VerSteeg, et al. Expires May 7, 2009 [Page 22]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RTP Seqnum of the First Burst Packet |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Earliest IGMP Join Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Join-Time Rapid Synchronization Fill |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Rapid Synchronization Duration |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Rapid Synchronization Fill |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: FCI field syntax for the RMS Information message
RTP Seqnum of the First Burst Packet (32 bits): The extended RTP
sequence number of the first packet that will be sent as part of
the rapid synchronization. This allows RR to know if one or more
packets are dropped at the beginning of rapid synchronization. 32-
bit extended RTP sequence number is constructed by putting the 16-
bit RTP sequence number in the lower two bytes and octet 0's in
the higher two bytes.
Earliest IGMP Join Time (32 bits): Time difference between the
arrival of the first burst packet and the earliest time instant
when RR could join the new multicast session (in RTP clock ticks).
Join-Time Rapid Synchronization Fill (32 bits): The amount of
backfill (in ms) that RR can expect in its buffer as a result of
the rapid synchronization at the time of the earliest IGMP Join.
Rapid Synchronization Duration (32 bits): Time difference between
the timestamps of the first and last RTP packets in the unicast
burst (in RTP clock ticks).
Rapid Synchronization Fill (32 bits): The amount of backfill (in
ms) that RR can expect in its buffer as the result of the rapid
synchronization.
If RS sets the second and fourth fields to zero, it means RS has
rejected the request. In that case, RR SHOULD join the multicast
session immediately.
The length of the feedback message MUST be set to 7. The semantics
of this feedback message is independent of the payload type.
VerSteeg, et al. Expires May 7, 2009 [Page 23]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
7.1.2.2. Encoding Option B
The FCI field has the structure depicted in Figure 5.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Join-Now | Response | First RTP Seqnum of the Burst |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Earliest IGMP Join Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Rapid Synchronization End Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: FCI field syntax for the RMS Information message
Join-Now (8 bits): A value of 1 indicates RR to join the
multicast session immediately (In this case, Earliest IGMP Join
Time and Rapid Synchronization End Time fields MUST be set to
zero). A value of 0 indicates that the earliest time instant when
RR could join the new multicast session is given in the Earliest
IGMP Join Time field. Other values MUST NOT be used.
Response (8 bits): A value of 0 indicates that rapid
synchronization request has been rejected. A value of 1 indicates
that the rapid synchronization request has been accepted and RR
MUST NOT send an explicit notification to RS when multicast join
has been completed. A value of 2 indicates that the rapid
synchronization request has been accepted and RR MUST send an
explicit notification (See Section 7.1.3) to RS when multicast
join has been completed. Other values MUST NOT be used.
First RTP Seqnum of the Burst (16 bits): The RTP sequence number
of the first packet that will be sent as part of the rapid
synchronization. This allows RR to know if one or more packets
are dropped at the beginning of rapid synchronization.
Earliest IGMP Join Time (32 bits): Time difference between the
arrival of the first burst packet and the earliest time instant
when RR could join the new multicast session (in RTP clock ticks).
Rapid Synchronization End Time (32 bits)
The length of the feedback message MUST be set to 5. The semantics
of this feedback message is independent of the payload type.
Editor's note: The RMS Information message MAY be sent multiple
VerSteeg, et al. Expires May 7, 2009 [Page 24]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
times at the start of, or prior to, or during the RTP unicast burst.
7.1.3. RMS Termination
The RMS Termination message is identified by PT=RTPFB and FMT=4.
The FCI field MUST contain only one RMS Termination.
The RMS Termination is used by RR to let RS know the sequence number
of the first RTP packet received from the multicast session. With
this information, RS can decide when to terminate the unicast burst.
The FCI field has the structure depicted in Figure 6.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RTP Seqnum of the First Received Multicast Packet |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: FCI field syntax for the RMS Termination message
RTP Seqnum of the First Received Multicast Packet (32 bits): The
extended RTP sequence number of the first packet received from the
multicast session. 32-bit extended RTP sequence number is
constructed by putting the 16-bit RTP sequence number in the lower
two bytes and octet 0's in the higher two bytes.
The length of the feedback message MUST be set to 3. The semantics
of this feedback message is independent of the payload type.
7.2. Payload-Specific Feedback Messages
We define the format of the RTCP payload-specific feedback message
for the RTP applications carrying MPEG2-TS.
7.2.1. MPEG2-TS TSRAP
The MPEG2-TS TSRAP message is identified by PT=PSFB and FMT=4.
The FCI field MUST contain only one MPEG2-TS TSRAP.
The MPEG2-TS TSRAP is used for carrying the key information that
consists of the information required to demultiplex and decode the
MPEG2-TS. It usually includes the PAT, PMT, PCR and optionally the
ECMs.
VerSteeg, et al. Expires May 7, 2009 [Page 25]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
The FCI field has the structure depicted in Figure 7.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: TBC :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: FCI field syntax for the MPEG2-TS TSRAP message
Editor's note: The format of this message is TBD.
The length of the feedback message MUST be set to TBD.
7.3. Multicast Join Report Block
In this section, we define a new report block type within the
framework of RTP Control Protocol (RTCP) Extended Reports (XR)
[RFC3611].
This report is used to carry useful information about the first RTP
packet received from a multicast session. This information includes
the sequence number of the RTP packet and the time it took to receive
it after the IGMP Join message was issued. In addition to the useful
diagnostics information, this report may also serve as an indication
that RR has successfully completed the multicast join.
7.3.1. Report Block Format
The report format is shown in Figure 8.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT | rsvd. | Status| Block Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of the Multicast Session |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RTP Seqnum of the First Received Multicast Packet |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IGMP Join Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: Format for the Multicast Join Report Block
VerSteeg, et al. Expires May 7, 2009 [Page 26]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
BT (8 bits): Block type that identifies the block format.
Multicast Join Report Block is identified by the constant TBD.
rsvd. (4 bits): This field is reserved for future definition. In
the absence of such definition, the bits in this field MUST be set
to zero and MUST be ignored by the receiver.
Status (4 bits): TBD.
Block Length (16 bits): The length of this report block,
including the header, in 32-bit words minus one. It MUST be set
to 3.
SSRC of the Multicast Session (32 bits): The SSRC of the
multicast RTP session that RR has joined.
RTP Seqnum of the First Received Multicast Packet (32 bits): The
extended RTP sequence number of the first packet received from the
multicast session. 32-bit extended RTP sequence number is
constructed by putting the 16-bit RTP sequence number in the lower
two bytes and octet 0's in the higher two bytes.
IGMP Join Time (32 bits): Time difference (in ms) between the
instant IGMP Join message has been sent and the instant the first
RTP packet was received from the multicast session.
The semantics of this report block is independent of the payload
type.
Editor's note: More fields can be defined in this XR report to give
more details about the rapid synchronization experience of RRs. They
are TBD.
7.3.2. SDP Signaling
A new parameter is defined for the Multicast Join Report Block to be
used with Session Description Protocol (SDP) [RFC4566]. It has the
following syntax within the 'rtcp-xr' attribute:
VerSteeg, et al. Expires May 7, 2009 [Page 27]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
rtcp-xr-attrib = "a=rtcp-xr:" [xr-format *(SP xr-format)] CRLF
xr-format = "multicast-join"
CRLF = %d13.10
Figure 9
Refer to Section 5.1 of [RFC3611] for a detailed description and the
full syntax of the 'rtcp-xr' attribute.
8. SDP Definitions and Examples
8.1. Definitions
The syntax of the 'rtcp-fb' attribute has been defined in [RFC4585].
Here we add the following syntax to the 'rtcp-fb' attribute (the
feedback type and optional parameters are all case sensitive):
(In the following ABNF [RFC5234], fmt, SP and CRLF are used as
defined in [RFC4566].)
rtcp-fb-syntax = "a=rtcp-fb:" rtcp-fb-pt SP rtcp-fb-val CRLF
rtcp-fb-pt = "*" ; wildcard: applies to all formats
/ fmt ; as defined in SDP spec
rtcp-fb-val = "nack" SP "ssli"
The following parameter is defined in this document for use with
'nack':
o 'ssli' stands for Stream Synchronization Loss Indication and
indicates the use of RMS Request feedback as defined in
Section 7.1.1.
8.2. Examples
This section provides an SDP [RFC4566] example for enabling rapid
synchronization with multicast RTP sessions. The following example
uses the SDP grouping semantics [RFC3388], the RTP/AVPF profile
[RFC4585], the RTP retransmissions [RFC4588], the RTCP extensions for
SSM sessions with unicast feedback [I-D.ietf-avt-rtcpssm] and the
source-specific media attributes
[I-D.ietf-mmusic-sdp-source-attributes].
In the example below, we have two primary source streams and two
VerSteeg, et al. Expires May 7, 2009 [Page 28]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
unicast retransmission streams for each of these source streams. The
source streams are multicast from a distribution source (with a
source IP address of 8.166.1.1) in different multicast groups. For
each source stream, a feedback target address (9.30.30.1) is also
specified with the 'rtcp' attribute. The receiver(s) can report
missing packets on the source stream to the feedback target and
request retransmissions. The parameter 'rtx-time' specifies the time
in milliseconds (measured from the time a packet was first sent) that
the sender (in this case the feedback target) keeps an RTP packet in
its buffers available for retransmission.
For the first source stream, only the conventional retransmission
support is enabled. For the second source stream, both the
conventional retransmission and rapid synchronization support are
enabled. This is achieved by the "a=rtcp-fb:98 nack ssli" line.
When a receiver requires rapid synchronization for a new multicast
session it wants to join, it sends an RMS-R message to the feedback
target. This feedback message has to have the SSRC of the primary
source session for which rapid synchronization is requested for.
However, since this receiver has not received any RTP packets from
this primary source session yet, the receiver MUST learn the SSRC
value from the 'ssrc' attribute of the media description
[I-D.ietf-avt-rtcpssm]. In addition to the SSRC value, the 'cname'
source attribute MUST also be present in the SDP description
[I-D.ietf-mmusic-sdp-source-attributes]. Note that listing the SSRC
values for the primary source sessions in the SDP file does not
create a problem in SSM sessions when an SSRC collision occurs. This
is because in SSM sessions, a receiver that observed an SSRC
collision with a media source MUST change its own SSRC
[I-D.ietf-avt-rtcpssm] by following the rules defined in [RFC3550].
A feedback target that receives an RMS-R feedback message becomes
aware that the prediction chain at the receiver side has been broken
or does not exist any more. If the necessary conditions are
satisfied (as outlined in Section 7 of [RFC4585]) and available
resources exist, the feedback target MAY react to the RMS-R message
by sending the payload-specific feedback message(s) and starting the
unicast burst.
VerSteeg, et al. Expires May 7, 2009 [Page 29]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
v=0
o=ali 1122334455 1122334466 IN IP4 rtp.rocks.com
s=Rapid Synchronization Examples
t=0 0
a=group:FID 1 2
a=group:FID 3 4
a=rtcp-unicast:rsi
m=video 40000 RTP/AVPF 96
i=Primary Source Stream #1
c=IN IP4 224.1.1.1/255
a=source-filter: incl IN IP4 224.1.1.1 8.166.1.1
a=recvonly
a=rtpmap:96 MP2T/90000
a=rtcp:40001 IN IP4 9.30.30.1
a=rtcp-fb:96 nack
a=mid:1
m=video 40002 RTP/AVPF 97
i=Unicast Retransmission Stream #1 (Ret. Support Only)
c=IN IP4 9.30.30.1
a=recvonly
a=rtpmap:97 rtx/90000
a=rtcp:40003
a=fmtp:97 apt=96
a=fmtp:97 rtx-time=3000
a=mid:2
m=video 41000 RTP/AVPF 98
i=Primary Source Stream #2
c=IN IP4 224.1.1.2/255
a=source-filter: incl IN IP4 224.1.1.2 8.166.1.1
a=recvonly
a=rtpmap:98 MP2T/90000
a=rtcp:41001 IN IP4 9.30.30.1
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack ssli
a=ssrc:123321 cname:iptv-ch32@rms.example.com
a=rtcp-xr:multicast-join
a=mid:3
m=video 41002 RTP/AVPF 99
i=Unicast Retransmission Stream #2 (Ret. and Rapid Synch. Support)
c=IN IP4 9.30.30.1
a=recvonly
a=rtpmap:99 rtx/90000
a=rtcp:41003
a=fmtp:99 apt=98
a=fmtp:99 rtx-time=5000
a=mid:4
VerSteeg, et al. Expires May 7, 2009 [Page 30]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
9. NAT Considerations
TBC.
10. Open Source RTP Receiver Implementation
An open source RTP Receiver code that implements the functionalities
introduced in this document is available at the following URL:
http://www.cisco.com/en/US/docs/video/cds/cda/vqe/2_0/user/guide/
ch1_over.html
The code is also available at:
ftp://ftpeng.cisco.com/ftp/vqec/
Note that this code is under development and may be based on an
earlier version of this document. As we make progress in the draft,
the source code will also be updated to reflect the changes.
11. Open Issues
o Finalizing the RTCP payload-independent message formats.
o Format of the MPEG2-TS TSRAP message.
o Capability of extending the feedback message formats in the
future.
o Determining other useful information to report in the Multicast
Join XR Report.
12. Security Considerations
TBC.
13. IANA Considerations
This document register new SDP values and RTCP packets.
The following contact information shall be used for all registrations
in this document:
VerSteeg, et al. Expires May 7, 2009 [Page 31]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
Ali Begen
abegen@cisco.com
170 West Tasman Drive
San Jose, CA 95134 USA
13.1. Registration of SDP Attribute Values
This document registers a new value for the 'nack' attribute to be
used with the 'rtcp-fb' attribute in SDP. For more information about
'rtcp-fb', refer to [RFC4585].
Value name: ssli
Long name: Stream Synchronization Loss Indication
Usable with: nack
Reference: This document
13.2. Registration of FMT Values
Within the RTPFB range, the following three format (FMT) values are
registered:
Name: RMS-R
Long name: Rapid Multicast Synchronization Request
Value: 2
Reference: This document
Name: RMS-I
Long name: Rapid Multicast Synchronization Information
Value: 3
Reference: This document
Name: RMS-T
Long name: Rapid Multicast Synchronization Termination
Value: 4
Reference: This document
Within the PSFB range, the following format (FMT) value is
registered:
VerSteeg, et al. Expires May 7, 2009 [Page 32]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
Name: MPEG2-TS TSRAP
Long name: MPEG2-TS Transport Stream Random Access Point
Value: 4
Reference: This document
13.3. Registration of RTCP XR Block Types
New block types for RTCP XR are subject to IANA registration. For
general guidelines on IANA considerations for RTCP XR, refer to
[RFC3611].
This document (provisionally) assigns the block type value TBD in the
RTCP XR Block Type Registry to "Multicast Join Report Block." This
document also registers the SDP [RFC4566] parameter 'multicast-join'
for the 'rtcp-xr' attribute in the RTCP XR SDP Parameters Registry.
14. Acknowledgments
TBC.
15. Change Log
15.1. draft-versteeg-avt-rapid-synchronization-for-rtp-01
The following are the major changes compared to version 00:
o The core of the rapid synchronization method is now payload-
independent. But, the draft still defines payload-specific
messages that are required for enabling rapid synch for the RTP
flows carrying MPEG2-TS.
o RTCP APP packets have been removed, new RTCP transport-layer and
payload-specific feedback messages have been defined.
o The step for leaving the current multicast session has been
removed from Section 6.2.
o A new RTCP XR (Multicast Join) report has been defined.
o IANA Considerations section have been updated.
o Editorial changes to clarify several points.
16. References
VerSteeg, et al. Expires May 7, 2009 [Page 33]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
16.1. Normative References
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Jacobson, "RTP: A Transport Protocol for Real-Time
Applications", STD 64, RFC 3550, July 2003.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[RFC3388] Camarillo, G., Eriksson, G., Holler, J., and H.
Schulzrinne, "Grouping of Media Lines in the Session
Description Protocol (SDP)", RFC 3388, December 2002.
[RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
"Extended RTP Profile for Real-time Transport Control
Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585,
July 2006.
[RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R.
Hakenberg, "RTP Retransmission Payload Format", RFC 4588,
July 2006.
[I-D.ietf-avt-rtcpssm]
Ott, J., "RTCP Extensions for Single-Source Multicast
Sessions with Unicast Feedback", draft-ietf-avt-rtcpssm-17
(work in progress), January 2008.
[I-D.ietf-mmusic-sdp-source-attributes]
Lennox, J., Ott, J., and T. Schierl, "Source-Specific
Media Attributes in the Session Description Protocol
(SDP)", draft-ietf-mmusic-sdp-source-attributes-02 (work
in progress), October 2008.
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234, January 2008.
16.2. Informative References
[MPEG2TS] ITU-T H.222.0, "Generic Coding of Moving Pictures and
Associated Audio Information: Systems", May 2006.
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
August 1980.
[I-D.ietf-rmt-pi-norm-revised]
VerSteeg, et al. Expires May 7, 2009 [Page 34]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
Adamson, B., Bormann, C., London, U., and J. Macker,
"NACK-Oriented Reliable Multicast Protocol",
draft-ietf-rmt-pi-norm-revised-07 (work in progress),
October 2008.
[I-D.ietf-fecframe-framework]
Watson, M., "Forward Error Correction (FEC) Framework",
draft-ietf-fecframe-framework-03 (work in progress),
October 2008.
[RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
Thyagarajan, "Internet Group Management Protocol, Version
3", RFC 3376, October 2002.
[RFC2250] Hoffman, D., Fernando, G., Goyal, V., and M. Civanlar,
"RTP Payload Format for MPEG1/MPEG2 Video", RFC 2250,
January 1998.
[RFC3611] Friedman, T., Caceres, R., and A. Clark, "RTP Control
Protocol Extended Reports (RTCP XR)", RFC 3611,
November 2003.
Authors' Addresses
Bill VerSteeg
Cisco Systems
5030 Sugarloaf Parkway
Lawrenceville, GA 30044
USA
Email: billvs@cisco.com
Ali Begen
Cisco Systems
170 West Tasman Drive
San Jose, CA 95134
USA
Email: abegen@cisco.com
VerSteeg, et al. Expires May 7, 2009 [Page 35]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
Tom VanCaenegem
Alcatel-Lucent Bell
Copernicuslaan 50
Antwerpen, 2018
Belgium
Email: Tom.Van_Caenegem@alcatel-lucent.be
VerSteeg, et al. Expires May 7, 2009 [Page 36]
Internet-Draft Rapid Synchronization for RTP Flows November 2008
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
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.
This 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 INTERNET SOCIETY, 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 at
ietf-ipr@ietf.org.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
VerSteeg, et al. Expires May 7, 2009 [Page 37]
| PAFTECH AB 2003-2026 | 2026-04-24 04:24:24 |