Fair share egress queuing scheme for data networks
First Claim
1. A method of controlling congestion in data networks, comprising the steps of:
- receiving a data element from the network, buffering the data element in one of a plurality of local buffers, the one local buffer associated with a source of the element, determining whether a total amount of data in the local buffers exceeds a global threshold and, when the global threshold is exceeded, requesting all sources to reduce a rate at which the sources deliver data elements to the network, and determining whether an amount of data in the local buffer associated with the source of the data element exceeds a local threshold and, when the local threshold is exceeded, requesting the source of the data element to reduce the rate at which the source delivers data elements to the network.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of controlling congestion in data networks wherein data is received by an egress port and buffered in a local buffer associated with a source of the element. For each data element received, the egress port determines whether a global threshold is exceeded and, if so, requests all data sources to reduce their rate of data delivery to the egress port. Similarly, the egress port determines whether a local threshold is exceeded and, if so, requests the one source associated with the local buffer to reduce the data delivery rate to the egress port. Optionally, if the data delivery rate of the one source falls below a predetermined minimum rate, the one source may refuse the request. In response, the egress port requests other data sources to reduce their rate of data delivery to the egress port.
61 Citations
15 Claims
-
1. A method of controlling congestion in data networks, comprising the steps of:
-
receiving a data element from the network, buffering the data element in one of a plurality of local buffers, the one local buffer associated with a source of the element, determining whether a total amount of data in the local buffers exceeds a global threshold and, when the global threshold is exceeded, requesting all sources to reduce a rate at which the sources deliver data elements to the network, and determining whether an amount of data in the local buffer associated with the source of the data element exceeds a local threshold and, when the local threshold is exceeded, requesting the source of the data element to reduce the rate at which the source delivers data elements to the network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
receiving a request at a source, determining what kind of request was received, when the request was a request to decrease the source'"'"'s rate of delivery of data elements to the network, determining whether a current rate of delivery exceeds a predetermined minimum threshold, and when the current rate does not exceed the predetermined minimum threshold, denying the request.
-
-
9. An egress port of a data network, comprising:
-
a processor, a memory in communication with the processor, providing a data buffer divided into a plurality of local buffers, a communication interface in communication with the processor and the memory, the interface receiving data elements from the data network, wherein the processor;
identifies a source of the data element, causes the communication interface to store the data element in a local buffer associated with the source, determines whether an amount of data held in the buffer exceeds a global threshold and, if so, requests all sources in the data network to reduce rates at which the sources deliver data elements to the network, and determines whether an amount of data stored in the local buffer associated with the issuing source exceeds a local threshold and, if so, requests the issuing source via the interface to reduce the rate at which the issuing source delivers data elements to the network. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A method of controlling congestion in data networks, comprising the steps of:
-
receiving a data element from the network, buffering the data element in a local buffer associated with a source of the element, determining whether an amount of data in the local buffers exceeds a global threshold and, when the global threshold is exceeded, requesting all sources to reduce a rate at which the sources deliver data elements to the network, subsequent to the requesting step, determining whether the source denied the request and, when the source denies the request, requesting other sources to reduce the rate at which the other sources deliver data elements to the network.
-
Specification