[go: up one dir, main page]

WO2011025355A1 - Method and system of obtaining a measure of a rate of data transfer over a network - Google Patents

Method and system of obtaining a measure of a rate of data transfer over a network Download PDF

Info

Publication number
WO2011025355A1
WO2011025355A1 PCT/MY2009/000129 MY2009000129W WO2011025355A1 WO 2011025355 A1 WO2011025355 A1 WO 2011025355A1 MY 2009000129 W MY2009000129 W MY 2009000129W WO 2011025355 A1 WO2011025355 A1 WO 2011025355A1
Authority
WO
WIPO (PCT)
Prior art keywords
network device
data
time
probe
data sequence
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/MY2009/000129
Other languages
French (fr)
Inventor
Ahmad Tajuddin Samsudin
Syaiful Nizam Yahya
Mazni Amil
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telekom Malaysia Bhd
Original Assignee
Telekom Malaysia Bhd
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 Telekom Malaysia Bhd filed Critical Telekom Malaysia Bhd
Priority to PCT/MY2009/000129 priority Critical patent/WO2011025355A1/en
Publication of WO2011025355A1 publication Critical patent/WO2011025355A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route

Definitions

  • the present invention relates to a method and system of obtaining a measure of a rate of data transfer over a network between a first network device and a second network device.
  • a network path may be capable of a theoretical transfer rate, but the actual transfer rate often differs from the theoretical rate.
  • a measure of a rate of data transfer over a network comprising:
  • the computed value is a measure of the rate of data transfer in units of, for example, bits per second (b/s), bytes per second (B/s) or time (s).
  • the computed value can be a quantity of time that is an indication of the rate of data transfer, particularly when the first probe data sequence and the second probe data sequence are of the same size.
  • the measure can be expected to be indicative of the residual capacity of the network rather that the total capacity of the network.
  • the measured current rate of data transfer can be used, for example, as a prediction of a future rate of transfer over the network between the same network devices (though bearing in mind that the rate of data transfer generally varies with time).
  • the measured data transfer rate may in some cases provide a more reliable prediction of a future transfer rate soon after the current rate is measured. For example, a rate of transfer achieved milliseconds or even several seconds later may not have changed much. This is because other traffic on the network may not have changed significantly over a short period of time.
  • the measure may be less predictive of a future transfer rate after a considerable period of time, such as hours or days later.
  • the second probe data sequence will generally be sent by the second network device after (and possibly prompted by) receipt by the second network device of the first probe data sequence from the first network device, but this need not be so. If not, the time delay may have a negative value.
  • the computed value indicative of the rate of data transfer can be used as a reasonably good prediction of whether a future data transfer rate will be sufficient to provide an acceptable performance. In cases where the other traffic on the network does not vary significantly the computed indicative value will be valid for as long as the network and its traffic remain substantially the same.
  • the value indicative of the rate of data transfer can therefore be used to control how to adapt a subsequent data stream so as to be likely to obtain improved performance when the adapted subsequent data stream is transmitted from the first network device to the second network device.
  • the data indicative of the time delay is the actual time delay, which is calculated by determining the difference between a further time of transmission, being the time at which the second probe data sequence is transmitted from the second network device and a further time of receipt, being the time at which the first probe data sequence is received at the second network device.
  • the data indicative of the time delay is a further time of transmission, being the time at which the second probe data sequence is transmitted from the second network device and a further time of receipt, being the time at which the first probe data sequence is received at the second network device.
  • computing the value indicative of the data transfer rate comprises determining a combined probe transmission time being a sum of a transmission time of said first probe data sequence and a transmission time of said second probe data sequence.
  • determining the combined transmission time comprises subtracting the time of transmission and the time delay from the further time of receipt.
  • computing the data transfer rate comprises dividing a known data amount of the probe data sequence by the combined transmission time.
  • the data indicative of the time delay comprises one or more values from which the time delay is calculable.
  • the data indicative of the time delay comprises a transfer rate of the probe data sequence from the first network device to the second network device and a further time of transmission, being the time at which the second probe data sequence is transmitted from the second network device.
  • a transfer rate of transmission of the second probe data sequence from the second network device to the first network device is determined from the further time of transmission and the further time of receipt.
  • computing the value indicative of the data transfer rate comprises determining an average of the transfer rate of the first probe data sequence from the first network device to the second network device and the transfer rate of the second probe data sequence from the second network device to the first network device.
  • first probe data sequence and the second probe data sequence are identical.
  • the said first and second probe data sequences are sent by User Datagram Protocol (UDP).
  • UDP User Datagram Protocol
  • the each probe data sequence comprises chirps, one or more pairs of packets, or a train of packets.
  • the method further comprises computing the time delay at the second network device.
  • a method of scaling data for transmission comprising:
  • the method further comprises transmitting the adapted data stream from the first network device to the second network device.
  • the received data stream is a video data stream.
  • the method includes comparing the measure of the rate of data transfer to a predefined threshold and setting a flag when the value is above the threshold, wherein the flag is clear or cleared when the value is below the threshold.
  • adapting the received data stream comprises separating the received data stream into a base stream and an enhancement stream, and dropping the enhancement stream when the flag is clear so that the adapted data stream comprises the base stream and omits the enhancement stream.
  • the method includes defining the threshold to be greater than a value indicative of a transfer rate required to send the base stream and the enhancement stream plus a margin. In an embodiment the method further comprises sending the flag from the first network device to the second network device for use in interpreting the adapted data stream.
  • adapting the data stream comprises scaling data of the received data stream according to the measure of the rate of data transfer.
  • scaling the data comprises selecting a spatial video coding parameter based on the measure of the rate of data transfer.
  • a system for obtaining a measure of a rate of data transfer over a network comprising:
  • a transmitter for sending a first probe data sequence from a first network device at a time of transmission over the network to a second network device
  • a receiver for receiving a second probe data sequence at the first network device at a time of receipt, said second probe data sequence having been transmitted over the network from the second network device;
  • a receiver for receiving at the first network device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device transmitting the second probe data sequence
  • a processor for computing a value indicative of a rate of data transfer based on the time of transmission, the time of receipt and the data indicative of a time delay.
  • a system for scaling data for transmission comprising:
  • a processor for adapting a received data stream according to the value indicative of the rate of data transfer.
  • a system for obtaining a measure of a rate of data transfer over a network comprising:
  • a system for scaling data for transmission comprising:
  • a means for adapting a received data stream according to the value indicative of the rate of data transfer is provided.
  • a computer program product embodied in tangible computer readable media comprising instructions which when executed control a processor to:
  • the computer program further comprises instructions which when executed control the processor to adapt a received data stream according to the value indicative of the rate of data transfer.
  • Figure 1 is a schematic representation of a method of estimating a data transfer rate over a network according to an embodiment of the present invention
  • Figure 2 is a schematic representation of a video request and serve process which uses data transfer rate estimation modules according to an embodiment of the present invention
  • Figure 3 is a schematic representation of a message transfer process for estimating a transfer rate according to an embodiment of the present invention
  • Figure 4 is a schematic representation of an alternative message transfer process for estimating a data transfer rate according to an embodiment of the present invention
  • Figure 5 is a schematic representation of a system for requesting and serving video including modules for estimating a data transfer rate according to an embodiment of the present invention.
  • the present invention provides a system and method of obtaining a value indicative of a rate of data transfer over a network between two network devices connected to the network.
  • Each network device is capable of transmitting and receiving data over the network.
  • a first probe data sequence is sent from a first network device, over the network at a first transmission time to a second network device which receives the first probe data sequence at a first receipt time.
  • the second probe data sequence is sent from the second network device to the first network device at a second transmission time.
  • the first network device receives a second probe data sequence transmitted over the network at a second receipt time.
  • the first network device receives from the second device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device sending the second probe data sequence.
  • the data indicative of the time delay may be in the form of, for example, the time delay itself or two time measurements from which the delay time is calculable.
  • the value indicative of the transfer rate is obtained by the first network device by performing a computation based on the first transmission time, the second receipt time and the data indicative of the time delay.
  • the value may be the rate of transfer or another value which is an indication of the rate, such as a time value.
  • the time value may be a combined probe transmission time.
  • FIG. 1 is a schematic representation of a system 10 for obtaining a measure of a rate of data transfer over a network 24 according to an embodiment of the invention.
  • a first network device 20 is connected to the network 24, as is a second network device 22.
  • the first network device 20 may be a server for providing streamed data, such as, for example, video data across the network 24 to the second network device 22.
  • the second network device 22 is typically a client device which requests and consumes the streamed data.
  • the client device 22 may request a video data stream from the server 20 and then display a moving video image to a user based on the data stream.
  • the system 10 employs a method described below to determine a measure of the rate of data transfer over the network 24.
  • the measure of the transfer rate can be used in some embodiments for configuring data streaming.
  • the method comprises sending a first probe data sequence 30 from the first network device 20 over the network 24 at a first transmission time.
  • the first probe data sequence 30 is received at the second network device 22 at a first receipt time.
  • the second network device 22 sends a second probe data sequence 32 over the network 24 to the first network device 20 at a second transmission time.
  • the first network device 20 receives the second probe data sequence 32 at a second receipt time.
  • the second probe data sequence 32 comprises the same data as the first probe data sequence 30.
  • the probe data sequences consist of a known amount of data.
  • the second network device 22 also determines and sends data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device sending the second probe data sequence 32.
  • the data may be a quantity of the time delay. Alternatively the data may be one or more values from which the time delay is calculable.
  • the first network device 20 then computes the value indicative of the data transfer rate based on the first transmission time, the second receipt time and the data indicative of the time delay.
  • the second network device 22 calculates the time delay by subtracting the second transmission time from the first receipt time.
  • the second network device 22 calculates a transfer rate of the first probe data sequence based on the first receipt time and the first transmission time and the known amount of data within the first probe data sequence. This transfer rate, as well as the second transmission time, may be used as the values from which the time delay is calculated.
  • the time delay is calculated by determining the first receipt time based on the first transmission time, the transfer rate and the known size of the data in the first probe data sequence. Then the time delay is calculated by subtracting the second transmission time from the first receipt time.
  • the first network device 20 calculates a transfer rate of the second probe data sequence based on the second transmission time and the second receipt time and the known amount of data in the second probe data sequence.
  • the measure of the data transfer rate is calculated by the first network device 20 by determining a combined transmission time (CTT) of the first probe data sequence and second probe data sequence.
  • the CTT is calculated by subtracting the first transmission time and the time delay from the second receipt time.
  • the CTT is an indication of the data transfer rate. This indication may be scaled, for example, to take into account that the CTT is two way (from and back to the first network device) and a subsequent data transfer will be one way across the network (that is, there is may be no transfer of a data stream back to the first network device).
  • the scaling may be, for example, multiplication by 2.
  • the data transfer rate is calculated by dividing the known data amount of the probe data sequence by the CTT or the scaled CTT, if applicable.
  • the network comprises a Symmetric Digital Subscriber Line (SDSL)
  • SDSL Symmetric Digital Subscriber Line
  • this method may be used.
  • the transmission rates of the first probe data sequence and the second probe data sequence are computed, the data transfer rate of the network may be determined by averaging or weighting these transfer rates.
  • the network comprises an Asymmetric Digital Subscriber Line (ADSL)
  • ADSL Asymmetric Digital Subscriber Line
  • the first probe data sequence and respective time transmissions are used to compute the first probe transmission rate, that is for upstream transfer (upload)
  • the second probe data sequence and the respective transmission time are used to compute the second probe transmission rate, that is downstream transfer (download).
  • the upload and download transfer rates can then be averaged or weighted.
  • the weighting can be 8 to 1 , where 8 is for the first data transfer rate and 1 is for the second data transfer rate to obtain the measure of the rate of transfer.
  • the download, upload, and average weighted transfer rates may be available transfer rates;.
  • the probe data sequences may be sent by UDP or another suitable protocol, such as TCP/IP.
  • the probe data sequences preferably are chirps, one or more of a pair of packets or a train of packets.
  • the probe data sequences may be given attributes of a type of a subsequent data stream. For example if the subsequent data stream is a video stream the probe data sequence may be given attributes, such as a quality of service (QoS) attribute such that the network handles the probe data sequences as if it were a video data stream.
  • QoS quality of service
  • the attribute may also include packet size.
  • the value indicative of the transfer rate may be estimated a number of times, such as for example for each of a pair or train of packets in the probe data sequence. These values can be averaged, weighted, have one selected (for example the slowest) or processed in some other way to produce a resulting indicative value. In some embodiments the transfer rate may be periodically estimated, rather than on demand, and the most recent indicative value used.
  • the transfer rate of the probe transmission to the first network device is 512/(0.025 - 0.0015 ms).
  • the transfer rate may be measured in bits per second instead of bytes per second.
  • the value indicative of the rate of transfer is the estimated transfer rate.
  • the data stream is a video stream, although other data streams can be used, such as a voice data stream.
  • the second network device 22 sends a client request for video 52 to the first network device 20.
  • the first network device 20 uses a server transfer rate estimation module 60 and a client transfer rate estimation module 64.
  • These modules 60 and 64 perform the process of obtaining the estimated data transfer rate described in relation to Figure 1.
  • Module 60 performs the step of the first network device determining the transfer rate of the transmission of the second probe data sequence from the second network device to the first network device.
  • Module 64 performs the step of the second network device determining the transfer rate of the transmission of the first probe data sequence from the first network device to the second network device.
  • Module 60 may also estimate the transfer rate 70.
  • the estimated transfer rate 70 is then provided from the module 60 to a scalable video coding module 62.
  • the scalable video coding module 62 receives a scalable data stream according to the client request 52 and scales it according to the estimated transfer rate 70 so as to produce an adapted data stream in the form of a scaled video data stream 72.
  • the scaled video data stream 72 is then sent by the first network device 20 as a stream video data stream 54 to the second network device 22.
  • the scaling is on the basis that the estimated transfer rate is likely to be attained in the subsequent transfer of the video data stream 54.
  • the first network device 20 is a server and the second network device 22 is a recipient device.
  • the server 20 comprises: an initializer 110 for listening for a data request from the recipient device 22, a connection former 112 for connecting to the recipient device 22, a probe transmitter 114 for sending a first probe data sequence to the recipient device 22, a listening module 116 for waiting for results from the recipient device 22, a first probe transfer rate receiver 118 for receiving results from the recipient device 22, a probe receiver 120 for receiving probe sequence from the recipient device 22, a second probe transfer rate calculator 122 for measuring a data transfer rate, a transfer rate calculator 124 for estimating the value indicative of the transfer rate, and a module 126 for using the estimated transfer rate, such as a storage or output module.
  • the recipient device 22 comprises: a connection former 130 for preparing connection to the server 20, a probe receiver 132 for receiving a probe sequence from the server 20, a first probe transfer rate calculator 134 for measuring a data transfer rate, a result transmitter 136 for sending a data transfer rate to the server 20 and a probe transmitter 138 for sending a probe sequence to the server 20.
  • the parts 110 to 126 may be in the form of computer hardware such as one or more microprocessors configured by executable instructions in the form of firmware or software to control the microprocessor(s) to operate according to the respective function described in relation to these components when the instructions are executed.
  • the computer software may be in the form of instructions which when executed control the processor to operate so as to form these components or perform the method described above in relation to Figures 1 and 2.
  • the parts 130 to 138 may be in the form of computer hardware such as one or more microprocessors configured by executable instructions in the form of firmware or software to control the microprocessor(s) to operate according to the respective function described in relation to these components when the instructions are executed.
  • initializer 110 listens for a message from the recipient device 22.
  • connection former 130 formats a request according to an appropriate protocol for connection to the server 20.
  • Connection former 130 sends the request to the server 20 so as to form a connection with the server 20 in combination with connection former 112.
  • Connection former 112 receives the request and completes the connection.
  • Probe transmitter 114 then sends the first probe data sequence to the recipient device 22 and records the first transmission time in a memory of the server 20. The first transmission time is also sent with or as part of the probe data sequence.
  • Probe receiver 132 receives the first probe data sequence from the server 20 and records the first receipt time in a memory of the recipient device 22.
  • First probe transfer rate calculator 134 determines the transfer rate based on the first transmission time and the first receipt time and the amount of data in the first probe data sequence.
  • listening module 116 waits until the server 20 receives a reply from the recipient device 22.
  • the determined transfer rate of the first probe data sequence is sent to the sender 20 by result transmitter 136.
  • First probe transfer rate receiver 118 receives the results from the recipient device 22.
  • Probe transmitter 138 then sends a second probe data sequence to the server 20 at the second transmission time. It is noted that in another embodiment the second probe sequence may be sent before the transfer rate is sent by result transmitter 136.
  • the second data sequence be the same as the first probe data sequence, but in this embodiment it need not be.
  • the second transmission time is also sent with or as part of the second probe data sequence.
  • the second probe data sequence is received by probe receiver 120.
  • Probe receiver 120 also determines and records the second receipt time. If the second probe data sequence is not the same as the first probe data sequence, then the amount of data in the second probe data sequence is determined.
  • Second probe transfer rate calculator 122 determines the transfer rate of the second probe data sequence based on the second transmission time and the second receipt time and the known amount of data in the second probe data sequence. Transfer rate calculator 124 then estimates the value indicative of the transfer rate based on the determined transfer rate of the first probe data sequence and the determined transfer rate of the second data probe sequence. Typically this is done by averaging the two determined data transfer rates. The resulting measure of data transfer rate is then output for further use by module 126.
  • Figure 4 shows another embodiment of a message transfer process 150.
  • the server 20 comprises an initializer 160 for listening for a data request from the recipient device 22, a connection former 162 for connecting to the recipient device 22, a probe transmitter 164 for sending the first probe data sequence to the recipient device 22, a probe receiver 166 for receiving the second data probe data sequence from the recipient device 22, a time calculator 168 for estimating CTT and waiting for receipt of the time delay, a receiver 170 for receiving a time delay from therecipient device 22, a indicative value calculator 172 for estimating the value indicative of the transfer rate and a module 174 for outputting the estimated indicative value for use.
  • the recipient device 22 comprises: a connection former 180 for preparing a connection to the server 20; a probe receiver 182 for receiving probe data sequence from the sender 20; a probe transmitter 184 for sending to second probe data sequence to the sender 20; a time delay calculator 186 for determining a time delay; and a transmitter 188 for sending an indication of the time delay to the server 20.
  • the parts 162 to 188 may be in the form of one or more processors controlled by instructions in the form of software or firmware.
  • connection former 180 is configured to respond to the receipt of a message from recipient device 22.
  • Recipient device 22 receives a request from the user to obtain a data stream from the server 20 and responds by preparing a connection request to the server 20 using connection former 180.
  • Connection former 180 sends the request to the server 20 so as to form a connection with the server 20.
  • Connection former 162 receives the connection from the recipient device 22 and then using probe transmitter 164 sends the first data probe sequence to the recipient device 22. The first transmission time is recorded in a memory of the server 20.
  • Probe receiver 182 receives the probe data sequence from the server 20 and notes records the first receipt time in a memory of the recipient device 22.
  • Probe transmitter 184 sends the same probe data sequence as a second probe data sequence to the server 20 which is received by probe receiver 166.
  • the second transmission time is recorded in a memory of recipient device 22.
  • the second receipt time is recorded in server memory.
  • Time delay calculator 186 determines the time delay from the recorded first receipt time and the second transmission time. The time delay is then sent by transmitter 188 to the server 20.
  • the time calculator 168 determines the round trip time based on the first transmission time and second receipt time, and then waits for receipt of the time delay.
  • Receiver 170 receives the time delay sent by transmitter 188.
  • Indicative value calculator 172 then estimates the value indicative of the transfer rate based on the round trip time and the receive time delay by determining the CTT, which is calculated by subtracting the time delay from the round trip time.
  • the indicative value in this case is a time value.
  • Indicative value calculator 172 may also calculate the transfer rate based on the indicative time value and the known amount of data in the probe data sequences. Module 174 then outputs the transfer rate (or indication thereof) for use in streaming data.
  • FIG. 5 shows a system 200 which comprises the first network device in the form of a video server 202 and the second network device in the form of a video player 206 and display client device 204.
  • the video server 202 receives video data from video source 208.
  • the video data is in a scalable format.
  • the video server 202 comprises a connection former 210 for establishing connection with the video player 206, a multiplexer 212, a packetizer 214, a transfer rate estimating component 216, a video bit rate sealer 218, and a streamer 220.
  • the video player 206 comprises a component 240 for establishing a connection with the video server 202, a de-packetizer 242, a demultiplexer 244, a decoder 246, a renderer 248 and a transfer rate estimating component 260.
  • the client device 204 sends a request connection message 270 so as to receive streamed video data.
  • the request arrives at the component 210 which establishes a connection with the video player 206 which includes sending a connection approval message 272 to component 240 of the player 206.
  • Component 240 initiates the transfer rate estimation component 260 of the video player 206.
  • Component 210 requests the multiplexer 212 receive the video from the source 208.
  • the multiplexer 212 multiplexes the received video signal with, for example, a received corresponding audio signal.
  • the multiplexer 212 requests the packetizer 216 packetize the multiplexed scalable video.
  • the transfer rate estimation component 216 in combination with transfer rate estimation component 260 estimates the transfer rate between the video server 202 and the client device 204 or another value indicative of the transfer rate, as described above.
  • the resulting estimated transfer rate is then provided to the sealer 218, which scales the scalable video data according to the transfer rate and then requests the scaled video data be streamed by the streamer 220.
  • the sealer treats an enhancement stream, which is in a different stream session to a base stream, according to required scaling.
  • the streamer 220 outputs a stream of packets of video data in scalable format, which are sent over the network 274 to the de-packetizer 242 of the video player 206.
  • the de-packetizer 242 de-packetizes the received packets 230 and requests the depacketizer 242 to depacketize the packets, to form a data stream.
  • the data stream is then provided to the de-multiplexer 242 which de-multiplexes the data stream.
  • the de-multiplexer de-multiplexes the data stream into the base video and audio streams.
  • the demultiplexed stream is then provided to the decoder 246 which decodes it along with any enhancement stream and requests the renderer 248 render the decoded data as video data.
  • the video data 276 is then sent to a display of the client 204.
  • the sealer 218 may implement scalable video coding, which is an extension of the H.264/MPEG-4 AVC video compression standard, or other types of video scaling.
  • the sealer 218 may spatially scale the video or select an appropriate video resolution in the scalable video stream according to the estimated attainable transfer rate.
  • Temporal (frame rate) and fidelity scalability may be used as well as or instead of spatial scalability.
  • Adaptation of the data stream according to the value indicative of the rate of data transfer can take other forms.
  • the data stream can be separated into a first stream (such as a base stream) and a second stream (such as an enhancement stream).
  • the second stream can be compressed or dropped, where the second stream is of less importance than the first stream and the indicative value suggests that the subsequent data transfer rate will be insufficient to sustain transmission of both streams.
  • the indicative value is compared to one or more predefined thresholds which if reached determine the degree, or type of adaptation to the data stream. If the data transfer rate predicts that a sufficient transfer rate will be achieved then the adaptation may make no modification to the data stream.
  • the threshold may be determined to be the transfer rate required to send the subsequent data stream with sufficient performance, and preferably, plus a margin.
  • the margin may be for example between 1 and 50% of the required rate, and preferably 10% of the required rate.
  • the flag 281 can be sent from the first network device to the second network device for using in interpreting the adapted data stream, such that for example the recipient device 22 is able to determine whether adaptation of the data stream has modified the data stream and/or the type or degree of adaptation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A system for obtaining a measure of a rate of data transfer over a network comprises a transmitter for sending a first probe data sequence from a first network device at a time of transmission over the network to a second network device; a receiver for receiving a second probe data sequence at the first network device at a time of receipt, said second probe data sequence having been transmitted over the network from the second network device; a receiver for receiving at the first network device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device transmitting the second probe data sequence; and a processor for computing a value indicative of a rate of data transfer based on the time of transmission, the time of receipt and the data indicative of a time delay. A method of obtaining a measure of a rate of data transfer over a network is also described.

