IP Library Granted Patent US 8,547,843
Granted Patent B2
US 8,547,843 · App. 11/335,973 · Granted Oct 1, 2013

System, method, and computer program product for controlling output port utilization

Inventors: Lawrence G. Roberts (Woodside, CA); Alex E. Henderson (Portola Valley, CA)
Assignee: Saisei Networks Pte Ltd
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,547,843
App. No.
11/335,973
Granted
Oct 1, 2013
Kind
B2
Abstract

A system, method and computer program product are provided. In use, a plurality of flows associated with packets destined for an output port is identified. A utilization associated with the output port is further measured. Thus, rates of a plurality of the flows destined for the output port may be individually controlled at an input port thereof, based on the utilization to ensure that the utilization remains less than 99.9% and avoid buffering more than 400 packets with a correspondingly low delay.

Claims (40)

1. A method, comprising:

identifying a plurality of flows associated with internet protocol packets destined for an output port, each of the flows including a collection of packets with a common destination address, source address, protocol, destination port, and source port;

measuring a utilization associated with the output port utilizing an output flow manager;

forwarding, from the output flow manager, the measured utilization to a network processing unit (NPU) including at least one processor for use in routing the packets to the common destination address;

receiving the measured utilization from the NPU at an input flow manager; and

individually controlling rates of each of the flows destined for the output port, at an input port thereof and utilizing the input flow manager, based on the utilization to ensure that the utilization remains less than 99.9%, ensure packet loss is not harmful, and avoid buffering more than 400 packets with a correspondingly low delay;

wherein individually controlling the rates includes controlling a rate of each individual flow by only dropping a single packet from the individual flow such that the rate of the individual flow is forced to slow down by a Transmission Control Protocol (TCP) process utilized at a sending computer including the output port;

wherein a decision process used to determine if the individual flow is be slowed down by dropping the single packet predicts a composite output rate for each output port in advance of any output port overload such that the TCP process has sufficient time to reduce the rate to hold the utilization below 99.9%;

wherein the identifying, the measuring and the controlling are performed by hardware or software facilitating the communication of packets from one point in a network to another point in the network.

2. The method of claim 1 , wherein the rates of the plurality of flows destined for the output port are each individually controlled in a different manner, at the input port thereof.

3. The method of claim 1 , wherein the rates of the plurality of flows destined for the output port are individually controlled, at the input port thereof, based on the utilization to ensure that the utilization remains less than 95%.

4. The method of claim 1 , wherein the rates of the plurality of flows destined for the output port are individually controlled, at the input port thereof, based on the utilization to avoid use of more than 1 MB of buffer capacity.

5. The method of claim 1 , wherein the rates of the plurality of flows destined for the output port are individually controlled, at the input port thereof, based on the utilization to avoid use of more than 100 KB of buffer capacity.

6. The method of claim 1 , wherein the packets together comprise streaming media.

7. The method of claim 6 , wherein the streaming media includes audio streaming media.

8. The method of claim 6 , wherein the streaming media includes video streaming media.

9. The method of claim 1 , wherein the utilization is measured periodically.

10. The method of claim 9 , wherein the utilization is measured periodically every 50 milliseconds.

11. The method of claim 1 , wherein the controlling includes rejecting a new flow.

12. The method of claim 1 , wherein the controlling includes discarding a new flow.

13. The method of claim 1 , wherein the identifying, the measuring and the controlling are performed by a router.

14. The method of claim 1 , wherein the rates of the plurality of flows destined for the output port are individually controlled, at the input port thereof, based on the utilization to ensure that the utilization remains less than 90%.

15. The method of claim 1 , wherein the rates of the plurality of flows destined for the output port are individually controlled, at the input port thereof, based on the utilization to ensure that the utilization remains less than 80%.

16. A computer program product embodied on a non-transitory computer readable medium, comprising:

computer code for identifying a plurality of flows associated with internet protocol packets destined for an output port, each of the flows including a collection of packets with a common destination address, source address, protocol, destination port, and source port;

computer code for measuring a utilization associated with the output port utilizing an output flow manager;

computer code for forwarding, from the output flow manager, the measured utilization to a network processing unit (NPU) including at least one processor for use in routing the packets to the common destination address;

computer code for receiving the measured utilization from the NPU at an input flow manager; and

computer code for individually controlling rates of each of the flows destined for the output port, at an input port thereof and utilizing the input flow manager, based on the utilization to ensure that the utilization remains less than or equal to 99.9%, ensure packet loss is not harmful, and avoid buffering more than 400 packets with a correspondingly low delay;

wherein the computer program product is operable such that individually controlling the rates includes controlling a rate of each individual flow by only dropping a single packet from the individual flow such that the rate of the individual flow is forced to slow down by a Transmission Control Protocol (TCP) process utilized at a sending computer including the output port;

wherein the computer program product is operable such that a decision process used to determine if the individual flow is be slowed down by dropping the single packet predicts a composite output rate for each output port in advance of any output port overload such that the TCP process has sufficient time to reduce the rate to hold the utilization below 99.9%;

wherein the identifying, the measuring and the controlling are performed by hardware or software facilitating the communication of packets from one point in a network to another point in the network.

17. A system, comprising:

an input flow manager for identifying a plurality of flows associated with internet protocol packets destined for an output port, each of the flows including a collection of packets with a common destination address, source address, protocol, destination port, and source port; and

an output flow manager for measuring a utilization associated with the output port, forwarding the measured utilization to a network processing unit (NPU) including at least one processor for use in routing the packets to the common destination address;

wherein the input flow manager receives the measured utilization from the NPU;

wherein the input flow manager individually controls rates of each of the flows destined for the output port, at an input port thereof, based on the utilization to ensure that the utilization remains less than 99.9%, ensure packet loss is not harmful, and avoid buffering more than 400 packets with a correspondingly low delay;

wherein the input flow manager is operable such that individually controlling the rates includes controlling a rate of each individual flow by only dropping a single packet from the individual flow such that the rate of the individual flow is forced to slow down by a Transmission Control Protocol (TCP) process utilized at a sending computer including the output port;

wherein the input flow manager is operable such that a decision process used to determine if the individual flow is be slowed down by dropping the single packet predicts a composite output rate for each output port in advance of any output port overload such that the TCP process has sufficient time to reduce the rate to hold the utilization below 99.9%;

wherein the identifying, the measuring and the controlling are performed by hardware or software facilitating the communication of packets from one point in a network to another point in the network.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2025
From: SAISEI NETWORKS, INC.
To: FIRSTWAVE CLOUD TECHNOLOGY LIMITED
Reel/Frame 070023/0502 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2023
From: SAISEI NETWORKS, PTE LTD.
To: SAISEI NETWORKS, INC.
Reel/Frame 064685/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2012
From: ANAGRAN, INC.
To: SAISEI NETWORKS PTE LTD
Reel/Frame 027511/0327 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2006
From: ROBERTS, LAWRENCE G.; HENDERSON, ALEX E.
To: ANAGRAN, INC.
Reel/Frame 017502/0150 →
Continuity (1)
Related Publication 20070171826A1 · Jul 26, 2007