Efficient IP load-balancing traffic distribution using ternary CAMs
First Claim
1. A method of distributing packets among a plurality of cache systems, the method comprising:
- configuring a content addressable memory (CAM) to indicate distribution of received packets based on a load balancing technique to a plurality of cache systems that each spoof a destination indicated by the received packets;
receiving a packet;
inputting at least a portion of the packet into CAM; and
obtaining a result from the CAM to indicate whether to redirect the received packet to a selected cache system and to indicate to which cache system selected from among the plurality of cache systems the received packet is to be redirected if the CAM also indicates that the received packet is to be redirected;
redirecting the received packet to the selected cache system when the CAM indicates to redirect the received packet; and
sending the received packet to a destination indicated by the received packet when the CAM does not indicate to redirect the received packet.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is an apparatus and method for distributing traffic to one or more selected cache systems or servers. In general terms, a content addressable memory (e.g., a TCAM) is utilized to distribute traffic among a plurality of cache systems or servers. The content addressable memory is populated with a plurality of entries. Each entry within the content addressable memory generally indicates an action to be performed on a packet, such as to redirect the packet or to forward the packet to its original destination. When the action indicated by the content addressable memory is to redirect the packet, the content addressable memory also indicates where (e.g., to which cache system) to redirect the packet.
146 Citations
37 Claims
-
1. A method of distributing packets among a plurality of cache systems, the method comprising:
-
configuring a content addressable memory (CAM) to indicate distribution of received packets based on a load balancing technique to a plurality of cache systems that each spoof a destination indicated by the received packets; receiving a packet; inputting at least a portion of the packet into CAM; and obtaining a result from the CAM to indicate whether to redirect the received packet to a selected cache system and to indicate to which cache system selected from among the plurality of cache systems the received packet is to be redirected if the CAM also indicates that the received packet is to be redirected; redirecting the received packet to the selected cache system when the CAM indicates to redirect the received packet; and sending the received packet to a destination indicated by the received packet when the CAM does not indicate to redirect the received packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
- 9. A method for facilitating traffic distribution among a plurality of devices, the method comprising generating a plurality of entries within a content addressable memory, each entry including a set of bit values that correspond to at least a portion of a packet and each entry including one or more destination fields indicating where to send a packet that matches the entry'"'"'s set of bit values and indicating whether to redirect the packet from a destination indicated by the packet, wherein the CAM is configured to distribute received packets to the plurality of cache systems based on a load balancing technique.
-
14. A computer system operable to distribute packets among a plurality of cache systems, comprising:
-
a first memory; a content addressable memory; and a processor coupled to the first memory and the content addressable memory, wherein at least one of the first memory and the processor are adapted to provide; configuring a content addressable memory (CAM) to indicate distribution of received packets based on a load balancing technique to a plurality of cache systems that each spoof a destination indicated by the received packets; receiving a packet; inputting at least a portion of the packet into the content addressable memory; and obtaining result from the content addressable memory (CAM) to indicate whether to redirect the received packet to a selected cache system and to indicate to which cache system selected from among the plurality of cache systems the received packet is to be redirected if the CAM also indicates that the received packet is to be redirected, wherein the CAM is configured to distribute received packets to the plurality of cache systems based on a load balancing technique; redirecting the received packet to the selected cache system when the CAM indicates to redirect the received packet; and sending the received packet to a destination indicated by the received packet when the CAM does not indicate to redirect the received packet. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer system operable to facilitate traffic distribution among a plurality of cache systems, comprising:
-
a first memory; a content addressable memory; and a processor coupled to the first memory and the content addressable memory (CAM), wherein at least one of the first memory and the processor are adapted to provide generating a plurality of entries within the content addressable memory, each entry including a set of bit values that correspond to at least a portion of a packet and each entry including one or more destination fields indicating where to send a packet that matches the entry'"'"'s set of bit values and indicating whether to redirect the packet from a destination indicated by the packet, wherein the CAM is configured to distribute received packets to the plurality of cache systems based on a load balancing technique. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A computer program product for distributing traffic, the computer program product comprising:
-
at least one computer readable medium; computer program instructions stored within the at least one computer readable product configured to cause a cache system to; configure a content addressable memory (CAM) to indicate distribution of received packets based on a load balancing technique to a plurality of cache systems that each spoof a destination indicated by the received packets; receive a packet; input at least a portion of the packet into a content addressable memory; and obtain a result from the content addressable memory (CAM) to indicate whether to redirect the received packet to a selected cache system and to indicate to which cache system selected from among the plurality of cache systems the received packet is to be redirected if the CAM also indicates that the received packet is to be redirected, wherein the CAM is configured to distribute received packets to the plurality of cache systems based on a load balancing technique; redirect the received packet to the selected cache system when the CAM indicates to redirect the received packet; and send the received packet to a destination indicated by the received packet when the CAM does not indicate to redirect the received packet. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37)
-
-
28. A computer program product for distributing traffic, the computer program product comprising:
-
at least one computer readable medium; computer program instructions stored within the at least one computer readable product configured to generate a plurality of entries within a content addressable memory, each entry including a set of bit values that correspond to at least a portion of a packet and each entry including one or more destination fields indicating where to send a packet that matches the entry'"'"'s set of bit values and indicating whether to redirect the packet from a destination indicated by the packet, wherein the CAM is configured to distribute received packets to a plurality of devices based on a load balancing technique.
-
-
29. An apparatus for distributing traffic comprising:
-
a means for configuring a content addressable memory (CAM) to indicate distribution of received packets based on a load balancing technique to a plurality of cache systems that each spoof a destination indicated by the received packets; a means for receiving a packet; a means for inputting at least a portion of the packet into a content addressable memory; and a means for obtaining a result from the content addressable memory to indicate whether to redirect the received packet to a selected cache system or to forward the received packet to a destination specified by the received packet and to indicate to which cache system selected from among the plurality of cache systems the received packet is to be redirected if the CAM also indicates that the received packet is to be redirected, wherein the CAM is configured to distribute received packets to the plurality of cache systems based on a load balancing technique; and a means for sending the received packet to the indicated cache system.
-
-
30. An apparatus for distributing traffic comprising a means for generating plurality of entries within a content addressable memory, each entry including a set of bit values that correspond to at least a portion of a packet and each entry including one or more destination fields indicating where to send a packet that matches the entry'"'"'s set of bit values and indicating whether to redirect the packet from a destination indicated by the packet, wherein the CAM is configured to distribute received packets to the plurality of cache systems based on a load balancing technique.
Specification