SYSTEM AND METHOD FOR FLOW CONTROL IN AN ADAPTIVE FILE DELIVERY SYSTEM
First Claim
1. A method for transferring a file from a sending system to a receiving system, comprising:
- sending a file made up of a plurality of file segments from the sending system along a file transmission path to the receiving system, the sending of the file including sending the file segments by a plurality of transmissions spaced out in time with a variable wait period occurring after the transmission of each of the plurality of file segments;
determining a congestion level along the file transmission path; and
controlling the transmission of subsequent file segments by determining the variable wait period based in part on the determined congestion level.
1 Assignment
0 Petitions
Accused Products
Abstract
An adaptive file delivery system and method transmits a data file, such as an audio-video file, over a network or collection of networks in segments, each segment transmitted during a different time period. Each time period has a transmission portion to transmit its associated file segment and a wait portion in which no further interaction with the network occurs regarding the transmitted segment. In some implementations, the duration of the transmission portion of each time period is sufficient to reach a steady-state throughput condition, which allows the traffic load status of the network or networks to be determined from rate measurements of file segment transmissions. The duration of the wait portion of each time period is at least long enough to limit the average rate of file segment transmission to adapt to network traffic load variations and avoid network congestion. Various techniques for measuring congestion are described.
160 Citations
32 Claims
-
1. A method for transferring a file from a sending system to a receiving system, comprising:
-
sending a file made up of a plurality of file segments from the sending system along a file transmission path to the receiving system, the sending of the file including sending the file segments by a plurality of transmissions spaced out in time with a variable wait period occurring after the transmission of each of the plurality of file segments; determining a congestion level along the file transmission path; and controlling the transmission of subsequent file segments by determining the variable wait period based in part on the determined congestion level. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system to transmit a data file made up of a plurality of file segments to a receiving computing system, comprising:
-
a data storage element configured to store the data file to be transmitted to the receiving computing system; a network interface communicatively coupled to the data storage element and configured to receive the data file therefrom, the network interface being further configured to transmit the plurality of data file segments to the receiving system via a communications network; a network interface controller configured to control transmission of the plurality of file segments to the receiving system via the network interface, the network interface controller being configured to have a wait period between transmission of individual ones of the plurality of file segments based in part on a level of network congestion in the communication network. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer readable medium containing computer instructions that cause a processor to:
-
send a file made up of a plurality of file segments from a sending system along a file transmission path to a receiving system, the sending of the file including sending the file segments by a plurality of transmissions spaced out in time with a variable wait period occurring after the transmission of each of the plurality of file segments; determine a congestion level along the file transmission path; and control the transmission of subsequent file segments by determining the variable wait period based in part on the determined congestion level. - View Dependent Claims (28, 29, 30, 31, 32)
-
Specification