Description

Method and System of Obtaining a Measure of a Rate of Data Transfer Over a
Network
Field of the Invention
The present invention relates to a method and system of obtaining a measure of a rate of data transfer over a network between a first network device and a second network device.
Background
In order to transfer data over a network, sufficient bandwidth must be available or data transmission rate possible. In cases where the network does not support a sufficient data transfer rate, and in particular in real time applications such as for video transfer, the outcome may be inadequate. A network path may be capable of a theoretical transfer rate, but the actual transfer rate often differs from the theoretical rate.
Summary of the Present Invention
According to the present invention there is provided a method of obtaining a measure of a rate of data transfer over a network, the method comprising:
sending a first probe data sequence from a first network device at a time of transmission over the network to a second network device;
receiving a second probe data sequence at the first network device at a time of receipt, said second probe data sequence having been transmitted over the network from the second network device;
receiving at the first network device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device transmitting the second probe data sequence; and
computing a value indicative of a rate of data transfer based on the time of transmission, the time of receipt and the data indicative of the time delay.
The computed value is a measure of the rate of data transfer in units of, for example, bits per second (b/s), bytes per second (B/s) or time (s). In particular the computed value can be a quantity of time that is an indication of the rate of data transfer, particularly when the first probe data sequence and the second probe data sequence are of the same size. When the amount of data transmitted in the probe data sequences is known the actual transfer rate can be computed. It will be understood that the measure can be expected to be indicative of the residual capacity of the network rather that the total capacity of the network. The measured current rate of data transfer can be used, for example, as a prediction of a future rate of transfer over the network between the same network devices (though bearing in mind that the rate of data transfer generally varies with time). The measured data transfer rate may in some cases provide a more reliable prediction of a future transfer rate soon after the current rate is measured. For example, a rate of transfer achieved milliseconds or even several seconds later may not have changed much. This is because other traffic on the network may not have changed significantly over a short period of time. The measure may be less predictive of a future transfer rate after a considerable period of time, such as hours or days later. The second probe data sequence will generally be sent by the second network device after (and possibly prompted by) receipt by the second network device of the first probe data sequence from the first network device, but this need not be so. If not, the time delay may have a negative value.
The computed value indicative of the rate of data transfer can be used as a reasonably good prediction of whether a future data transfer rate will be sufficient to provide an acceptable performance. In cases where the other traffic on the network does not vary significantly the computed indicative value will be valid for as long as the network and its traffic remain substantially the same. The value indicative of the rate of data transfer can therefore be used to control how to adapt a subsequent data stream so as to be likely to obtain improved performance when the adapted subsequent data stream is transmitted from the first network device to the second network device. In an embodiment the data indicative of the time delay is the actual time delay, which is calculated by determining the difference between a further time of transmission, being the time at which the second probe data sequence is transmitted from the second network device and a further time of receipt, being the time at which the first probe data sequence is received at the second network device.
In an embodiment the data indicative of the time delay is a further time of transmission, being the time at which the second probe data sequence is transmitted from the second network device and a further time of receipt, being the time at which the first probe data sequence is received at the second network device. - A -
In an embodiment computing the value indicative of the data transfer rate comprises determining a combined probe transmission time being a sum of a transmission time of said first probe data sequence and a transmission time of said second probe data sequence.
In an embodiment determining the combined transmission time comprises subtracting the time of transmission and the time delay from the further time of receipt.
In an embodiment computing the data transfer rate comprises dividing a known data amount of the probe data sequence by the combined transmission time.
In an embodiment the data indicative of the time delay comprises one or more values from which the time delay is calculable. In an embodiment the data indicative of the time delay comprises a transfer rate of the probe data sequence from the first network device to the second network device and a further time of transmission, being the time at which the second probe data sequence is transmitted from the second network device. In an embodiment a transfer rate of transmission of the second probe data sequence from the second network device to the first network device is determined from the further time of transmission and the further time of receipt.
In an embodiment computing the value indicative of the data transfer rate comprises determining an average of the transfer rate of the first probe data sequence from the first network device to the second network device and the transfer rate of the second probe data sequence from the second network device to the first network device.
In an embodiment the first probe data sequence and the second probe data sequence are identical.
In an embodiment the said first and second probe data sequences are sent by User Datagram Protocol (UDP). In an embodiment the each probe data sequence comprises chirps, one or more pairs of packets, or a train of packets.
In an embodiment the method further comprises:
receiving the first probe data sequence at the second network device;
sending the second probe data sequence from the second network device; and sending the data indicative of the time delay from the second network device.
In an embodiment the method further comprises computing the time delay at the second network device.
According to the present invention there is provided a method of scaling data for transmission comprising:
computing a measure of the rate of data transfer according to the method described above; and
adapting a received data stream according to the measure of the rate of data transfer for transmission as an adapted data stream. In an embodiment the method further comprises transmitting the adapted data stream from the first network device to the second network device. In an embodiment the received data stream is a video data stream.
In an embodiment the method includes comparing the measure of the rate of data transfer to a predefined threshold and setting a flag when the value is above the threshold, wherein the flag is clear or cleared when the value is below the threshold.
In an embodiment adapting the received data stream comprises separating the received data stream into a base stream and an enhancement stream, and dropping the enhancement stream when the flag is clear so that the adapted data stream comprises the base stream and omits the enhancement stream.
In an embodiment the method includes defining the threshold to be greater than a value indicative of a transfer rate required to send the base stream and the enhancement stream plus a margin. In an embodiment the method further comprises sending the flag from the first network device to the second network device for use in interpreting the adapted data stream.
In an embodiment adapting the data stream comprises scaling data of the received data stream according to the measure of the rate of data transfer. In an embodiment scaling the data comprises selecting a spatial video coding parameter based on the measure of the rate of data transfer.
According to the present invention there is provided a system for obtaining a measure of a rate of data transfer over a network, the system comprising:
a transmitter for sending a first probe data sequence from a first network device at a time of transmission over the network to a second network device;
a receiver for receiving a second probe data sequence at the first network device at a time of receipt, said second probe data sequence having been transmitted over the network from the second network device;
a receiver for receiving at the first network device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device transmitting the second probe data sequence; and
a processor for computing a value indicative of a rate of data transfer based on the time of transmission, the time of receipt and the data indicative of a time delay.
According to the present invention there is provided a system for scaling data for transmission comprising:
a system for obtaining a measure of a rate of data transfer over a network as described above; and
a processor for adapting a received data stream according to the value indicative of the rate of data transfer.
According to the present invention there is also provided a system for obtaining a measure of a rate of data transfer over a network, the system comprising:
means for sending a first probe data sequence from a first network device at a time of transmission over the network to a second network device;
means for receiving a second probe data sequence at the first network device at a time of receipt, said second probe data sequence having been transmitted over the network from the second network device;
means for receiving at the first network device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device transmitting the second probe data sequence; and
means for computing a value indicative of a rate of data transfer based on the time of transmission, the time of receipt and the data indicative of the time delay.
Also according to the present invention there is provided a system for scaling data for transmission comprising:
a means for obtaining a measure of a rate of data transfer over a network according to the method of claim 1 ; and
a means for adapting a received data stream according to the value indicative of the rate of data transfer.
According to the present invention there is provided a computer program product embodied in tangible computer readable media comprising instructions which when executed control a processor to:
send a first probe data sequence from a first network device at a time of transmission over the network to a second network device;
receive a second probe data sequence at the first network device at a time of receipt, said second probe data sequence having been transmitted over the network from the second network device;
receive at the first network device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device transmitting the second probe data sequence; and
compute a value indicative of a rate of data transfer based on the time of transmission, the time of receipt and the data indicative of the time delay.
In an embodiment the computer program further comprises instructions which when executed control the processor to adapt a received data stream according to the value indicative of the rate of data transfer. Description of the Drawings
In order to provide a better understanding of the invention, embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which: Figure 1 is a schematic representation of a method of estimating a data transfer rate over a network according to an embodiment of the present invention;
Figure 2 is a schematic representation of a video request and serve process which uses data transfer rate estimation modules according to an embodiment of the present invention;
Figure 3 is a schematic representation of a message transfer process for estimating a transfer rate according to an embodiment of the present invention; Figure 4 is a schematic representation of an alternative message transfer process for estimating a data transfer rate according to an embodiment of the present invention; and Figure 5 is a schematic representation of a system for requesting and serving video including modules for estimating a data transfer rate according to an embodiment of the present invention.
Description of Preferred Embodiments
Generally the present invention provides a system and method of obtaining a value indicative of a rate of data transfer over a network between two network devices connected to the network. Each network device is capable of transmitting and receiving data over the network. A first probe data sequence is sent from a first network device, over the network at a first transmission time to a second network device which receives the first probe data sequence at a first receipt time. The second probe data sequence is sent from the second network device to the first network device at a second transmission time. The first network device receives a second probe data sequence transmitted over the network at a second receipt time. The first network device receives from the second device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device sending the second probe data sequence. The data indicative of the time delay may be in the form of, for example, the time delay itself or two time measurements from which the delay time is calculable. The value indicative of the transfer rate is obtained by the first network device by performing a computation based on the first transmission time, the second receipt time and the data indicative of the time delay. The value may be the rate of transfer or another value which is an indication of the rate, such as a time value. The time value may be a combined probe transmission time.
Figure 1 is a schematic representation of a system 10 for obtaining a measure of a rate of data transfer over a network 24 according to an embodiment of the invention. A first network device 20 is connected to the network 24, as is a second network device 22. The first network device 20 may be a server for providing streamed data, such as, for example, video data across the network 24 to the second network device 22. The second network device 22 is typically a client device which requests and consumes the streamed data. For example, the client device 22 may request a video data stream from the server 20 and then display a moving video image to a user based on the data stream. The system 10 employs a method described below to determine a measure of the rate of data transfer over the network 24. The measure of the transfer rate can be used in some embodiments for configuring data streaming. The method comprises sending a first probe data sequence 30 from the first network device 20 over the network 24 at a first transmission time. The first probe data sequence 30 is received at the second network device 22 at a first receipt time. The second network device 22 sends a second probe data sequence 32 over the network 24 to the first network device 20 at a second transmission time. The first network device 20 receives the second probe data sequence 32 at a second receipt time.
It is preferred that the second probe data sequence 32 comprises the same data as the first probe data sequence 30. The probe data sequences consist of a known amount of data. The second network device 22 also determines and sends data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device sending the second probe data sequence 32. The data may be a quantity of the time delay. Alternatively the data may be one or more values from which the time delay is calculable. The first network device 20 then computes the value indicative of the data transfer rate based on the first transmission time, the second receipt time and the data indicative of the time delay.
The second network device 22 calculates the time delay by subtracting the second transmission time from the first receipt time. In alternative embodiments, the second network device 22 calculates a transfer rate of the first probe data sequence based on the first receipt time and the first transmission time and the known amount of data within the first probe data sequence. This transfer rate, as well as the second transmission time, may be used as the values from which the time delay is calculated. The time delay is calculated by determining the first receipt time based on the first transmission time, the transfer rate and the known size of the data in the first probe data sequence. Then the time delay is calculated by subtracting the second transmission time from the first receipt time. The first network device 20 calculates a transfer rate of the second probe data sequence based on the second transmission time and the second receipt time and the known amount of data in the second probe data sequence.
The measure of the data transfer rate is calculated by the first network device 20 by determining a combined transmission time (CTT) of the first probe data sequence and second probe data sequence. The CTT is calculated by subtracting the first transmission time and the time delay from the second receipt time. The CTT is an indication of the data transfer rate. This indication may be scaled, for example, to take into account that the CTT is two way (from and back to the first network device) and a subsequent data transfer will be one way across the network (that is, there is may be no transfer of a data stream back to the first network device). The scaling may be, for example, multiplication by 2. The data transfer rate is calculated by dividing the known data amount of the probe data sequence by the CTT or the scaled CTT, if applicable. For example when the network comprises a Symmetric Digital Subscriber Line (SDSL), then this method may be used. Alternatively if the transmission rates of the first probe data sequence and the second probe data sequence are computed, the data transfer rate of the network may be determined by averaging or weighting these transfer rates.
For example when the network comprises an Asymmetric Digital Subscriber Line (ADSL), then for the first probe data sequence and respective time transmissions are used to compute the first probe transmission rate, that is for upstream transfer (upload) and the second probe data sequence and the respective transmission time are used to compute the second probe transmission rate, that is downstream transfer (download). The upload and download transfer rates can then be averaged or weighted. For example the weighting can be 8 to 1 , where 8 is for the first data transfer rate and 1 is for the second data transfer rate to obtain the measure of the rate of transfer. For ADSL the download, upload, and average weighted transfer rates may be available transfer rates;.
The probe data sequences may be sent by UDP or another suitable protocol, such as TCP/IP. The probe data sequences preferably are chirps, one or more of a pair of packets or a train of packets. The probe data sequences may be given attributes of a type of a subsequent data stream. For example if the subsequent data stream is a video stream the probe data sequence may be given attributes, such as a quality of service (QoS) attribute such that the network handles the probe data sequences as if it were a video data stream. The attribute may also include packet size.
In some embodiments the value indicative of the transfer rate may be estimated a number of times, such as for example for each of a pair or train of packets in the probe data sequence. These values can be averaged, weighted, have one selected (for example the slowest) or processed in some other way to produce a resulting indicative value. In some embodiments the transfer rate may be periodically estimated, rather than on demand, and the most recent indicative value used.
Example:
The first probe data sequence is a 512 bytes chirp of data and is sent at t sendi = 0 and is received at t reCeιvei = 5 rns. The second probe data sequence is also 512 bytes in size and is a sent tsend2 = 15 ms and is received at t reCeιved2 = 25 ms. The delay time is therefore 15 - 5 = 10 ms and the CTT is 25 - 10 - 0 = 15 ms. Using CTT the transfer rate is (512 B/15ms) = 341 kB/s. If scaled by 2, the transfer rate is 682 kB/s. Using weighting of 8 to 1 the indicative transfer rate is ((1024 x 8 kB/s) + (512 x 1 kB/s))/9 = 967 kB/s (rounded to 3 s.f.). The transfer rate of the probe transmission to the second network device is 512/(5 - 0 ms) = 1024 kB/s. The transfer rate of the probe transmission to the first network device is 512/(0.025 - 0.0015 ms). Using averages transfer rates, the indicative transfer rate is (1024 kB/s + 512 kB/s)/2 = 768 kB/s.
The transfer rate may be measured in bits per second instead of bytes per second.
Referring to Figure 2, an embodiment of a method 50 of serving a data stream is shown. In this embodiment the value indicative of the rate of transfer is the estimated transfer rate. In this example the data stream is a video stream, although other data streams can be used, such as a voice data stream. The second network device 22 sends a client request for video 52 to the first network device 20. The first network device 20 then uses a server transfer rate estimation module 60 and a client transfer rate estimation module 64. These modules 60 and 64 perform the process of obtaining the estimated data transfer rate described in relation to Figure 1. Module 60 performs the step of the first network device determining the transfer rate of the transmission of the second probe data sequence from the second network device to the first network device. Module 64 performs the step of the second network device determining the transfer rate of the transmission of the first probe data sequence from the first network device to the second network device. Module 60 may also estimate the transfer rate 70. The estimated transfer rate 70 is then provided from the module 60 to a scalable video coding module 62. The scalable video coding module 62 receives a scalable data stream according to the client request 52 and scales it according to the estimated transfer rate 70 so as to produce an adapted data stream in the form of a scaled video data stream 72. The scaled video data stream 72 is then sent by the first network device 20 as a stream video data stream 54 to the second network device 22. The scaling is on the basis that the estimated transfer rate is likely to be attained in the subsequent transfer of the video data stream 54. Referring to Figure 3 an embodiment of a message transfer process 100 is shown. In this embodiment the first network device 20 is a server and the second network device 22 is a recipient device. The server 20 comprises: an initializer 110 for listening for a data request from the recipient device 22, a connection former 112 for connecting to the recipient device 22, a probe transmitter 114 for sending a first probe data sequence to the recipient device 22, a listening module 116 for waiting for results from the recipient device 22, a first probe transfer rate receiver 118 for receiving results from the recipient device 22, a probe receiver 120 for receiving probe sequence from the recipient device 22, a second probe transfer rate calculator 122 for measuring a data transfer rate, a transfer rate calculator 124 for estimating the value indicative of the transfer rate, and a module 126 for using the estimated transfer rate, such as a storage or output module. The recipient device 22 comprises: a connection former 130 for preparing connection to the server 20, a probe receiver 132 for receiving a probe sequence from the server 20, a first probe transfer rate calculator 134 for measuring a data transfer rate, a result transmitter 136 for sending a data transfer rate to the server 20 and a probe transmitter 138 for sending a probe sequence to the server 20.
The parts 110 to 126 may be in the form of computer hardware such as one or more microprocessors configured by executable instructions in the form of firmware or software to control the microprocessor(s) to operate according to the respective function described in relation to these components when the instructions are executed. In particular the computer software may be in the form of instructions which when executed control the processor to operate so as to form these components or perform the method described above in relation to Figures 1 and 2. The parts 130 to 138 may be in the form of computer hardware such as one or more microprocessors configured by executable instructions in the form of firmware or software to control the microprocessor(s) to operate according to the respective function described in relation to these components when the instructions are executed. In particular the computer software may be in the form of instructions which when executed control the processor to operate so as to form these components or perform the method described above in relation to Figures 1 and 2 in combination with server 20. In use, initializer 110 listens for a message from the recipient device 22. When a user of the recipient device 22 requests data be sent from the server 20, connection former 130 formats a request according to an appropriate protocol for connection to the server 20. Connection former 130 sends the request to the server 20 so as to form a connection with the server 20 in combination with connection former 112. Connection former 112 receives the request and completes the connection. Probe transmitter 114 then sends the first probe data sequence to the recipient device 22 and records the first transmission time in a memory of the server 20. The first transmission time is also sent with or as part of the probe data sequence. Probe receiver 132 receives the first probe data sequence from the server 20 and records the first receipt time in a memory of the recipient device 22. First probe transfer rate calculator 134 determines the transfer rate based on the first transmission time and the first receipt time and the amount of data in the first probe data sequence. In the meantime listening module 116 waits until the server 20 receives a reply from the recipient device 22. The determined transfer rate of the first probe data sequence is sent to the sender 20 by result transmitter 136. First probe transfer rate receiver 118 receives the results from the recipient device 22. Probe transmitter 138 then sends a second probe data sequence to the server 20 at the second transmission time. It is noted that in another embodiment the second probe sequence may be sent before the transfer rate is sent by result transmitter 136. It is preferred that the second data sequence be the same as the first probe data sequence, but in this embodiment it need not be. The second transmission time is also sent with or as part of the second probe data sequence. The second probe data sequence is received by probe receiver 120. Probe receiver 120 also determines and records the second receipt time. If the second probe data sequence is not the same as the first probe data sequence, then the amount of data in the second probe data sequence is determined. Second probe transfer rate calculator 122 determines the transfer rate of the second probe data sequence based on the second transmission time and the second receipt time and the known amount of data in the second probe data sequence. Transfer rate calculator 124 then estimates the value indicative of the transfer rate based on the determined transfer rate of the first probe data sequence and the determined transfer rate of the second data probe sequence. Typically this is done by averaging the two determined data transfer rates. The resulting measure of data transfer rate is then output for further use by module 126.
Figure 4 shows another embodiment of a message transfer process 150. In this embodiment the server 20 comprises an initializer 160 for listening for a data request from the recipient device 22, a connection former 162 for connecting to the recipient device 22, a probe transmitter 164 for sending the first probe data sequence to the recipient device 22, a probe receiver 166 for receiving the second data probe data sequence from the recipient device 22, a time calculator 168 for estimating CTT and waiting for receipt of the time delay, a receiver 170 for receiving a time delay from therecipient device 22, a indicative value calculator 172 for estimating the value indicative of the transfer rate and a module 174 for outputting the estimated indicative value for use. The recipient device 22 comprises: a connection former 180 for preparing a connection to the server 20; a probe receiver 182 for receiving probe data sequence from the sender 20; a probe transmitter 184 for sending to second probe data sequence to the sender 20; a time delay calculator 186 for determining a time delay; and a transmitter 188 for sending an indication of the time delay to the server 20.
As in the embodiment for Figure 3, the parts 162 to 188 may be in the form of one or more processors controlled by instructions in the form of software or firmware.
In use the connection former 180 is configured to respond to the receipt of a message from recipient device 22. Recipient device 22 receives a request from the user to obtain a data stream from the server 20 and responds by preparing a connection request to the server 20 using connection former 180. Connection former 180 sends the request to the server 20 so as to form a connection with the server 20. Connection former 162 receives the connection from the recipient device 22 and then using probe transmitter 164 sends the first data probe sequence to the recipient device 22. The first transmission time is recorded in a memory of the server 20. Probe receiver 182 receives the probe data sequence from the server 20 and notes records the first receipt time in a memory of the recipient device 22. Probe transmitter 184 sends the same probe data sequence as a second probe data sequence to the server 20 which is received by probe receiver 166. The second transmission time is recorded in a memory of recipient device 22. The second receipt time is recorded in server memory. Time delay calculator 186 determines the time delay from the recorded first receipt time and the second transmission time. The time delay is then sent by transmitter 188 to the server 20. In the meantime the time calculator 168 determines the round trip time based on the first transmission time and second receipt time, and then waits for receipt of the time delay. Receiver 170 receives the time delay sent by transmitter 188. Indicative value calculator 172 then estimates the value indicative of the transfer rate based on the round trip time and the receive time delay by determining the CTT, which is calculated by subtracting the time delay from the round trip time. The indicative value in this case is a time value. Indicative value calculator 172 may also calculate the transfer rate based on the indicative time value and the known amount of data in the probe data sequences. Module 174 then outputs the transfer rate (or indication thereof) for use in streaming data. By computing the time delay and round trip time, a lack of clock synchronization between server 20 and recipient device 22 is not a problem when calculating the estimate of the data transfer rate.
Figure 5 shows a system 200 which comprises the first network device in the form of a video server 202 and the second network device in the form of a video player 206 and display client device 204. The video server 202 receives video data from video source 208. The video data is in a scalable format. The video server 202 comprises a connection former 210 for establishing connection with the video player 206, a multiplexer 212, a packetizer 214, a transfer rate estimating component 216, a video bit rate sealer 218, and a streamer 220. The video player 206 comprises a component 240 for establishing a connection with the video server 202, a de-packetizer 242, a demultiplexer 244, a decoder 246, a renderer 248 and a transfer rate estimating component 260.
In use the client device 204 sends a request connection message 270 so as to receive streamed video data. The request arrives at the component 210 which establishes a connection with the video player 206 which includes sending a connection approval message 272 to component 240 of the player 206. Component 240 initiates the transfer rate estimation component 260 of the video player 206. Component 210 requests the multiplexer 212 receive the video from the source 208. The multiplexer 212 multiplexes the received video signal with, for example, a received corresponding audio signal. The multiplexer 212 requests the packetizer 216 packetize the multiplexed scalable video. The transfer rate estimation component 216 in combination with transfer rate estimation component 260 estimates the transfer rate between the video server 202 and the client device 204 or another value indicative of the transfer rate, as described above. The resulting estimated transfer rate is then provided to the sealer 218, which scales the scalable video data according to the transfer rate and then requests the scaled video data be streamed by the streamer 220. In one example the sealer treats an enhancement stream, which is in a different stream session to a base stream, according to required scaling. The streamer 220 outputs a stream of packets of video data in scalable format, which are sent over the network 274 to the de-packetizer 242 of the video player 206.
The de-packetizer 242 de-packetizes the received packets 230 and requests the depacketizer 242 to depacketize the packets, to form a data stream. The data stream is then provided to the de-multiplexer 242 which de-multiplexes the data stream. In one example the de-multiplexer de-multiplexes the data stream into the base video and audio streams. The demultiplexed stream is then provided to the decoder 246 which decodes it along with any enhancement stream and requests the renderer 248 render the decoded data as video data. The video data 276 is then sent to a display of the client 204. The sealer 218 may implement scalable video coding, which is an extension of the H.264/MPEG-4 AVC video compression standard, or other types of video scaling. For example the sealer 218 may spatially scale the video or select an appropriate video resolution in the scalable video stream according to the estimated attainable transfer rate. Temporal (frame rate) and fidelity scalability may be used as well as or instead of spatial scalability.
Adaptation of the data stream according to the value indicative of the rate of data transfer can take other forms. For example, the data stream can be separated into a first stream (such as a base stream) and a second stream (such as an enhancement stream). The second stream can be compressed or dropped, where the second stream is of less importance than the first stream and the indicative value suggests that the subsequent data transfer rate will be insufficient to sustain transmission of both streams.
Typically the indicative value is compared to one or more predefined thresholds which if reached determine the degree, or type of adaptation to the data stream. If the data transfer rate predicts that a sufficient transfer rate will be achieved then the adaptation may make no modification to the data stream.
The threshold may be determined to be the transfer rate required to send the subsequent data stream with sufficient performance, and preferably, plus a margin. The margin may be for example between 1 and 50% of the required rate, and preferably 10% of the required rate. If a threshold is reached a flag 281 may be set, otherwise the flag 281 is cleared (when the rate is below the threshold). When the flag is clear the second stream is compressed or dropped, so that in the later case the adapted data stream consists of the first stream only.
The flag 281 can be sent from the first network device to the second network device for using in interpreting the adapted data stream, such that for example the recipient device 22 is able to determine whether adaptation of the data stream has modified the data stream and/or the type or degree of adaptation.
Modifications and variations as would be obvious to a skilled person fall within the scope of the present invention.

