METHODS OF FORWARDING/RECEIVING DATA PACKETS USING UNICAST AND/OR MULTICAST COMMUNICATIONS AND RELATED LOAD BALANCERS AND SERVERS
First Claim
1. A method of forwarding data packets to a plurality of servers with each server being identified by a respective server identification (ID), the method comprising:
- defining a mapping table including a plurality of bucket identifications (IDs) identifying a respective plurality of buckets, wherein the mapping table maps a first of the plurality of bucket IDs to a first of the server IDs for a first of the plurality of servers as a current server ID for the first bucket ID, wherein the mapping table maps a second of the plurality of bucket IDs to a second of the server IDs for a second of the plurality of servers as a current server ID for the second bucket ID, and wherein the mapping table maps the first bucket ID to a third of the plurality of server IDs for a third of the plurality of servers as an old server ID for the first bucket ID;
receiving a data packet of a data flow wherein the data packet includes information for the data flow;
computing a bucket ID for the data packet as a function of the information for the data flow, wherein the bucket ID for the data flow is computed as the first bucket ID; and
responsive to computing the first bucket ID as the bucket ID for the data flow and responsive to the mapping table mapping the first bucket ID to the to the first server ID as the current server ID and to the third server ID as the old server ID, transmitting the data packet to the first server and/or to the third server using the first server ID and/or using the third server ID from the mapping table.
1 Assignment
0 Petitions
Accused Products
Abstract
Data packets may be forwarded to servers identified by respective server IDs. A mapping table includes bucket IDs identifying respective buckets. The mapping table maps: a first bucket ID to a first server ID as a current server ID; a second bucket ID to a second server IDs as a current server ID; and the first bucket ID to a third server ID as an old server ID. A data packet of a data flow may be received, and a bucket ID may be computed for the data packet. Responsive to computing the first bucket ID as the bucket ID for the data flow and responsive to the mapping table mapping the first bucket ID to the to the first server ID as the current server ID and to the third server ID as the old server ID, the data packet may be transmitted to the first server and/or to the third server.
145 Citations
24 Claims
-
1. A method of forwarding data packets to a plurality of servers with each server being identified by a respective server identification (ID), the method comprising:
-
defining a mapping table including a plurality of bucket identifications (IDs) identifying a respective plurality of buckets, wherein the mapping table maps a first of the plurality of bucket IDs to a first of the server IDs for a first of the plurality of servers as a current server ID for the first bucket ID, wherein the mapping table maps a second of the plurality of bucket IDs to a second of the server IDs for a second of the plurality of servers as a current server ID for the second bucket ID, and wherein the mapping table maps the first bucket ID to a third of the plurality of server IDs for a third of the plurality of servers as an old server ID for the first bucket ID; receiving a data packet of a data flow wherein the data packet includes information for the data flow; computing a bucket ID for the data packet as a function of the information for the data flow, wherein the bucket ID for the data flow is computed as the first bucket ID; and responsive to computing the first bucket ID as the bucket ID for the data flow and responsive to the mapping table mapping the first bucket ID to the to the first server ID as the current server ID and to the third server ID as the old server ID, transmitting the data packet to the first server and/or to the third server using the first server ID and/or using the third server ID from the mapping table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A load balancer configured to forward data packets to a plurality of servers with each server being identified by a respective server identification (ID), the load balancer comprising:
-
a network interface configured to receive data packets from an outside network; a server interface configured to forward data packets to the servers; memory configured to store a mapping table including a plurality of bucket identifications (IDs) identifying a respective plurality of buckets, wherein the mapping table maps a first of the plurality of bucket IDs to a first of the server IDs for a first of the plurality of servers as a current server ID for the first bucket ID, wherein the mapping table maps a second of the plurality of bucket IDs to a second of the server IDs for a second of the plurality of servers as a current server ID for the second bucket ID, and wherein the mapping table maps the first bucket ID to a third of the plurality of server IDs for a third of the plurality of servers as an old server ID for the first bucket ID; and a processor coupled to the network interface, to the server interface, and to the memory, the processor being configured to, receive a data packet of a data flow through the network interface wherein the data packet includes information for the data flow, compute a bucket ID for the data packet as a function of the information for the data flow, wherein the bucket ID for the data flow is computed as the first bucket ID, and transmit the data packet through the server interface to the first server and/or to the third server using the first server ID and/or using the third server ID from the mapping table responsive to computing the first bucket ID as the bucket ID for the data flow and responsive to the mapping table mapping the first bucket ID to the to the first server ID as the current server ID and to the third server ID as the old server ID.
-
-
11. A method of processing data packets at a server, the method comprising:
-
defining a server flow table for the server, the server flow table including data flow identifications for data flows being processed by the server; receiving a data packet of a data flow at the server wherein the data packet includes information for the data flow; responsive to the data packet being an initial data packet of the data flow for the server, adding a data flow identification of the data flow to the server flow table; and responsive to the data packet being an initial data packet of the data flow for the server, processing the data packet at the server. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A server configured to process data packets, the server comprising:
-
a load balancer interface configured to receive data packets from a load balancer; a memory configured to store a server flow table for the server, the server flow table including data flow identifications for data flows being processed by the server; and a processor coupled to the load balancer interface and to the memory, wherein the processor is configured to, receive a data packet of a data flow through the load balancer interface, wherein the data packet includes information for the data flow, add a data flow identification of the data flow to the server flow table in memory responsive to the data packet being an initial data packet of the data flow for the server, and process the data packet responsive to the data packet being an initial data packet of the data flow for the server.
-
Specification