Method and system for optimizing a network by independently scaling control segments and data flow
First Claim
1. An apparatus for directing communications among a plurality of resources, comprising:
- one or more switch components configured to;
analyze each of a plurality of data flows; and
determine if each of the data flows is associated with a requested resource and;
when the data flow is associated with the requested resource, direct the data flow to the requested resource; and
when the data flow is not associated with a requested resource, request instructions from a control component;
one or more control components each configured to;
receive instruction requests from the one or more switch components for instructions on handling the data flow when the data flow is not associated with a requested resource, wherein if a failed control component is unable to process instruction requests, one or more other control components process the instruction requests to provide fault tolerance for the failed control component; and
provide instructions to the switch component for handling the unassociated data flow for one of;
handling of subsequent data flows not associated with a requested resource to achieve load balancing between the one or more resources; and
delete a data flow that has timed out, wherein a capacity of each of the one or more switch components and a capacity of the one or more of control components is independently scalable by one or more of;
changing the capacity of one or more of the switch components and one or more of the control components; and
changing one or more of a number of the switch components and control components.
1 Assignment
0 Petitions
Accused Products
Abstract
A server array controller that includes a Data Flow Segment (DFS) and at least one Control Segment (CS). The DFS includes the hardware-optimized portion of the controller, while the CS includes the software-optimized portions. The DFS performs most of the repetitive chores including statistics gathering and per-packet policy enforcement (e.g. packet switching). The DFS also performs tasks such as that of a router, a switch, or a routing switch. The CS determines the translation to be performed on each flow of packets, and thus performs high-level control functions and per-flow policy enforcement. Network address translation (NAT) is performed by the combined operation of the CS and DFS. The CS and DFS may be incorporated into one or more separate blocks. The CS and DFS are independently scalable. Additionally, the functionality of either the DFS or the CS may be separately implemented in software and/or hardware.
155 Citations
27 Claims
-
1. An apparatus for directing communications among a plurality of resources, comprising:
-
one or more switch components configured to; analyze each of a plurality of data flows; and determine if each of the data flows is associated with a requested resource and; when the data flow is associated with the requested resource, direct the data flow to the requested resource; and when the data flow is not associated with a requested resource, request instructions from a control component; one or more control components each configured to; receive instruction requests from the one or more switch components for instructions on handling the data flow when the data flow is not associated with a requested resource, wherein if a failed control component is unable to process instruction requests, one or more other control components process the instruction requests to provide fault tolerance for the failed control component; and provide instructions to the switch component for handling the unassociated data flow for one of; handling of subsequent data flows not associated with a requested resource to achieve load balancing between the one or more resources; and delete a data flow that has timed out, wherein a capacity of each of the one or more switch components and a capacity of the one or more of control components is independently scalable by one or more of; changing the capacity of one or more of the switch components and one or more of the control components; and changing one or more of a number of the switch components and control components. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for directing communications among a plurality of resources, comprising:
-
employing one or more switch components to; analyze each of a plurality of data flows; and determine if the data flow is associated with a requested resource and; when the data flow is associated with the requested resource, direct the data flow to the requested resource; and when the data flow is unassociated with a requested resource, request instructions from a control component; employing a plurality of control components configured to; receive requests from the one or more switch components for instructions on handling the unassociated data flow, wherein if a failed control component is unable to process instruction requests, one or more other control components process the instruction requests to provide fault tolerance for the failed control component; and provide instructions to the one or more switch components for handling the unassociated data flow for one of; handling of subsequent data flows not associated with a requested resource to achieve load balancing between the one or more resources; and delete a data flow that has timed out; scaling a capacity of the one or more switch components by one of changing a capacity of the one or more switch components and a number of the switch components used; and scaling a capacity of the plurality of control components by one of changing a capacity of the plurality of control components and a number of the control components used. - View Dependent Claims (20, 21)
-
-
22. An apparatus for directing communications among a plurality of resources, comprising:
-
one or more hardware-based switch components having a switching capacity scalable by changing one of a capacity and a number of the switch components, each of the switch components being configured to; receive a plurality of data packets; categorize groups of one of more data packets into one or more data flows; and determine if each of the data flows is associated with a requested resource and; when the data flow is associated with the requested resource, direct the data flow to the requested resource; and when the data flow is not associated with the requested resource, request instructions from a control component; a plurality of control components, each of the control components having a control capacity scalable by changing one of a capacity and a number of the control components, each of the control components being configured to; receive a request from at least one switch component for instructions on handling the unassociated data flow; provide instructions to the switch component for handling the unassociated data flow; and replace another failing control component in processing instruction requests from the one or more switch components when the failing control component fails to operate; an asynchronous message bus over which the one or more switch components and the plurality of control components communicate; and a data flow table accessible to the one or more switch components and to the plurality of control components for one of determining and changing a response of the apparatus to data flows according whether each is associated or unassociated with a requested resource. - View Dependent Claims (23, 24)
-
-
25. A method for directing a plurality of data among a plurality of resources, comprising:
-
monitoring which of the plurality of resources is to receive an existing data flow; providing one or more switch components configured to; when the data flow is associated with a specified resource, direct the existing data flow to the requested resource; and when the data flow is not associated with a specified resource, request instructions from a control component; providing a plurality of control components configured to;
receive requests from the one or more switch components for instructions on handling the unassociated data flow;provide instructions to the switch component for handling the unassociated data flow, including one of; handling of subsequent data flows not associated with a requested resource to achieve load balancing between the one or more resources; and delete a data flow that has timed out; and
replace a failing control component in processing instruction requests from the one or more switch components when the failing control component fails to operate to provide fault tolerance for the failing control component;scaling a capacity of the one or more switch components by one of changing a capacity of the one or more switch components and a number of the switch components used; and scaling a capacity of the plurality of control components by one of changing a capacity of the plurality of control components and a number of the control components used. - View Dependent Claims (26)
-
-
27. An apparatus for directing communications among a plurality of resources, comprising:
-
a controller; one or more switch components operably coupled with the controller and configured to; monitor a plurality of data flows, identify a first group of data flows associated with one or more resources and a second group of data flows unassociated with the one or more requested resources, and one of; direct the first group of data flows to the requested resources; and request data flow direction instructions from one or more control components, which when executed by the one or more switch components, enable the switch components to direct the second group of data flows to a resource specified by the one or more control components; and the one or more control components, operably coupled with the controller, being configured to; receive the requests for the data flow direction instructions for the one or more switch components, wherein when a failing control component is unable to process from the one or more switch components, an other of the control components provides fault tolerance for the failing control component; provide the one or more switch components with the data flow direction instructions for directing the second group of data flows to the particular location, including one of; handling of subsequent data flows not associated with a requested resource to achieve load balancing between the one or more resources; and delete a data flow that has timed out; and wherein the controller is configured to independently scale a capacity of the one or more switch components and a capacity of the one or more control components by at least one of; adjusting the capacity of the one or more switch components and the capacity of the one or more control components to direct at least one of the first and second groups of data flows; and utilizing a fewer or greater number of the one or more switch components or the one or more control components to direct at least one of the first and second groups of data flows.
-
Specification