Server load balancing system
First Claim
Patent Images
1. A load balancing server for balancing real servers in an asymmetric web farm, the load balancing server comprising:
- a processor;
memory;
computer code loaded into the memory for performing functions of the load balancing server;
wherein the load balancing server;
receives a client request as a sequence of client TCP packets;
translates the sequence of client TCP packets to a server in a set of the real servers in the asymmetric web farm; and
translates a response of the real server as a sequence of server TCP packets back to the client,wherein a service for the balancing and translating of the client TCP packets and the real server TCP packets is installed and running within a kernel space of the load balancing server,wherein a real server from the set of real servers that processes the client request is chosen based on contents of the client TCP packets and based on network conditions,wherein the load balancing server calculates a checksum for a header of the client TCP packet;
calculates a checksum for a header of the translated TCP packet having a new destination address;
generates a new checksum for the translated TCP packet, the translated TCP packet including a header and payload, the new checksum being generated by linear operations on the checksum for the client TCP packet, the checksum for the header of the client TCP packet and a checksum for the header of the translated TCP packet;
wherein the validity of the TCP packet, before and after translation, is preserved without additional verification; and
wherein each of the real servers services a specific class of the client requests based on file type of the client requests.
12 Assignments
0 Petitions
Accused Products
Abstract
A system for maximizing the efficiency of a load balancing server for an asymmetric web farm utilizes a TCP stack and data packets to send and receive client service requests. An internal buffer enables each web server in the web farm to balance their loading based on the contents of the client service request. Data switching between the address portion of the user space and the address portion of the kernel space within the load balancing server is eliminated.
74 Citations
24 Claims
-
1. A load balancing server for balancing real servers in an asymmetric web farm, the load balancing server comprising:
-
a processor; memory; computer code loaded into the memory for performing functions of the load balancing server; wherein the load balancing server; receives a client request as a sequence of client TCP packets; translates the sequence of client TCP packets to a server in a set of the real servers in the asymmetric web farm; and translates a response of the real server as a sequence of server TCP packets back to the client, wherein a service for the balancing and translating of the client TCP packets and the real server TCP packets is installed and running within a kernel space of the load balancing server, wherein a real server from the set of real servers that processes the client request is chosen based on contents of the client TCP packets and based on network conditions, wherein the load balancing server calculates a checksum for a header of the client TCP packet; calculates a checksum for a header of the translated TCP packet having a new destination address; generates a new checksum for the translated TCP packet, the translated TCP packet including a header and payload, the new checksum being generated by linear operations on the checksum for the client TCP packet, the checksum for the header of the client TCP packet and a checksum for the header of the translated TCP packet; wherein the validity of the TCP packet, before and after translation, is preserved without additional verification; and wherein each of the real servers services a specific class of the client requests based on file type of the client requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer storage medium having computer executable program logic stored thereon, the computer executable program logic executing on a processor for balancing load of real servers in a web farm, the computer program logic comprising:
-
(a) computer program code means for receiving a client request as a sequence of client TCP packets; (b) computer program code means for translating the sequence of the client TCP packets to a server in a set of the real servers in the web farm; and (c) computer program code means for translating a response of the real server as a sequence of the real server TCP packets back to the client, wherein a real server from the set of real servers that processes the client request is chosen based on contents of the client TCP packets and based on network conditions, wherein the load balancing server calculates a checksum for a header of the client TCP packet; calculates a checksum for a header of the translated TCP packet having a new destination address; generates a new checksum for the translated TCP packet, the translated TCP packet including a header and payload, the new checksum being generated by linear operations on the checksum for the client TCP packet, the checksum for the header of the client TCP packet and a checksum for the header of the translated TCP packet; wherein the validity of the TCP packet, before and after translation, is preserved without additional verification; and wherein each of the real servers services a specific class of the client requests based on file type of the client requests. - View Dependent Claims (18)
-
-
19. A method for balancing load of real servers in an asymmetric web farm, comprising:
-
receiving a client request as a sequence of client TCP packets; translating the sequence of client TCP packets to a server in a set of the real servers in the asymmetric web farm; and translating a response of the real server as a sequence of the real server TCP packets back to the client, wherein a service for balancing and translating of the client TCP packets and the real server TCP packets is installed and running within a kernel space of a load balancing server, wherein a real server from the set of real servers that processes the client request is chosen based on contents of the client TCP packets and based on network conditions; calculating a checksum for a header of the client TCP packet; calculating a checksum for a header of the translated TCP packet having a new destination address; generating a new checksum for the translated TCP packet, the translated TCP packet including a header and payload, the new checksum being generated by linear operations on the checksum for the client TCP packet, the checksum for the header of the client TCP packet and a checksum for the header of the translated TCP packet; wherein the validity of the TCP packet, before and after translation, is preserved without additional verification; and wherein each of the real servers services a specific class of the client requests based on file type of the client requests.
-
-
20. A load balancing server for balancing real servers in an asymmetric web farm, the load balancing server comprising:
-
a processor; memory; computer code loaded into the memory for performing functions of the load balancing server; a load balancing module; and a TCP packet translating module that receives a client request as a sequence of client TCP packets, translates the sequence of the client TCP packets to a real server of the asymmetric web farm, and translates a response of the real server as a sequence of the real server TCP packets back to the client, wherein a real server is chosen from a set of real servers of the asymmetric web farm based on network conditions, wherein the load balancing server calculates a checksum for a header of the client TCP packet; calculates a checksum for a header of the translated TCP packet having a new destination address; generates a new checksum for the translated TCP packet, the translated TCP packet including a header and payload, the new checksum being generated by linear operations on the checksum for the client TCP packet, the checksum for the header of the client TCP packet and a checksum for the header of the translated TCP packet; wherein the validity of the TCP packet, before and after translation, is preserved without additional verification. - View Dependent Claims (21)
-
-
22. A load balancing server for balancing real servers in an asymmetric web farm, wherein the load balancing server comprises:
-
a processor; memory; computer code loaded into the memory for performing functions of the load balancing server; wherein the load balancing server; receives a client response as a sequence of client TCP packets; translates the sequence of client TCP packets to a server in a set of the real servers in the asymmetric web farm; and translates a response of the real server as a sequence of server TCP packets back to the client, wherein a service for the balancing and translating of the client TCP packets and the real server TCP packets is installed and running within a kernel space of the load balancing server, and wherein some clients are assigned higher priority for responding to their client requests based on client IP addresses, wherein servers that respond to the client requests are chosen based on network conditions, and wherein the load balancing server calculates a checksum for a header of the client TCP packet; calculates a checksum for a header of the translated TCP packet having a new destination address; generates a new checksum for the translated TCP packet, the translated TCP packet including a header and payload, the new checksum being generated by linear operations on the checksum for the client TCP packet, the checksum for the headed of the client TCP packet and a checksum for the header of the translated TCP packet; wherein the validity of the TCP packet, before and after translation, is preserved without additional verification.
-
-
23. A load balancing server for balancing real servers in a farm of server applications, wherein the load balancing server comprises:
-
a processor; memory; computer code loaded into the memory for performing functions of the load balancing server, wherein the load balancing server; receives a client request as a sequence of client TCP packets; translates the sequence of client TCP packets to the real server applications in the farm; and translates a response of the real server applications as a sequence of TCP packets back to the client, wherien the load balancing server calculates a checksum for a header of the client TCP packet; calculates a checksum for a header of the translated TCP packet having a new destination address; generates a new checksum for the translated TCP packet, the translated TCP packet including a header and payload, the new checksum being generated by linear operations on the checksum for the client TCP packet, the checksum for the header of the client TCP packet and a checksum for the header of the translated TCP packet; wherein the validity of the TCP packet, before and after translation, is preserved without additional verification; wherein a real server application from the set of real server applications that processes the client request is chosen based on requested service in message contents of the client request, wherein each of the real server applications services a specific class of the client requests that is selected based on the message contents, and generates responses to the incoming client requests. - View Dependent Claims (24)
-
Specification