Lecture Notes for Client-Server Interfaces

23 April 2002 - Streaming Media


  1. what

    1. a continuous data stream

    2. potentially infinite data - not stock quotes (maybe)

    3. time-sequenced data - order and time

  2. issues

    1. network delays - jitter (variance)

      1. detection - sequence numbers aren't good enough, neither are frame numbers; resolving co-incident time stamps; intermittent transmission

    2. network loss

      1. go-back-n - too slow and expensive

      2. stop and wait - unlimited buffer growth

      3. recalculation - forward error correction

      4. fake it - repeated play back, please stand by messages, white noise

    3. synchronization - coordinating multiple media streams

    4. transport protocols - data-stream or packet

      1. overhead, loss recovery, multi-endpoint delivery

    5. other issues - discovery, authentication, multicast

  3. streaming-media protocols

    1. delivery protocol and control protocol

    2. delivery protocol - real-time transport protocol (rtp)

      1. sequence number - random initial value and strictly monotonic increasing

      2. timestamp - random initial value and continuously generated

      3. medium type

      4. frame marker

      5. synchronization source and contributing source ids - create multi-media streams; identify the source

    3. control protocol - real-time control protocol (rtcp)

      1. session information, network information, end-point information

      2. payload is a sequence of records of various types

      3. synchronization information

        1. synchronized streams must come from the same source

        2. ties the source-local time to the timestamps

  4. implementation details

    1. addressing

      1. at the ip level - the usual pair, except for class d addresses

      2. demultiplexing - in ip (session demultiplexing) and in rtp (stream demultiplexing)

    2. encodings - how the data are formatted; none, stream, and framed

    3. architecture - four layers; transport, rtp, synchronization, application

    4. much concurrent activity

      1. decoding, synchronization, playback, control

      2. time constrained

      3. coordination among the activities

    5. handling time

      1. where does time management get done - in the rtp handler or in the application

      2. simpler to keep it internal

      3. more flexible to make it available to the application

      4. that old devil, time-stamp wrap-around - half-space constraints

    6. handling data - buffering

      1. buffering deals with jitter

      2. the playback point, gaps, and the end of buffer

      3. circular buffers, implicit buffers

      4. change of encodings or time

      5. small buffer increments - not enough time to get ready

    7. handling events

      1. session management, encoding changes, adaptations

      2. event queues and call-backs


This page last modified on 27 April 2001.