USRE39135EExpiredUtility

Method and apparatus for allocating bandwidth in teleconferencing applications using bandwidth control

Assignee: APPLE COMPUTERPriority: Jul 1, 1996Filed: Nov 9, 2001Granted: Jun 13, 2006
Est. expiryJul 1, 2016(expired)· nominal 20-yr term from priority
Inventors:Guy Riddle
H04L 9/40H04L 69/329
77
PatentIndex Score
20
Cited by
3
References
33
Claims

Abstract

In the present invention, in some embodiments, an administrator assigns a total bandwidth allocation to at least one other computer system, and the computer system parcels the bandwidth among the applications running on the computer system. In the operation of one embodiment of the present invention, an administrator sends a bandwidth maximum allocation to each node on the system. Each node determines a current bandwidth being used, and limits the current bandwidth to this allocation. Thereafter, each node then reallocates its usable bandwidth among applications running on the nodes that are attempting to send messages over the network. For each application, a current bandwidth use is determined, as well as a current bandwidth demand. The current bandwidth demand is the amount of bandwidth that the application would be using if no other applications were running on the node and if there were no limitations on the amount of data the application could send to the network. A ratio is calculated to determine the amount of the bandwidth demand currently being satisfied for each application, thus calculating the happiness factor for the application.

Claims