Claims

CLAIMS:
1. A method of obtaining a measure of a rate of data transfer over a network, the method comprising:
sending a first probe data sequence from a first network device at a time of transmission over the network to a second network device;
receiving a second probe data sequence at the first network device at a time of receipt, said second probe data sequence having been transmitted over the network from the second network device;
receiving at the first network device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device transmitting the second probe data sequence; and
computing a value indicative of a rate of data transfer based on the time of transmission, the time of receipt and the data indicative of the time delay.
2. A method as claimed in claim 1 , wherein the data indicative of the time delay is the actual time delay, which is calculated by determining the difference between a further time of transmission, being the time at which the second probe data sequence is transmitted from the second network device and a further time of receipt, being the time at which the first probe data sequence is received at the second network device.
3. A method as claimed in claim 1 , wherein the data indicative of the time delay is a further time of transmission, being the time at which the second probe data sequence is transmitted from the second network device and a further time of receipt, being the time at which the first probe data sequence is received at the second network device.
4. A method as claimed in claim 3, wherein computing the value indicative of the data transfer rate comprises determining a combined probe transmission time being a sum of a transmission time of said first probe data sequence and a transmission time of said second probe data sequence.
5. A method as claimed in claim 4, wherein determining the combined probe transmission time comprises subtracting the time of transmission and the time delay from the further time of receipt.
6. A method as claimed in claim 4, further comprising computing the data transfer rate comprises dividing a known data amount of the probe data sequence by the combined probe transmission time.
7. A method as claimed in claim 1 , wherein the data indicative of the time delay comprises one or more values from which the time delay is calculable.
8. A method as claimed in claim 1 , wherein the data indicative of the time delay comprises a transfer rate of the probe data sequence from the first network device to the second network device and a further time of transmission, being the time at which the second probe data sequence is transmitted from the second network device.
9. A method as claimed in claim 3, wherein a transfer rate of transmission of the second probe data sequence from the second network device to the first network device is determined from the further time of transmission and the further time of receipt.
10. A method as claimed in claim 9, wherein computing the value indicative of the rate of data transfer comprises determining an average of the transfer rate of the first probe data sequence from the first network device to the second network device and the transfer rate of the second probe data sequence from the second network device to the first network device.
11. A method as claimed in claim 1 , wherein the first probe data sequence and the second probe data sequence are identical.
12. A method as claimed in claim 1 , wherein said first and second probe data sequences are sent by User Datagram Protocol (UDP).
13. A method as claimed in claim 1, wherein each probe data sequence comprises chirps, one or more pairs of packets, or a train of packets.
14. A method as claimed in claim 1 , further comprising:
receiving the first probe data sequence at the second network device;
sending the second probe data sequence from the second network device; and sending the data indicative of the time delay from the second network device.
15. A method as claimed in claim 1 , further comprising computing the time delay at the second network device.
16. A method of scaling data for transmission comprising:
computing a measure of the rate of data transfer according to the method of claim 1 ; and adapting a received data stream according to the measure of the rate of data transfer for transmission as an adapted data stream.
17. A method as claimed in claim 16, further comprising transmitting the adapted data stream from the first network device to the second network device.
18. A method as claimed in claim 16 or claim 17, wherein the received data stream is a video data stream.
19. A method as claimed in claim 16, including comparing the measure of the rate of data transfer to a predefined threshold and setting a flag when the value is above the threshold, wherein the flag is clear or cleared when the value is below the threshold.
20. A method as claimed in claim 19, wherein adapting the received data stream comprises separating the received data stream into a base stream and an
enhancement stream, and dropping the enhancement stream when the flag is clear so that the adapted data stream comprises the base stream and omits the enhancement stream.
21. A method as claimed in claim 20, including defining the threshold to be greater than a value indicative of a transfer rate required to send the base stream and the enhancement stream plus a margin.
22. A method as claimed in claim 19, further comprising sending the flag from the first network device to the second network device for use in interpreting the adapted data stream.
23. A method as claimed in claim 16, wherein adapting the data stream comprises scaling data of the received data stream according to the measure of the rate of data transfer.
24. A method as claimed in claim 23, wherein scaling the data comprises selecting a spatial video coding parameter based on the measure of the rate of data transfer.
25. A system for obtaining a measure of a rate of data transfer over a network, the system comprising:
a transmitter for sending a first probe data sequence from a first network device at a time of transmission over the network to a second network device;
a receiver for receiving a second probe data sequence at the first network device at a time of receipt, said second probe data sequence having been transmitted over the network from the second network device;
a receiver for receiving at the first network device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device transmitting the second probe data sequence; and
a processor for computing a value indicative of a rate of data transfer based on the time of transmission, the time of receipt and the data indicative of a time delay. 25. A system for scaling data for transmission comprising:
a system for obtaining a measure of a rate of data transfer over a network according to claim 24; and
a processor for adapting a received data stream according to the value indicative of the rate of data transfer.
26. A system for obtaining a measure of a rate of data transfer over a network, the system comprising:
means for sending a first probe data sequence from a first network device at a time of transmission over the network to a second network device;
means for receiving a second probe data sequence at the first network device at a time of receipt, said second probe data sequence having been transmitted over the network from the second network device;
means for receiving at the first network device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device transmitting the second probe data sequence; and
means for computing a value indicative of a rate of data transfer based on the time of transmission, the time of receipt and the data indicative of the time delay.
27. A system for scaling data for transmission comprising:
a means for obtaining a measure of a rate of data transfer over a network according to the method of claim 1 ; and
a means for adapting a received data stream according to the measure of the rate of data transfer for transmission as an adapted data stream.
28. A computer program product embodied in tangible computer readable media comprising instructions which when executed control a processor to:
send a first probe data sequence from a first network device at a time of transmission over the network to a second network device;
receive a second probe data sequence at the first network device at a time of receipt, said second probe data sequence having been transmitted over the network from the second network device;
receive at the first network device data indicative of a time delay between the second network device receiving the first probe data sequence and the second network device transmitting the second probe data sequence; and
compute a value indicative of a rate of data transfer based on the time of transmission, the time of receipt and the data indicative of the time delay.
29. A computer program product as claimed in claim 26, further comprising instructions which when executed control the processor to adapt a received data stream according to the value indicative of the rate of data transfer.
PCT/MY2009/000129 2009-08-28 2009-08-28 Method and system of obtaining a measure of a rate of data transfer over a network Ceased WO2011025355A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/MY2009/000129 WO2011025355A1 (en) 2009-08-28 2009-08-28 Method and system of obtaining a measure of a rate of data transfer over a network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/MY2009/000129 WO2011025355A1 (en) 2009-08-28 2009-08-28 Method and system of obtaining a measure of a rate of data transfer over a network

