Software, systems and methods for managing a distributed network
Abstract
A system and method for managing network bandwidth consumption. The system may include an agent module loadable on a networked computer and configured to aid in managing bandwidth consumption within a network. The agent module is configured to obtain an allocation of network bandwidth usable by the networked computer, and is further configured to sub-allocate such allocation among multiple bandwidth-consuming components associated with the networked computer. The system may further include multiple such agent modules loadable on plural networked computers, and a control module configured to interact with each of the agent modules to dynamically manage bandwidth usage by the networked computers.
Claims
exact text as granted — not AI-modified1 . An agent module configured to be loaded onto a computer to manage network bandwidth usage by such computer, the agent module comprising:
an agent bandwidth manager; and an application bandwidth manager, the agent module being configured to launch one such application bandwidth manager for each of multiple applications running on the computer, where the agent bandwidth manager and application bandwidth managers are configured to dynamically interact so as to sub-allocate network bandwidth available to the computer into individualized application allocations of network bandwidth for each of the applications, and where each application allocation depends on a socket status of the corresponding application, relative to other applications which are to receive a portion of the network bandwidth available to the computer.
2 . The agent module of claim 1 , where each application allocation of network bandwidth depends on how many sockets are open for the corresponding application, relative to other applications which are to receive a portion of the network bandwidth available to the computer.
3 . The agent module of claim 1 , where each application allocation of network bandwidth depends on assigned priorities for sockets of the corresponding application, relative to other applications which are to receive a portion of the network bandwidth available to the computer.
4 . The agent module of claim 1 , where each application allocation of network bandwidth depends on consumption of prior allocations for the corresponding application, relative to other applications which are to receive a portion of the network bandwidth available to the computer.
5 . The agent module of claim 1 , where each application allocation of network bandwidth depends on how many sockets are open for the corresponding application, assigne
6 . The agent module of claim 1 , further comprising a socket bandwidth manager, the agent module being configured to launch one such socket bandwidth manager for each of multiple sockets open on the computer.
7 . The agent module of claim 6 , where the agent module is configured so that, when one of the applications running on the computer has multiple associated sockets, the application bandwidth manager associated with such application dynamically interacts with the socket bandwidth managers of those sockets so as to sub-allocate the application allocation of network bandwidth into a socket allocation of network bandwidth for each of the sockets.
8 . The agent module of claim 7 , where the application bandwidth manager and socket bandwidth managers are configured to dynamically and repeatedly update the socket allocations of network bandwidth in response to changing conditions at the sockets.
9 . The agent module of claim 1 , where the agent bandwidth manager and application bandwidth managers are configured to dynamically and repeatedly update the individualized application allocations of network bandwidth in response to changing conditions at the applications.
10 . The agent module of claim 1 , where the agent module is adapted to:
assign a socket priority to a socket opened on the computer on which the agent module is loaded; provide a socket allocation of network bandwidth to the socket based on the socket priority; and detect whether the socket is being used to perform a predefined network transaction and, after such detection, modify the socket priority for such socket and update the socket allocation of network bandwidth to account for such modification.
11 . An agent module configured to be loaded onto a computer to manage network bandwidth usage by such computer, the agent module comprising:
an agent bandwidth manager; and a socket bandwidth manager, the agent module being configured to launch one such socket bandwidth manager for each of multiple sockets open on the computer, where the agent bandwidth manager and the socket bandwidth managers are configured to interact so as to divide network bandwidth available to the computer into individualized socket allocations of network bandwidth for each of the sockets, and where the agent bandwidth manager and socket bandwidth managers are configured to dynamically and repeatedly update the socket allocations based on consumption activity of the sockets relative to each other.
12 . The agent module of claim 11 further comprising:
an application bandwidth manager, the agent module being configured to launch one such application bandwidth manager for each of multiple applications running on the computer, where the agent bandwidth manager and application bandwidth managers are configured to interact so as to divide network bandwidth available to the computer into individualized application allocations of network bandwidth for each of the applications; where, for an application with multiple sockets, the corresponding application bandwidth manager and socket bandwidth managers are configured to interact so as to sub-allocate the application allocation of network bandwidth into a socket allocation of network bandwidth for each of the sockets.
13 . A system for dynamically managing bandwidth consumption on a network link comprising:
an agent computer; a software-based agent module configured to run on the agent computer, the agent module being further configured to: assign a socket priority to a socket opened on the agent computer; provide a socket allocation of network bandwidth to the socket based on the socket priority; and detect whether the socket is being used to perform a predefined network transaction and, after such detection, modify the socket priority for such socket and update the socket allocation of network bandwidth to account for such modification.
14 . The system of claim 13 wherein the agent module is further configured to:
assign a socket priority to each of a plurality of sockets as those sockets are opened on the agent computer; provide a socket allocation of network bandwidth for each of the plurality of sockets, where the socket allocation for each of the plurality of sockets depends on the socket priority of such socket relative to the socket priorities of the other sockets; and detect when one of the sockets is being used to perform a predefined network transaction and, after such detection, modify the socket priority for such socket and update the socket allocations of network bandwidth to account for such modification.
15 . The system of claim 14 , where the predefined network transaction pertains to only a portion of data being requested by the agent computer from a network resource, such that the socket priority is modified while the socket is being used to obtain such portion of data, and is unmodified while the socket is being used to obtain other portions of the data being requested from the network resource.
16 . The system of claim 13 , where the socket priority is restored to an unmodified value after completion of the predefined network transaction.
17 . The system of claim 13 , wherein the network link interconnects a plurality of computers, including a control computer and multiple agent computers, where each agent computer is configured to run one or more applications employing one or more sockets, and wherein the system further comprises:
plural agent modules, each being adapted to run on one of the agent computers and monitor and repeatedly report a socket status of its associated agent computer; a control module adapted to run on the control computer, where the control module is adapted to dynamically allocate bandwidth on the network link among the agent computers based on relative socket statuses of the agent computers as reported by the agent modules.
18 . A method of dynamically managing bandwidth in a distributed network system with a network link interconnecting a plurality of computers, comprising:
assigning a socket priority to a socket, where the socket is associated with an application running on one of the plurality of computers; providing a socket allocation to the socket, where the socket allocation defines network bandwidth usable by the socket; monitoring network transactions performed using the socket to identify whether the socket is being used to perform a predefined network transaction; and dynamically modifying the socket priority after detecting that the socket is being used to perform the predefined network transaction, and updating the socket allocation to account for such modification of the socket priority.
19 . The method of claim 18 , further comprising:
providing an application allocation to the application, where the application allocation defines network bandwidth usable by the application and is dependent upon the socket allocation; and dynamically modifying the application allocation to account for modification of the socket priority.
20 . The method of claim 18 , further comprising:
providing a computer allocation to the computer on which the application is running, where the computer allocation defines network bandwidth usable by such computer and is dependent upon the socket allocation; and dynamically modifying the computer allocation to account for modification of the socket priority.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.