Internet DRAFT - draft-ko-ippm-streaming-performance

draft-ko-ippm-streaming-performance







 
 
Network Working Group                                              K. Ko
Internet-Draft                                                    ADTRAN
Intended status: Informational                         February 18, 2013
Expires: August 18, 2013 
                                    
 
                                      
              Model-Based Estimation of Streaming Performance 
                draft-ko-ippm-streaming-performance-00.txt 


Abstract 

   This memo defines metrics plus a methodology for post-measurement 
   processing of sample metrics to evaluate network path performance 
   relative to streaming video traffic. The metrics are based on 
   established methodologies for TCP throughput testing. The post-
   processing methodology is based on a model of streaming traffic that 
   allows a given sample metric to be evaluated against multiple sets 
   of parameters representing different streaming rates, delays and 
   buffering values. The results of the post-processing methodology are 
   derived metrics that are suitable for statistical analysis. 

Status of this Memo 

   This Internet-Draft is submitted in full conformance with the 
   provisions of BCP 78 and BCP 79.  

   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet-
   Drafts. 

   Internet-Drafts are draft documents valid for a maximum of six 
   months and may be updated, replaced, or obsoleted by other documents 
   at any time.  It is inappropriate to use Internet-Drafts as 
   reference material or to cite them other than as "work in progress." 

   The list of current Internet-Drafts can be accessed at 
   http://www.ietf.org/ietf/1id-abstracts.txt 

   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html 

   This Internet-Draft will expire on August 18, 2013. 



 
 
 
Ko                     Expires August 18, 2013                  [Page 1]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