exact text as granted — not AI-modified
1. In a computer network comprising nodes, a method of administering sending of teleconference data over the network comprising:
 determining an allocated bandwidth corresponding to the sending;  
 communicating the allocated bandwidth to the nodes;  
 inhibiting use of bandwidth by any of the nodes in excess of the allocated bandwidth;  
 monitoring at least one nodal happiness factor;  
 adjusting the allocated bandwidth in response to the at least one nodal happiness factor;  
 dynamically measuring bandwidth use of program elements at a node; and  
 assigning bandwidth among program elements, such that the total of assigned bandwidth is not greater than said allocated bandwidth.  
 
     
     
       2. The method of  claim 1 , further comprising:
 determining for each program element at each node a desired bandwidth, the desired bandwidth being a total minimum bandwidth at which all program elements have sufficient bandwidth to operate at maximum speed; and  
 determining for each program element a happiness factor, the happiness factor being proportional to the assigned bandwidth and inversely proportional to the desired bandwidth.  
 
     
     
       3. In a computer network comprising nodes, a system configured to administer at least one teleconference over the computer network, the system comprising:
 a means for determining an allocated bandwidth corresponding to the at least one teleconference;  
 a means for communicating the allocated bandwidth to the nodes; and  
 a means for inhibiting use of bandwidth by any of the nodes in excess of the allocated bandwidth;  
 a means for monitoring at least one nodal happiness factor;  
 a means for adjusting the allocated bandwidth in response to the at least one nodal happiness factor;  
 a means for dynamically measuring bandwidth use of program elements at a node; and  
 a means for assigning bandwidth among program elements, such that the total of assigned bandwidth is not greater than the allocated bandwidth.  
 
     
     
       4. The system of  claim 3 , further comprising:
 a means for determining a desired bandwidth for each program element at each node, the desired bandwidth being a total minimum bandwidth at which all program elements have sufficient bandwidth to operate at maximum speed; and  
 a means for determining a happiness factor for each program element, the happiness factor being proportional to the assigned bandwidth and inversely proportional to the desired bandwidth.  
 
     
     
       5. A computer network supporting one or more processes involving transmission of large amounts of data, the computer network comprising:
   an administrator node, adapted to allocate nodal maximum bandwidths for one or more nodes of the network and to communicate to the one or more nodes the respective allocated nodal maximum bandwidths; and        a client node, adapted to receive an allocated nodal maximum bandwidth from the administrator node, and further adapted to determine current values of a set of variables related to bandwidth usage by the one or more processes at the client node and to communicate the current values to the administrator node, wherein the administrator node utilizes the current values to adjust the allocated nodal maximum bandwidths for the one or more nodes.     
     
     
       6. The computer network of  claim 5 , wherein the one or more processes include a teleconference. 
     
     
       7. The computer network of  claim 5 , wherein the one or more processes include a broadcasting process. 
     
     
       8. The computer network of  claim 5 , wherein the one or more processes include a video serving process. 
     
     
       9. The computer network of  claim 5 , wherein the allocated nodal maximum bandwidth for each node is shared by all program elements at the node. 
     
     
       10. The computer network of  claim 5 , wherein the allocated nodal maximum bandwidth for each node is shared by program elements at the node associated with a predetermined class of processes. 
     
     
       11. The computer network of  claim 10 , wherein the predetermined class of processes comprises the one or more processes involving transmission of large amounts of data. 
     
     
       12. The computer network of  claim 5 , wherein the administrator node is adapted to allocate nodal maximum bandwidths for all nodes of the network. 
     
     
       13. The computer network of  claim 5 , wherein the nodal maximum bandwidths are determined based on participation of the respective nodes in the one or more processes involving transmission of large amounts of data. 
     
     
       14. The computer network of  claim 5 , wherein the set of variables related to bandwidth usage by the one or more processes involving transmission of large amounts of data comprises:
   at least one variable indicating an actual usage of bandwidth at a node by the one or more processes; and        one or more variables related to a predicted usage of bandwidth at a node by the one or more processes in the immediate future.     
     
     
       15. The computer network of  claim 14 , wherein the one or more variables related to the predicted usage of bandwidth comprises:
   a number of active processes at the node that are capable of transmitting data; and        a number of active connections on the node, wherein each connection requires a separate copy of data being transmitted.     
     
     
       16. The computer network of  claim 5 , wherein the client node is further adapted to calculate a nodal happiness factor based on the set of variables related to bandwidth usage by the one or more processes and on the allocated nodal maximum bandwidth. 
     
     
       17. The computer network of  claim 5 , wherein the client node publishes the current values of the set of variables related to bandwidth usage at the client node to be accessed by all nodes of the network. 
     
     
       18. The computer network of  claim 5 , wherein:
   the client node is further adapted to assign portions of the allocated nodal maximum bandwidth among program elements at the client node, such that the total of the assigned portions is not greater than the allocated maximum bandwidth.     
     
     
       19. The computer network of  claim 18 , wherein the client node periodically calls a monitoring program for:
   exchanging information with each program element; and        updating variables indicating an actual usage and a predicted usage of bandwidth by each program element.     
     
     
       20. The computer network of  claim 19 , wherein the monitoring program comprises:
   one or more function sets which, if manipulated by a node other than the administrator node, render the monitoring program unusable.     
     
     
       21. The computer network of  claim 19 , wherein the monitoring program comprises:
   a hacker variable which indicates whether or not any node other than the administrator node has attempted to turn off the monitoring program.     
     
     
       22. The computer network of  claim 18 , wherein the client node periodically calls a bandwidth allocation program for assigning portions of the allocated nodal maximum bandwidth among program elements. 
     
     
       23. The computer network of  claim 22 , wherein the bandwidth allocation program is for:
   determining a priority and a maximum and minimum requested bandwidth for each program element; and        in order of priority, assigning to each program element the minimum requested bandwidth, until the allocated nodal maximum bandwidth is used up; and        if the allocated nodal maximum bandwidth is not used up by the assigning of minimum requested bandwidths, assigning additional bandwidth to each program element in order of priority.     
     
     
       24. The computer network of  claim 18 , wherein the client node periodically calls a happiness query program that determines a happiness factor of each program element. 
     
     
       25. The computer network of  claim 24 , wherein the happiness factor of a program element is an average score of happiness over all connections to which the program element is transmitting data. 
     
     
       26. The computer network of  claim 24 , wherein the happiness factor of each program element can be visually displayed using color coding. 
     
     
       27. The computer network of  claim 24 , wherein the happiness factor of each program element is published to be accessed by all nodes of the network. 
     
     
       28. A computer readable medium for administering one or more processes involving transmission of large amounts of data in a computer network, the computer readable medium comprising:
   an administrator program, executable on the computer network for allocating nodal maximum bandwidths for one or more nodes of the network and communicating to the one or more nodes the respective allocated nodal maximum bandwidths; and        a client program, executable on the computer network for receiving an allocated nodal maximum bandwidth from the administrator program, and further for determining current values of a set of variables related to bandwidth usage by the one or more processes at the client node and communicating the current values to the administrator program, wherein the administrator program utilizes the current values to adjust the allocated nodal maximum bandwidths for the one or more nodes.     
     
     
       29. The computer readable medium of  claim 28 , wherein:
   the client program is further for assigning portions of the allocated nodal maximum bandwidth among program elements at a client node, such that the total of the assigned portions is not greater than the allocated maximum bandwidth.     
     
     
       30. The computer readable medium of  claim 28 , wherein the client program further comprises:
   a monitoring program for exchanging information with each program element and updating variables indicating an actual usage and a predicted usage of bandwidth by each program element.     
     
     
       31. The computer readable medium of  claim 28 , wherein the client program further comprises a bandwidth allocation program for:
   determining a priority and a maximum and minimum requested bandwidth for each program element;        in order of priority, assigning to each program element the minimum requested bandwidth until the allocated nodal maximum bandwidth is used up; and        if the allocated nodal maximum bandwidth is not used up by the assigning of minimum requested bandwidths, assigning additional bandwidth to each program element in order of priority.     
     
     
       32. The computer readable medium of  claim 28 , wherein the client program further comprises:
   a happiness query program for determining a happiness factor of each program element, wherein the happiness factor of a program element is an average score of happiness over all connections through which the program element is transmitting data.     
     
     
       33. The computer readable medium of  claim 32 , wherein the happiness query program is further for:
   visually displaying the happiness factor of each program element using color coding; and        publishing the happiness factor of each program element at a node to be accessed by all nodes of the network.

Join the waitlist — get patent alerts

Track USRE39135E — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.