PH12015000269A1 - Data transfer apparatus, method of controlling data transfer, and a data stream - Google Patents

Data transfer apparatus, method of controlling data transfer, and a data stream Download PDF

Info

Publication number
PH12015000269A1
PH12015000269A1 PH12015000269A PH12015000269A PH12015000269A1 PH 12015000269 A1 PH12015000269 A1 PH 12015000269A1 PH 12015000269 A PH12015000269 A PH 12015000269A PH 12015000269 A PH12015000269 A PH 12015000269A PH 12015000269 A1 PH12015000269 A1 PH 12015000269A1
Authority
PH
Philippines
Prior art keywords
data transfer
transfer operations
throughput
indicator value
parameter
Prior art date
Application number
PH12015000269A
Inventor
Ngo-Tan Johanna Joyce
Santos Timothy Israel Dilag
Tugade Reynaldo Roseos Jr
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to PH12015000269A priority Critical patent/PH12015000269A1/en
Priority to KR1020160039034A priority patent/KR102469659B1/en
Priority to US15/240,558 priority patent/US10164893B2/en
Publication of PH12015000269A1 publication Critical patent/PH12015000269A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0075Transmission of coding parameters to receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

One aspect of the present invention provides an apparatus acting as a server for estimating parameters of data transfer across a communication network. The server apparatus includes a transceiver component which enables data transfer operations and an estimator component which measures throughput as one of the parameters of the data transfer operations. The estimator component further determines an indicator value of the throughput corresponding to an estimated bottleneck bandwidth, calculated from data traffic measurements. The indicator value is attributable to and indicates optimal parameters of the data transfer operations, calculated from measurements associated with the data traffic. In particular, the indicator value can be used to update an estimate of the bottleneck bandwidth, depending on congestion state of the communication network through which the data transfer operations take place. The server apparatus also includes a processor component in communication with the transceiver and estimator components and configured to prepare succeeding data transfer operations to a client apparatus through the communication network based on the bottleneck bandwidth estimate determined by the estimator component

Description