Publications (1)

Publication Number Publication Date
WO2011025355A1 true WO2011025355A1 (en) 2011-03-03

Family

ID=41429300

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/MY2009/000129 Ceased WO2011025355A1 (en) 2009-08-28 2009-08-28 Method and system of obtaining a measure of a rate of data transfer over a network

Country Status (1)

Country Link
WO (1) WO2011025355A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223089A1 (en) * 2004-04-05 2005-10-06 Lee Rhodes Network usage analysis system and method for detecting network congestion
US20080095187A1 (en) * 2006-10-20 2008-04-24 Tae In Jung Method for estimating available bandwidth of network link using time stamp function of internet control message protocol
US7366790B1 (en) * 2003-07-24 2008-04-29 Compuware Corporation System and method of active latency detection for network applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366790B1 (en) * 2003-07-24 2008-04-29 Compuware Corporation System and method of active latency detection for network applications
US20050223089A1 (en) * 2004-04-05 2005-10-06 Lee Rhodes Network usage analysis system and method for detecting network congestion
US20080095187A1 (en) * 2006-10-20 2008-04-24 Tae In Jung Method for estimating available bandwidth of network link using time stamp function of internet control message protocol

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHIODA S ET AL: "A new approach to the bottleneck bandwidth measurement for an end-to-end network path", COMMUNICATIONS, 2005. ICC 2005. 2005 IEEE INTERNATIONAL CONFERENCE ON SEOUL, KOREA 16-20 MAY 2005, PISCATAWAY, NJ, USA,IEEE, vol. 1, 16 May 2005 (2005-05-16), pages 59 - 64, XP010827482, ISBN: 978-0-7803-8938-0 *

