rfc-6354

Forward-Shifted RTP Redundancy Payload Support

Q. Xie
date2011-08 streamIETF areawit wgavtcore statusPROPOSED STANDARD pages13 canonicalhttps://www.rfc-editor.org/rfc/rfc6354 doi10.17487/RFC6354
This document defines a simple enhancement to support RTP sessions with forward-shifted redundant encodings, i.e., redundant data sent before the corresponding primary data. Forward-shifted redundancy can be used to conceal losses of a large number of consecutive media frames (e.g., consecutive loss of seconds or even tens of seconds of media). [STANDARDS-TRACK]

updates

Extracted elements (19)

design-rationale §1

Anti-shadow loss concealment can be readily applied to pre-recorded media. For live media, a delay equal to or greater than the forward-shift amount must be inserted at the source, which is a significant constraint.

rtp, realtime

design-rationale §1

Forward-shifted redundancy is motivated by wireless 'shadow' scenarios where a mobile receiver can be blocked for seconds or tens of seconds. Traditional backward-shifted redundancy (RFC 2198) and most FEC schemes are ineffective against such consecutive frame losses.

rtp, realtime

design-rationale §1.1

Inband redundancy (single RTP session) offers simpler setup, easier NAT/firewall traversal, and lower overhead, while out-of-band (separate RTP sessions) offers flexibility for middleboxes to add/remove redundancy without requiring a special payload format.

rtp, realtime, nat

design-rationale §3

RFC 2198 defines the timestamp offset as a 14-bit unsigned value, implying redundant data must be sent after primary data. This prevents RFC 2198 from supporting forward-shifted redundant blocks, which motivated a new media type.

rtp, realtime

design-rationale §A.1

The amount of forward-shifting, which should remain constant for the duration of the session, determines the maximum length of shadows that can be completely concealed at the receiver. A shadow longer than the forward-shift amount will exhaust the buffer and cause service interruption.

rtp, realtime

interoperability-note §6

The 'forwardshift' SDP parameter is declarative in Offer/Answer; all reasonable values are expected to be supported. No special negotiation logic is required.

rtp, realtime

interoperability-note §4

Using 'fwdred' with forwardshift=0 is equivalent to RFC 2198 'red' behavior, providing a backwards-compatible mode within the new media type.

rtp, realtime

normative-requirement §4 OPTIONAL

A 'forwardshift' value of 0 indicates the sender will not use forward-shifting, giving the same behavior as defined in RFC 2198.

rtp, realtime

normative-requirement §4 REQUIRED

The 'fwdred' media type depends on RTP framing and is only defined for transfer via RTP (RFC 3550); transfer within other framing protocols is not defined.

rtp, realtime

normative-requirement §3 MUST NOT

The sender MUST NOT change the contents of a packet that appears in a forward-shifted stream when it is time to send it in the main stream.

rtp, realtime

protocol-element §A.2.1

The anti-shadow buffer stores forward-shifted redundant frames at the receiver. In normal mode it is continuously filled with incoming AS data and purged of frames older than the last primary frame played out, keeping it full with the next 'forwardshift' amount of redundant frames.

rtp, realtime

protocol-element §4

The 'fwdred' media type requires parameters: 'rate' (as in RFC 4102), 'pt' (as in RFC 4102), and 'forwardshift' (unsigned integer, RTP timestamp units). Optional parameters are 'ptime' and 'maxptime'.

rtp, realtime

protocol-element §4

The media type 'fwdred' extends RFC 2198's 'red' type with a required 'forwardshift' parameter (unsigned integer in RTP timestamp units) indicating the base value of timestamp forward-shifting used by the sender.

rtp, realtime

registry §7

IANA added 'fwdred' to both the 'Audio Media Types' registry and the 'Text Media Types' registry, referencing RFC 6354.

registry, rtp, realtime

security-consideration §8

Security considerations from RFC 2198 Section 6, RFC 4856 Section 4, and RFC 3550 Sections 9 and 14 all apply to this specification.

security, rtp, realtime

security-consideration §8 SHOULD

To prevent denial-of-service attacks, a receiver SHOULD be prepared to ignore a 'forwardshift' parameter declaration if it considers the offset value excessive. In such a case, the receiver SHOULD also ignore the redundant stream in the resultant RTP session.

security, rtp, realtime

state-machine §A.2

The anti-shadow receiver operates in two modes: 'normal mode' (when new data is being received, primary data goes directly to the decoder and AS data is buffered) and 'AS mode' (when in a shadow, play-out continues from the anti-shadow buffer). The trigger to switch to AS mode is loss of new incoming data; the trigger to return to normal mode is resumption of new data arrival.

rtp, realtime

wire-format §5

In SDP, 'fwdred' maps as: media type in 'm=', encoding name in 'a=rtpmap', and 'forwardshift=value' in the 'a=fmtp' attribute. Example: 'a=fmtp:121 0/5 forwardshift=40800' indicates 5.1 seconds of forward-shifting at 8000 Hz.

rtp, realtime

wire-format §3

The timestamp of a redundant block in a forward-shifted session is computed as: timestamp_in_RTP_header minus timestamp_offset_in_additional_header plus forwardshift_base_value. Typically the timestamp offset in the additional header is set to 0.

rtp, realtime