SAND

Server and Network Assisted DASH

Services
Introduced in Rel-12
A 3GPP framework that enables communication between a DASH client and network/server entities to optimize streaming delivery. It allows the network to provide hints, metrics, and operational data (e.g., congestion, available multicast sessions) to the client, enabling smarter adaptation decisions for improved QoE and network efficiency.

Description

Server and Network Assisted DASH (SAND) is a standardized framework defined by 3GPP to enhance the performance of Dynamic Adaptive Streaming over HTTP (DASH) through collaboration between the client and the network/service provider. Traditional DASH relies solely on client-side heuristics (like buffer level and measured throughput) to select the quality of the next media segment. SAND introduces a bidirectional message channel that allows external entities—a SAND server or network nodes—to send assistance data to the DASH client, and optionally for the client to report back.

The architecture involves several key components: the DASH Client, the SAND Server (or Network-Assisting Server), and the SAND message channel. The DASH client is enhanced with a SAND message processor. The SAND server can be operated by the content provider, network operator, or a third party. The message channel typically uses HTTP POST/GET requests. The framework defines a set of message types, such as Metrics Messages (from client to server reporting player state), Parameters Messages (from server to client providing network conditions like available bandwidth or congestion), and Operation Messages (like SAMMO for MBMS).

Operationally, a SAND server might collect data from network probes (e.g., PCRF, PCEF) or other clients to build a view of network conditions. It can then send a Parameters Message to a client indicating that the network path to a specific CDN server is congested, suggesting the client switch to an alternative server or lower its bitrate preemptively. Conversely, a client can send a Metrics Message reporting its buffer status, enabling the server to tailor its advice. The messages are defined in XML format, ensuring interoperability. SAND does not mandate specific client actions; it provides recommendations, leaving the final adaptation decision to the client's logic, thus maintaining the client-driven nature of DASH while enriching its decision-making data.

Purpose & Motivation

SAND was created to address the limitations of purely client-driven adaptation in DASH, which can lead to suboptimal outcomes both for Quality of Experience (QoE) and network efficiency. A client has only a localized, downstream view of the network. It cannot see upstream congestion, impending network policy changes, or the availability of more efficient delivery methods like multicast. This can result in all clients reacting similarly to congestion (causing oscillations), missing opportunities to use broadcast, or overloading a specific server.

Introduced in Release 12, SAND's purpose is to enable network-assisted optimizations without breaking the HTTP-based, client-driven DASH model. It solves the problem of information asymmetry. By allowing the network—which has a global view of traffic, topology, and services—to communicate relevant information to the client, SAND enables more stable streaming, better utilization of network resources (e.g., offloading to broadcast), and improved overall QoE. It was motivated by the need for smarter streaming in managed networks (like mobile operator networks) and for enabling converged unicast-broadcast services, laying the groundwork for advanced media delivery features in later releases.

Key Features

  • Defines a bidirectional message channel between DASH client and network/server
  • Standardizes XML-based message formats for metrics, parameters, and operations
  • Enables network to provide hints on congestion, server load, and alternative paths
  • Supports client reporting of player state (buffer, position) to the server
  • Facilitates integration with MBMS through dedicated operation messages (e.g., SAMMO)
  • Maintains client-driven adaptation while enriching decision-making data

Evolution Across Releases

Rel-12 Initial

Initial framework definition. Established the core SAND architecture, message channel protocol (using HTTP), and basic message types (Metrics, Parameters). Introduced the concept of network assistance for DASH to improve adaptation decisions and laid the groundwork for MBMS integration.

Defining Specifications

SpecificationTitle
TS 23.795 3GPP TS 23.795
TS 26.233 3GPP TS 26.233
TS 26.247 3GPP TS 26.247
TS 26.347 3GPP TS 26.347
TS 26.804 3GPP TS 26.804
TS 26.852 3GPP TS 26.852
TS 26.946 3GPP TS 26.946
TS 26.957 3GPP TS 26.957