IP Library Granted Patent US 8,917,604
Granted Patent B2
US 8,917,604 · App. 14/189,056 · Granted Dec 23, 2014

Performing rate limiting within a network

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,917,604
App. No.
14/189,056
Granted
Dec 23, 2014
Kind
B2
Abstract

Methods and systems for performing rate limiting are provided. According to one embodiment, information is maintained regarding a set of virtual networks into which a network has been logically divided. Each virtual network comprises a loop-free switching path, reverse path learning network and provides a path through the network between a first and second network device thereby collectively providing multiple paths between the first and second network devices. Packets are received by the first device that are associated with a flow sent by a source network device. The packets are forwarded by the first device to the second device via a particular path of the multiple paths. A congestion metric is determined for the particular path and based thereon it is determined whether a congestion threshold has been reached. Responsive to an affirmative determination, the source device is instructed to reduce the rate at which the packets are sent.

Claims (31)

1. A computer-implemented method comprising:

maintaining, within a first network device of a plurality of network devices coupled in communication with a network, information regarding a set of virtual networks into which the network has been logically divided and that can be used by the first network device to transport packets through the network, wherein each virtual network of the set of virtual networks comprises a loop-free switching path, reverse path learning network and wherein each virtual network of the set of virtual networks provides a path through the network between the first network device and a second network device of the plurality of network devices thereby collectively providing a plurality of paths through the network between the first network device and the second network device;

receiving, by the first network device, one or more packets associated with a flow sent by a source network device at a particular flow rate;

forwarding, by the first network device, the one or more packets associated with the flow to the second network device via a particular path of the plurality of paths;

determining a congestion metric for the particular path;

determining, based at least partially upon the congestion metric for the particular path, whether the particular path has reached a congestion threshold; and

in response to a determination that the particular path has reached the congestion threshold, instructing the source network device to reduce the particular flow rate at which the source network device is sending packets associated with the flow.

2. The method of claim 1 , wherein determining the congestion metric for the particular path comprises determining at least one one-way latency value for the particular path that is indicative of how much time is needed for a set of information to travel from the first network device to the second network device along the particular path.

3. The method of claim 2 , wherein the at least one one-way latency value comprises an average one-way latency (AOWL) calculated based on an equation in a form substantially as follows:

AOWL=(1 −P L )*previous AOWL+ P L *current one-way latency

where P L is a constant between zero and one and the current one-way latency is a most recently observed one-way latency between the first network device and the second network device.

4. The method of claim 1 , wherein determining the congestion metric for the particular path comprises determining at least one roundtrip latency value for the particular path that is indicative of how much time is needed for a set of information to travel from the first network device to the second network device along the particular path and back to the first component.

5. The method of claim 4 , wherein the at least one roundtrip latency value comprises an average roundtrip latency (ARTL) calculated based on an equation in a form substantially as follows:

ARTL=(1 −P R )*previous ARTL+ P R *current roundtrip latency

wherein P R is a constant between zero and one and the current roundtrip latency is a most recently observed roundtrip latency between the first network device and the second network device.

6. The method of claim 1 , wherein instructing the source network device comprises providing information to the source network device that can be used by the source network device to identify the flow.

7. The method of claim 1 , wherein the congestion threshold represents a congestion level at which packets sent along the particular path are likely to be dropped by one or more switches along the particular path.

8. The method of claim 1 , wherein the first network device comprises a border network device that is situated at a border of the network, and that provides access to the network by one or more external components, including the source network device.

9. The method of claim 1 , wherein the first network device comprises a network interface that is situated at a border of the network.

10. The method of claim 1 , wherein the congestion metric for the particular path comprises an aggregate congestion metric representing an average congestion across multiple paths in the network.

11. The method of claim 1 , wherein the set of virtual networks comprise a plurality of virtual local area networks (VLANs).

12. The method of claim 1 , further comprising:

sending, by the first network device, a plurality of latency request packets to the second network device via the particular path;

receiving, by the first network device, a plurality of latency response packets sent by the second network device in response to the plurality of latency request packets; and

determining, based at least partially upon timestamp information contained in the plurality of latency response packets, an estimated latency between the first network device and the second network device.

13. The method of claim 12 , wherein the timestamp information comprises initial timestamps added to the plurality of latency request packets by the first network device and arrived timestamps added by the second network device to the plurality of latency response packets, and said determining, based at least partially upon timestamp information contained in the plurality of latency response packets, an estimated latency between the first network device and the second network device comprises determining a difference between corresponding arrived timestamps and initial timestamps.

14. The method of claim 12 , wherein the timestamp information comprises initial timestamps added to the plurality of latency request packets by the first network device and return timestamps added by the second network device to the plurality of latency response packets, and said determining, based at least partially upon timestamp information contained in the plurality of latency response packets, an estimated latency between the first network device and the second network device comprises determining a difference between corresponding return timestamps and initial timestamps.

15. The method of claim 12 , wherein said timestamp information comprises initial timestamps added to the plurality of latency request packets by the first network device and received timestamps added to the plurality of latency response packets by the first network device, and said determining, based at least partially upon timestamp information contained in the plurality of latency response packets, an estimated latency between the first network device and the second network device comprises:

determining a roundtrip latency based on corresponding received timestamps and initial timestamps; and

setting an estimated one-way latency to one half the roundtrip latency.

16. The method of claim 12 , wherein said timestamp information comprises initial timestamps added to the plurality of latency request packets by the first network device and received timestamps added to the plurality of latency response packets by the first network device, and said determining, based at least partially upon timestamp information contained in the plurality of latency response packets, an estimated latency between the first network device and the second network device comprises determining the estimated roundtrip latency based on corresponding received timestamps and initial timestamps.