System and method for dynamic rate flow control
AssigneeSun Microsystems, Inc.
InventorJames A. Mott
Life of this patent
Estimating the term…
Abstract
A system and method for providing dynamic rate flow control. An originating entity sets requested and target rates of communication within a communication sent to a destination entity. The requested and target rates may be expressed in terms of a “time to next communication” (e.g., a period of delay between transmission of successive communications). Intermediate devices (e.g., switches, routers) may decrease a target rate (thereby increasing the time between communications) but not the requested rate. Through a feedback process, the destination entity (or an intermediate entity) reports the target rate, and possibly the requested rate, back to the originator, which may accept and implement a reduced rate of communication, select a different communication channel, etc.
Claims64
A method of dynamically controlling the rate of communication between two entities, comprising:
- receiving an electronic communication, for a first channel between a first entity and a second entity, at a relay element situated between the first entity and the second entity;
- retrieving from said communication a first value associated with a first target bandwidth for said first channel;
- determining whether said relay element can provide said first target bandwidth for said first channel;
- and
- modifying said first value in said communication if said relay element cannot provide said first target bandwidth for said channel.
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of dynamically controlling the rate of communication between two entities, the method comprising:
- receiving an electronic communication, for a first channel between a first entity and a second entity, at a relay element situated between the first entity and the second entity;
- retrieving from said communication a first value associated with a first target bandwidth for said first channel;
- determining whether said relay element can provide said first target bandwidth for said first channel;
- and
- modifying said first value in said communication if said relay element cannot provide said first target bandwidth for said channel.
A method of dynamically controlling the rate of communication between two entities, comprising:
- generating at a first entity a first electronic communication for transmission to a second entity over a first communication channel, wherein said first communication includes a first value indicating a target rate of communication for said channel;
- receiving said first communication at a switching element;
- determining whether said switching element can provide said target rate of communication for said first channel;
- if said switching element cannot provide said target rate of communication, altering said first value to indicate a lower target rate of communication for said first channel;
- receiving said first communication at said second entity;
- and
- communicating said first value to said first entity.
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of dynamically controlling the rate of communication between two entities, the method comprising:
- generating at a first entity a first electronic communication for transmission to a second entity over a first communication channel, wherein said first communication includes a first value indicating a target rate of communication for said channel;
- receiving said first communication at a switching element;
- determining whether said switching element can provide said target rate of communication for said first channel;
- if said switching element cannot provide said target rate of communication, altering said first value to indicate a lower target rate of communication for said first channel;
- receiving said first communication at said second entity;
- and
- communicating said first value to said first entity.
A method of controlling a network communication rate, comprising:
- receiving at an intermediate node coupling a first network node and a second network node a rate value representing a rate of communication between the first network node and the second network node;
- and
- if the intermediate node cannot conduct communications between the first network node and the second network node at said rate value, decreasing said rate value such that the intermediate node can conduct communications between the first network node and the second network node at said rate value.
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of controlling a network communication rate, the method comprising:
- receiving at an intermediate node coupling a first network node and a second network node a rate value representing a rate of communication between the first network node and the second network node;
- and
- if the intermediate node cannot conduct communications between the first network node and the second network node at said rate value, decreasing said rate value such that the intermediate node can conduct communications between the first network node and the second network node at said rate value.
A method of controlling a network traffic rate, comprising:
- sending a rate value from a first network node toward a second network node, wherein said rate value represents a rate of traffic between the first network node and the second network node;
- at one or more intermediate nodes between the first network node and the second network node:
- receiving said rate value;
- if the intermediate node cannot communicate traffic between the first network node and the second network node at said rate value, decreasing said rate value to a value at which the intermediate node can communicate traffic between the first network node and the second network node;
- and
- forwarding said rate value toward the second network node;
- and
- communicating between the first network node and the second network node at said rate value.
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of controlling a network traffic rate, the method comprising:
- sending a rate value from a first network node toward a second network node, wherein said rate value represents a rate of traffic between the first network node and the second network node;
- at one or more intermediate nodes between the first network node and the second network node:
- receiving said rate value;
- if the intermediate node cannot communicate traffic between the first network node and the second network node at said rate value, decreasing said rate value to a value at which the intermediate node can communicate traffic between the first network node and the second network node;
- and
- forwarding said rate value toward the second network node;
- and
- communicating between the first network node and the second network node at said rate value.
A computer readable storage medium containing a data structure configured to indicate a rate of communication over a communication channel, the data structure comprising:
- a header portion comprising:
- an identifier of an originator of said data structure;
- an identifier of a destination of said data structure;
- and
- a first value corresponding to a target rate of communication between said originator and said destination;
- wherein said first value is modifiable during transmission of said data structure from said originator to said destination.
A network node for dynamically controlling a network rate of communication, comprising:
- a communication port configured to conduct communications from a first network node toward a second network node;
- and
- logic coupled to said communication port, wherein said logic is configured to:
- identify a rate value representing a rate of communication between the first network node and the second network node;
- wherein said rate value was originated by the first network node;
- and
- decrease said rate value if the network node cannot conduct communications between the first network node and the second network node at the rate value.
An apparatus for dynamically adjusting the rate of communications between a first entity and a second entity on a channel, comprising:
- a communication port configured to forward a communication received from a first entity toward a second entity on a communication channel;
- a first memory configured to store said communication;
- a second memory configured to store a target bandwidth for said channel, wherein said target bandwidth is indicated by a first value in said communication;
- a comparator configured to compare said target bandwidth to an available bandwidth for said port;
- and
- a processor configured to adjust said first value to indicate a different target bandwidth.
A communication system configured for dynamic rate flow control between two communicating devices, comprising:
- a first device configured to generate a communication for transmission toward a second device over a first channel, wherein said communication includes a first value indicating a target bandwidth for said first channel;
- a switch element configured to receive said communication and direct said communication toward said second device, wherein said switch element alters said first value if said switch element cannot provide said target bandwidth for said first channel;
- and
- a second device configured to receive said communication and report said first value to said first entity.
Dependencies are inferred from the claim text.