Ce 7
DATA TRANSFER APPARATUS, METHOD OF
CONTROLLING DATA TRANSFER, AND A DATA STREAM
Field of the Invention :
The present invention generally relates to a data transfer apparatus acting as a server for transferring data to a client apparatus across a communication network. More particularly, the present invention relates to such an apparatus and related computer-implemented method and data stream wherein parameters of data transfer operations are estimated.
Background of the Invention
It has been a convention in the field of data transfer operations to vary bitrate quality in accordance with the capability of an operating bandwidth of a communication network facilitating the data transfer from a server apparatus to a client apparatus. In such operations, the server apparatus determines the required bandwidth for the available stream qualities through a manifest file which typically contains media segments for distribution and related settings.
The client apparatus, on the other hand, selects which media segment to download based on an estimated parameter of the data transfer operations such as a bandwidth estimate. In many situations, an inaccurate bandwidth estimate causes playback interruption if the bandwidth estimate is higher than the actual bandwidth or, otherwise, results to non-optimal playback quality if the bandwidth estimate is lower than the actual bandwidth. In such situations, it is highly desirable to provide an estimated parameter of data transfer operations that is accurate enough to prevent disturbances in playback or data streaming at the highest available quality that can be downloaded with the current bandwidth capability of the communication network :
. x
United States Patent Publication No. 20070115814 published on 24 May 2007 to Regents of the University of California discloses in one of its embodiments a data processing apparatus arranged to cause generation of a rate estimate such as a bandwidth estimate and a rate sample based on the rate estimate, wherein the rate sample is exponentially averaged with a previous rate sample to produce smoothed rate estimate using a filter with time varying coefficients, and wherein the filter is embodied by an EWMA (exponentially-weighted moving average) filter, which is one form of a window function, arranged to determine filter gain and vary over time by adapting to
RTT (round-trip time) and other network conditions.
Window function is a mathematical method of taking a snapshot, or a subset, of multiple data points (instantaneous measurement) in a time series to be manipulated, processed, and analyzed. Values within the scope of the window defined by the window function may be taken as is or multiplied by a certain gain factor. Values outside the scope of the window, on one hand, are zero. The weight factors of the values inside the window have certain effect on the estimate that the window function produces. Characteristics of the data affected by these weight factors may include smoothness and response to burst. While the data processing apparatus of the above cited prior art document arguably provides a data processing apparatus that functions to prevent disturbances in playback or data streaming by way of applying the
EWMA filter, it is difficult to neglect the fact that each type of window function serving as a filter behaves differently relative to the others in respect of specific applications and signal types and properties.
In one instance, the underlying patterns from data in an HTTP (Hypertext Transfer Protocol) based streaming rapidly change. Requests for transmission of such data from one computer made through HTTP utilize TCP (Transmission Control Protocol) as its underlying communication protocol. TCP has its own congestion avoidance, retransmission, and bandwidth control algorithms. One pertinent characteristic of TCP is its spurious throughput fluctuations. This fluctuation affects the accuracy of the process for determining an estimated operating bandwidth from instantaneous throughput measurements. A time-series analysis process utilizing only one window function as a filter such as the aforesaid EWMA may not be sufficient in capturing or reacting to underlying patterns from rapidly changing data. In this regard, a problem associated with the data processing apparatus of the above cited prior art document is that use of one type of window function in a time- series as a filter for producing smoothed rate estimate, i.e., bandwidth estimate, may not be effective at all times, as the best type of window function and its periodic behaviour in terms of time-domain representations depend on each specific application and as well as on the underlying patterns from rapidly changing data.
A need therefore exists for a data transfer apparatus and related computer-implemented method and data stream capable of providing data transfer operations and estimating parameters, which include throughput, of data transfer across a communication network wherein values associated with the throughput are accurately estimated in a time series at all times notwithstanding spurious throughput fluctuations and inherent variable network conditions.
Summary of the Invention
One aspect of the present invention provides a data transfer apparatus acting as a server for estimating parameters of data transfer across a communication network. The server apparatus includes a transceiver component which enables data transfer operations and an estimator component which measures throughput as one of the parameters of the data transfer operations. The estimator component also determines an indicator value of the throughput corresponding to an estimated bottleneck bandwidth.
The indicator value is attributable to and indicates optimal parameters of the data transfer operations, calculated from measurements associated with data traffic in the communication network. In particular, the indicator value can be used to update an estimate of the bottleneck bandwidth, depending on congestion state of the communication network through which the data transfer operations take place.
The transceiver component is configured to enable the data transfer operations to and from a client apparatus in communication with the server apparatus through the communication network. The estimator component is configured to measure the parameter (i.e., the throughput) of the data transfer operations. The estimator component is also configured to convert the ; measured throughput or throughput measurements of the data transfer operations into a time series (i.e., the throughput of the data transfer operations is measured in regular succession as a characteristic of a time series), and to determine the indicator value of the throughput of the data transfer operations converted into the time series.
The estimator component particularly determines the indicator value by filtering, or applying a filter, on the values of the throughput as one of the parameters of the data transfer operations converted into the time series using an array of window functions. The process of passing the values through the filters consequently shapes the time series according to the shape of the windowing function. Among the filtered values, the estimator component determines a maximum value. The indicator value therefore corresponds to the maximum throughput measurement within a window of throughput measurements. The processor component is configured to prepare succeeding data transfer operations to the client apparatus through the communication network based on the indicator value determined by the estimator component.
Preferably, the throughput measurement is a short-term measurement.
The short-term maximum throughput measurement from a window of throughput measurements included in the array of window functions may be used to compute for the estimated bottleneck bandwidth in order to dampen the effect of mid-stream zero-traffic conditions of the data transfer operations.
The array of window functions may include any two or more of the following window functions: simple moving average, rectangular moving average, triangular window function, Hann window function, Gaussian window function, linearly weighted moving average, and exponential weighted moving average.
The provisions of the array of window functions characterizing the filter applied to the throughput measurements representing the parameter of the data transfer operations and the maximum throughput measurement ensures that providing an estimated parameter (i.e., the bottleneck bandwidth coinciding with the maximum achievable throughput for which data can be transferred across the communication network) ensure that the different behaviors of various window functions do not affect the accuracy of the estimated parameter. These provisions guarantee that the estimated parameter, i.e., the estimated bottleneck bandwidth, is accurately performed by the estimator component of the server apparatus, despite the variation in periodic behaviour of each one of the window functions included in the array of window functions in terms of time-domain representations of rapidly changing data.
The estimator component may primarily include a network measurement sampling module, a window function smoothing module, and a bottleneck bandwidth estimation module. The network measurement sampling module provides instant network measurements which may include throughput of the succeeding data transfer operations, packet loss rates, and round trip times. ;
The window function smoothing module ascertains the network traffic measurements as points in the time series and applies various window functions as shaping filters on multiple network traffic measurements to produce the estimated bottleneck bandwidth of the data transfer operations.
The bottleneck bandwidth estimation module determines an optimal window function included in the array of window functions as an estimator of the bottleneck bandwidth measurement based on the window function that produces an output value with minimal error rate in relation to a target value. a]
Another aspect of the present invention provides a computer- implemented method of controlling data transfer operations across a communication network based on estimated parameters of the data transfer operations. The method comprises the steps of: (i) monitoring operating conditions of the communication network; (ii) measuring a parameter associated with the monitored operating conditions; (iii) converting the measured parameter into a time series; (iv) determining an indicator value of the parameter by filtering values of the parameter converted into the time : series using an array of window functions and determining a maximum value from the filtered values of the parameter; and (v) selectively transcoding a data stream based at least on one indicator value as a function of other parameters associated with the monitored operating conditions.
Yet another aspect of the present invention provides a data stream which is representative of a computer program having instructions which when : executed by a processor component cause the processor component to perform the steps of: (i) enabling data transfer operations to and from a client apparatus; (ii) measuring a parameter of the data transfer operations; (iii) converting the measured parameter of the data transfer operations into a time : series; (iv) filtering values of the parameter of the data transfer operations ;
converted into the time series using an array of window functions; and (v) determining a maximum value from the filtered values of the parameter of the data transfer operations; and (vi) preparing succeeding data transfer operations to the client apparatus through a communication network based on the indicator value.
For a better understanding of the invention and to show how the same may be performed, preferred embodiments thereof will now be described, by way of non-limiting examples only, with reference to the accompanying drawings.
Brief Description of the Drawings
Figure 1 is block diagram illustrating a configuration of a data transfer apparatus for use in estimating parameters of data transfer operations in accordance with one or more embodiments of the invention.
Figure 2 is a flowchart illustrating a computer-implemented method of controlling data transfer operations in accordance with one or more embodiments of the invention.
Figure 3 is a flowchart illustrating a process performed by a network measurement sampling module in accordance with one or more embodiments of the invention.
Figure 4 is a flowchart illustrating a process performed by a window function smoothing module in accordance with one or more embodiments of the invention. :
Figure 5 is a schematic representation of the window function smoothing module in accordance with one or more embodiments of the invention.
Figure 6 is a flowchart illustrating a process performed by a bottleneck bandwidth estimation module in accordance with one or more embodiments of the invention.
Detailed Description of Preferred Embodiments
Referring now to Figure 1, there is shown a block diagram illustrating a configuration of a data transfer apparatus for use in estimating parameters of data transfer operations in accordance with one or more embodiments of the present invention. The apparatus acts as server and is consistently designated by reference numeral 100 throughout the ensuing description of the preferred embodiments of the present invention. The server apparatus 100 communicates with a client apparatus 102 over a communication network 104. A manifest file or media playlist 106 containing a master playlist 106a that can be divided into smaller playlists 106¢ and then media segments 106d can be provided by the server apparatus 100 indicating the location of stored media segments and various metadata of the media segments. Among the information that can be listed in the media playlist 106 insofar as the preferred embodiments of the present invention is concerned may include the length of the segment (measurable in seconds) and the bandwidth (measurable in bps or bits per second or any scale thereof) required to play the media segment within a stream quality.
The media playlist 106 which may be stored in a content database 108 and may be accessible by the server apparatus 100 is arranged for transmission to the client apparatus 102 communicating with the server apparatus 100 through the communication network 104. The server apparatus 100 is generally arranged to cause content associated with the media playlist 106 to be encoded in multiple bitrate qualities by a processor component 110 of the server apparatus 100 and communicate the encoded content with the client apparatus 102 over the communication network 104.
The communication network 104 is a medium used in conjunction with inventive aspects of the present invention in such a manner that some or all of the components of the server apparatus 100 of the present invention and : those of the client apparatus 102 can be performed or enabled. The communication network 104 may be of the type that is known in the field of electronic communications such as, by way of examples, a packet network which includes an IP (Internet Protocol) network or Ethernet network facilitating exchange of variable sized packets and frames, an ATM (asynchronous transfer mode) network facilitating exchange of fixed-sized packets as a result of asynchronous time-division multiplexing, a 4G wireless broadband network such as the LTE (Long Term Evolution) network facilitating exchange of particularly small-sized packets, and the like. It is to be understood and appreciated by a person skilled in the art that while the communication network 104 is embodied herein as those characterized by data communications, exchange of packets in the field of telecommunications through, for example, a PSTN (public switched telephone network) may alternatively be used in performing or enabling some or all of the components of the features of the present invention.
In one embodiment, the communication network 104 is particularly a
TCP/IP (Transmission Control Protocol/Internet Protocol) network. IP facilitates sending and receiving of data packets between the server apparatus 100 and the client apparatus 102 over the Internet. TCP facilitates breaking of data down into smaller packets prior to transmitting them from the server apparatus 100 to the client apparatus 102. TCP also facilitates forming of the broken down packets once they are have reached the client apparatus 102 as the destination point.
The server apparatus 100 includes a transceiver component 112, a transmission buffer component 114 in communication with the transceiver component 112 and the processor component 110, and a memory component
116 in communication with the processor component 110. One or more memory chips may constitute the memory component 116 capable of storing data and computer-executable program instructions in any suitable locations in the server apparatus 100. The memory component 116 allows such storage locations to be accessed by the processor component 110 so that the data can be prepared for transmission and that the instructions can be executed by the processor component 110. The memory component 116 may include one or more of a RAM (random access memory), a ROM (read-only memory), an
FRAM (Ferroelectric RAM), a DRAM (Dynamic random access memory), a synchronous DRAM (SDRAM), and the like.
The processor component 110 capable of fetching and processing data from the memory component 116 and as well as executing instructions from the memory component 116 may be a single processor or may be embodied as multiple processors for efficient data processing capacity. The processor component 110 may perform transcoding operations or, particularly, encoding or decoding of data sent to or from the server apparatus 100. The processor component 110 may be disposed locally in relation to the server apparatus 100 or remotely from the server apparatus 100 through, for example, a cloud based computing. Suitable combinations of locally and remotely located processors which may constitute the processor component 110 may be suitably used. In one embodiment, the server apparatus 100 is a web server or
HTTP server.
The transceiver component 112 is an interface device that is configured to perform data communications with the client apparatus 102 over the communication network 104. The transceiver component 112 may be a single communication interface device capable of acting as a transmitter and a receiver through which communication packets can be routed, and may receive and/or transmit network traffic that can be controlled by the processor ; component 110. In general, the transceiver component 112 enables data transfer operations to and from the client apparatus 102. In particular, the transceiver component 112 may be arranged to receive information representative of data packets from the processor 110 or any suitable access point serving as an intermediary for performing data communication with the client apparatus 102.
The transmission buffer component 114 may be a circuitry associated with the server apparatus 100 for buffering communication data which may be divided into multiple-bit data frames of various quantity. Digital data bit-rate converted by the processor component 110 acting as a transcoder are processed by the transmission buffer component 114. The processor component 110 is arranged to monitor any change in the amount of data processed by the transmission buffer component 114 in order to detect the speed of communication, i.e., variation in bandwidth, of the communication network 104. In response to the detected speed of communication or variation in bandwidth, the processor component 110 performs transcoding of communication data such that the bitrate of data transfer operations involving the communication data is switched to a certain level. Simply put, the bitrate is adjusted to a certain quality that a given bandwidth of the communication network 104 is capable of handling.
The client apparatus 102, on the other hand, is the receiving end of the ; data packets transcoded by the processor component 110 of the server apparatus 100 and transmitted through the transceiver component 112 of the server apparatus 100. The client apparatus 102 may include its own client transceiver component 118 enabling communications with the server apparatus 100 over the communication network 104, a client reception buffer component 120 characterized as a circuit which receives the data packets from the client transceiver component 118, a client processor component 122 for storing and/or fetching data and/or instructions to and from a client memory ; component 124, and a client display component 126 for graphically representing the data executed for display by the client processor component 122.The client processor component 122 may act as a decoder for decoding the data packets originating from the server apparatus 100.
The client apparatus 102 may be a desktop computer, a laptop 5s computer, a tablet personal computer, a smartphone, and other suitable data communication devices capable of communicating with the server apparatus 100 over the communication network 104. The client apparatus 102 may transmit a request for data stream to the server apparatus 100 over the communication network 104. For example, the request for data stream transmitted to the server apparatus 100 may be generated by a media browsing application executed on the client apparatus 102 by the client processor component 122 of the client apparatus 102. In response to the request for data stream, the processor component 110 of the server apparatus 100 may prepare the requested data stream and send it to the client apparatus 102. The media browsing application may include a link or hyperlink to the data stream transmitted by the server apparatus 100.
One aspect of the present invention provides that the server apparatus 100 is arranged to measure parameters of the data transfer operations between the server apparatus 100 and the client apparatus 102 over the communication network 104. In this aspect, the server apparatus 100 includes an estimator component 128 configured to measure at least one of the parameters 130 of the data transfer operations. Preferably, a measurement operation that is arranged to be performed by the estimator component 128 of the server apparatus 100 is an instant measurement of the data transfer operations or "instant traffic measurement" or "instant network measurement."
The parameter 130 primarily measured by the estimator component 128 are network traffic parameters such as throughput, packet loss rate, and return trip time 130 of the data transfer operations. Additionally, congestion state indicator value 134 may form part of the instant network measurement that can be provided by the estimator component 128.
The estimator component 128 is further arranged to convert the measured parameter 130 of the data transfer operations into a time series 132. In other words, and more specifically, the estimator component 128 is configured to measure the throughput or provide throughput measurements of the data transfer operations in regular succession as a characteristic of a time series. In which case, time-series 132 data of the throughput 130 may be derived by the estimator component 128. In that order, the network traffic measurements which include the throughput 130 data are treated as points in the time series 132.
The estimator component 128 is also arranged to determine an indicator value 134 of the network transfer parameter 130, i.e. the throughput, packet loss rate, and return trip time 130, of the data transfer operations converted into the time series 132. The indicator value of the congestion state 134 is taken from a plurality of values of the network transfer parameters 130 as the preferred measured parameter by the estimator component 128 of the server apparatus 100. The congestion state indicator value is calculated from the network transfer parameters such as throughput, packet loss rate, and return trip time. The bottleneck bandwidth estimate is updated if the congestion state indicator reaches a threshold, and updates to a value determined by: (i) filtering the values of the throughput 130 as the preferred measured parameter of the data transfer operations converted into the time series; and (ii) determining a maximum value from the filtered values of throughput 130 of the data transfer operations. An array of window functions 136, i.e., two or more window functions 136, may be used in filtering the throughput 130 values. ;
The processor component 110 of the server apparatus 100 is configured to prepare succeeding data transfer operations to the client apparatus 102 over the communication network 104 based on the indicator value 134 determined by the estimator component 128 of the server apparatus 100. It is preferable that the throughput 130 measurements filtered using the array of window functions 136 are sampled in short-term (e.g., less than two seconds). Within a window of throughput measurements (e.g., ten throughput measurements), the maximum throughput 130 measurement is determined. As will be discussed in greater detail in the succeeding disclosure of the preferred embodiments of the present invention, the determined maximum throughput 130 measurement may be used in updating an estimated bottleneck bandwidth (or an estimate of the bottleneck bandwidth) in further data transfer operations that are subsequent to the data transfer operations during which the maximum throughput 130 measurement from a window of ten throughput measurements 130 is determined.
The indicator value of the bottleneck bandwidth estimate 134 (i.e., the maximum throughput 130 measurement derived from the window of ten throughput 130 measurements) is attributable to and indicates an optimal parameter (i.e., bottleneck bandwidth) of the further data transfer operations.
The bottleneck bandwidth is defined as the value of the bandwidth constrained by the network's slowest segment. In effect, this value also coincides with the maximum achievable throughput 130 for which data can be transferred from the server apparatus 100 to the client apparatus 102 over the communication network 104. The estimated bottleneck bandwidth may be set to be desirably and completely utilized. Ideally, a fully utilized bandwidth has the same level as the estimated bottleneck bandwidth which, in turn, means that the measured throughput has reached the actual bottleneck bandwidth. The bottleneck bandwidth corresponds to the bottleneck bandwidth estimate indicator value 134 for which the congestion indicator value reaches a threshold for optimally updating the bottleneck bandwidth estimate and for which the estimator component 128 is configured to compute based on the monitored network traffic flowing to and from the client apparatus 102 relative to the server apparatus 100.
By virtue of the assumption that the upperbound of the throughput 130 that the connection in the further data transfer operations can achieve is the same as the bottleneck bandwidth in current data transfer operations, the indicator value 134 represented by the maximum achievable throughput 130 may be used for calculating the bottleneck bandwidth of the further data transfer operations. The maximum achievable throughput 130 calculated by the estimator component 128 using the following series of mathematical functions: _ Ww * MTU
T= "m= [RTT
T < Receivedwinaow-stze
T = MSS /
RTT/P,,q, wherein,
MTU is the maximum transmission unit or the maximum size of one packet,
RTT is the round-trip time or the time required for a packet to travel from one location to another,
MSS refers to maximum segment size or the maximum size packets that
TCP sends, and
Pluss is the packet loss or the packet(s) may fail to reach a specific destination.
The above mathematical functions which may be used for computing the estimated bottleneck bandwidth are derived from e.a. Mathis, "The macroscopic behaviour of the TCP congestion avoidance algorithm," in ACM
SIGCOMM, 1997, and the disclosure of which are incorporated herein by reference in its entirety.
The provisions of the array of window functions 136 characterizing the filter applied to the throughput 120 measurements representing the parameter of the data transfer operations and the maximum throughput 130 measurement ensures that providing an estimated parameter (i.e., the bottleneck bandwidth coinciding with the maximum achievable throughput 130 for which data can be transferred across the communication network 104) ensure that the different behaviors of various window functions 136 do not affect the accuracy of the estimated parameter, as they can be evaluated in order to determine which of them produces an accurate and reliable estimate of the bottleneck bandwidth. These provisions guarantee that the estimated parameter, i.e., the bottleneck bandwidth estimate, is accurately performed by the estimator component 128 of the server apparatus 100, despite the variation in periodic behaviour of each one of the window functions 136 included in the array of window functions 136 in terms of time-domain representations of rapidly changing data.
The estimator component 128 is further configured to determine a target indicator value (not illustrated) of the measured throughput 130. The target indicator value may be specifically used by the estimator component 128 by comparing it with the indicator value 134 in order to select one window function 136 included in the array of the window functions 136. The target indicator value may correspond to any one of a further measured ; ”
throughput, a throughput of a media segment associated with the data transfer operations, and a rectangular moving average value, all of which will be discussed in greater detail in the succeeding disclosures of the preferred embodiments of the present invention.
In view of the foregoing, the server apparatus 100 is capable of providing improved data transfer operations and estimation of parameters associated with the data transfer operations across the communication network 104 wherein values associated with one or more of such parameters 130 are accurately estimated in the time series 132 at all times notwithstanding spurious throughput fluctuations and inherent variable network conditions.
Referring to Figure 2, there is shown a flowchart illustrating a computer- implemented method of controlling data transfer operations across a communication network based on estimated parameters of the data transfer operations in accordance with one or more embodiments of the present invention. The herein described method of controlling the data transfer operations may be suitable for use in accelerating data transfer in an HTTP adaptive streaming. It is to be understood and appreciated that streaming using other suitable media streaming protocols may also constitute the applications in which the accelerated data transfer of the present invention may be used. Such other media streaming protocols may include, but not limited to,
HTTP live streaming (HLS), smooth streaming (SS), dynamic adaptive streaming over HTTP (MPEG-DASH), motion picture experts group (MPEG),
HTTP dynamic streaming (HDS), real time messaging protocol (RTMP), and real-time streaming protocol (RTSP).
The flow starts at block 200 wherein operating conditions of the communication network are monitored. The monitored operating conditions of : the communication network may include, by way of examples, actual : bottleneck bandwidth, available bandwidth and current throughput. The flow proceeds with measuring one or more parameters associated with the operating conditions of the communication network as shown in block 202, and then with converting one of the measured parameters into a time series as shown in block 204.
Once the time series data associated with the parameter of the operating conditions of the communication network have been set, the flow progresses to block 206 wherein an indicator value of the parameter is determined. The determination of the indicator value may be determined by filtering values of the parameter converted into the time series using an array of window functions as shown in block 208, and then determining a maximum value from the filtered values of the parameter as shown in block 210. At concluding block 212, a data stream is selectively transcoded based on the indicator value as a function of the other parameters forming part of the monitored operating conditions in the previous block 200. The data stream may be a media stream selected from any one or any suitable combination of a video stream, an audio stream, a file transfer stream, a messaging stream, and a graphics stream.
Preferably, the parameter of the data transfer operations from the indicator value is a throughput, and the indicator value of the throughput corresponds to an estimated bottleneck bandwidth. The bottleneck bandwidth may include one or more of a congestion window (where a packet loss rate may be observed) and a roundtrip time. The indicator value may be determined based on congestion state of the communication network through which the data transfer operations take place.
The illustrated method of controlling the data transfer operations, although not illustrated in the drawings, may further include: (i) estimating an available bandwidth for transmitting the data stream to the client apparatus over the communication network based on the estimated bottleneck bandwidth and a current throughput associated with the data transfer operations; (ii) varying bitrate of the data stream based on the estimated available bandwidth; and (ii) segmenting and serving content associated with the data stream according to the varied bitrate.
As mentioned, the present invention may be suitably used in accelerating data transfer for adaptive video streaming. Accelerated data transfer creates a network acceleration solution that ensures uninterrupted playback and highest possible quality in an HTTP-based adaptive streaming or
HAS. The solution provides a proxy that handles various methods for network acceleration. Imperative to this solution is a network throughput estimate that captures the actual operating bandwidth (i.e., the current throughput) of the network and the remaining unutilized bandwidth (i.e., the available bandwidth).
The illustrated method of controlling the data transfer operations should be robust from fluctuating short-term measurements inherent to TCP, yet capable of reacting to valid bandwidth changes.
Primary modules that may be required in performing the illustrated method of controlling data transfer operations for use in accelerating data transfer and that may form part of the server apparatus of Figure 1 may include a network measurement sampling module, a window function smoothing module, and a bottleneck bandwidth estimation module. Other modules that may be required in performing the illustrated method of controlling data transfer operations and that may form part of the server apparatus of Figure 1 may include a bitrate adaptation module for switching of bitrate quality of the data stream, a TCP connection scheduler for configuring
TCP connections, and a dynamic sub-segmentation module for dividing media segments into smaller chunk of data. Erroneous estimates may lead to sub- optimal streaming quality (in cases of underestimation) or playback interruptions (in cases of over-estimation). The illustrated method providing the network acceleration solution improves playback of HAS in the client apparatus and prevents such erroneous estimates.
The illustrated method further comprises the steps of determining a target indicator value of the throughput, and selecting one of the window functions included in the array of the window functions based on a comparison of the indicator value and a target indicator value. The target indicator value may correspond to any one of a further measured throughput, a throughput of a media segment associated with the data transfer operations, and a rectangular moving average value.
It is to be understood and appreciated that the aforementioned software modules associated with the illustrated method and with the server apparatus of Figure 1 may or may not correspond to discrete blocks of software codes, depending on how they are arranged. In this regard, it can be readily realized that the functions described for each of the aforementioned modules can be performed by executing various code portions which are stored on one or more non-transitory, non-volatile computer-readable memory of the server apparatus of Figure 1 at predetermined time intervals.
It is also to be understood and appreciated that the execution of the program codes from the non-volatile memory of Figure 1 can be done on appropriate computing resources, and that the aforementioned modules are merely presented in segregated format based on their intended functions for the sake of illustrating how they are relevant to the implementation of one or more embodiments of the illustrated method and server apparatus of Figure 1, among others, of the present invention. The aforementioned modules can be fewer or greater in number, as it is well known in the art of computing that such program codes representing various functions of different modules can be combined or segregated in any suitable but efficient manner insofar as software execution is concerned.
Referring to Figure 3, there is shown a flowchart illustrating a process performed by a network measurement sampling module in accordance with one or more embodiments of the present invention. The flow starts with a loop formed between decision block 300 wherein the sampling module determines if it is time to sample and block 312 wherein the sampling module waits as long as it has not determined yet the sampling time. However, once the sampling time has been determined in the decision block 300, the flow moves to another decision block 304 to determine if there is a network traffic during the time interval covered by the determined sampling time in the previous decision block 300.
The presence of the network traffic during the sampling time interval causes the flow to proceed with updating the network monitoring values as shown in block 306, and then with computing for instant network ; measurements based on the updated network monitoring values as shown in block 308. Sample of computed instant network measurements is shown in data block 310. The computed instant network measurements may include bottleneck bandwidth, available bandwidth, and current throughput. The absence of the network traffic during the sampling time interval as determined in decision block 304, on the other hand, causes the flow to provide instant network measurements from previous iteration of the process as shown in block 310. Instant network measurement sample derived from the previous iteration may likewise include bottleneck bandwidth, available bandwidth, and current throughput.
The present invention in its entirety is data-driven. By the term "data- driven," it can be taken to mean that the present invention in its entirety relies on data (i.e, network traffic measurements) computed by the network sampling module with the precondition that the network traffic is present.
However, there are two cases where this precondition may not be satisfied.
The first case is during an initial stage of data stream, and the second case is during mid-stream where there is discontinuity in network traffic due to inherent behavior of HTTP adaptive streaming.
In the stream startup state (initial phase), data are inadequate yet.
Thus, unreliable estimation may be natural in this initial phase of connection.
While this phase is unavoidable, the algorithm constituting the network measurement sampling module may be designed to make transition from the startup state to steady state as fast as possible. As mentioned, the estimation of bottleneck bandwidth as one of the parameters of the data transfer operations may be calculated based on the time-series data of the throughput.
In the startup phase where there is no throughput measured yet, the network sampling module using the estimates must handle this zero-throughput case by giving default values. In the case where the final value to be computed is the number of connections for example, the number of TCP connections may be set to the default minimum when such zero-throughput case is encountered in the startup phase.
Still in the stream startup state, PLR (packet loss rate) requires calculation from a large amount of packets transferred, otherwise the PLR estimate may suffer due to precision issues. In the illustrated implementation of the present invention in accordance with its one or more embodiments, the minimum number of packet transfer may be set to 2,000 packets. This means that one lost packet in 2,000 may result in a precision of 0.0005 or 0.05% PLR.
The RTT (round-trip time), on one hand, may be calculated by getting the average RTT measured in the data transfer during the startup state. With these configurations, no data transfer may be expected to result in zero-RTT which, in turn, makes the congestion factor zero. The congestion factor may be used in the form of first order derivative (i.e., the difference of current and previous congestion factors).
Moving forward to the mid-stream state, a zero-traffic case may also take place. The nature of HTTP streaming is that there are multiple requests for data in the duration of the stream. The mid-stream zero-traffic state basically occurs during the time the previous segment download finishes and until the next request is made. During this time of the mid-stream state, the throughput measurement is zero. The effect of this absence of data may be mitigated by using the throughput from either within a window of past measurements in the case of current data transfer operations or within a window of current measurements in the case of the succeeding data transfer operations. With respect to the PLR and RTT in mid-stream zero traffic condition, they would be minimally affected since the measure that may be used is an average of past measurements. As the PLR and RTT are merely used for computing the congestion factor, they should just reflect an state where there is no congestion. ]
Sampling time may be defined as the duration before a new measurement sample can be made. Appropriate sampling time is preferably set so as to capture changes in the network condition but retain robustness against noise or jitter in the network traffic. In choosing the preferred sampling time, some considerations may be necessary in developing the network measurement sampling module. First, the sampling time must be small enough so that small changes in the network may be resolved. Second, the sampling time must be kept small so that the transition phase from startup state to steady state may be minimized. Third, the sampling time should not be too small in that it becomes too unstable or prone to noise. The window function : smoothing module may handle this issue of stability as will be shown in the succeeding disclosures of the present invention. Lastly, the sampling time should not be too small in that there could be too much oscillation or ringing.
Referring to Figure 4, there is shown a flowchart illustrating a process performed by a window function smoothing module in accordance with one or more embodiments of the present invention. In initial data block 400, instant throughput measurement sample may be retrieved for processing. In succeeding decision block 402, the window function smoothing module determines whether there are enough data to be processed based on the instant throughput measurement sample provided in the previous data block 400. If the answer to the decision block 402 is yes, the flow advances to block 404 wherein an array of window functions is applied. The application of multiple window functions to the instant throughput measurement sample causes accurate creation of throughput estimates. Examples of the application of the multiple window functions are separately illustrated in greater detail in
Figure 5 in relation to a network monitoring unit which monitors network operation conditions and throughput estimate selection module which selects an optimal throughput estimate.
Once the throughput estimates have been determined following the application of the multiple window functions in the previous block 404, the flow proceeds with calculating the error value for estimates as shown in succeeding block 406. After which, the flow concludes at block 408 wherein an estimate with least error is selected based on the calculated error value for estimates in the previous block 406. If there is no enough data as determined in the previous decision block 402, the flow is redirected to block 410 instead.
Insufficient data may cause the window function smoothing module to provide throughput measurement according to best guess. Best guess of the ; throughput measurement may be derived from available instant measurement where no window function may be applied.
The window function smoothing module ascertains the network traffic : measurements as points in a time series and apply various window functions as ; filters on multiple network traffic measurements to produce an estimated parameter of the data transfer operations from which the network traffic measurements are derived. Preferably, the parameter is a throughput and its values correspond to throughput measurements. The values corresponding to the throughput measurements are sampled in short-term time (preferably less than 2 seconds). The maximum value from the values within a window of measurements (e.g., current ten measurements) may be used to update an estimate of bottleneck bandwidth in succeeding data transfer operations.
Correspondingly, the maximum value from the values within a window of measurements (e.g. past ten measurements) may be used to update an estimate of the bottleneck bandwidth in current data transfer operations.
The time series analysis involves processing a sequence of data in order to come up with meaningful information such as trends, dependencies, patterns, and other characteristics of the governing system and the data. A time series is usually plotted in line graphs and charts. Time domain analysis is used to show the progression of the data in time and to show the relation of data that are closer together in time; on the other hand, frequency domain analysis is used to analyze the data in terms of its frequency components (histogram, spectrogram, etc.).
In terms of sampling, throughput measurements are done regularly within short time intervals. The sampling addresses how often an instantaneous measurement should be taken. The basic unit of the sampling is the "instantaneous" measurement serving as the estimate of a point in time.
Throughput can be regularly measured as opposed to merely determining such measurements on-demand (i.e., only when needed, or when a particular segment finishes download). In terms of instant measurement, throughput measurements are short term measurements which cover a short moment in time which is typically less than 2 seconds. The smallest possible throughput measurement in a point in time may be taken either on packets, on a block of data sub-segment, or on an entire media segment for each predetermined time interval.
If the smallest possible throughput measurement in a point in time is taken on a per packet basis, the following mathematical function may be used as a sample of bandwidth measurement (i.e., instant measurement) that can be used by the TCP connection: . di di
T(i)) =———=— ©) ti-ti—-1 4; where ti; — 1 Is the time the previous ACK was received
A; =t; — t;_, is the last interarrival time
Aside from the mathematical function above, throughput estimates may be made by using information found in each packet. The function or equation is discussed in e.a. Mathis, "The macroscopic behaviour of the TCP congestion avoidance algorithm," in ACM SIGCOMM, 1997.
If the smallest possible throughput measurement in a point in time is taken based on the sub-segment data block, the media segments may be downloaded by sub-segments using the HTTP byte range request. By doing so, it is possible to obtain smaller. chunk of data from which an estimate can be computed. The following mathematical function provides such a throughput measurement based on a block of data sub-segment. ~ — Subsegmentg,, /
T@ D atQirgsn fer~time :
If the smallest possible throughput measurement in a point in time is taken on the basis of data per time interval, throughput may be measured on a regular time interval. The total data that arrived in a specified time interval can :
be counted. For example, if the sum of all the packets that arrived in one second is ten megabytes, throughput for that instance can be calculated to be ten megabytes per second using the mathematical function below.
TQ = Accumulated Datanyees Time Intervalyyp,
In terms of windowed throughput measurements, smoothing window functions are used on the instant measurements. The application of multiple window functions is a pre-processing method to improve an estimate of the bottleneck bandwidth as one of the parameters of the data transfer operations disclosed herein. As stated in the background section, windowing is the process of taking a snapshot, or a subset, of multiple data points (instantaneous measurement) in a time series to be manipulated, processed, or analyzed.
Values within the scope of the window may be taken as is, or multiplied by a certain gain factor, and values outside the window are zero. The weight factors of the values inside the window has certain effect on the estimate the function produces. Among the affected characteristics are the smoothness and response to burst. It also has certain characteristic if analyzed in the frequency-domain.
In cases where the preconditions are not met (either in startup case, or midstream zero traffic), default values or measurements from previous points in time may be used as bottleneck bandwidth estimate. In cases where there are no media segments downloaded yet, there are not enough data points to be fed to the window function smoothing module. This is crucial, since there needs to be an initial estimate in order to select which starting bitrate quality to download. In the usual client-side implementation, the client selects the lowest ; available bandwidth to download. In the case of the present invention in accordance with its one or more embodiments, the initial throughput estimate from the measured instant throughput from the previous transactions (e.qg., downloading the play lists) can be set. The play lists, being text file however, are very small in size so accurate estimates may not be obtainable yet. On the contrary, this estimate might perform better than just naively selecting the lowest available bandwidth. There are two ways that the playlist can be used on downloading for the initial estimator.
First, the size of the playlist can be divided into the time to download 5s the playlist, as shown in the following mathematical function.
TEstimatey iy = 2° ays initial = Timeropownioadpiaytist
Second, it is also preferable to use the function or equation derived from e.a. Mathis, "The macroscopic behaviour of the TCP congestion avoidance algorithm," in ACM SIGCOMM, 1997 in calculating the initial throughput estimate, as shown in the following series of mathematical functions.
TEstimate, iia = Winax * lh —
T < MSS /
RTT./P,
Referring again to Figure 5, there is a shown a schematic representation of the window function smoothing module in accordance with one or more embodiments of the present invention. The data transfer apparatus and the method of controlling data transfer of the present invention make use of the array of window functions or, more particularly, window smoothing function.
Each window function included in the array of window functions has a different : response to bursts and different steady-state transition time as compared with others. Depending on the shape and mathematical characteristic of the function, a window function included in the array of window functions may be robust to short term changes in exchange of a longer transition time to steady- : state. On the other hand, a very reactive window function likewise included in the array of window functions may have a tendency to be unstable and susceptible to jitter and noise.
The array of window functions may include any two or more of the following window functions: simple moving average, rectangular moving average, triangular window function, Hann window function, Gaussian window function, linearly weighted moving average, and exponential weighted moving average. It is to be understood and appreciated, however, that other types of window functions having different mathematical characteristics may be added to the non-exhaustive list of window functions mentioned.
The simple moving average or rectangular moving average, which may serve as a window function estimator, is called rectangular since the weights of each sample in the window are equal and visually resembling a rectangle. The simple moving average or rectangular moving average may be applied using the following mathematical function.
TEstimatesmpionn = T@) + T(—1) + T(@i—2)....T(0) /,
General weighted window functions may also be included in the array of window functions that can be used to filter throughput measurements. For the general weighted window functions, the following mathematical function may be used. n=L-1
TEstimategy, = > Wn T(i —- n) n=0 :
Samples within the window have corresponding weights depending on the characteristics of the window. Triangular, Hann, and Gaussian windows may be computed using the following mathematical functions.
n-N-1/,
WM) triangular = 1 — | lt, L can be N, N+1 or N-1 2 w(M)yann = 0.5 — (1 — cos (2n2)). 0 <n <N 1; (n—(N-1)/2 )
W(N) gaussian = € A a (N-1)/2 ,0 <05 ;
A linearly weighted moving average (LWMA) may also be included in the array of window functions. In terms of throughput estimate, the linearly weighted moving average may be mathematically expressed as follows: i _ NTD+M=1)T(i~1)++2T(i-n+1)+ T(i-n)
TEstimate yypys (i) = Dr t2e1
Further, an exponential weighted moving average (EWMA) may form part of the array of window functions. The exponential weighted moving average may be mathematically expressed as follows:
TEstimategyya = [aT (0) + (1 — @)T( — 1) + (1 — €)?T (i — 2) + 1-a)’T@{—-3)..]
TEstimategyp, (i) = [aT (0) + (1 — a)TEstimate(i — 1)],i > 1
TEstimate = T(i);i = 0
T(i): instant throughput
The herein illustrated method of controlling data transfer operations across a communication network based on estimated parameters of the data transfer operations in conjunction with the process performed by the window function smoothing module may also include selecting one window function 5s from the array of window functions. The selection from the output values of multiple windows may be done by determining a target indicator value of the throughput measurement representing one of the parameters of the data transfer operations and then selecting a value associated with the output of each window function included in the array of window functions that is closest or nearest to the determined target indicator value. This is where the comparison between the indicator value and the target indicator value takes place. The same selection may also be performed by the server apparatus illustrated in Figure 1.
While multiple throughput estimates can be derived from the multiple window functions, only one window function which is able to produce that is closest or nearest to the determined target indicator value may be considered the optimum. In that case, the best estimate that helps in achieving the goal of uninterrupted playback and optimal bitrate quality may be selected. As mentioned, the window functions included in the array of window functions may be evaluated by calculating error of the estimates that they produce based on the "target" indicator value. The target indicator value used for evaluating the window functions preferably includes any of one or more of the following: (i) the most recent instantaneous measurement (7¢); (ii) the most recent media segment throughput (size of previous media segment over download time); and (iii) rectangular moving average value.
As a form of feedback, evaluation of the window functions as discussed above may be implemented by the server apparatus of Figure 1 and by the method of controlling data transfer operations of Figure 2, wherein each of the window functions as estimators is evaluated based on its capacity to estimate or forecast the value at i + 1 based on the A instant measurements within the range of jand /-N+ 1. For example, the throughput estimate for i + 1 may be based on the output from inputs {/-¢, i-3, i-2, i-], i}. In which case, an estimator error may be computed using the following mathematical function.
Yoerror(i) = TWin(i) — Target(i) [rarget(
After collecting the output values of the window functions, the optimal window function as an estimator of the throughput as one of the parameters measured for the data transfer operations may then be determined based on the window function that produces an output value with minimal error rate in relation to the target indicator value. [EIEN so ET
Consequently, only one throughput which will be used by the bottleneck bandwidth estimation module may be required. Hence, it is highly desirable for the bottleneck bandwidth estimation module to use the output value of the window function that is considered as the optimal estimator. For this purpose, the following specific configurations may be used: (i) estimation frequency is done on fixed regular intervals; and (ii) target indicator value for computing the error function is the rectangular moving average.
Alternate configurations may however be used for the purpose of determining the output value of the window function that is considered as the optimal estimator by the window function smoothing module. In order to conserve processing power of the server apparatus of Figure 1 in one instance,
the optimal window function estimator from the moment it is determined may be used in all succeeding data transfer operations within any given time interval. This thereby avoids the need to repeatedly compute for the output values of the multiple window functions serving as estimators. In which case, if there is a need to update the optimal window function estimator after it has been determined and subsequently used within a predetermined time period, the above described selection process may be set to be triggered by certain events such as interruption or underflow. Alternatively, the same selection process may be preconfigured to be initiated at fixed regular intervals.
Since the window function estimator that will be considered as the optimal and best-performing is the one with the minimum error, a window function's estimation capability may be assessed using the formula for the mean squared error (MSE), as shown in the following mathematical function.
MSEyinj = 2" (twin, (i) — Target(i))* wherein, optional window function estimator = min {MSE};
WIN; could be any of the window functions (e.g, EWMA, LWMA, Hann, etc.);
TWin is the estimate/forecasted throughput using a particular estimator; and
Target is the target measurement.
Referring now to Figure 6, there is shown a flowchart illustrating a process performed by the bottleneck bandwidth estimation module in accordance with one or more embodiments of the present invention. As mentioned, the bottleneck bandwidth may be estimated using short-term throughput measurements. The maximum measured throughput from the snapshot or window of estimates is the one used to update the bottleneck bandwidth estimate. It is preferable that the short-term maximum throughput measurement is the maximum from a snapshot or a window of previous measurements (e.g., past ten measurements) for current data transfer operations or a window of current measurements (e.g., current ten measurements for succeeding data transfer operations. The short-term maximum throughput measured may be used to compute for the estimated bottleneck bandwidth (eBnBW) in order to dampen the effect of mid-stream zero-traffic conditions of any data transfer operations.
The flow commences by initiating the data blocks 600, 602 wherein the throughput measurements and the instant network measurements (e.g., PLR,
RTT) are retrieved by the bottleneck bandwidth estimation module, respectively. Once the throughput measurements and the instant network measurements are in order for processing and analysis, the bottleneck bandwidth estimation module proceeds with calculating the congestion factor, as shown in block 604. The calculation of the congestion factor triggers the bottleneck bandwidth estimation module to determine whether the current state of the data transfer operations is more congested, as shown in decision block 606. If the answer to the decision block is no, the bottleneck bandwidth : estimation module automatically updates the bottleneck bandwidth (eBnBW) as shown in concluding block 608. Otherwise, the flow is caused to be redirected to block 610 wherein the bandwidth estimation module uses the previous bottleneck bandwidth estimate (eBnBW(i-2)) as a fallback.
As mentioned, the bottleneck bandwidth estimate may be determined using the function or equation disclosed in e.a. Mathis, "The macroscopic behaviour of the TCP congestion avoidance algorithm," in ACM SIGCOMM, 1997. For multiple TCP connections involving the data transfer operations, the following mathematical function which is a modification of the Mathis function or equation may be used in estimating the bottleneck bandwidth. :
k
MSS MSS
RTT; VPLR i=1 wherein, k = number of TCP connections
Consequently, the value of the eBnBW may be updated based on n-most recent maximum throughput measurements. Preferably, two most recent samples are used in updating the value of eBnBw. In which case, the following ; mathematical function may be used. eBnBW, = y(ActualMaxTP, + ActualMaxTP;_,) whereiny = 1/, = 1/,
Alternatively, the effect of different samples through maximum throughput measurements with respect to time may be given weight, as shown in the following mathematical function. w, r=Whiw =| zw =
Ww, w; eBnBW; = [ActualMaxTP; ...ActualMaxTPB,] x | : | x 1p
W,
For the purpose of accelerating the data transfer using the illustrated server apparatus, and related method and processes of the present invention, at least three parameters of the operations of the data transfer may be measured, namely: the available bandwidth (AB), the bottleneck bandwidth : (BB), and the current throughput (CT) of the current data transfer operations. ‘
The CT may be obtained directly from the instant network measurements while 3s the AB may be obtained using the maximum throughput measurements as discussed above. The AB, on the other hand, is the parameter of the data transfer operations that is required to manipulate the TCP connections with the end in view of accelerating the data transfer operations involved in the same
TCP connections.
Depending on the value of the AB, number of connections to be added or created, as the AB is the remaining unutilized bandwidth calculated from the
BB estimate and the CT of the current data transfer operations. Hence, the equation AB = BB — CT. Stated differently, AB corresponds to the amount of bandwidth that is not yet utilized in the previous data transfer operations relative to the current data transfer operations. An optimized network means a : minimized AB and, for this reason, the goal is to have the value of the AB as minimum as possible based on the values of the BB and the CT. An accurate estimate of the BB would therefore, set the value of the AB at the minimum.
In order to ensure the accuracy of the BB estimate further, the server apparatus and related method and processes of the present invention may be configured to provide an adaptive or reactive window function which estimates the BB. In that case, the output value of each window function included in the array of window function may be computed differently depending on the congestion status of the network through which the data transfer operations take place. Thus the process for updating the BB estimate may be made to depend on the congestion state of the network which is represented by the congestion factor and the changes associated with it. The congestion factor (C)) is a variable based on the Mathis equation for calculating the throughput, as shown in the following mathematical function:
MathisTP < M33) err JFIR c=1Y RTTVPLR
As the network becomes congested, the RTT and PLR are known to increase and thus affect the congestion factor. In this regard, estimations provided by the server apparatus, method of controlling data transfer operations and related processes of the present invention may take into consideration the various congestion states and the behavior of estimation processes in each of those congestion states. In other words, the estimation processes behave differently depending on whether the network is in congested or non-congested state. Taking the congested state in relation to previous values of the congestion factor into consideration, a relative congestion state may be reached.
In the non-congested state, the BB estimate may be updated when the network is not congested. In which case, where there is congestion taking place, the PLR and the RTT may be assumed to have stable values. In terms of estimation behavior in the non-congested state, the estimation transition time : 15 from startup to the steady-state may be minimized by using the short-term maximum throughput measurements in calculating the BB estimate as discussed above. In the non-congested state, the eBnBW value may be based on the n-most recent maximum throughput measurements. As mentioned, in determining the eBnBW estimate, either two most recent samples or the weight associated with the effect of the different samples with respect to time may be used.
In an increasing congestion state, the BB estimate may be reset to a previous calculation, back to a state prior to the occurrence of congestion. In which case, where there is a congestion increasingly taking place, at least one of the two values associated with the PLR and the RTT is likely to increase, effectively decreasing the congestion factor. In terms of estimation behavior in the congested state, the server apparatus and the method of controlling data transfer operations and related processes may cause the eBnBW to fall back to ! a previous value prior to the congestion state. The reason for which is that the previous BB estimate is believed to have caused the increased or increasing congestion state in the current data transfer operations.
In the increasing congestion state, updating the eBnBW based on the two most recent actual maximum throughput measurements as with the case of non-congested state is likely detrimental since those recent measurements may lead to the current congested state. Needless to say, increasing the eBnBW of an already congested network is intuitively detrimental. Thus, the appropriate approach for the congested state in current data transfer operations is to fall back to the eBNBW calculated in the previous data transfer operations or prior to the time leading to the congested state in the current data transfer operations. Having said that, the following logic may be applied by the server apparatus, method of controlling data transfer operations and related process. if C; < Ci—, and eBnBW; > eBnBW,_,; then eBnBW; = eBnBW,_,
Since previous eBnBW may have caused the congested state in the current data transfer operations, it is appropriate and preferable that the estimate to be used in the same data transfer operations is the estimate prior to that state. Unlike TCP's multiplicative decrease which effectively penalizes the download speed by half, it is preferable that the estimation processes of the present invention be prevented from being penalized greatly by falling back to the n+1 state (e.g, if n=2, we refer to 3 values back which is i-2).
Yet another aspect of the present invention provides a data stream which is representative of a computer program having instructions which when ; executed by a processor component cause the processor component to perform the steps of: (i) enabling data transfer operations to and from a client apparatus; (ii) measuring a parameter of the data transfer operations; (iii) converting the measured parameter of the data transfer operations into a time series; (iv) filtering values of the parameter of the data transfer operations converted into the time series using an array of window functions; (v) determining a maximum value from the filtered values of the parameter of the data transfer operations; and (vi) preparing succeeding data transfer operations to the client apparatus through a communication network based on the indicator value.
The parameter of the data transfer operations in the data stream is a throughput having an indicator value that corresponds to an estimated bottleneck bandwidth. The processor component of the data stream further performs the steps of determining a target indicator value of the throughput, and selecting one of the window functions included in the array of the window functions based on a comparison of the indicator value and the target indicator value. The target indicator value corresponds to any one of a further measured throughput, a throughput of a media segment associated with the data transfer operations, and a rectangular moving average value. The indicator value in the data stream may be determined based on a congestion state of the communication network through which the data transfer operations take place.

Claims (26)

Claims
1. A data transfer apparatus acting as a server for estimating parameters of data transfer across a communication network, the apparatus comprising: a transceiver component configured to enable data transfer operations to and from at least one client apparatus; an estimator component configured to measure at least one parameter of the data transfer operations, convert the measured at least one parameter of the data transfer operations into a time series, and determine at least one indicator value of the at least one parameter of the data transfer operations converted into the time series, the at least one indicator value being attributably indicative of an optimal parameter of the data transfer operations; and a processor component in communication with the transceiver and estimator components and configured to prepare succeeding data transfer operations to the at least one client apparatus based at least on the at least one indicator value determined by the estimator component, wherein the at least one indicator value is determined by filtering values of the at least one parameter of the data transfer operations converted into the time series using an array of window functions and determining a maximum value from the filtered values of the at least one parameter of the data transfer operations.
2. The apparatus according to claim 1, wherein the array of window functions includes any two or more of the following: simple moving average, rectangular moving average, triangular window function,
Hann window function, Gaussian window function, linearly weighted moving average, and exponential weighted moving average.
3. The apparatus according to claim 1, wherein the measured at least one parameter of the data transfer operations is a throughput.
4, The apparatus according to claim 3, wherein the at least one indicator value of the throughput corresponds to an estimated bottleneck bandwidth.
5. The apparatus according to claim 4, wherein the estimated bottleneck bandwidth includes one or more of a congestion window and roundtrip time. ;
6. The apparatus according to claims 1 and 3, wherein the estimator component determines at least one target indicator value of the measured throughput.
7. The apparatus according to claim 6, wherein one of the window functions included in the array of the window functions is selected by the estimator component based on a comparison of the at least one indicator value and the at least one target indicator value. :
8. The apparatus according to claim 7, wherein the at least one target indicator value corresponds to any one of a further measured throughput, a throughput of a media segment associated with the data transfer operations, and a rectangular moving average value.
9. The apparatus according to claim 1, wherein the at least one indicator value is determined based on congestion state of the communication network through which the data transfer operations take place. a1
10. A computer-implemented method of controlling data transfer operations across a communication network based on estimated parameters of the data transfer operations, the method comprising the steps of: monitoring operating conditions of the communication network; measuring at least one parameter associated with the monitored operating conditions; converting the measured least one parameter into a time series; determining at least one indicator value of the at least one parameter by filtering values of the at least one parameter converted into the time series using an array of window functions and determining a maximum value from the filtered values of the at least one parameter; and selectively transcoding a data stream based at least on the at least one indicator value as a function of other one or more parameters associated with the monitored operating conditions. ;
11. The method according to claim 10, wherein the at least one parameter of the data transfer operations is a throughput.
12. The method according to claim 11, wherein the at least one indicator value of the measured throughput corresponds to an estimated bottleneck bandwidth.
13. The method according to claim 12, wherein the estimated bottleneck ; bandwidth includes one or more of a congestion window and roundtrip time. :
14. The method according to claims 10 and 11, further comprising the steps of: estimating an available bandwidth for transmitting the data stream to at least one client apparatus over the communication network based on the estimated bottleneck bandwidth and a throughput associated with the succeeding data transfer operations; varying bitrate of the data stream based on the estimated available bandwidth; and segmenting and serving content associated with the data stream according to the varied bitrate.
15. The method according to claims 10 and 11, further comprising the step of determining at least one target indicator value of the throughput.
16. The method according to claim 15, further comprising the step of selecting one of the window functions included in the array of the window functions based on a comparison of the at least one indicator value and the at least one target indicator value.
17. The method according to claim 16, wherein the at least one target indicator value corresponds to any one of a further measured throughput, a throughput of a media segment associated with the data transfer operations, and a rectangular moving average value. :
18. The method according to claim 10, wherein the at least one indicator : value is determined based on congestion state of the communication network through which the data transfer operations take place. :
19. The method according to claim 10, wherein the data stream is a media stream selected from any one or any suitable combination of a video stream, an audio stream, a file transfer stream, a messaging stream, and a graphics stream.
20. A data stream which is representative of a computer program having instructions which when executed by a processor component cause the processor component to perform the steps of: enabling data transfer operations to and from at least one client apparatus; measuring at least one parameter of the data transfer operations; converting the measured at least one parameter of the data transfer operations into a time series; filtering values of the at least one parameter of the data transfer operations converted into the time series using an array of window functions; determining a maximum value from the filtered values of the at least one parameter of the data transfer operations; and preparing succeeding data transfer operations to the at least one client apparatus based at least on the at least one indicator value.
21. The data stream according to claim 20, wherein the at least one i parameter of the data transfer operations is a throughput.
22. The data stream according to claim 20, wherein the at least one indicator value of the throughput corresponds to an estimated bottleneck bandwidth.
23. The data stream according to claims 20 and 21, wherein the processor component is caused to perform the further step of determining at least one target indicator value of the throughput.
24. The data stream according to claim 23, wherein the processor component is caused to perform the further step of selecting one of the window functions included in the array of the window functions based on a comparison of the at least one indicator value and the at least one target indicator value.
25. The data stream according to claim 24, wherein the at least one target indicator value corresponds to any one of a further measured throughput, a throughput of a media segment associated with the data transfer operations, and a rectangular moving average value.
26. The data stream according to claim 20, wherein the at least one indicator value is determined based on congestion state of the communication network through which the data transfer operations take place. a5
PH12015000269A 2015-08-19 2015-08-19 Data transfer apparatus, method of controlling data transfer, and a data stream PH12015000269A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PH12015000269A PH12015000269A1 (en) 2015-08-19 2015-08-19 Data transfer apparatus, method of controlling data transfer, and a data stream
KR1020160039034A KR102469659B1 (en) 2015-08-19 2016-03-31 Data transfer device, data transfer controlling method and data stream
US15/240,558 US10164893B2 (en) 2015-08-19 2016-08-18 Data transfer apparatus, data transfer controlling method and data stream

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PH12015000269A PH12015000269A1 (en) 2015-08-19 2015-08-19 Data transfer apparatus, method of controlling data transfer, and a data stream

Publications (1)

Publication Number Publication Date
PH12015000269A1 true PH12015000269A1 (en) 2017-02-27

Family

ID=58191820

Family Applications (1)

Application Number Title Priority Date Filing Date
PH12015000269A PH12015000269A1 (en) 2015-08-19 2015-08-19 Data transfer apparatus, method of controlling data transfer, and a data stream

Country Status (2)

Country Link
KR (1) KR102469659B1 (en)
PH (1) PH12015000269A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116208788B (en) * 2023-05-04 2023-07-21 海马云(天津)信息技术有限公司 Method and device for providing network application service, server equipment and storage medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9088510B2 (en) * 2010-12-17 2015-07-21 Microsoft Technology Licensing, Llc Universal rate control mechanism with parameter adaptation for real-time communication applications
EP2566172A1 (en) * 2011-09-02 2013-03-06 Thomson Licensing Method and apparatus for adaptive transcoding of multimedia stream

Also Published As

Publication number Publication date
KR20170022851A (en) 2017-03-02
KR102469659B1 (en) 2022-11-23

Similar Documents

Publication Publication Date Title
US10164893B2 (en) Data transfer apparatus, data transfer controlling method and data stream
Wang et al. SQUAD: A spectrum-based quality adaptation for dynamic adaptive streaming over HTTP
US8619602B2 (en) Capacity/available bandwidth estimation with packet dispersion
Wang et al. Multimedia streaming via TCP: An analytic performance study
EP2859696B1 (en) Preventing overestimation of available bandwidth in adaptive bitrate streaming clients
EP2997707B1 (en) Enhancing performance of rapid channel changes and other playback positioning changes in adaptive streaming
EP4082174B1 (en) System and method for estimation of quality of experience (qoe) for video streaming
EP2979406B1 (en) Deadline driven content delivery
EP1376952A1 (en) Congestion control mechanism for streaming media
US11159834B2 (en) Managing congestion response during content delivery
US20140215085A1 (en) System and method for robust adaptation in adaptive streaming
US20130163429A1 (en) System and method of adaptive congestion management
US20140281000A1 (en) Scheduler based network virtual player for adaptive bit rate video playback
CN104581422B (en) A kind of method and apparatus transmitted for network data
KR20110044258A (en) Data streaming through time-varying transport media
CN109936769B (en) Video jamming detection method, video jamming detection system, mobile terminal and storage device
Rahman et al. SABA: Segment and buffer aware rate adaptation algorithm for streaming over HTTP
KR102469659B1 (en) Data transfer device, data transfer controlling method and data stream
Zhao et al. MPTCP+: Enhancing adaptive http video streaming over multipath
US8218452B2 (en) Network detection of real-time applications using incremental linear regression
Tanwir et al. Modeling live adaptive streaming over HTTP
Laine et al. Network Capacity Estimators Predicting QoE in HTTP Adaptive Streaming
Yanev et al. Retracted on December 7, 2023: Does TCP new congestion window validation improve HTTP adaptive streaming performance?
CN102497312B (en) Rate control method oriented to streaming media digital watermark transmission
Fraga et al. A non-intrusive estimation for high-quality Internet TV services