ADAPTIVE FILE DELIVERY SYSTEM AND METHOD
First Claim
1. A method comprising:
- determining a minimum transfer rate for transferring a file segment of a remaining portion of a file based in part on a determined size for the remaining portion of the file and an amount of time available to transfer the remaining portion of the file;
determining a maximum transfer rate for transferring the file segment of the remaining portion of the file based in part on the minimum transfer rate and a maximum transfer capacity of a sending system;
sending the file segment of the remaining portion of the file from the sending system to a receiving system;
determining an actual transfer rate that the file segment was sent from the sending system to the receiving system based in part on size of the file segment and an elapsed time between when the file segment was sent from the sending system and when the file segment was received at the receiving system;
determining a wait period based in part on the maximum transfer rate, the minimum transfer rate, and the actual transfer rate;
after receiving the file segment at the receiving system, waiting the wait period before sending an acknowledgement message from the receiving system to the sending system, the acknowledgement message acknowledging receipt of the file segment by the receiving; and
sending the acknowledgement message from the receiving system to the sending system.
4 Assignments
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 while causing the entire file to be delivered in a predetermined delivery deadline.
76 Citations
24 Claims
-
1. A method comprising:
-
determining a minimum transfer rate for transferring a file segment of a remaining portion of a file based in part on a determined size for the remaining portion of the file and an amount of time available to transfer the remaining portion of the file; determining a maximum transfer rate for transferring the file segment of the remaining portion of the file based in part on the minimum transfer rate and a maximum transfer capacity of a sending system; sending the file segment of the remaining portion of the file from the sending system to a receiving system; determining an actual transfer rate that the file segment was sent from the sending system to the receiving system based in part on size of the file segment and an elapsed time between when the file segment was sent from the sending system and when the file segment was received at the receiving system; determining a wait period based in part on the maximum transfer rate, the minimum transfer rate, and the actual transfer rate; after receiving the file segment at the receiving system, waiting the wait period before sending an acknowledgement message from the receiving system to the sending system, the acknowledgement message acknowledging receipt of the file segment by the receiving; and sending the acknowledgement message from the receiving system to the sending system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method comprising:
-
sending a portion of a file made up of a plurality of file segments from a sending system to a receiving system, the sending the portion of the file including sending the file segments by a plurality of transmissions spaced out in time with a different one of a plurality of wait periods occurring after each transmission; for each file segment transmission, determining an actual transfer rate that the file segment was sent from the sending system to the receiving system; and for each file segment transmission, determining the wait period occurring immediately thereafter based in part on the actual transfer rate determined for the file segment transmission.
-
-
13. A method comprising:
-
sending a portion of a file made up of a plurality of file segments from a sending system to a receiving system, the sending the portion of the file including sending the file segments one at a time by a plurality of transmissions with a different one of a plurality of wait periods occurring after each transmission; for each file segment transmission, determining an actual transfer rate that the file segment was sent from the sending system to the receiving system; and for each file segment transmission having a previous file segment transmission, determining size of the file segment to be sent in the file segment transmission based in part by the actual transfer rate of the previous file segment transmission.
-
-
14. A method comprising:
-
sending a file made up of a plurality of file segments from a sending system to a receiving system by a delivery deadline, the sending the file including sending the plurality of the file segments by a plurality of transmissions spaced out in time with a different one of a plurality of wait periods occurring after each transmission; for each file segment transmission, determining an actual transfer rate that the file segment was sent from the sending system to the receiving system; and for each file segment transmission, determining the wait period occurring immediately thereafter based in part on the actual transfer rate determined for the file segment transmission and based in part on the delivery deadline. - View Dependent Claims (15, 16)
-
-
17. A method comprising:
-
sending a file made up of a plurality of file segments from a sending system to a receiving system over a plurality of hours, the file to be received by the receiving system by a delivery deadline; for each file segment transmission, determining an actual transfer rate that the file segment was sent from the sending system to the receiving system; for each file segment transmission, determining an effective transmission rate for the file segment transmission based in part upon the actual transfer rate determined for the file segment transmission.
-
-
18. A method comprising:
-
sending an unrequested secondary file made up of a plurality of file segments from a sending system to a receiving system over a plurality of hours, the unrequested secondary file sent to the receiving system based upon initiation other than a request from the receiving system; and after the receiving system receives the unrequested secondary file, playing the unrequested secondary file on the receiving system sequentially with a playing a portion of a requested file played by the receiving system, the requested file have been requested by the receiving system to be delivered to the receiving system.
-
-
19. A method comprising:
-
sending a plurality of copies of an encrypted file, each file copy made up of a plurality of file segments from a sending system to a plurality of receiving systems before a release date; before the release date disallowing decryption of the plurality of copies received by the plurality of receiving systems; and on the release date allowing decryption of the plurality of copies received by the plurality of receiving systems.
-
-
20. A method comprising:
-
ordering a file to be delivered by a delivery deadline to occur at least a first plurality of hours after the ordering; electronically delivering the file a file segment at a time over a time period at least a second plurality of hours to be delivered by the delivery deadline; and after receiving the file, playing the file.
-
-
21. A method comprising:
-
making an offering to a third party to send a file to customers of a service provider network, the third party including a member other than the customers and other than the operator of the service provider network, the third party unable to send the file to the customers without severely impacting network traffic on the service provider network; sending the file to the customers of the service provider network at the request of the third party without severely impacting network traffic of the service provider network; and accepting payment from the third party for sending the file to the customers of the service provider network.
-
-
22. A method comprising:
-
loading a first collection of files into a receiving system at time of manufacture of the receiving system; subsequent to the time of manufacture of the receiving system, electronically sending a second collection of files to the receiving system, at least one of the files being sent over a plurality of hours; and enabling access to the first collection of files for play of one of the files by the receiving system.
-
-
23. A method comprising:
-
remotely viewing a delivery deadline for a file to be electronically delivered by a first delivery deadline; remotely modifying the first delivery deadline to a second delivery deadline; and delivering the file a file segment at a time over a time period at least a third plurality of days to be delivered by the second delivery deadline. - View Dependent Claims (24)
-
Specification