Method and management of communications over media of finite bandwidth
First Claim
1. A method for allocating bandwidth comprising the step of:
- receiving estimates of bandwidth needs from a plurality of data sources;
allocating bandwidth to said plurality of data sources based on said estimates, wherein said allocating step comprises;
obtaining a cumulative requested bandwidth;
allocating a full amount of said estimate of bandwidth plus a proportional share of remaining bandwidth needs if said cumulative requested bandwidth is less than an allocatable bandwidth amount;
determining an average bandwidth value;
allocating an entire requested bandwidth when said estimate is less than said average bandwidth value;
obtaining a cumulative difference between said average bandwidth value and actual bandwidth;
obtaining a quotient by dividing said cumulative difference by a number of estimates greater than or equal to said average bandwidth value; and
adding said quotient to said average bandwidth value to obtain a new average bandwidth value.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention provides a method and apparatus for management of communications over media of finite bandwidth. One embodiment of the invention allows management of communications comprising a plurality of data streams from a plurality of sources. One embodiment of the invention effectively quantifies and controls data streams comprising data transferred at either regular or irregular data rates. One embodiment of the invention provides for estimation of data rate needs, measurement and analysis of current and historical data rate parameters, dynamic allocation of available bandwidth, and supports cooperation between data sources and destinations in the management processes.
-
Citations
21 Claims
-
1. A method for allocating bandwidth comprising the step of:
-
receiving estimates of bandwidth needs from a plurality of data sources;
allocating bandwidth to said plurality of data sources based on said estimates, wherein said allocating step comprises;
obtaining a cumulative requested bandwidth;
allocating a full amount of said estimate of bandwidth plus a proportional share of remaining bandwidth needs if said cumulative requested bandwidth is less than an allocatable bandwidth amount;
determining an average bandwidth value;
allocating an entire requested bandwidth when said estimate is less than said average bandwidth value;
obtaining a cumulative difference between said average bandwidth value and actual bandwidth;
obtaining a quotient by dividing said cumulative difference by a number of estimates greater than or equal to said average bandwidth value; and
adding said quotient to said average bandwidth value to obtain a new average bandwidth value. - View Dependent Claims (2, 3, 4, 5, 6, 7)
monitoring command issuances; and
estimating bandwidth needs based on said command issuances.
-
-
3. The method of claim 2 wherein said estimating step comprises estimating bandwidth needs based on said command issuances and a weighting.
-
4. The method of claim 3 wherein said weighting is based on a mean plus one standard deviation.
-
5. The method of claim 1 further comprising:
allocating said average bandwidth value when said estimate is greater than or equal to said average bandwidth value.
-
6. The method of claim 1 further comprising at least one of said data sources utilizing a congestion avoidance bandwidth limit that is less than said allocated bandwidth.
-
7. The method of claim 1 further comprising:
-
transmitting data at a first data transmission rate;
detecting a data error;
rapidly reducing said first data transmission rate to a second data transmission rate;
rapidly restoring said second data transmission rate to a third data transmission rate, said third data transmission rate equal to a first fraction of said first data transmission rate; and
slowly increasing said third data transmission rate to a fourth data transmission rate, said fourth data transmission rate equal to a second fraction of said first data transmission rate.
-
-
8. A system comprising:
-
one or more data sources configured to transmit estimates of bandwidth needs;
a data receiver configured to;
receive said estimates of bandwidth needs;
allocate bandwidth to said one or more data sources and wherein saiddata receiver is further configured to;
obtain a cumulative requested bandwidth;
allocate a full amount of said estimate of bandwidth plus a proportional share of remaining bandwidth needs if said cumulative requested bandwidth is less than an allocatable bandwidth amount;
determine an average bandwidth value;
allocate an entire requested bandwidth value when said estimate is less than said average bandwidth;
obtain cumulative difference between said bandwidth value and actual bandwidth;
obtain a quotient by dividing said cumulative difference by a number of estimates greater than or equal to said average bandwidth value; and
adding said quotient to said average bandwidth value to obtain a new average bandwidth value. - View Dependent Claims (9, 10, 11, 12, 13, 14)
monitor command issuances; and
estimate bandwidth needs based on said command issuances.
-
-
10. The system of claim 9 wherein said estimate is based on said command issuances and a weighting.
-
11. The system of claim 10 wherein said weighting is based on mean plus one standard deviation.
-
12. The system of claim 8 wherein said data receiver is further configured to:
allocate said average bandwidth value when said estimate is greater than or equal to said average bandwidth value.
-
13. The system of claim 8 wherein at least one of said data sources is configured to utilize a congestion avoidance bandwidth limit that is less than said allocated bandwidth.
-
14. The system of claim 8 wherein:
-
at least one of said data sources is configured to;
transmit data at a first data transmission rate;
detect a data error;
rapidly reduce said first data transmission rate to a second data transmission rate;
rapidly restore said second data transmission rate to a third data transmission rate, said third data transmission equal to a first fraction of said first data transmission rate; and
slowly increasing said data transmission rate to a fourth data transmission rate, said fourth data transmission rate equal to a second fraction of said first data transmission rate.
-
-
15. A computer program product comprising:
-
a computer usable medium having computer readable program code embodied therein configured to allocate bandwidth, said computer program product comprising;
computer readable program code configured to cause a computer to obtain estimates of bandwidth needs from a plurality of data sources;
computer readable program code configured to cause a computer to allocate bandwidth to said plurality of data sources based on said estimates, wherein said computer code configured to allocate comprises;
computer readable program code configured to cause a computer to obtain a cumulative requested bandwidth;
computer readable program code configured to cause a computer to allocate a full amount of said estimate of bandwidth plus a proportional share of remaining bandwidth needs if said cumulative requested bandwidth is less than an allocatable bandwidth amount;
computer readable program code configured to cause a computer to determine an average bandwidth value;
computer readable program code configured to cause a computer to allocate an entire requested bandwidth when said estimate is less than said average bandwidth value;
computer readable program code configured to cause a computer to obtain a cumulative difference between said average bandwidth value and actual bandwidth;
computer readable program code configured to cause a computer to obtain a quotient by dividing said cumulative difference by a number of estimates greater than or equal to said average bandwidth value; and
computer readable program code configured to cause a computer to adding said quotient to said average bandwidth value to obtain a new average bandwidth value. - View Dependent Claims (16, 17, 18, 19, 20, 21)
computer readable program code configured to cause a computer to monitor command issuances; and
computer readable program code configured to cause a computer to estimate bandwidth needs based on said command issuances.
-
-
17. The computer program product of claim 16 wherein said computer code configured to estimate comprises computer readable program code configured to cause a computer to estimate bandwidth needs based on said command issuances and a weighting.
-
18. The computer program product of claim 17 wherein said weighting is base on a mean plus one standard deviation.
-
19. The computer program product of claim 15 further comprising:
computer readable program code configured to cause a computer to allocate said average bandwidth value when said estimate is greater than or equal to said average bandwidth value.
-
20. The computer program product of claim 15 further comprising computer readable program code configured to cause a computer to utilize a congestion avoidance bandwidth limit that is less than said allocated bandwidth.
-
21. The compute program product of claim 15 further comprising:
-
computer readable program code configured to cause a computer to transmit data at a first data transmission rate;
computer readable program code configured to cause a computer to detect a data error;
computer readable program code configured to cause a computer to rapidly reduce said first data transmission rate to a second data transmission rate;
computer readable program code configured to cause a computer to rapidly restore said second data transmission rate to a third data transmission rate;
said third data transmission rate equal to a first fraction of said first data transmission rate; and
computer readable program code configured to cause a computer to slowly increase said third data transmission rate to a fourth data transmission rate, said fourth data transmission rate equal to a second fraction of said first data transmission rate.
-
Specification