Similar Documents

Publication Publication Date Title
EP2320580B1 (en) System for measuring transmission bandwidth for media streaming and method for same
JP5701400B2 (en) How to provide an adaptive streaming service
KR101727450B1 (en) Reducing delay in video telephony
JP4838143B2 (en) Transmitter
KR101399509B1 (en) Data streaming through time-varying transport media
JP6132972B2 (en) VOIP bandwidth management
RU2005123288A (en) DEVICE AND METHOD FOR MEASURING DELAY TIME FOR BILATERAL DISTRIBUTION FOR MULTIMEDIA DATA WITH VARIABLE BIT TRANSFER SPEED
EP3329641B1 (en) Monitoring network conditions
CN110192394B (en) Method and server for transmitting media content through network
WO2010066143A1 (en) Method, apparatus and system for processing network quality of service
CN111935441B (en) Network state detection method and device
WO2014035833A2 (en) Device and method for adaptive rate multimedia communications on a wireless network
JPWO2017104416A1 (en) Audio visual quality estimation apparatus, audio visual quality estimation method, and program
JP2017069849A (en) VIDEO CONTROL DEVICE, VIDEO DISTRIBUTION SYSTEM, AND VIDEO CONTROL METHOD
WO2019044065A1 (en) Video playback bit rate estimation device and method, non-transitory computer-readable medium containing program, and communication quality measurement device
CN103238349B (en) The method and apparatus of the channel adaptation in radio communication
KR102020025B1 (en) Apparatus and Method for Managing MMT buffer model using Reception quality feedback message
GB2559271A (en) Managing congestion response during content delivery
EP3324639A1 (en) A system and method for estimating performance metrics for video streaming
JP2021185659A (en) Round-trip estimation
WO2011025355A1 (en) Method and system of obtaining a measure of a rate of data transfer over a network
CN103475906B (en) Measuring method and measurement apparatus for media stream
JP2025079597A (en) Video transmission device, video transmission method, video transmission system, and computer program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09788123

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09788123

Country of ref document: EP

Kind code of ref document: A1