IP Library Granted Patent US 9,154,552
Granted Patent B2
US 9,154,552 · App. 13/590,092 · Granted Oct 6, 2015

Method and apparatus for cooperative file distribution with receiver determined quality of services

Inventors: Andrew Hickmott (New York, NY); Avi Cohen (Demarest, NJ)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L67/104H04L67/02H04L67/108H04L67/1085H04L12/1485H04L67/06
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,154,552
App. No.
13/590,092
Granted
Oct 6, 2015
Kind
B2
Abstract

Methods and apparatus are provided for cooperative file distribution with receiver determined quality of services. A receiver obtains a file by selecting a target rate for downloading a file, identifying one or more unreliable data sources and one or more reliable data sources wherein each source contains one or more portions of the file, obtaining at least a portion of the file from the one or more unreliable data sources at a first rate, determining a throttle rate for downloading at least another portion of the file from the one or more reliable data sources, retrieving the at least another portion of the file from the one or more reliable data sources at a second rate, and adjusting the throttle rate such that an amount of data obtained from the one or more reliable data sources is minimized, and the target rate is maintained.

Claims (51)

1. A method for downloading a file to a computing device in a cooperative file distribution system, comprising:

at the computing device, selecting a target rate for downloading the file to the computing device;

at the computing device, identifying one or more unreliable data sources and one or more reliable data sources wherein each source contains one or more portions of the file;

at the computing device, obtaining at least a portion of the file from the one or more unreliable data sources at a first rate;

at the computing device, determining a throttle rate for downloading at least another portion of the file from the one or more reliable data sources;

at the computing device, retrieving the at least another portion of the file from the one or more reliable data sources;

at the computing device, adjusting the throttle rate such that an amount of data obtained from the one or more reliable data sources is minimized, and the target rate is maintained when the one or more reliable data sources are not saturated; and

at the computing device, reducing the throttle rate such that the target rate is not maintained when the one or more reliable data sources are saturated.

2. The method of claim 1 wherein the target rate is based on a target rate input from a user.

3. The method of claim 1 wherein the target rate is based on a content of the file.

4. The method of claim 1 wherein the target rate is based on a use pattern of the computing device.

5. The method of claim 1 wherein the target rate is based on a residual bandwidth of the computing device.

6. The method of claim 1 wherein the target rate is based on a QoS contract with the cooperative file distribution system.

7. The method of claim 1 wherein determining or adjusting the throttle rate is based on a throttle rate input from a user.

8. The method of claim 1 wherein determining or adjusting the throttle rate is based on the first rate.

9. The method of claim 1 wherein determining or adjusting the throttle rate is based on a QoS contract with the cooperative file distribution system.

10. The method of claim 1 wherein determining or adjusting the throttle rate is based on a use status of the file.

11. The method of claim 1 wherein the at least another portion of the file from the one or more reliable data sources is retrieved at a zero rate if the first rate is not below the target rate.

12. The method of claim 1 wherein adjusting the throttle rate further comprises detecting a rate saturation by comparing the throttle rate to a second rate at which the at least another portion of the file from the one or more reliable data sources is retrieved.

13. The method of claim 12 , wherein reducing the throttle rate includes reducing the throttle rate such that the target rate is not maintained when the first rate is less than the target rate and the one or more reliable data sources are saturated.

14. The method of claim 1 wherein the one or more reliable data sources have a time dependent rate schedule.

15. The method of claim 14 wherein the retrieving step is configured to avoid a peak rate.

16. A system for downloading a file in a cooperative file distribution system, comprising:

a control server; and

a receiver operatively coupled with the control server, operative to:

select a target rate for downloading the file to the receiver;

identify one or more unreliable data sources and one or more reliable data sources wherein each source contains one or more portions of the file;

obtain at least a portion of the file from the one or more unreliable data sources at a first rate;

determine a throttle rate for downloading at least another portion of the file from the one or more reliable data sources;

retrieve the at least another portion of the file from the one or more reliable data sources;

adjust the throttle rate such that an amount of data obtained from the one or more reliable data sources is minimized, and the target rate is maintained when the one or more reliable data sources are not saturated; and

reduce the throttle rate such that the target rate is not maintained when the one or more reliable data sources are saturated.

17. The system of claim 16 wherein the target rate is based on a target rate input from a user.

18. The system of claim 16 wherein the target rate is based on a content of the file.

19. The system of claim 16 wherein the target rate is based on a use pattern of the system.

20. The system of claim 16 wherein the target rate is based on a residual bandwidth of the system.

21. The system of claim 16 wherein the target rate is based on a QoS contract with the cooperative file distribution system.

22. The system of claim 16 wherein a throttle rate input from a user is used to determine or adjust the throttle rate.

23. The system of claim 16 wherein the first rate is used to determine or adjust the throttle rate.

24. The system of claim 16 wherein a QoS contract with the cooperative file distribution system is used to determine or adjust the throttle rate.

25. The system of claim 16 wherein a use status of the file is used to determine or adjust the throttle rate.

26. The system of claim 16 wherein the at least another portion of the file from the one or more reliable data sources is retrieved at a zero rate if the first rate is not below the target rate.

27. The system of claim 16 wherein the receiver is configured to detect a rate saturation by comparing the throttle rate to a second rate at which the at least another portion of the file from the one or more reliable data sources is retrieved.

28. An article of manufacture for downloading at least one file in a cooperative file distribution system, comprising a machine readable storage medium comprising one or more program instructions which when executed implement the steps of:

selecting a target rate by a receiver for downloading the file to the receiver;

identifying one or more unreliable data sources and one or more reliable data sources by the receiver wherein each source contains one or more portions of the file;

obtaining at least a portion of the file from the one or more unreliable data sources at a first rate;

determining a throttle rate by the receiver for downloading at least another portion of the file from the one or more reliable data sources;

retrieving the at least another portion of the file from the one or more reliable data sources; and

adjusting the throttle rate by the receiver such that an amount of data obtained from the one or more reliable data sources is minimized, and the target rate is maintained when the one or more reliable data sources are not saturated; and

reducing the throttle rate such that the target rate is not maintained when the one or more reliable data sources are saturated.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2016
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: ZHIGU HOLDINGS LIMITED
Reel/Frame 040354/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2013
From: PANDO NETWORKS, INC.
To: MICROSOFT CORPORATION
Reel/Frame 031128/0871 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2012
From: HICKMOTT, ANDREW, MR.; COHEN, AVI, MR.
To: PANDO NETWORKS INC.
Reel/Frame 029538/0080 →
Continuity (2)
Continuation In Part 11850793 · Sep 6, 2007
Related Publication 20120317246A1 · Dec 13, 2012