Session-less load balancing of client traffic across servers in a server group
First Claim
1. A method of forwarding incoming client traffic to servers in a group of servers, the method comprising:
- receiving a packet from a client system, the packet including a packet header with a destination MAC (Media Access Control) address field, a destination IP (Internet Protocol) address field, and a destination service port field;
providing a single switch device with a single packet forwarding table for providing load balancing across servers in a server group, the packet forwarding table having a plurality of table entries, each table entry mapping a hash value to a server in a server group;
computing, by the single switch device, a hash value from a combination of data in the destination MAC address, destination IP address, and destination service port fields of the packet header of the received packet;
searching, by the single switch device, the single packet forwarding table to find a table entry with a hash value that matches the computed hash value and to identify, from the table entry, the server in the server group to which the matching hash value maps; and
forwarding sessionlessly, by the single switch device, the packet to the identified server.
4 Assignments
0 Petitions
Accused Products
Abstract
A switch device includes a packet forwarding table for providing load balancing across servers in a server group. Each table entry maps a hash value to a server in the server group. A hash value can be computed from the destination MAC address, destination IP address, and destination service port in the header of a received packet. The packet forwarding table is searched to find an entry with a hash value that matches the computed hash value and to identify the server to which the matching hash value maps. The switch device forwards the packet to the identified server. Implementing load-balancing decisions in hardware enables packet switching at the line rate of the switch ports. In addition, the hardware-based load balancing performed by the switch device eliminates session tables and the memory to store them, enabling the switch device to handle an unlimited number of client connections.
22 Citations
36 Claims
-
1. A method of forwarding incoming client traffic to servers in a group of servers, the method comprising:
-
receiving a packet from a client system, the packet including a packet header with a destination MAC (Media Access Control) address field, a destination IP (Internet Protocol) address field, and a destination service port field; providing a single switch device with a single packet forwarding table for providing load balancing across servers in a server group, the packet forwarding table having a plurality of table entries, each table entry mapping a hash value to a server in a server group; computing, by the single switch device, a hash value from a combination of data in the destination MAC address, destination IP address, and destination service port fields of the packet header of the received packet; searching, by the single switch device, the single packet forwarding table to find a table entry with a hash value that matches the computed hash value and to identify, from the table entry, the server in the server group to which the matching hash value maps; and forwarding sessionlessly, by the single switch device, the packet to the identified server. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of forwarding incoming client traffic to servers in a group of servers, the method comprising:
-
providing a single switch device with a packet forwarding table for providing load balancing across servers in a server group, the packet forwarding table having a plurality of table entries, each table entry mapping a hash value to a server in the server group; assigning a virtual IP address and a virtual MAC address to each real server in a real server group, wherein the assigned virtual IP address is the same virtual IP address for each real server in the real server group and the assigned virtual MAC address is the same virtual MAC address for each real server in the real server group; receiving a packet from a client system addressed to the virtual IP address and the virtual MAC address; computing, by the single switch device, a hash value from a source address in a packet header of the received packet; searching, by the single switch device, the packet forwarding table to find a table entry with a hash value that matches the computed hash value and to identify, from the table entry, the server in the server group to which the matching hash value maps; and forwarding sessionlessly, by the single switch device, the packet to the identified server. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A switch device comprising:
-
first and second ports, a first port receiving a packet from a client system, the packet including a packet header with a destination MAC (Media Access Control) address field, a destination IP (Internet Protocol) address field, and a destination service port field; a packet forwarding table for providing load balancing across servers in a server group, the packet forwarding table having a plurality of table entries, each table entry mapping a hash value to a server in the server group; and a frame processor configured to compute a hash value from a combination of data in the destination MAC address, destination IP address, and destination service port fields of the packet header of the received packet, search the packet forwarding table to find a table entry with a hash value that matches the computed hash value and to identify the server in the server group to which the matching hash value maps, and forward sessionlessly the packet through the second port to the identified server in the server group. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A switch device, comprising:
-
first and second ports, a first port receiving a packet from a client system addressed to a virtual IP address and a virtual MAC address, the virtual IP address and the virtual MAC address being assigned to each real server in a real server group with which the switch device is in communication, the assigned virtual IP address being the same virtual IP address for each real server in the real server group and the assigned virtual MAC address being the same virtual MAC address for each real server in the real server group; a packet forwarding table for providing load balancing across servers in a server group, the packet forwarding table having a plurality of table entries, each table entry mapping a hash value to a server in a server group; and a frame processor configured to compute a hash value from a source address in a packet header of the received packet, search the packet forwarding table to find a table entry with a hash value that matches the computed hash value and to identify the server in the server group to which the matching hash value maps, and forward sessionlessly the packet through the second port to the identified server in the server group. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification