Method and system for flow controlling
First Claim
1. A method, employed by a server, for controlling a transfer of data to an end destination over a transmission channel, the method comprising the actions of:
- receiving a request for downloading of a first file;
in response to receiving the request, obtaining a packet of the first file from a queue and based on the packet, determining that flow control needs to be performed for the first file;
if flow control is required, determining a constraint that is involved in downloading the first file to the end destination, wherein the constraint depends on the type of the first file;
commencing transmission of a portion of the first file to the end destination;
the server autonomously monitoring a current condition of the constraint for the first file;
receiving a request for downloading of second file;
in response to receiving the request, obtaining a packet of the second file from a queue and based on the packet, determine that flow control needs to be performed for the second file;
if flow control is required, determining a constraint that is involved in downloading the second file to the end destination, wherein the constraint depends on the type of the second file;
commencing transmission of a portion of the data of the second file to the end destination;
the server autonomously monitoring a current condition of the constraint for the second file;
if the current condition of the constraint for the first or second file increases above a first threshold value, retard delivering more of the first or second file respectively, and accelerate delivering of the first or second file respectively if the current condition of the constraint for the first or second file declines below a second threshold;
wherein the first file is a media type file including audio and/or video content and the current condition of the constraint for the first file type includes identifying the amount of the first file downloaded to the end destination and the amount of time that the end destination has had to render the first file and, wherein the second file is a non-media type of file excluding audio and/or video and the current condition of the constraint for the second file type includes identifying the amount of the second file downloaded to the end destination.
5 Assignments
0 Petitions
Accused Products
Abstract
Content delivery to end user devices (EUD) is controlled by transmitting content portions at a controlled flow. The time for the EUD to process the data is used to control the flow. The first portion is transmitted to the EUD and the amount of time to process the first portion is noted. Threshold values to stop and start transmissions are examined prior to the transmission of each content portion. If the amount of data remaining to be processed by the EUD is below the stop transmission threshold, transmission continues with the next portion. If the amount of data remaining to be processed by the EUD is above the stop threshold, transmission is either stopped or retarded. When it is determined that the amount of data remaining to be processed by the EUD is above the start transmission threshold, transmission is started or continued.
-
Citations
18 Claims
-
1. A method, employed by a server, for controlling a transfer of data to an end destination over a transmission channel, the method comprising the actions of:
-
receiving a request for downloading of a first file; in response to receiving the request, obtaining a packet of the first file from a queue and based on the packet, determining that flow control needs to be performed for the first file; if flow control is required, determining a constraint that is involved in downloading the first file to the end destination, wherein the constraint depends on the type of the first file; commencing transmission of a portion of the first file to the end destination; the server autonomously monitoring a current condition of the constraint for the first file; receiving a request for downloading of second file; in response to receiving the request, obtaining a packet of the second file from a queue and based on the packet, determine that flow control needs to be performed for the second file; if flow control is required, determining a constraint that is involved in downloading the second file to the end destination, wherein the constraint depends on the type of the second file; commencing transmission of a portion of the data of the second file to the end destination; the server autonomously monitoring a current condition of the constraint for the second file; if the current condition of the constraint for the first or second file increases above a first threshold value, retard delivering more of the first or second file respectively, and accelerate delivering of the first or second file respectively if the current condition of the constraint for the first or second file declines below a second threshold; wherein the first file is a media type file including audio and/or video content and the current condition of the constraint for the first file type includes identifying the amount of the first file downloaded to the end destination and the amount of time that the end destination has had to render the first file and, wherein the second file is a non-media type of file excluding audio and/or video and the current condition of the constraint for the second file type includes identifying the amount of the second file downloaded to the end destination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method employed by a server, for controlling a transfer of content to an end user device over a transmission channel, the method comprising the actions of:
-
detecting a transmission of a media type file that includes audio and/or video destined for the end user device; detecting a transmission of a non-media type file, wherein the non-media type file does not include audio and/or video, destined for the end user device; for the media type file; identifying segments within the media type file and a time required for the end user device to process each segment; setting a transmission state to a first value; commencing transmission of a first segment to the end user device at a rate based on the transmission state; the server autonomously monitoring a time from commencement of the transmission; calculating a buffered amount of data existing at the end user device based on the monitored time and an estimated time required to render the already transmitted first segment; if the buffered amount of data increases above a first threshold value, setting the transmission state to a second value; and commencing transmission of a next segment to the end user device at a rate based on the transmission state; and for the non-media type file; setting the transmission state to a third value; commencing transmission of a first segment to the end user device at a rate based on the transmission state; the server autonomously monitoring the amount of data transmitted to the end user device; calculating a buffered amount of data existing at the end user device based on a lapsed time after commencing transmission and the amount of data transmitted; if the buffered amount of data increases above a third threshold value, setting the transmission state to a fourth value; and commencing transmission of a next segment to the end user device at a rate based on the transmission state. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A server for controlling a transfer of content between a content source and an end user device over a transmission channel, the server comprising:
-
a memory element for storing data; a processor configured to autonomously; detect an establishment of a session between the content source and the end user device; detect a transmission of a content file from the content source to the end user device; identify a time required for rendering portions of the content file by the end user device; commence transmission of a portion of the content file to the end user device over a data path; monitor a time from the commencement of the transmission; calculate a buffered amount of data existing at the end user device based on the monitored time and the time required to render the transmitted data; detecting that the buffered amount of data at a first time period is equal or above a first threshold value and in response, retarding a delivery of more data, and detecting that the buffered amount of data at a second time period is below the first threshold value and above a second threshold value and accelerating the delivery of data and detecting that the buffered amount of data at a third time period is below the first threshold value and that there is available bandwidth for the data and in response accelerating the delivery of data. - View Dependent Claims (15, 16, 17, 18)
-
Specification