System and method for receiver based allocation of network bandwidth
First Claim
1. A method for allocating bandwidth on a communication link in an operating network, comprising the steps of:
- receiving a flow of data packets at a receiving system from a sending system on the network via the link;
determining at the receiving system a target bandwidth for the flow on the link;
transmitting data from the receiving system to the sending system in response to the flow of data packets received, the transmitted data providing feedback to the sending system such that when the sending system transmits subsequent data packets to the receiving system, such subsequent data packets are transmitted at a rate approximating the target bandwidth determined by the receiving system; and
calculating a period of time for which the receiving system does not transmit data to the sending system.
4 Assignments
0 Petitions
Accused Products
Abstract
A system receives a flow of data packets via the link and determines a target bandwidth to be allocated to the flow on the link. In response to the flow, the receiving system transmits data to the sending system. The transmitted data control the sending system such that when the sending system transmits subsequent data packets to the receiving system, such subsequent data packets are transmitted at a rate approximating the target bandwidth allocated to the flow. In one embodiment, the rate at which the transmitted data from the receiving system arrive at the sending system determines the rate at which the sending system transmits the subsequent data packets. The receiving system can control the rate by delaying its response to the sending system according to a calculated delay factor. In another embodiment, the data transmitted from the receiving system to the sending system indicate a maximum amount of data that the receiving system will accept from the sending system in a subsequent data transmission. The maximum amount is determined so that when the sending system transmits subsequent data packets according to that amount, data is transmitted by the sending system to the receiving system at a rate approximating the target bandwidth.
213 Citations
24 Claims
-
1. A method for allocating bandwidth on a communication link in an operating network, comprising the steps of:
-
receiving a flow of data packets at a receiving system from a sending system on the network via the link;
determining at the receiving system a target bandwidth for the flow on the link;
transmitting data from the receiving system to the sending system in response to the flow of data packets received, the transmitted data providing feedback to the sending system such that when the sending system transmits subsequent data packets to the receiving system, such subsequent data packets are transmitted at a rate approximating the target bandwidth determined by the receiving system; and
calculating a period of time for which the receiving system does not transmit data to the sending system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
applying the calculated period of time for which the receiving system does not transmit data to a plurality of flows of a class.
-
-
4. The method of claim 1, wherein the data transmitted from the receiving system to the sending system indicates a maximum amount of data that the receiving system will accept from the sending system in a subsequent data transmission.
-
5. The method of claim 1, wherein the step of calculating the period of time includes using a model of the network.
-
6. The method of claim 1, further comprising the steps of measuring a bandwidth of the link being used by a class of flows, and using the measured bandwidth as feedback for calculating the period of time.
-
7. The method of claim 1, wherein the data transmitted by the receiving system to the sending system includes acknowledgment of receipt of a particular data packet in the flow of data packets.
-
8. The method of claim 1, wherein the target bandwidth is determined by a network protocol process.
-
9. The method of claim 1, wherein when the link is idle, the target bandwidth equals a full bandwidth of the link.
-
10. A method for allocating bandwidth on a communication link in an operating network, comprising the steps of:
-
receiving a flow of data packets at a receiving system from a sending system on the network via the link;
determining at the receiving system a target bandwidth for the flow on the link; and
transmitting data from the receiving system to the sending system in response to the flow of data packets received, the transmitted data providing feedback to the sending system such that when the sending system transmits subsequent data packets to the receiving system, such subsequent data packets are transmitted at a rate approximating the target bandwidth determined by the receiving system;
wherein the flow is initially assigned to a first class of flows, and is subsequently assigned to a second class of flows when the flow continues for longer than a predetermined period of time;
the target bandwidth comprising a first target bandwidth for flows in the first class and a second target bandwidth for flows in the second class.- View Dependent Claims (11)
assigning the flow to a third class of flows when the flow uses substantially more bandwidth than the target bandwidth allocated to that flow while in the second class of flows.
-
-
12. A method for allocating bandwidth on a communication link in an operating network, comprising the steps of:
-
receiving flows of data packets at a receiving system from sending systems on the network via the link;
determining at the receiving system a target bandwidth for the flows on the link;
transmitting data to the sending systems that will cause the sending systems to transmit subsequent data packets to the receiving system at a rate approximating the target bandwidth for the flows of data packets from the sending systems; and
for each flow of at least a subset of the flows, calculating a period of time for which the receiving system does not transmit data to the sending system.
-
-
13. A computer system for allocating bandwidth on a communication link in an operating network, comprising:
-
a network interface for receiving a flow of data packets from a sending system on the network via the link; and
a processor coupled to the network interface for determining a target bandwidth for the flow on the link, the network interface transmitting data to the sending system in response to the flow of data packets received, the transmitted data providing feedback to the sending system such that the sending system transmits subsequent data packets at a rate approximating the target bandwidth for the flow when responding to the transmitted data;
wherein the processor is configured to calculate a period of time for which the receiving system does not transmit data to the sending system. - View Dependent Claims (14, 15, 16, 17, 18)
memory, coupled to the processor, configured to store a model of a behavior of the network that is used when calculating a period of time for which the receiving system does not transmit data to the sending system.
-
-
15. The computer system of claim 13, wherein the processor is configured to assign the flow to a class of flows;
- and wherein a calculated period of time for which the receiving system does not transmit data to the sending system applies to the flows in said class.
-
16. The computer system of claim 13, wherein the system is configured to measure a bandwidth of the link being used by a class of flows and to calculate, based on the measured bandwidth, a period of time for which the receiving system does not transmit data to the sending system.
-
17. The computer system of claim 13, wherein the data transmitted from the receiving system to the sending system include a maximum amount of data that the receiving system will accept from the sending system in a subsequent data transmission.
-
18. The computer system of claim 13, wherein the target bandwidth is determined by an application program that receives the flow of data packets.
-
19. A method for allocating bandwidth on a communication link in an operating network, comprising the steps of:
-
receiving a flow of data packets at a receiving system from a sending system on the network via the link;
determining at the receiving system a target bandwidth for the flow on the link; and
transmitting data from the receiving system to the sending system in response to the flow of data packets received, the transmitted data providing feedback to the sending system such that when the sending system transmits subsequent data packets to the receiving system, such subsequent data packets are transmitted at a rate approximating the target bandwidth determined by the receiving system; and
calculating and applying a period of time for which the receiving system does not transmit data to a plurality of flows of a class;
wherein the target bandwidth is determined by an application program that receives the flow of data packets. - View Dependent Claims (20, 21)
-
-
22. A method for allocating bandwidth on a communication link in an operating network, comprising the steps of:
-
receiving a flow of data packets at a receiving system from a sending system on the network via the link;
determining at the receiving system a target bandwidth for the flow on the link; and
transmitting data from the receiving system to the sending system in response to the flow of data packets received, the transmitted data providing feedback to the sending system such that when the sending system transmits subsequent data packets to the receiving system, such subsequent data packets are transmitted at a rate approximating the target bandwidth determined by the receiving system;
wherein the target bandwidth is determined by an application program that receives the flow of data packets; and
the flow is initially assigned to a first class of flows, and is subsequently assigned to a second class of flows when the flow continues for longer than a predetermined period of time;
the target bandwidth comprising a first target bandwidth for flows in the first class and a second target bandwidth for flows in the second class.- View Dependent Claims (23)
assigning the flow to a third class of flows when the flow uses substantially more bandwidth than the target bandwidth allocated to that flow while in the second class of flows.
-
-
24. A method for allocating bandwidth on a communication link in an operating network, comprising the steps of:
-
receiving a flow of data packets at a receiving system from a sending system on the network via the link;
determining at the receiving system a target bandwidth for the flow on the link; and
transmitting data from the receiving system to the sending system in response to the flow of data packets received, the transmitted data providing feedback to the sending system such that when the sending system transmits subsequent data packets to the receiving system, such subsequent data packets are transmitted at a rate approximating the target bandwidth determined by the receiving system;
wherein the target bandwidth is determined by an application program that receives the flow of data packets; and
the data transmitted by the receiving system to the sending system includes acknowledgment of receipt of a particular data packet in the flow of data packets.
-
Specification