13.6 Use of SAND for Network Assistance

26.2473GPPProgressive Download and Dynamic Adaptive Streaming over HTTP (3GP-DASH)Release 17Transparent end-to-end Packet-switched Streaming Service (PSS)TS

13.6.1 General description

The Network Assistance function enables a 3GP-DASH client to improve the QoE of content streaming sessions, and is provided by the DANE. The DANE for this mode is out-of-band, i.e. it is not in the media delivery path. The Network Assistance communication is independent from the media server communication, hence the Network Assistance communication occurs in a separate path to the transfer of the MPD and the content segments. The media server does not need to be aware of the Network Assistance function.

Network Assistance may be made available to certain clients only, for example subject to subscription options. Client authentication may also be applied before granting access to Network Assistance. Clients are able to discover the availability and information about the Network Assistance DANE, and to establish a Network Assistance session with the DANE.

Network Assistance is based on the model of the client requesting network assistance and the DANE responding to the request. The Network Assistance functionalty may be granted to a client supporting the delivery of 3GP-DASH content with either only the first or with both of the two functions below, in both cases based on the 3GP-DASH client having made a request to the DANE for Network Assistance:

– The DANE indicates to the 3GP-DASH client the highest suitable media rate for the next segment download, based on the available Representations for the content item;

– The DANE indicates to the 3GP-DASH client a temporary delivery boost for occasions when the content playback input buffer on the client risks suffering from under-run.

Once a Network Assistance session is active, the client may issue a Network Assistance call prior to fetching the next media segment from the server. The Network Assistance call consists of a single SAND signalling exchange. This exchange with the DANE activates either the first of the above functions or a sequence of both functions; the second only if the 3GP-DASH client was granted access to the function. If the client does not need a delivery boost, then the DANE omits the second function in the response to the 3GP-DASH client.

The Network Assistance functions depend on only a small part of the set of SAND capabilities.

Clause 13.6.2 specifies common functions.

Clauses 13.6.3 and 13.6.4 describe the two constituent functions of Network Assistance, namely rate recommendation and temporary delivery boost, respectively.

Clause 13.6.5 specifies the Network Assistance functions and their mapping to SAND messages.

Clause 13.6.6 specified how the Network Assistance request and response calls are constructed using the SAND message container that contains the appropriate Network Assistance messages.

Clause 13.6.7 describes an example workflow for Network Assistance.

13.6.2 Common functions

13.6.2.1 Introduction

Unless the DANE location is already known to the 3GP-DASH client, for example by pre-installing a commonly used DANE location for the operator to which the client is subscribed, the client needs to discover the DANE for Network Assistance, before being able to use Network Assistance functionality.

The DANE manages the population of clients that are eligible for Network Assistance by accepting Network Assistance session initiation calls from clients. In this way the DANE is able to provide a more reliable Network Assistance function by being aware of which clients might need relevant network resources allocated at any time.

13.6.2.2 DANE discovery

DANE discovery procedures relevant for the Network Assistance mode are described in clause 13.3.

13.6.2.3 Network Assistance session initiation

The facility of Network Assistance requires that the network is aware of its possible intended usage by every client in advance of first usage of the facility. Hence the client needs to register with the DANE, providing the location of the media server delivering the content item and the IP port at which it will be delivered, in advance of the playback starting. The network thus has the possibility to apply any authentication or policy procedure on that connection, as well as be prepared for Network Assistance usage by all clients that may register for it.

The 3GP-DASH client shall initiate a Network Assistance session with the Network Assistance DANE at a convenient stage in the process of preparing to receive PSS content. When this takes place may be dependent on the nature of the application that streams media content items, but in any case the scope of the Network Assistance session is intended such that it starts with the start of playback of an individual content item, and ends when the playback of that content item is stopped.

13.6.2.4 Network Assistance session termination

When the 3GP-DASH client no longer requires Network Assistance facilities, it shall terminate the Network Assistance session. This could be the case for example when the playback of a streamed media content item is stopped, or the converse operation to that which occurred when the session was initiated.

13.6.3 Rate recommendation function

The 3GP-DASH client uses this function of the DANE to obtain a recommendation of the highest suitable media rate for an upcoming media segment download.

The 3GP-DASH client provides the necessary information, such as available media versions with the required bit-rates, and buffer level, to the DANE. The DANE provides the response with the recommendation of the highest suitable media rate. The recommended rate is based on network estimations or predictions of available link bandwidth for the ensuing period of time. The recommended rate is neither enforced by the network, nor does the network make any commitment that the recommended rate will be honoured. How the information is gathered and relayed to the Network Assistance function of the DANE is out of scope of the present specification.

