Streaming Services
- Continuous, arbirarily long data streams.
- Continuous signals are often created via analog-digital conversion.
- From camera and microphone to packets to speaker and monitor.
Encodings
- Byte-stream encodings.
- Frame-style encodings.
Real-Time Delivery
- Real-time data must be delivered with the same timing behavior it
had when it was created.
- Streaming data is usually real-time data.
- Two important timing behaviors are order and time.
- Order indicates relative position between data components.
- Time indicates absolute position for data components.
Best Effort Delivery
- Best effort networks are not real-time in either order or time.
- Order problems are caused by out-of-order delivery.
- Time problems are caused by delay and jitter.
- Out-of-order delivery can be thought of as extreme delay
- Jitter is the variance on delay.
- Delay is not bad; it can be compensated for.
- Jitter is bad; it is hard or expensive to compensate for.
Best-Effort Compensations
- Applications must correct best-effort delivery for real-time traffic.
- Ordering problems are dealt with by sequence numbers.
- Delay problems are dealt with by timestamps.
- Sequence numbers and timestamps are separate solutions.
- Jitter problems are dealt with by buffers.
Best-Effort Loss
- The other characteristic of best-effort delivery is packet loss.
- Retransmission, the usual cure for packet loss, is not real-time.
- Retransmission can result in arbitrarily long buffers
Handling Packet Loss
- Real-time packet loss is either ignored or regenerated.
- Ignoring data is usually not possible for human receivers.
- Regeneration can be done through interpolation or forward error
correction.
RTP
- The real-time protocol (RTP) is a stream-independent protocol
for transmitting real-time data via a best-effort network.
- It's one of a suite of real-time protocols.
- It's specified by the IETF (rfc 1889).
The RTP Header
RTP Sequence Numbers
- RTP adds a strictly increasing, 16-bit sequence number to each RTP
header.
- The RTP receiver uses the sequence number to order payloads.
- In a playback buffer, for example.
- The initial sequence value is randomly generated.
- This reduces problems old packets from another stream.
- It also provides a very small amount of stream security.
RTP Timestamps
- The RTP timestamp is a 32-bit value generated by the application.
- RTP requires that
- The initial timestamp value must be randomly generated.
- The timestamp value must be updated continuously.
- RTP does not specify
- Timestamp units.
- Timestamp interpretation.
- Stream data generated at the same time may have the same timestamp.
- This allows inter-stream synchronization.
RTP Stream Translation
- A stream translator accepts an RTP stream and produces another one.
- Presumably based on the input stream.
- Stream translators can be used to re-encode data.
Stream Multiplexing
- A stream multiplexor accepts several input RTP streams and
produces a single RTP output stream.
- Stream multiplexors are also known as bridges.
Handling Jitter
- Incoming data must be buffered to ensure smooth playback.
- Jitter may delay the next packet past its expected arrival time.
- The jitter (or playback) buffer holds enough data to
ensure smooth playback.
Adaptive QoS
- Applications must adapt to changing conditions on best-effort networks.
- If they can, QoS becomes an end-to-end property for those applications.
- Media bit rates should be proportional to available bandwidth.
- RTP does not provide the necessary information to allow adapation.
The RTP Control Protocol
- Receivers use the RTP Control Protocol (RTCP) to inform the
senders about network conditions.
Synchronization
- Audio and video require separate streams.
- Rates and encodings are way different.
- Separate but related streams have to be synchronized to ensure sensible
playback.
- RTP information isn't enough to establish and maintain synchronization.
- The sender uses RTCP packets for synchronization.
RTCP Synchronization
- Senders periodically transmit RTPC sender reports.
- A sender has a canonical name to identify all its streams.
- The sender report contains an absolute time associated with RTP timestamps.
Multicast
- RTP is a datagram protocol.
- Recovery via retransmission is unhelpful.
- RTP needs to do flow control and sequencing its own way.
- Datagrams do multicast well.
- Multicast communications allow for richer communication topologies.
- Cheap one-to-many, or general N-to-M.
RTP Organization
- RTP software organizes into four layers: application, synchronization,
rtp-rtcp, and transport (udp).
This page last modified on 14 November 2004.