Method and system for optimizing a network by independently scaling control segments and data flow
First Claim
1. A server array controller apparatus, comprising:
- a processor coupled to hardware logic of a data flow segment and a memory of a control segment, the hardware logic of the data flow segment configured to be capable of implementing;
receiving a plurality of Internet Protocol (IP) data packets from a client computing device requesting a resource;
categorizing groups of one or more of the plurality of IP data packets into one or more data flows based on a flow signature, wherein the flow signature includes a timestamp;
determining whether one of the IP data packets is associated with an existing connection to the requested resource;
when the IP data packet is associated with an existing connection to the requested resource, directing the IP data packet to the requested resource; and
when the IP data packet is not associated with an existing connection to the requested resource, sending a request for instructions for directing the IP data packet to the control segment, receiving instructions for directing the IP data packet from the control segment, and directing the IP data packet based on the instructions, wherein the processor is configured to be capable of executing programmed instructions stored in the memory of the control segment comprising;
receiving the request for instructions for directing the IP data packet from the data flow segment;
selecting one of a plurality of servers hosting the requested resource based on one or more load balancing factors and generating instructions for directing the IP data packet to the selected server, wherein the one or more load balancing factors comprise one or more of most active flow, least active flow, time flow opened, or most recent activity and the instructions comprise at least a destination IP address of the selected one of the plurality of servers; and
providing the instructions to the data flow segment.
0 Assignments
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.
-
Citations
25 Claims
-
1. A server array controller apparatus, comprising:
a processor coupled to hardware logic of a data flow segment and a memory of a control segment, the hardware logic of the data flow segment configured to be capable of implementing; receiving a plurality of Internet Protocol (IP) data packets from a client computing device requesting a resource; categorizing groups of one or more of the plurality of IP data packets into one or more data flows based on a flow signature, wherein the flow signature includes a timestamp; determining whether one of the IP data packets is associated with an existing connection to the requested resource; when the IP data packet is associated with an existing connection to the requested resource, directing the IP data packet to the requested resource; and when the IP data packet is not associated with an existing connection to the requested resource, sending a request for instructions for directing the IP data packet to the control segment, receiving instructions for directing the IP data packet from the control segment, and directing the IP data packet based on the instructions, wherein the processor is configured to be capable of executing programmed instructions stored in the memory of the control segment comprising; receiving the request for instructions for directing the IP data packet from the data flow segment; selecting one of a plurality of servers hosting the requested resource based on one or more load balancing factors and generating instructions for directing the IP data packet to the selected server, wherein the one or more load balancing factors comprise one or more of most active flow, least active flow, time flow opened, or most recent activity and the instructions comprise at least a destination IP address of the selected one of the plurality of servers; and providing the instructions to the data flow segment. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A method for directing communications over a network, comprising:
-
receiving, with a hardware logic data flow segment of a server array controller, a plurality of Internet Protocol (IP) data packets from a client computing device requesting a resource; categorizing groups of one or more of the plurality of IP data packets into one or more data flows based on a flow signature, wherein the flow signature includes a timestamp; determining, with the data flow segment, whether one of the IP data packets is associated with an existing connection to the requested resource; when the IP data packet is associated with an existing connection to the requested resource, directing, with the data flow segment, the IP data packet to the requested resource; and when the IP data packet is not associated with an existing connection to the requested resource; sending, with the data flow segment, a request for instructions for directing the IP data packet to a control segment of the server array controller; selecting, with the control segment, one of a plurality of servers hosting the requested resource based on one or more load balancing factors and generating instructions for directing the IP data packet to the selected server, wherein the one or more load balancing factors comprise one or more of most active flow, least active flow, time flow opened, or most recent activity and the instructions comprise at least a destination IP address of the selected one of the plurality of servers; providing, with the control segment, the instructions to the IP data flow segment; and directing, with the data flow segment, in response to receiving the instructions, the IP data packet to the one of the plurality of resources based on the instructions. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium having stored thereon instructions for directing communications over a network comprising machine executable code which when executed by at least one processor, causes the processor to perform steps comprising:
-
receiving, from a hardware logic data flow segment of a server array controller, a request for instructions for directing an Internet Protocol (IP) data packet received from a client device requesting a resource, wherein the IP data packet is not associated with an existing connection to the requested resource and the data flow segment is further configured to receive a plurality of IP data packets and categorize groups of one of more of the plurality of IP data packets into one or more data flows based on a flow signature; selecting, in response to receiving the request for instructions for directing the IP data packet, one of a plurality of servers hosting the requested resource based on one or more load balancing factors and generating instructions for directing the IP data packet to the selected server, wherein the one or more load balancing factors comprise one or more of most active flow, least active flow, time flow opened, or most recent activity and the instructions comprise at least a destination IP address of the selected one of the plurality of servers; and providing the instructions to the data flow segment, wherein the data flow segment is configured to direct the IP data packet to the one of the plurality of resources based on the instructions. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A system for directing communications over a network, comprising:
one or more server array controllers each comprising a processor coupled to configurable hardware logic of one or more data flow segments and a memory of each of a plurality of control segments, the configurable hardware logic of the data flow segments configured to be capable of implementing; receiving a plurality of Internet Protocol (IP) data packets from a client computing device requesting a resource; categorizing groups of one or more of the plurality of IP data packets into one or more data flows based on a flow signature, wherein the flow signature includes a timestamp; determining whether one of the IP data packets is associated with an existing connection to the requested resource; when the IP data packet is associated with an existing connection to the requested resource, directing the IP data packet to the requested resource; and when the IP data packet is not associated with an existing connection to the requested resource, sending a request for instructions for directing the IP data packet to at least one of the plurality of control segments of the one or more server array controllers, receiving instructions for directing the IP data packet from at least one of the plurality of control segments, and directing the IP data packet based on the instructions, wherein the processor is configured to be capable of executing programmed instructions stored in the memory of each of the control segments comprising; selecting, in response to receiving a request from one or more of the data flow segments, one of a plurality of servers hosting the requested resource based on one or more load balancing factors and generating instructions for directing the IP data packet to the selected server, wherein the one or more load balancing factors comprise one or more of most active flow, least active flow, time flow opened, or most recent activity and the instructions comprise at least a destination IP address of the selected one of the plurality of servers; and providing the instructions to the requesting data flow segment. - View Dependent Claims (21, 22, 23, 24, 25)
Specification