At the Network Assistance logical level this function includes the option for the client to indicate that it would benefit from a delivery boost during the following media segment download. This is specified in clause 13.6.5.2.

13.6.4 Temporary delivery boost function

The 3GP-DASH client uses this function to indicate to the network that a temporary boost, i.e. a temporary increase of network throughput for this client, would be needed in order to avoid the risk of media playback stalling due to buffer under-run, which could otherwise occur during the next media segment or soon after.

Throughput boosting may be used also at the start of a playback session to shorten the time to playout, giving a better experience for the user.

The network informs the client when the network applies the delivery boost, in order to ensure that the client is not misled as to the available link throughput, since this could lead to the client making an erroneous media rate selection when the throughput is back to normal again, without boost, and select a higher media rate than suitable for the next segment download. During a delivery boost period the client shall not select a higher media rate than indicated with the rate recommendation function. The client may return to its own normal media rate selection method only when the delivery boost period has ended. After the delivery of a segment with network boost, the network reverts to normal delivery, i.e. without boost.

13.6.5 SAND messages usage and extensions

13.6.5.1 Introduction

This clause contains the specification of the Network Assistance functions firstly as generic function calls, and how they could be mapped to SAND messages.

The Network Assistance (NA) DANE is out-of-band, i.e. not located in the media path. The 3GP-DASH client shall send the NA SAND messages as the body of HTTP requests directly to the NA DANE, using the HTTP POST method to send a Network Assistance message to the DANE.

The Network Assistance transactions between the 3GP-DASH client and the DANE at the logical level consist of the Network Assistance initiation and termination, the Network Assistance request and the Network Assistance response.

A combination of existing SAND messages as defined in the SAND specification, with usage as defined in clause 13.6.5.2, and SAND extension messages as defined in clause 13.6.5.3, are used.

The XML schema for the SAND extension messages is provided in clause 13.9.

13.6.5.2 Use of existing SAND messages

13.6.5.2.1 Shared resource allocation

The SAND status message SharedResourceAllocation is used in the NA request from the 3GP-DASH client to the DANE, in order to provide information about the available media bitrates for the content item to be accessed.

The parameters operationPoints and bandwidth in the SAND message SharedResourceAllocation shall represent each of the available media bitrates, indicated as the sum of all media components in each case.

13.6.5.2.2 Buffer level

In the case that the 3GP-DASH client is requesting a network delivery boost during the following segment, the SAND metrics message BufferLevel is used to inform the DANE of the current buffer level for the content item being accessed.

13.6.5.2.3 Shared resource assignment

The SAND PER message SharedResourceAssignment is used in the NA response from the DANE to the 3GP-DASH client, in order to provide the recommended choice of bitrate version for the next segment of the content item being accessed.

13.6.5.3 SAND message extensions

13.6.5.3.1 Network Assistance session initiation

The 3GP-DASH client initiates a Network Assistance session by sending the NetworkAssistanceInitiation SAND extension message to the DANE within a SAND message envelope. The generic procedure for the Network Assistance session initiation request is shown in Table 13-4.

Table 13-4: Network Assistance session initiation generic procedure

Function call

Originator

 destination

Parameters

Network Assistance session initiation request

UE  DANE

Media server IP address,

Media delivery port number

Network Assistance session initiation response

DANE  UE

session id,

port number,

websocket requirement

In the Network Assistance session initiation request message, the following parameters shall be set by the UE:

– MediaServerIPAddress – the IP address of the media server;

– MediaDeliveryPortNumber – the port number used for the delivery of the media segments.

The Network Assistance session initiation request message syntax is shown in Table 13-5.

Table 13-5: Network Assistance session initiation request message syntax

Parameter

Type

Cardinality

Description

SandMessage =

NetworkAssistanceInitiationRequest

Object

1

MediaServerIPAddress

String

1

IP address of the media server delivering content segments in the present Network Assistance session.

MediaDeliveryPortNumber

Integer

1

Port number for media server delivering content segments in the present Network Assistance session.

The NetworkAssistanceInitiationRequest message shall be carried in a SAND message envelope, as specified in ISO/IEC 23009-5 [54], with the following constraints:

– The senderID element shall be included, in order to provide a reference by which the session initiation request can be authenticated or otherwise authorised at the DANE or elsewhere in the network, relayed by the DANE receiving the message;

– The generationTime element may be omitted;

– The messageId element may be omitted.

