This clause specifies the protocols between the MBSTF Client and the MBS AS with reference to the general provisions of clause 8 as they apply to these functional entities at reference point MBS-4-UC.
The following protocols are defined in this release:
Unicast Object Repair protocol (clause 10.2) between the MBSTF Client and the MBS AS when the delivery of one of several objects in an MBS download delivery session using the Object Distribution Method was not completely successful.
This clause defines the unicast Object Repair retrieval protocol between the MBSTF Client and the MBS AS at reference point MBS-4-UC when the delivery of one of several objects in an MBS User Service Session was not completely successful. The unicast Object Repair protocol is based on HTTP RFC 9110 and the general requirements specified in clause 8.2 and 8.3 of the present document shall apply to all interactions between these two functional entities at this reference point.
An MBSTF Client shall implement the procedures defined in clause 10.2.2 to support the object repair protocol.
An MBS AS shall implement the procedures defined in clause 10.2.3 to support the object repair protocol.
This clause defines the MBSTF Client procedures for the unicast Object Repair protocol.
It is assumed that at a specific time instance, the MBSTF Client is triggered to initiate the Object Repair procedures based on the parameters defined in clause 10.2.2.2.
Once initiated, the MBSTF Client shall calculate a random back-off time using the offsetTime and randomTimePeriod parameters as defined in clause 10.2.2.3. The MBSTF Client shall start making repair requests as described in clause 10.2.2.3 at the computed back-off time. The MBSTF Client shall not start sending any repair request messages before this calculated time back-off time has elapsed.
The following parameters are assumed to be available to the MBSTF Client for unicast Object Repair:
The offsetTime parameter and the randomTimePeriod parameter for the back-off time computation.
For each object with missing data:
If available to the MBSTF Client in the MBS Distribution Session metadata, an entity tag value for the damaged object.
The length (in bytes) of the damaged object.
The network location location referring to a corresponding object hosted on the MBS AS.
A minimally sized list of byte ranges of dimension Range[M] with M the number of independent ranges and Range[m].start the start of the range and Range[m].end the end of the range from the repair object.
The computation of the back-off time uses the offsetTime parameter and the randomTimePeriod parameter. In particular, the MBS Client shall implement the back-off timing computation specified in clause 9.3.4 of TS 26.346 as follows:
The MBSTF Client sends one or more requests to an MBS AS instance requesting transmission of data that allows recovery of missing object data. All uncast Object Repair requests and responses for a particular MBS Distribution Session shall take place in a single HTTP session RFC 9110.
The MBSTF Client shall start the initial request once initiated after the back-off time, if any, has elapsed (see clause 10.2.2.3). If there is more than one repair request to be made, these are sent one straight after another without further delay.
The MBSTF Client shall send separate HTTP GET requests for each damaged object.
For each damaged object, based on the parameters in clause 10.2.2.2, the MBSTF Client shall act as follows:
If the requested range is the entire object, i.e. M = 1, Range[0].start = 0 and Range[0].end = F, with F the value of the content length, then the HTTP GET method shall be used.
If the requested range is only a subset of the object, a HTTP partial GET request shall be used with the Range request header (as specified in Section 14.1.2 of RFC 9110) present.
If M >1, the MBSTF Client shall include multiple byte range requests within a single partial GET request. In particular, the MBSTF Client shall include as many byte ranges as possible in a single HTTP request message without exceeding 2048 bytes for all request headers. If this length is exceeded, the request shall be split into as few requests as possible without any of those exceeding the 2048-byte limit.
If the entity tag is available to the MBSTF Client for the damaged object, it shall be used as the entity tag value in the If-Match or If-Range header of a conditional byte-range file request.
If the entity tag is not available to the MBSTF Client for the damaged object, the MBSTF Client may omit the If-Match or If-Range header from its byte range request.
An MBS AS instance is assigned to an MBS User Service Session and hosts all objects at a location as specified in clause 6.2.4.4.
An MBS AS shall be an HTTP server that complies with the general provisions in clause 8.2 and 8.3 of the present document and shall respond to all requests as specified in clause 10.2.2.4.