Method and apparatus for content-aware web switching
First Claim
1. A method comprising:
- applying a particular label to packets comprising a TCP/HTTP connection from a forward proxy in front of an enterprise network, to a reverse proxy in front of a server farm network, said enterprise network having at least one client, including the steps of;
forming a communication channel between the forward proxy and the reverse proxy;
sending upon said communication channel a mapping of at least one MPLS label from the reverse proxy to the forward proxy; and
said forward proxy;
inspecting each request received from each client from said at least one client; and
assigning the particular label to all outgoing packets comprising the TCP/HTTP connection to an appropriate server in the server farm network;
said reverse proxy;
reading said particular label on all incoming packets; and
switching said incoming packets to the appropriate server within said server farm, thereby identifying requested content which is otherwise performed after terminating the TCP/HTTP connection.
1 Assignment
0 Petitions
Accused Products
Abstract
This invention provides methods and apparatus for web switching without connection termination while providing content routing functionality. Content-aware web switches terminate incoming TCP connections and inspect the HTTP header to recognize the URL (content) being requested from a web server farm. This invention maps application layer information (URLs) to MPLS labels. This allows a standard MPLS switch to provide web switching functionality without terminating TCP connections. In addition to content routing, this method is applied for client session affinity, server load balancing and service differentiation. This invention also relates to using TCP port numbers instead of MPLS labels to achieve web-switching functionality through the use of a TCP router that translates IP address and port numbers.
275 Citations
54 Claims
-
1. A method comprising:
applying a particular label to packets comprising a TCP/HTTP connection from a forward proxy in front of an enterprise network, to a reverse proxy in front of a server farm network, said enterprise network having at least one client, including the steps of;
forming a communication channel between the forward proxy and the reverse proxy;
sending upon said communication channel a mapping of at least one MPLS label from the reverse proxy to the forward proxy; and
said forward proxy;
inspecting each request received from each client from said at least one client; and
assigning the particular label to all outgoing packets comprising the TCP/HTTP connection to an appropriate server in the server farm network;
said reverse proxy;
reading said particular label on all incoming packets; and
switching said incoming packets to the appropriate server within said server farm, thereby identifying requested content which is otherwise performed after terminating the TCP/HTTP connection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46)
-
14. An apparatus comprising:
means for applying a particular label to packets comprising a TCP/HTTP connection from a forward proxy in front of an enterprise network, to a reverse proxy in front of a server farm network, said enterprise network having at least one client, said means for applying including;
means for forming a communication channel between the forward proxy and the reverse proxy;
means for sending upon said communication channel a mapping of at least one MPLS label from the reverse proxy to the forward proxy; and
said forward proxy having;
means for inspecting each request received from each client from said at least one client; and
means for assigning the particular label to all outgoing packets comprising the TCP/HTTP connection to an appropriate server in the server farm network;
said reverse proxy having;
means for reading said particular label on all incoming packets; and
means for switching said incoming packets to the appropriate server within said server farm, thereby identifying requested content which is otherwise identified after terminating the TCP/HTTP connection. - View Dependent Claims (52)
-
15. A method comprising:
applying a particular label to packets comprising a TCP/HTTP connection from a forward proxy in front of an enterprise network, to a reverse proxy in front of a server farm network, said enterprise network having at least one client, including the steps of;
forming a communication channel between the forward proxy and the reverse proxy;
sending upon said communication channel a mapping of at least one MPLS label from the reverse proxy to the forward proxy; and
said forward proxy;
inspecting each request received from each client from said at least one client; and
assigning the particular label to all outgoing packets comprising the TCP/HTTP connection to an appropriate server in the server farm network. - View Dependent Claims (47)
-
16. A method comprising:
-
forming a communication channel between a forward proxy and a reverse proxy, said forward proxy being in front of an enterprise network, and said reverse proxy being in front of a server farm network, the reverse proxy reading a particular label on all incoming packets, and switching said incoming packets to an appropriate server within the server farm network, wherein the forward proxy;
applied the particular label to packets comprising a TCP/HTTP connection from the forward proxy to the reverse proxy, said enterprise network having at least one client, sent upon said communication channel a mapping of at least one MPLS label from the reverse proxy to the forward proxy;
inspected each request received from each client from said at least one client; and
assigned the particular label to all outgoing packets comprising the TCP/HTTP connection to the appropriate server in the server farm network, thereby identifying requested content which is otherwise identified after terminating the TCP/HTTP connection. - View Dependent Claims (48)
-
-
17. A method comprising:
applying a specific port to packets comprising a Web request on a TCP/HTTP connection from a forward proxy in front of an enterprise network, said enterprise network having at least one client, to a reverse proxy in front of a server farm network, including the steps of;
forming a communication channel between the forward proxy and the reverse proxy;
sending upon said communication channel a mapping of at least on TCP Port number from the reverse proxy to the forward proxy; and
said forward proxy;
inspecting each request received from each client from said at least one client; and
assigning said TCP port number to all outgoing packets comprising the TCP/HTTP connection to an appropriate server in the server farm network;
said reverse proxy;
reading said TCP port number on all incoming packets; and
replacing the TCP port number and IP address of the incoming packet with a port number of HTTP server and IP address of an appropriate server, thereby identifying requested content which is otherwise identified after terminating the TCP/HTTP connection. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 49)
-
27. A method comprising:
using MPLS labels for web switching, including the steps of;
obtaining a set of labels at a forward proxy for use with client Web requests;
applying a stack of said labels on packets comprising said client Web requests at said forward proxy; and
switching said packets at the reverse proxy based on said label stack. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 50)
-
35. An apparatus serving as a forward proxy comprising:
-
an HTTP proxy module which receives client Web requests, and can make connections to Web servers on behalf of clients;
a request inspector module to inspect said requests;
a label applicator module which applies a label stack to packets belonging to said requests in forming labeled requests; and
a label map which contains a mapping of client request to label or TCP port number;
a label communicator module which receives said mapping from a reverse proxy and stores it in the label map. a means for forwarding said labeled packets to a reverse proxy. - View Dependent Claims (53)
-
-
36. An apparatus serving as a reverse proxy comprising:
-
an MPLS label-switched router (LSR), a label switching table to determine an outgoing port and outgoing label for an incoming port and incoming label;
a module for receiving and inspecting labeled packets to identify the corresponding outgoing port and outgoing label based on the label switching table;
a packet switcher module for switching said incoming labeled packets to said outgoing port after replacing said incoming label with said outgoing label;
a label communicator for sending label mappings to the forward proxy;
a label programming interface to allow installation and modification of the label switching table. - View Dependent Claims (54)
-
-
37. An apparatus serving as a reverse proxy comprising:
-
an MPLS label-switched router (LSR);
a label switching table to determine an outgoing port and outgoing IP address for an incoming port and incoming label;
a module for receiving and inspecting labeled packets to identify the corresponding outgoing port and outgoing IP address based on the label switching table;
a packet switcher module for removing said incoming label and encapsulating said packet with said IP address, and for forwarding said encapsulated packet on said outgoing port. a label communicator for sending label mappings to the forward proxy;
a label programming interface to allow installation and modification of the label switching table.
-
-
38. An apparatus serving as a reverse proxy comprising:
-
an MPLS label-switched router;
a label switching table to determine an outgoing port and outgoing MAC layer address for an incoming port and incoming label;
a module for receiving and inspecting labeled packets to identify the corresponding outgoing port and outgoing MAC layer address based on the label switching table;
a packet switcher module for removing said incoming label and applying said MAC layer address, and for forwarding said packet on said outgoing port;
a label communicator module for sending label mappings to the forward proxy;
a label programming interface to allow installation and modification of the label switching table.
-
-
39. A method comprising:
using TCP port numbers for web switching including the steps of;
obtaining a set of port numbers at the forward proxy for use with client Web requests;
using a port number from the said set of port numbers on packets comprising said client requests at said forward proxy; and
switching said packets at the reverse proxy based on said port number by replacing the IP address and said port number with a new IP address and port number. - View Dependent Claims (40, 41, 42, 43, 44, 45, 51)
Specification