The NetworkAssistanceInitiationRequest message is defined in the schema whose @schemeIdUri is:

"urn:3gpp:dash: schema:sandmessageextension:2017"

In the Network Assistance session initiation response message, the following parameters are set by the DANE:

– SessionID – this is used to identify the context of any future messages relating to this Network Assistance session;

– PortNumber – the DANE sets the port number at which all further NA communications in this session shall occur;

– WebSocketRequirement – the DANE indicates whether the UE shall set up a WebSocket connection to the DANE for all further NA communications in this session.

The Network Assistance session initiation response SAND extension message syntax is shown in Table 13-6.

Table 13-6: Network Assistance session initiation response message syntax

Parameter

Type

Cardinality

Description

SandMessage =

NetworkAssistanceInitiationResponse

Object

1

SessionID

Integer

1

Reference to the network assistance session, allocated by the DANE.

A value of 0 is reserved to indicate failure, or refusal of the NA session initiation.

In case of failure, no further parameters shall be added to this message.

PortNumber

Integer

0..1

The DANE informs the 3GP-DASH client of the port number that shall be used for NA communications in the present session.

WebSocketRequirement

Object

0..1

The DANE informs the 3GP-DASH client whether a websocket shall be set up for the present session.

The NetworkAssistanceInitiationResponse message shall be carried in a SAND message envelope, as specified in ISO/IEC 23009-5 [54], with the following constraints:

– The senderID element shall be included, and shall be the same as that used in the corresponding session initiation request;

– The generationTime element may be omitted;

The messageId element may be omitted. The NetworkAssistanceInitiationResponse message is defined in the schema whose @schemeIdUri is:

– "urn:3gpp:dash: schema:sandmessageextension:2017"

13.6.5.3.2 Network Assistance session termination

The 3GP-DASH client terminates a Network Assistance session by sending the NetworkAssistanceTermination SAND extension message to the DANE within a SAND message envelope, with parameter SessionID as allocated by the DANE when the session was initiated. Table A5 shows the generic procedure of Network Assistance session termination. Table 13-7 depicts the network assistance termination generic procedure.

Table 13-7: Network Assistance session termination generic procedure

Function call

Originator  destination

Parameters

Network Assistance session terminiation request

UE  DANE

Session id

Network Assistance session terminiation response

DANE  UE

Session id

The Network Assistance session termination message syntax is shown in Table 13-8. The same SAND message is used for both request and response, only with different semantics for the SessionID parameter.

Table 13-8: Network Assistance session termination message syntax

Parameter

Type

Cardinality

Description

SandMessage =

NetworkAssistanceTermination

Object

1

SessionID

Integer

1

Reference to the network assistance session that was allocated by the DANE after successful initiation.

The request message shall not use value 0 for SessionID, since it is an invalid setting.

A response message indicating SessionID = 0 means that an unknown SessionID was provided in the request, or some other failure.

The NetworkAssistanceTermination SAND extension message is defined in the schema whose @schemeIdUri is:

"urn:3gpp:dash: schema:sandmessageextension:2017"The NetworkAssistanceTermination message shall be carried in a SAND message envelope, as specified in ISO/IEC 23009-5 [54], with the following constraints:

– The senderID element shall be included, in order to provide the same reference by which the Network Assistance session had previously been initiated;

– The generationTime element may be omitted;

– The messageId element may be omitted.

13.6.5.3.3 Segment duration

The segment duration SAND extension status message is used to provide the nominal segment duration for the upcoming segment, as obtained from the MPD of the content item. The generic procedure is shown in Table 13-9.

Table 13-9: Segment duration provision generic procedure

Function call

Originator  destination

Parameters

Segment duration

UE  DANE

Segment duration

The segmentDuration message syntax is shown in Table 13-10.

Table 13-10: Segment duration message syntax

Parameter

Type

Cardinality

Description

SandMessage =

SegmentDuration

Object

1

segmentDuration

Integer

1

Segment duration in milliseconds

The SegmentDuration message is used within the compound NetworkAssistanceRequest SAND transaction specified in clause 13.6.6.2.

The SegmentDuration message is defined in the schema whose @schemeIdUri is:

– "urn:3gpp:dash: schema:sandmessageextension:2017"

13.6.5.3.4 Delivery boost request

The 3GP-DASH client may include a request for delivery boost in the NA request, when there is a risk that buffer underflow is imminent. The request is valid for the time period of the upcoming media segment. The client may request delivery boost for the fetch of the first media segment, in order to accelerate the start of playback. If buffer under-run remains to be an imminent risk then the client may repeat the delivery boost request for the following segment. The client may request delivery boosts until it attains a sufficient media buffer fullness level. The decision to grant or decline any boost request lies entirely with the network or DANE policy.

