Understanding DASH (Dynamic Adaptive Streaming over HTTP)

Posted by Richard Lucas on Apr 20 2016

What is DASH, comparatively?

Dynamic Adaptive Streaming over HTTP (DASH) is a standard that intends to address weaknesses in RTSP and progressive download methods currently used in streaming content over the internet.

RTSP

RTSP is a streaming protocol that manages a stateful connection with the client, tracking the state through the client interation.

Progressive

Progressive download can utilize HTTP and uses byte range requests to respond to the client. The issues with progressive are that it’s not bitrate responsive, bandwidth can potentially be wasted if the user switches their request, and doesn’t do live media. Despite these weakeness, progressive download enjoys wide adoption

Why use HTTP?

Content Delivery Networks (CDNs) have proliferated all over the world and given this, their scale, and their reliability, using them to manage streaming services just makes sense and…they use HTTP. Here are the nine reason’s Mr. Stockhammer gives [1] (my paraphrasing):

  1. HTTP Streaming is spreading widely as a form of delivery of Internet Video
  2. Trend towards HTTP as the main protocol for media delivery over the Internet
  3. Given the wide deployment of HTTP along with the TCP/IP stack, it probides reliabiliy and easy deployment
  4. HTTP avoids NAT and firewall traversal issues as it doesn’t require a dedicated connection…it’s stateless
  5. Allows delivery mechanisms and common methods such as CDNs, HTTP Caches, and HTTP Servers to be used, which already exist in profligate
  6. Moves control of the HTTP session to the client
  7. Provides the ability of the client to choose content rate given bandwidth as opposed to having the streaming server negotiate that
  8. Allows content rate to be seamlessly changed on the fly given changes in bandwidth
  9. Has the potential to accelerate fixed-mobile convergence.

DASH Goals

The DASH solution is intended to:

  1. support delivery of media in ISO base media file formats
  2. stay out of presentation logic
  3. permit integration of different presentation frameworks

The protocol then in turn intends to define:

  1. Media Presentation as a stuctured collection of data
  2. Formats of Segments, an integral data unit of a Media Presentation, that can be HTTP URI addressable
  3. Delivery protocol of Segment, i.e. HTTP/1.1
  4. A how-to for the client to utitlize the above information to establish a streaming service

It supports features:

  1. Fast initial startup and seeking
  2. bandwidth efficiency
  3. adaptive bitrate switching
  4. adaption to CDN properties
  5. reuse of HTTP-servers and caches
  6. reuse of existing media playout engines
  7. Support for on-demand, live play
  8. Simplicity

Overall

DASH is a media streaming protocol that seeks to improve upon some of the known issues with RTSP and progressive download, while taking advantage of an already common and well-supported application protocol, HTTP. It was intended to be easily adapted to existing infrastructure, particularly the usage of HTTP CDNs. It’s intended to be generic enough so that it’s independent of media format. It’s main features are it’s adaptatability to changing network bandwidth, existing HTTP infrastructure, media formats, and flexibility to client presentations.

[1] Stockhammer, 2011. Dynamic Adaptive Streaming over HTTP - Design Principles and Standards
[2] Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update, 2015–2020 White Paper, February 2016