IP Library Granted Patent US 8,392,563
Granted Patent B1
US 8,392,563 · App. 13/340,495 · Granted Mar 5, 2013

System and method for performing application level persistence

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 8,392,563
App. No.
13/340,495
Granted
Mar 5, 2013
Kind
B1
Abstract

A method and apparatus for inserting and examining Cookies in the data streams of HTTP connections for the purpose of persistently directing HTTP connections to the same destination. A network device directs subsequent HTTP connections from the same client to the same server (destination) for accessing the requested resources. There are four modes for employing the Cookie to persistently direct HTTP connections. The associated mode inserts a Cookie that uniquely identifies the client into an HTTP response. The passive mode inserts Cookie information that uniquely identifies a previously selected destination into an HTTP response. In the rewrite mode, a network device manages the destination information that is rewritten over blank Cookie information generated by the destination producing the HTTP response. The insert mode inserts and removes Cookie information in the data packets for HTTP requests and response prior to processing by the destination.

Claims (54)

1. A device for enabling communication between at least one of a plurality of server devices and at least one client device in a network, comprising:

a network interface for communicating application level data between the at least one client device and at least one of the plurality of server devices; and

a processor for enabling actions, including:

in response to an application level request from a client device for access to a resource, providing the application level request to at least one of the plurality of server devices which are enabled to send an application level response to the client device, wherein the client device's application level request is unspecific regarding the at least one server device; and

forwarding to the client device the application level response that further includes an application level protocol command with a location for insertion of information designating the one of the plurality of server devices that responded to the client device's request for access to the resource, wherein the information is provided by the device.

2. The device of claim 1 , wherein the action further comprise;

receiving the application level protocol response from the one of the plurality of server devices; and

rewriting the application level protocol response to include the application level protocol command that further includes the location with information that designates the one of the plurality of server devices that provides the application level response.

3. The device of claim 1 , wherein the actions further comprise:

enabling the one of the plurality of server devices to include the application level command and the location in the application level response, wherein the location is provided without information designating any one of the plurality of server devices; and

rewriting the location in the application level command to further include the information designating the one of the plurality of server devices that provide the application level response.

4. The device of claim 1 , wherein the actions further comprise:

receiving, at the one of the plurality of server devices, another application level request for the resource from the client device, wherein the other application level request includes the application level command with the location designating the one of the plurality of server devices; and

sending, to the client device, another application level response to the other application level request, wherein the other response is provided by the one of the plurality of server devices.

5. The device of claim 1 , wherein the application level protocol is Hypertext Transfer Protocol (HTTP).

6. The device of claim 1 , wherein the application level protocol command is a command to create a cookie.

7. The device of claim 1 , wherein the actions further comprise including a time stamp in the application level command, wherein the time stamp is indicative of a time period during which the information is to be used to designate the one of the plurality of server devices.

8. The device of claim 1 , wherein the information comprises at least one of node address and a node port number to be used to designate the one of the plurality of server devices.

9. A system for providing persistent communication over a network, comprising:

a plurality of server devices; and

a network device, including:

at least one memory for storing instructions; and

at least one processor for executing the instructions, the executed instructions enabling actions, including:

in response to an application level request from a client device for access to a resource, providing the application level request to at least one of the plurality of server devices which are enabled to send an application level response to the client device, wherein the client device's application level request is unspecific regarding the at least one server device; and

forwarding, to the client device the application level response that further includes an application level protocol command with a location for insertion of information designating the one of the plurality of server devices that responded to the client device's request for access to the resource, wherein the information is provided by the network device.

10. The system of claim 9 , wherein the action further comprise;

receiving the application level protocol response from the one of the plurality of server devices; and

rewriting the application level protocol response to further include the application level protocol command that includes the location with information that designates the one of the plurality of server devices.

11. The system of claim 9 , wherein the actions further comprise:

enabling the one of the plurality of server devices to include the application level command and the location in the application level response, wherein the location is provided without information designating any one of the plurality of server devices; and

rewriting the location in the application level command to further include the information designating the one of the plurality of server devices that provides the application level response.

12. The system of claim 9 , wherein the actions further comprise:

receiving, at the one of the plurality of server devices, another application level request for the resource from the client device, wherein the other application level request further includes the application level command with the location designating the one of the plurality of server devices; and

sending, to the client device, another application level response to the other application level request, wherein the other response is provided by the one of the plurality of server devices.

13. The system of claim 9 , wherein the application level protocol is Hypertext Transfer Protocol (HTTP).

14. The system of claim 9 , wherein the application level protocol command is a command to create a cookie.

15. The system of claim 9 , wherein the actions further comprise including a time stamp in the application level command, wherein the time stamp is indicative of a time period during which the information is to be used to designate the one of the plurality of server devices.

16. The system of claim 9 , wherein the information comprises at least one of node address and a node port number to be used to designate the one of the plurality of server devices.

17. A method for enabling communication between at least one of a plurality of server devices and at least one client device in a network, comprising:

in response to an application level request from a client device for access to a resource, employing a network device to provide the application level request to at least one of the plurality of server devices which are enabled to send an application level response to the client device, wherein the client device's application level request is unspecific regarding the at least one server device; and

employing the network device to forward to the client device the application level response that further includes an application level protocol command with a location for insertion of information designating the one of the plurality of server devices that responded to the client device's request for access to the resource, wherein the information is provided by the network device.

18. The method of claim 17 , wherein the action further comprise;

receiving the application level protocol response from the one of the plurality of server devices; and

rewriting the application level protocol response to include the application level protocol command that further includes the location with information that designates the one of the plurality of server devices that provides the application level response.

19. The method of claim 17 , wherein the actions further comprise:

enabling the one of the plurality of server devices to include the application level command and the location in the application level response, wherein the location is provided without information designating any one of the plurality of server devices; and

rewriting the location in the application level command to further include the information designating the one of the plurality of server devices that provide the application level response.

20. The method of claim 17 , wherein the actions further comprise:

receiving, at the one of the plurality of server devices, another application level request for the resource from the client device, wherein the other application level request includes the application level command with the location designating the one of the plurality of server devices; and

sending, to the client device, another application level response to the other application level request, wherein the other response is provided by the one of the plurality of server devices.

21. The method of claim 17 , wherein the application level protocol is Hypertext Transfer Protocol (HTTP).

22. The method of claim 17 , wherein the application level protocol command is a command to create a cookie.

23. The method of claim 17 , wherein the actions further comprise including a time stamp in the application level command, wherein the time stamp is indicative of a time period during which the information is to be used to designate the one of the plurality of servers.

24. The method of claim 17 , wherein the information comprises at least one of node address and a node port number to be used to designate the one of the plurality of servers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2011
From: MASTERS, RICHARD RODERICK
To: F5 NETWORKS, INC.
Reel/Frame 027460/0758 →