The network informs the client when the network applies the delivery boost, in order to ensure that the client is not misled as to the available link throughput, since this could lead to the client making an erroneous media rate selection when the throughput is back to normal again, without boost, and select a higher media rate than suitable for the next segment download. During a delivery boost period the client shall not select a higher media rate than indicated with the rate recommendation function. The client may return to its own normal media rate selection method only when the delivery boost period has ended. After the delivery of a segment with network boost, the network reverts to normal delivery, i.e. without boost.

The delivery boost request is actuated by including the DeliveryBoostRequest message in the Network Assistance request. It is classed as a SAND PED message extension.Table 13-11 shows the generic procedure.

Table 13-11: Delivery boost request generic procedure

Function call

Originator  destination

Parameters

Delivery boost request

UE  DANE

None

The syntax of the DeliveryBoostRequest message is shown in Table 13-12.

Table 13-12: Delivery boost request message syntax

Parameter

Type

Cardinality

SandMessage =

DeliveryBoostRequest

Object

1

The DeliveryBoostRequest message is used within the compound NetworkAssistanceRequest SAND transaction specified in clause 13.6.6.2.

The DeliveryBoostRequest message is defined in the schema whose @schemeIdUri is:

– "urn:3gpp:dash: schema:sandmessageextension:2017"

13.6.5.3.6 Delivery boost response

The delivery boost response is actuated by including the DeliveryBoostResponse message in the Network Assistance response. It is classed as a SAND PED message extension. It indicates whether the DANE grants or declines the corresponding boost request. Table 13-13 shows the generic procedure.

Table 13-13: Delivery boost response generic procedure

Function call

Originator  destination

Parameters

Delivery boost response

DANE UE

Request granted or not

The DeliveryBoostResponse message syntax is shownin Table 13-14.

Table 13-14: Delivery boost response message syntax

Parameter

Type

Cardinality

Description

SandMessage =

DeliveryBoostResponse

Object

1

Status

Enum

1

Status of requested delivery boost

The status semantics are shown in Table 13-15.

Table 13-15: Delivery boost response status values

Status

Semantics

boostGranted

Delivery boost granted

boostDeclined

Delivery boost declined

The DeliveryBoostResponse message is used within the compound NetworkAssistanceResponse SAND transaction specified in clause 13.6.6.3.

The DeliveryBoostResponse message is defined in the schema whose @schemeIdUri is:

– "urn:3gpp:dash: schema:sandmessageextension:2017"

13.6.6 Network Assistance transactions

13.6.6.1 General

The Network Assistance transactions consist of the Network Assistance request and Network Assistance response compound messages. Each of these compound messages consists of several SAND messages and/or several SAND extension messages as defined in the present specification, contained in a single SAND envelope message.

13.6.6.2 Network Assistance request

The generic procedure for the Network Assistance request is shown in Table 13-16.

Table 13-16: Network Assistance request generic procedure

Function call

Originator  destination

Parameters

Network Assistance request

Client  DANE

Segment duration

Available bitrates

Delivery boost request

Buffer level

The Network Assistance request is realised by using a single SAND message envelope containing the following SAND messages:

– SegmentDuration SAND extension message;

– SharedResourceAllocation SAND status message;

– Optionally the DeliveryBoostRequest SAND extension message, if the client is requesting delivery boost during the upcoming media segment;

– BufferLevel SAND metrics message, which shall be included if the DeliveryBoostRequest message is included in the Network Assistance request.

The SAND message envelope is used to carry the Network Assistance request compound message, with the following constraints:

– The senderId element shall be used by the UE as a reference for the Network Assistance transaction;

– The generationTime element is not required for Network Assistance, hence it shall be omitted;

– The messageId element is not used and shall be omitted in all Network Assistance messages.

The segment duration and available media bitrates are derived by the client from the information contained in the MPD.

The media segment duration shall be provided using the MediaSegmentDuration message, as defined in clause 13.6.5.4. The validityTime element in the SharedResourceAllocation SAND message is not required to be included.

The parameters operationPoints and bandwidth in the SAND message SharedResourceAllocation shall represent each of the available media bitrates, indicated as the sum of all media components.

The delivery boost request is activated by the inclusion of the DeliveryBoostRequest message in the SAND message envelope. It has no additional parameters. If the message is present in the Network Assistance SAND message envelope then the delivery boost request is actuated. If it is not present then the 3GP-DASH client is not making a delivery boost request for the respective segment.

