IP Library Granted Patent US 9,083,715
Granted Patent B2
US 9,083,715 · App. 12/817,893 · Granted Jul 14, 2015

Method and apparatus for load balancing based on packet header content

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,083,715
App. No.
12/817,893
Granted
Jul 14, 2015
Kind
B2
Abstract

A technique to load balance network packet traffic using content switching is provided. Packets are routed to a particular server or otherwise processed based on the HTTP header content of the packets. In an embodiment, the HTTP header contents of the packets are used in such processing. Content switching decisions are based on any field in the HTTP header, including both known and unknown fields. A plurality of content switching policies is provided. A policy includes a set of rules and actions associated with these rules. Complex nested rules are defined. The evaluation of these nested rules is simplified by converting the nested rules in to their sum of products or minterm representations, and then a bit mask technique is used in conjunction with the minterm representations to determine which set of complex rules in a policy is valid and thus require the corresponding content switching action.

Claims (32)

1. A network device comprising:

a processor; and

a non-transitory computer readable medium having stored thereon instructions that, when executed by the processor, cause the processor to:

receive a packet having a HyperText Transfer Protocol (HTTP) header that includes one or more of a hostname field, a uniform resource locator (URL) field, or a cookie field; and

select, using a load balancing algorithm, a target server from among a plurality of servers for servicing the packet,

wherein the load balancing algorithm distributes load among the plurality of servers,

wherein, when selecting the target server, the load balancing algorithm takes into account one or more HTTP fields in the HTTP header that are different from the hostname field, the URL field, and the cookie field, and

wherein the one or more HTTP fields include an undefined HTTP field that has no specific requirement as to its content or format and is generally available for insertion of any type of user-defined information deemed useful by users, thereby enabling the load balancing algorithm to be based on said user-defined information.

2. The network device of claim 1 wherein, when selecting the target server, the load balancing algorithm further takes into account the hostname field, the URL field, or the cookie field.

3. The network device of claim 2 wherein the hostname field, the URL field, and the cookie field include content that is defined by one or more standards or protocols.

4. The network device of claim 1 wherein the network device is a switch.

5. The network device of claim 1 wherein the one or more HTTP fields further include a HTTP method type field.

6. The network device of claim 5 wherein the HTTP method type field includes a method string that specifies one or more of: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, or CONNECT.

7. A method comprising:

receiving, by a network device, a packet having a HTTP header that includes one or more of a hostname field, a uniform resource locator (URL) field, or a cookie field; and

selecting, by the network device using a load balancing algorithm, a target server from among a plurality of servers for servicing the packet, wherein the load balancing algorithm distributes load among the plurality of servers,

wherein, when selecting the target server, the load balancing algorithm takes into account one or more HTTP fields in the HTTP header that are different from the hostname field, the URL field, and the cookie field, and

wherein the one or more HTTP fields include an undefined HTTP field that has no specific requirement as to its content or format and is generally available for insertion of any type of user-defined information deemed useful by users, thereby enabling the load balancing algorithm to be based on said user-defined information.

8. The method of claim 7 wherein, when selecting the target server, the load balancing algorithm further takes into account the hostname field, the URL field, or the cookie field.

9. The method of claim 8 wherein the hostname field, the URL field, and the cookie field include content that is defined by one or more standards or protocols.

10. The method of claim 7 wherein the network device is a switch.

11. The method of claim 7 wherein the one or more HTTP fields further include a HTTP method type field.

12. The method of claim 11 wherein the HTTP method type field includes a method string that specifies one or more of: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, or CONNECT.

13. A non-transitory computer readable medium having stored thereon instructions that, when executed by a processor of a network device, cause the processor to:

receive a packet having a HTTP header that includes one or more of a hostname field, a uniform resource locator (URL) field, or a cookie field; and

select, using a load balancing algorithm, a target server from among a plurality of servers for servicing the packet, wherein the load balancing algorithm distributes load among the plurality of servers,

wherein, when selecting the target server, the load balancing algorithm takes into account one or more HTTP fields in the HTTP header that are different from the hostname field, the URL field, and the cookie field, and

wherein the one or more HTTP fields include an undefined HTTP field that has no specific requirement as to its content or format and is generally available for insertion of any type of user-defined information deemed useful by users, thereby enabling the load balancing algorithm to be based on said user-defined information.

14. The non-transitory computer readable medium of claim 13 wherein, when selecting the target server, the load balancing algorithm further takes into account the hostname field, the URL field, or the cookie field.

15. The non-transitory computer readable medium of claim 13 wherein the network device is a switch.

16. The non-transitory computer readable medium of claim 13 wherein the one or more HTTP fields further include a HTTP method type field.

17. The non-transitory computer readable medium of claim 16 wherein the HTTP method type field includes a method string that specifies one or more of: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, or CONNECT.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2011
From: GUNTURU, ANILKUMAR
To: FOUNDRY NETWORKS, INC.
Reel/Frame 026227/0574 →
CHANGE OF NAME Recorded Aug 2, 2010
From: FOUNDRY NETWORKS, INC.
To: FOUNDRY NETWORKS, LLC
Reel/Frame 024777/0291 →