Copyright Notice 

   Copyright (c) 2013 IETF Trust and the persons identified as the 
   document authors. All rights reserved. 

   This document is subject to BCP 78 and the IETF Trust's Legal 
   Provisions Relating to IETF Documents 
   (http://trustee.ietf.org/license-info) in effect on the date of 
   publication of this document. Please review these documents 
   carefully, as they describe your rights and restrictions with 
   respect to this document. Code Components extracted from this 
   document must include Simplified BSD License text as described in 
   Section 4.e of the Trust Legal Provisions and are provided without 
   warranty as described in the Simplified BSD License. 

Table of Contents 

   1. Introduction...................................................3 
   2. Conventions used in this document..............................4 
   3. Transmission and Buffering of Streaming Data...................4 
   4. Methodology....................................................5 
   5. Streaming model................................................6 
      5.1. Model parameters..........................................6 
      5.2. Model behavior............................................7 
   6. Metrics........................................................9 
      6.1. A Singleton Definition for Short Term TCP Throughput......9 
         6.1.1. Metric Name..........................................9 
         6.1.2. Metric Parameters....................................9 
         6.1.3. Metric Units.........................................9 
         6.1.4. Definition..........................................10 
         6.1.5. Discussion..........................................10 
      6.2. A Definition of Sample for Short Term TCP Throughput.....11 
         6.2.1. Metric Name.........................................11 
         6.2.2. Metric Parameters...................................11 
         6.2.3. Metric Units........................................11 
         6.2.4. Definition..........................................12 
         6.2.5. Discussion..........................................12 
      6.3. A Definition of Sample for Dejitter Buffer Fill..........12 
         6.3.1. Metric Name.........................................13 
         6.3.2. Metric Parameters...................................13 
         6.3.3. Metric Units........................................13 
         6.3.4. Definition..........................................14 
         6.3.5. Discussion..........................................14 
         6.3.6. Methodologies.......................................15 
      6.4. Some Statistics Definitions for Dejitter-Buffer-Fill.....15 
         6.4.1. Initial-Streaming-Delay.............................15 
         6.4.2. Percentage-Viewing-Time.............................16 
 
 
         
         
Ko                     Expires August 18, 2013                  [Page 2]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

         6.4.3. Minimum-Buffer-Depth................................17 
   7. Additional topics.............................................17 
   8. Security Considerations.......................................17 
   9. IANA Considerations...........................................17 
   10. References...................................................17 
      10.1. Normative References....................................17 
      10.2. Informative References..................................18 
   11. Acknowledgments..............................................18 
    
1. Introduction 

   As the rates at which residential users access the Internet have 
   increased over time, the types of traffic accessed by those users 
   have evolved. Dialup access at rates of up to 56 kbps supported 
   little more than email and non-real time traffic such as static web 
   pages. The introduction of DSL and cable modems helped drive the 
   trend towards more complex web pages with higher information 
   content, as well as the emergence of real-time traffic such as VoIP 
   and near-real time traffic such as streaming audio and video at low 
   speeds. With the introduction of Fiber To The Premises (FTTP) as 
   well as increasingly high DSL, cable and mobile wireless access 
   rates, streaming video has become the largest category of consumer 
   traffic on the Internet. According to one source [Cis2012], 49% of 
   all consumer Internet traffic in 2011 was streaming video in some 
   form and the percentage is continuing to increase. 

   The applications that display streaming video can be sensitive to 
   variations in throughput and delay in the network. If the dejitter 
   buffer in the destination host doesn't receive a steady enough 
   stream of packets at the required rate it may underflow, causing a 
   noticeable freeze in the video being played out. While application 
   providers can mitigate the frequency and severity of these freezes, 
   doing so typically involves trading off both the perceived quality 
   of the video and the delay before it starts against the possibility 
   of performance issues in mid-playout. 

   Recent large scale performance trials have included dedicated tests 
   to measure video streaming performance [FCC2012]. These tests are 
   designed to measure streaming at a defined performance point, with a 
   new dedicated test required for each new performance point. This 
   document proposes a different approach in which metrics resulting 
   from TCP throughput performance testing are used to evaluate the 
   network path's ability to support streaming at multiple performance 
   points. 

   This document defines metrics plus a methodology for post-
   measurement processing of sample metrics to determine network path 
 
   
   
 
Ko                     Expires August 18, 2013                  [Page 3]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

   performance relative to the requirements for streaming video 
   traffic. The metrics are based on established methodologies for TCP 
   throughput testing [RFC6349]. The post-processing methodology is 
   based on a model of streaming traffic that allows a given sample 
   metric to be evaluated against multiple sets of parameters 
   representing different streaming rates, delays and buffering values. 
   The results of the post-processing methodology are derived metrics 
   that are suitable for statistical analysis. 

2. Conventions used in this document 

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
   document are to be interpreted as described in RFC-2119 [RFC2119].  

   In this document, these words will appear with that interpretation   
   only when in ALL CAPS. Lower case uses of these words are not to be    
   interpreted as carrying RFC-2119 significance. 

   Whenever a technical term from the IPPM Framework document [RFC2330] 
   is first used in this memo, it will be tagged with a trailing 
   asterisk. For example, "term*" indicates that "term" is defined in 
   the Framework. 

3. Transmission and Buffering of Streaming Data 

   Streaming video is a near-real time application, the performance of 
   which is dependent upon many factors including: the throughput and 
   delay characteristics of the network; the rate, susceptibility to 
   lost packets and other characteristics of the encoded content; and 
   the protocols and application parameters used to deliver and display 
   the content. In a typical implementation, packets are sent from a 
   content serving host to a destination host where they are stored in 
   a dejitter buffer. The buffered packets are read from the buffer, 
   decoded, and displayed by a video display application as needed in 
   real time. The dejitter buffer stores the packets from the time of 
   arrival at the destination host until they are needed by the display 
   application. This dejitter buffer compensates for variability in the 
   delivery of packets across the network and also allows the content 
   serving host to send packets on a schedule that can differ from the 
   timing required by the display application. For example, content 
   serving hosts commonly schedule transmission of streaming video 
   packets in bursts separated by idle time such that the average rate 
   of transmission approximates the rate required for display, but the 
   momentary rate at a given point in time is either much higher than 
   the display rate or it is zero. 

   
   
 
 
Ko                     Expires August 18, 2013                  [Page 4]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

   The amount of data present in the dejitter buffer at a given point 
   in time is a function of the difference between the packet arrival 
   activity and the packet read activity. The display application 
   typically waits until the dejitter buffer has stored some minimum 
   amount of received data before starting to read it, to allow the 
   momentary read rate to exceed the arrival rate without exhausting 
   the buffer contents. As long as there are unread packets available 
   in the dejitter buffer, the display application can read, decode and 
   display the video content without interruption. However, if packet 
   reads empty the buffer without the corresponding arrival of new 
   packets, the resulting underflow will interrupt the display of 
   video. When this happens, video freezes until the buffer has once 
   again received and stored a minimum amount of data. 

   Nearly all video streaming traffic is carried over TCP. TCP is a 
   connection oriented protocol which responds to packet loss by 
   reducing its congestion window. As a result, the momentary 
   throughput for the protocol varies, which can lead to the buffer 
   exhaustion and video interruptions described above. In the 
   methodology described below, the variation in throughput is measured 
   directly during the course of TCP throughput testing and the 
   measured results are applied to a model of streaming video behavior 
   to estimate the ability of the measured network path to support 
   streaming video at a given combination of parameters. The same 
   measured results can be tested against multiple sets of streaming 
   parameters, generating a picture of how well the measured 
   performance would support streaming video at different rates and 
   with different amounts of delay. 

4. Methodology 

   This methodology is intended for operational IP networks. The 
   metrics measured in the first step rely on the framework for TCP 
   throughput testing defined in RFC6349.  

   The methodology is described in the following sequence of steps: 

   1. Using the methodology in RFC6349, perform TCP throughput testing 
      on the network path under test. During the throughput testing, 
      collect the sample metric Short-term-TCP-throughput-constant-
      stream defined in Section 6.2. This metric may be collected on 
      its own in a TCP throughput test dedicated to streaming video 
      performance, or it may be collected in addition to the metrics 
      defined in RFC6349 as part of a larger series of performance 
      tests. 


      
      
 
 
Ko                     Expires August 18, 2013                  [Page 5]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

   2. Define the model parameter values described in Section 5.1. for 
      the streaming model of Section 5.  

   3. Apply the streaming model to the sample metric Short-term-TCP-
      throughput-constant-stream using the model behavior defined in 
      Section 5.2.  

   4. Step 3 may be performed as many times as desired defining 
      different sets of model parameter values in step 2. Each 
      iteration of the process generates results indicating how well 
      the network path performance at the time of the throughput test 
      would support streaming content under a different set of 
      conditions. 

5. Streaming model 

   In this section we define a generalized model for the reception, 
   storage and subsequent reading of a media stream. The streaming 
   model generates a sequence of values representing the amount of data 
   stored in the dejitter buffer at discrete times during the simulated 
   reception and display of streaming media content. The input to the 
   model is the sample metric Short-term-TCP-throughput-constant-stream 
   defined in Section 6.2. The output of the model is the derived 
   sample metric Dejitter-Buffer-Fill defined in Section 6.3.  

5.1. Model parameters 

   The following parameters are used in the streaming model: 

   o  The average encoded media rate Ravg, in bits per second. This is 
      the average rate at which data is read from the dejitter buffer 
      by the streaming media application for decoding and display when 
      the model is in state FILL_PLAY or MAINTAIN. It is also the 
      maximum rate at which data is written to the buffer in state 
      MAINTAIN. 

   o  The initial streaming rate Rinit, in bits per second where Rinit 
      > Ravg. This is the maximum rate at which data is written to the 
      dejitter buffer when the model is in state FILL_NOPLAY or 
      FILL_PLAY. Rinit may be set to an arbitrarily high value to allow 
      the buffer to be filled as quickly as can be supported by the 
      network. 





      
      
 
 
Ko                     Expires August 18, 2013                  [Page 6]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

   o  The buffer depth Binit, in bytes, at which the streaming display 
      application starts to read content out of the dejitter buffer for 
      encoding and display. The combination of Rinit and Binit 
      determines the minimum time delay between the beginning of 
      streaming over the network and the beginning of content decoding 
      and display at the destination. 

   o  The target buffer depth Btarget, in bytes where Btarget >= Binit. 
      As long as the fill level of the dejitter buffer remains at or 
      above this depth, the average streaming rate is reduced to the 
      encoded rate Ravg and the buffer depth remains constant until the 
      end of the simulation. If the buffer depth drops below this value 
      due to a reduction in TCP throughput, the streaming rate can 
      increase as high as Rinit until the buffer depth once again 
      reaches Btarget. 

   o  The time interval I, in seconds. This is the interval I used to 
      generate the value of the sample metric Short-term-TCP-
      throughput-constant-stream used as an input to the simulation.  

5.2. Model behavior 

   The streaming model is stateful. When the model is used to simulate 
   streaming performance using a value of sample Short-term-TCP-
   throughput-constant-stream, it iteratively updates a number of 
   variables which are then used to update the model's state: 

   o  The fill rate F at which data is written to the buffer. The units 
      for F are bytes per time interval I. When the model is in state 
      FILL_NOPLAY or FILL_PLAY, the value of F for an interval k is 
      calculated from the minimum of Rinit (normalized to bytes per 
      interval I) or the short-term TCP throughput for the interval 
      R(k). When the model is in state MAINTAIN, the value of F for an 
      interval k is calculated from the minimum of Ravg (normalized to 
      bytes per interval I) or R(k). Note that F may have a non-integer 
      value.  

   o  The playout rate P at which data is read from the buffer. The 
      units for P are bytes per time interval I. When the model is in 
      state FILL_NOPLAY, the value of P is zero. When the model is in 
      state FILL_PLAY or MAINTAIN, the value of P is calculated from 
      the average encoded rate Ravg. Note that P may have a non-integer 
      value. 




      
      
 
 
Ko                     Expires August 18, 2013                  [Page 7]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

   o  The buffer depth B, in bytes. The value of B in each time 
      interval is iteratively calculated from the value of B from the 
      previous interval and the fill and playout rates for the current 
      interval. Note that since F and P may have non-integer values, B 
      may also have a non-integer value. 

   The following pseudocode specifies the model algorithm: 

   // Initialize the parameters for time T(0) 
    
   B(0) = 0                    // Initial buffer state 
   T(0) = T(1) - I             // T(0) = T0 
   Finit = Rinit / 8 * I       // Initial fill rate 
   Fmaint = Ravg / 8 * I       // Maintenance fill rate  
   P = Ravg / 8 * I            // Playout rate  
   Model_state = FILL_NOPLAY   // Initial state 
    
   // Run the simulation for each time interval T(k) 
    
   For k = 1 to k_max 
     Switch(Model_state) 
       // Buffer filling, no playout 
       Case FILL_NOPLAY: 
         B(k) = B(k-1) + min(Finit, R(k)) 
         If B(k) >= Btarget then 
           Model_state = MAINTAIN 
         Else If B(k) >= Binit then 
           Model_state = FILL_PLAY 
         End if 
       // Buffer filling, media playing out 
       Case FILL_PLAY: 
         B(k) = B(k-1) + min(Finit, R(k)) - P 
         If B(k) >= Btarget then 
           Model_state = MAINTAIN 
         Else If B(k) <= 0 then 
           B(k) = 0 
           Model_state = FILL_NOPLAY 
         End if 
       // Buffer at target, media playing out 
       Case MAINTAIN: 
         B(k) = B(k-1) + min(Fmaint, R(k)) - P 
         If B(k) <= 0 then 
           B(k) = 0 
           Model_state = FILL_NOPLAY 
         Else If B(k) < Btarget then 
           Model_state = FILL_PLAY 
         End if 
 

         
         
Ko                     Expires August 18, 2013                  [Page 8]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

     End switch 
   Next k 
    
6. Metrics 

   The structure of this section is as follows: 

   o  A 'singleton' analytic metric, called Short-term-TCP-throughput, 
      will be introduced to measure a single observation of short-term 
      TCP throughput. 

   o  Using this singleton metric, a 'sample', called Short-term-TCP-
      throughput-constant-stream, will be introduced to measure a 
      sequence of singleton short-term TCP throughputs measured at 
      regular intervals. 

   o  Using this sample and the streaming model defined in Section 5. , 
      a derived sample metric called Dejitter-Buffer-Fill will be 
      defined and discussed. 

   o  Using this derived sample metric, several 'statistics' will be 
      defined and discussed. 

   This progression from singleton to sample to derived sample to 
   statistics, with clear separation among them, is important. 

6.1. A Singleton Definition for Short Term TCP Throughput 

6.1.1. Metric Name 

   Short-term-TCP-throughput 

6.1.2. Metric Parameters 

   o  Src, the IP address of a host 

   o  Dst, the IP address of a host 

   o  T, a time 

   o  I, a time interval 

6.1.3. Metric Units 

   The value of Short-term-TCP-throughput is an integer number. 


 
 
   
   
Ko                     Expires August 18, 2013                  [Page 9]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

6.1.4. Definition 

   >>The *Short-term-TCP-throughput* from Src to Dst at time T over the 
   interval I is R<< means that the number of new bytes sent over TCP 
   from Src which are acknowledged by Dst during the time interval I 
   preceding wire-time* T is R. 

6.1.5. Discussion 

   Short-term-TCP-throughput is measured using the framework for TCP 
   testing described in RFC6349. Like the metrics in that document, 
   this metric should be measured in the TCP Equilibrium state [see 
   RFC6349 Section 1.3].  

   Short-term-TCP-throughput can be measured at either the Src or Dst 
   host. If measured at Dst, the first step in generating the metric is 
   to record the highest Acknowledgement Numbers generated by Dst for 
   the TCP connection being measured at the beginning and end of the 
   time interval I preceding time T.  

   o  Assign A(k) = the highest Acknowledgement Number generated by Dst 
      at time T 

   o  Assign A(k-1) = the highest Acknowledgement Number generated by 
      Dst at time (T - I) 

   If the metric is measured at Src, then  

   o  Assign A(k) = the highest Acknowledgement Number received by Src 
      at time T 

   o  Assign A(k-1) = the highest Acknowledgement Number received by 
      Src at time (T - I) 

   Short-term-TCP-throughput is then calculated in bytes per interval I 
   as  

       R = A(k) - A(k-1) 

   Calculation of the difference A(k) - A(k-1) must account for the TCP 
   window scaling option and for the potential rollover of the 
   Acknowledgement Number from (2^32 - 1) to 0 between the beginning 
   and the end of a measurement interval. 

   The streaming video applications described in Section 3. typically 
   allow at least several seconds worth of content to be buffered 
   before beginning to stream data, and then continue to send and store 
 
   
   
 
Ko                     Expires August 18, 2013                 [Page 10]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

   data faster than it is being read for display until a target level 
   of buffer fill is reached that may support several tens of seconds 
   worth of content. To effectively apply the streaming model from 
   Section 5. with an acceptable level of accuracy, we require short 
   term throughput values at intervals on the order of two orders of 
   magnitude smaller than the buffering intervals described above. A 
   measurement interval I on the order of 100 milliseconds is 
   suggested. 

   TCP throughput testing using the methodology described in RFC6349 
   can make use of multiple TCP connections operating concurrently 
   between the same Src and Dst. If this is the case, the process 
   described above should be used to calculate the short term 
   throughput at time T for each TCP connection separately, and then 
   the values should be summed to generate Short-term-TCP-throughput. 

6.2. A Definition of Sample for Short Term TCP Throughput 

   Given the singleton metric Short-term-TCP-throughput, we now define 
   one particular sample of such singletons. The idea of the sample is 
   to select a particular binding of the parameters Src, Dst, and I, 
   and then define a sample of values of parameter T. The means for 
   defining the values of T is to select a beginning time T0, a final 
   time Tf, and an interval I, then define a series of regularly spaced 
   time values T whose values fall between T0 and Tf. The time interval 
   between successive values of T will have the constant value I. 

6.2.1. Metric Name 

   Short-term-TCP-throughput-constant-stream 

6.2.2. Metric Parameters 

   o  Src, the IP address of a host 

   o  Dst, the IP address of a host 

   o  T0, a time 

   o  Tf, a time 

   o  I, a time interval 

6.2.3. Metric Units 

   A sequence of pairs; the elements of each pair are: 

 
 
   
   
Ko                     Expires August 18, 2013                 [Page 11]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

   o  T, a time, and 

   o  R, an integer number 

   The values of T in the sequence are monotonic and increasing at 
   constant intervals I. Note that T and I would be valid parameters to 
   Short-term-TCP-throughput, and that R would be a valid value of 
   Short-term-TCP-throughput. Note also that since T can be determined 
   from T0, I and the position of the value in the sequence, it is 
   possible to alternatively define the metric units as: a time T0, a 
   time interval I; and a sequence of integer numbers R. 

6.2.4. Definition 

   Given T0, Tf, and I, we compute a series of time values T(k) where 

       T(k) = T0 + (k) * I, for 1 <= k <= (Tf - T0) / I. 

   The first time value in the sequence occurs at T(1) = T0 + I, and 
   successive time values are regularly spaced with the constant 
   interval I between successive values of T. The last time value in 
   the sequence occurs in the interval Tf - I < T(kmax) <= Tf. At each 
   of the times in this sequence, we obtain the value of Short-term-
   TCP-throughput at this time using interval I. The value of the 
   sample is made up of the resulting <time, rate> pairs. If there are 
   no such pairs, the sequence is of length zero and the sample is said 
   to be empty. 

6.2.5. Discussion 

   The <time, rate> pairs that make up the value of Short-term-TCP-
   throughput-constant-stream provide a continuous view of the 
   momentary throughput in the network path from Src to Dst from time 
   T0 to time Tf. By defining a single value of I as a common input 
   parameter to both Short-term-TCP-throughput and Short-term-TCP-
   throughput-constant-stream, the 'final' highest Acknowledgement 
   Number A(k) used to calculate the kth singleton value in the 
   sequence becomes the 'initial' highest value A(j-1) used to 
   calculate the next successive (jth, where j = k+1) value in the 
   sequence. In this way, each new segment acknowledged from time T0 
   until the end of the final interval preceding time Tf contributes to 
   exactly one of the singleton values in the sample. 

6.3. A Definition of Sample for Dejitter Buffer Fill 

   Given the sample metric Short-term-TCP-throughput-constant-stream, 
   we now define one additional sample derived from such sample. The 
 
 
   
   
Ko                     Expires August 18, 2013                 [Page 12]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

   idea of the derived sample is to select a particular binding of the 
   model parameters Ravg, Rinit, Binit, Btarget and I defined in 
   Section 5.1. , and then to apply the streaming model defined in 
   Section 5. to the value of the sample Short-term-TCP-throughput-
   constant-stream. The buffer fill depths per time interval generated 
   by the streaming model then form the value for the derived sample 
   metric. 

6.3.1. Metric Name 

   Dejitter-Buffer-Fill 

6.3.2. Metric Parameters 

   o  Rseq, a value of type Short-term-TCP-throughput-constant-stream 

   The following model parameters are defined in Section 5.1. : 

   o  Rinit, a real number 

   o  Ravg, a real number 

   o  Binit, a real number 

   o  Btarget, a real number 

   o  I, a time interval 

6.3.3. Metric Units 

   A sequence of pairs; the elements of each pair are: 

   o  T, a time, and 

   o  B, a real number 

   The values of T in the sequence are monotonic and increasing at 
   constant intervals I. Note that if the input parameter Rseq is 
   defined using parameters T0 and I and a sequence of integer numbers 
   R, Dejitter-Buffer-Fill may likewise be defined as: a time T0; a 
   time interval I; and a set of real numbers B. Note also that the 
   number of pairs in a value of Dejitter-Buffer-Fill will be one more 
   than the number of pairs in the input parameter Rseq. 




   
   
 
 
Ko                     Expires August 18, 2013                 [Page 13]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

6.3.4. Definition 

   Given Rseq and the model parameters from Section 5.1. , we compute a 
   series of buffer fill values B(k) at regular time intervals T(k) 
   using the model algorithm defined in Section 5.2. The value of the 
   sample is made up of the resulting <T(k), B(k)> pairs.  

   The first time value in the sequence occurs at T(0) = T0, and 
   successive time values are regularly spaced with the constant 
   interval I between successive values of T. The last time value in 
   the sequence occurs in the interval Tf - I < T(kmax) <= Tf. The 
   number of pairs in a value of the sample metric is one greater than 
   the number of pairs in the input sample Rseq. If Rseq is an empty 
   sample, then the value of Dejitter-Buffer-Fill is defined to be of 
   length zero and the sample is said to be empty. 

6.3.5. Discussion 

   The <T(k), B(k)> pairs that make up the value of Dejitter-Buffer-
   Fill approximate the variation in fill depth over time of a dejitter 
   buffer for a streaming media application. As new data arrives from 
   the network, it is written to the buffer and the fill depth 
   increases. As data is read from the buffer to be decoded and 
   displayed, the fill depth decreases. In any given time interval, any 
   combination of write and read operations may occur, and both writes 
   and reads may occur multiple times. 

   When a streaming session is initiated, data is sent from source to 
   destination at a high rate (Rinit) to fill the buffer as quickly as 
   possible. For the same reason, read operations are disabled during 
   this initiation period. Once the buffer has reached an initial fill 
   level (Binit), read operations are enabled and the streaming media 
   application begins to read, decode and display the streamed content. 
   The data may continue streaming at a high rate until the buffer 
   reaches a target fill level (Btarget). 

   Once the buffer has reached its target fill level, the rate at which 
   data is streamed is reduced to a value equal to the rate at which 
   data is being read from the dejitter buffer. So long as the short-
   term throughput in the network supports this streaming rate, the 
   dejitter buffer is in equilibrium, with the rates at which data is 
   being written and read at the same average value. If the short-term 
   throughput falls below the streaming rate, the buffer fill depth 
   will fall below the target value. Once this occurs, the maximum 
   streaming rate is increased to Rinit until the buffer fill depth 
   reaches Btarget once more. 

 
   
   
 
Ko                     Expires August 18, 2013                 [Page 14]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

   (Note that the increase in the maximum streaming rate does not imply 
   either the presence or the absence of an explicit feedback mechanism 
   between the buffer fill depth and the source of the streaming 
   traffic. In some cases there may be such a mechanism, for example by 
   varying the value of the advertised window in TCP. In other cases, 
   allowing the rate at which data is written to the buffer to increase 
   beyond Ravg is simply an acknowledgement that the remote source has 
   continued to stream the data at the average rate but it has not all 
   been successfully received, hence there is extra data in the network 
   pipeline that may be received at higher than the average rate until 
   the shortfall is made up.) 

   If the short-term throughput falls and remains below the streaming 
   rate for some time, the buffer fill depth may drop to zero. At this 
   point the buffer is exhausted, an underflow condition occurs, and 
   read operations are disabled until the buffer once again reaches the 
   initial fill level. Of course if this occurs, it signals an error 
   condition in which the decoding and display of the streaming media 
   is interrupted. 

6.3.6. Methodologies 

   A single value Rseq of Short-term-TCP-throughput-constant-stream can 
   be used with different model parameters to generate many values of 
   Dejitter-Buffer-Fill. Each resulting value of Dejitter-Buffer-Fill 
   represents the response of the jitter buffer to streaming content 
   with different characteristics and/or displayed with different 
   parameters over the same network conditions as recorded in Rseq. 

6.4. Some Statistics Definitions for Dejitter-Buffer-Fill 

   Given the sample metric Dejitter-Buffer-Fill, we now offer several 
   statistics of that sample. These statistics are offered mostly to be 
   illustrative of what could be done. 

6.4.1. Initial-Streaming-Delay 

   Given a Dejitter-Buffer-Fill and the model parameters used to derive 
   it, the time between the time of the first pair T0 and the first 
   time at which the buffer fill depth B(k) is equal to or greater than 
   Binit. This is the delay between the initiation of streaming and the 
   time at which the streaming media application first starts to decode 
   and display the streamed content. 




   
   
 
 
Ko                     Expires August 18, 2013                 [Page 15]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

6.4.2. Percentage-Viewing-Time 

   Given a Dejitter-Buffer-Fill and the model parameters used to derive 
   it, the total time during which data is being read from the dejitter 
   buffer divided by the total time after the initial transition from 
   state FILL_NOPLAY to another state. This represents the percentage 
   of time spent viewing media content once the display starts, as 
   opposed to observing an interruption in the content and waiting for 
   it to resume. The metric can be calculated from Dejitter-Buffer-Fill 
   using the algorithm specified by the following pseudo code: 

   // Initialization 
    
   Total_time = 0      // Total time after start of playout 
   View_time = 0       // Viewing time after start of playout 
   Model_state = INITIAL_FILL    // Initial state 
    
   // Run iteratively for each time interval T(k) 
    
   For k = 1 to k_max 
     Switch(Model_state) 
       // initial buffer fill not counted toward total 
       Case INITIAL_FILL: 
         If B(k) >= Binit then 
           Model_state = PLAYING 
         End if 
       // Buffer filling, no playout 
       Case FILL_NOPLAY: 
         Total_time = Total_Time + I 
         If B(k) >= Binit then 
           Model_state = PLAYING 
         End if 
       // media playing out 
       Case PLAYING: 
         Total_time = Total_Time + I 
         View_time = View_Time + I 
         If B(k) = 0 then 
           Model_state = FILL_NOPLAY 
         End if 
     End switch 
   Next k 
    
   If Total_time > 0 
     Percentage-Viewing-Time = View_time / Total_time 
   Else 
     Percentage-Viewing-Time = 0 
   End if 
 
   
   
 
Ko                     Expires August 18, 2013                 [Page 16]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

    
6.4.3. Minimum-Buffer-Depth 

   Given a Dejitter-Buffer-Fill and the model parameters used to derive 
   it, the minimum dejitter buffer depth at any point in time after 
   Btarget is initially reached. A minimum value close to zero 
   indicates that the buffer was close to exhaustion at some point in 
   the simulation. 

7. Additional topics 

   The following topics are candidates for inclusion but have not yet 
   been addressed in this Internet-Draft. 

   o  Discussion of the different ways in which streams are scheduled 
      and why the streaming model approximates this scheduling 
      behavior. 

   o  Discussion of the differences between model behavior and network 
      streaming behavior. Limitations of the model. 

   o  Discussion of short-term streaming rates that vary around the 
      average. 

   o  Extension to adaptive streaming. At least, discussion of how the 
      model can be extended to adaptive streaming. 

   o  Addition of explanatory figures. 

8. Security Considerations 

   The security considerations that apply to any active measurement of 
   live networks are relevant here as well. See [RFC4656] and 
   [RFC5357]. 

9. IANA Considerations 

   This memo makes no requests of IANA 

10. References 

10.1. Normative References 

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 
             Requirement Levels", BCP 14, RFC 2119, March 1997. 


 
             
             
 
Ko                     Expires August 18, 2013                 [Page 17]

Internet-Draft    Model-Based Streaming Performance        February 2013
    

   [RFC2330] Paxson, V., Almes, G., Mahdavi, J., and M. Mathis, 
             "Framework for IP Performance Metrics", RFC 2330, May 
             1998. 

   [RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. 
             Zekauskas, "A One-way Active Measurement Protocol 
             (OWAMP)", RFC 4656, September 2006. 

   [RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. 
             Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", 
             RFC 5357, October 2008. 

   [RFC6349] Constantine, B., Forget, G., Geib, R., and Schrage, R., 
             "Framework for TCP Throughput Testing," RFC 6349, August 
             2011. 

10.2. Informative References 

   [Cis2012] Cisco, "Cisco Visual Networking Index: Forecast and 
             Methodology, 2011-2016," May 30, 2012. 

   [FCC2012] FCC, "Measuring Broadband America: Technical Appendix," 
             July 2012. 

11. Acknowledgments 

   The authors wish to thank the following people for reading and 
   commenting on this draft <TBD>. 

   This document was prepared using 2-Word-v2.0.template.dot. 

Authors' Addresses 

   Ken Ko 
   ADTRAN 
   901 Explorer Blvd. 
   Huntsville, AL 35806 
   USA 
       
   Email: ken.ko@adtran.com 
 
    




   
   

 
 
Ko                     Expires August 18, 2013                 [Page 18]