The buffer level parameter may be omitted, but if the client is requesting a boost for this segment then the buffer level shall be communicated.

An example of a complete Network Assistance request compound message structure is shown in Table 13-17. Depicted is a specific example with six operation points available to the client, and the client is asserting the delivery boost request. The syntax of each of the component messages is specified normatively in clause 13.6.5.

Table 13-17: Network assistance request compound message structure example

Parameter

CommonEnvelope

senderId

SandMessage =

SegmentDuration

segmentDuration

SandMessage =

SharedResourceAllocation

operationPoints

Bandwidth1

Bandwidth2

Bandwidth3

Bandwidth4

Bandwidth5

Bandwidth6

SandMessage =

DeliveryBoostRequest

SandMessage =

BufferLevel

T

Level

13.6.6.3 Network Assistance response

The generic procedure for the Network Assistance request is shown in Table 13-18:

Table 13-18: Network Assistance response generic procedure

Function call

Originator  destination

Parameters

Network Assistance response

DANE  Client

Recommended bitrate

Delivery boost response

The Network Assistance response is realised by using a single SAND message envelope containing the following SAND messages:

– One SharedResourceAssignment SAND PER message;

– Optionally, one DeliveryBoostResponse SAND extension message.

– The DANE provides the recommended bitrate from those listed in the Network Assistance request using the Bandwidth element in the SharedResourceAssignment message.

The validityTime element is used to express the end time of validity of the recommendation. If it is omitted then the client shall assume the validity is for the whole media segment duration, i.e. for the duration indicated in the Network Assistance request.

The DeliveryBoostResponse message indicates whether the requested boost, if requested for the upcoming media segment, is granted or declined. If no boost request was made then the Network Assistance response shall not contain a DeliveryBoostResponse message.

The syntax of a complete Network Assistance response compound message example is shown in Table 13-19. In this example the DANE communicates the recommended bandwidth and includes the response to the delivery boost request that was received from the client in the preceeding Network Assistance request compound message.

Table 13-19: Network assistance response compound message structure example

Parameter

CommonEnvelope

SandMessage =

SharedResourceAssignment

validityTime

Bandwidth

SandMessage =

DeliveryBoostResponse

Status

13.6.7 Example workflow for Network Assistance

Figure 13.1 shows an example workflow for the Network Assistance use case. Here it is assumed that the Network Assistance DANE location is already known by the 3GP-DASH client, hence the discovery procedure of the out-of-band DANE is not shown. It is also assumed that the client is already aware of the location of the PSS server from which it will access the content item, about which the client informs the DANE. The individual workflow steps are described in figure 13.1.

Figure 13.1: Example SAND workflow for Network Assistance

Step 0: The client and DANE exchange SAND capabilities exchange messages, as described in clause 13.4.

Step 1: The client registers its intention to make use of the Network Assistance functionality in the DANE by initiating the Network Assistance session, using the NetworkAssistanceInitiationRequest message, providing the IP address of the media server and port number used for delivery of media segments.

Step 2: The DANE responds to the request in step 1 with the NetworkAssistanceInitiationResponse message. If the request is accepted by the DANE, the response contains the session id, the port number for all further Network Assistance messages, and the indication of whether a websocket connection shall be set up by the client for further Network Assistance communications in the present Network Assistance session.

Step 3: The client sends the NetworkAssistanceRequest message to the DANE, indicating the media content item segment duration and the available versions in terms of total bitrate. If a network delivery boost is requested for the upcoming segment then the DeliveryBoostRequest and the BufferLevel messages are included in addition.

Step 4: The DANE responds with the NetworkAssistanceResponse message, indicating the recommended version of the content item in terms of the recommended bitrate, and whether a delivery boost is foreseen during the upcoming media segment.

Step 5: The client issues an HTTP GET to the media server in order to initiate delivery of the media segment.

Step 6: The media server delivers the requested segment to the client. If a delivery boost was granted for the present segment, the DANE or network may deliver a part or parts of the segment at a significantly higher bitrate than the media playback bitrate, in order to facilitate filling of the media buffer in the client.

Steps 3-6 are repeated for as long as the content item playback continues.

Step 7: The client has ended playback of the content item, so it sends the NetworkAssistanceTerminationRequest message to the DANE, indicating the session id of the Network Assistance session.

Step 8: The DANE confirms the termination of the Network Assistance session, also confirming the corresponding session id.