The present disclosure is directed to a system and method for dynamically cloning and reserving detached idle connections among network traffic management devices in a cluster.
In enabling Internet communications between network devices, a flow connection must be established between a requesting client device and a responding server device. In establishing a TCP flow connection, the kernel of the server operating system must allocate memory for the TCP connection state and data buffers, then notify the web server process. The web server process may have a thread ready to use, have to setup another thread, or even have to create a full copy of the main web server process. It is thus more computationally intensive to setup new connections in handling requests in comparison to an already-open connection. For each established connection, a web server consumes memory for the TCP connection itself (state/buffers stored in the kernel, likely only 8-64 KB for an idle connection depending on memory pressure and previous use). More importantly, each connection consumes web server threads, and for most web applications, several megabytes of unique per-thread memory. As concurrency goes from tens to hundreds, or possibly hundreds to thousands (depending on application), the overhead of selecting which process/thread to run, and for how long, increases dramatically, reducing the effective CPU capacity of the server (known as context-switching overhead). Fewer open connections and fewer connections opening/closing means lower resource consumption per server.
In particular, NTLM is a protocol used over HTTP to associate an authentication state with the underlying TCP connection. Once an NTLM handshake has successfully completed, the client may proceed to issue HTTP keepalive requests on the same connection without the need for re-authentication. The distribution of client connections across network traffic management devices in a cluster may result in subsequent requests from the previously authenticated client to be handled by another network traffic management device that has not been authenticated.
What is needed is a system and method for dynamically cloning and reserving detached idle connections among network traffic management devices in a cluster that overcomes these disadvantages and limitations.
In an aspect, a method for optimizing use of idle server connections is described. The method comprises receiving, at a first network traffic management device, a request from a client device to access a server, wherein the first network traffic management device is of a plurality of network traffic management devices in a cluster. The method comprises reserving an idle flow connection from an idle connection pool that was previously established at least a second network traffic management device and the server. The method comprises retrieving a flow cookie from the second network traffic management device at the first network traffic management device, wherein the flow cookie comprises routing information associated with the retrieved idle flow connection. The method comprises modifying the flow cookie at the first network traffic management device such that routing information for the flow connection is updated to be between the server and the first network traffic management device. The method comprises incorporating the updated flow cookie into the received request to modify the request and forwarding the modified request to the server, wherein a response from the server contains the updated flow cookie such that the response is to be received by the first network traffic management device.
A non-transitory machine readable medium having stored thereon instructions for optimizing use of idle server connections, comprising machine executable code which when executed by at least one machine in a first network traffic management device, causes the machine to: receive a request from a client device to access a server. The first network traffic management device is of a plurality of network traffic management devices in a cluster. An idle flow connection is reserved from an idle connection pool that was previously established at least a second network traffic management device and the server. A flow cookie is retrieved from the second network traffic management device at the first network traffic management device, wherein the flow cookie comprises routing information associated with the retrieved idle flow connection. The flow cookie is modified at the first network traffic management device such that routing information for the flow connection is updated to be between the server and the first network traffic management device. The updated flow cookie is incorporated into the received request to modify the request and forwarded to the server, wherein a response from the server contains the updated flow cookie such that the response is to be received by the first network traffic management device.
A network traffic management cluster having a plurality of network traffic management devices. The cluster comprising a first network traffic management device including: a network interface configured to receive and transmit network data packets over one or more networks. The first network traffic management device includes a memory storing one or more programming instructions and a processor configured to execute the stored programming instructions, which when executed result in actions being performed that include: receiving a request from a client device to access a server; reserving an idle flow connection from an idle connection pool that was previously established at least a second network traffic management device and the server; retrieving a flow cookie from the second network traffic management device at the first network traffic management device, wherein the flow cookie comprises routing information associated with the retrieved idle flow connection; modifying the flow cookie at the first network traffic management device such that routing information for the flow connection is updated to be between the server and the first network traffic management device; incorporating the updated flow cookie into the received request to modify the request and forwarding the modified request to the server, wherein a response from the server contains the updated flow cookie such that the response is to be received by the first network traffic management device.
In one or more of the above aspects, a disaggregator module is configured to route client requests and server responses to one or more network traffic management devices in the cluster by performing a load balancing method, wherein the flow cookie is updated by changing one or more values in the retrieved flow cookie. In one or more aspects, the flow cookie is incorporated in an IPv6 header, a HTTP header, and/or a body of the request and the response. In one or more aspects, a forwarding entry is registered at the second network traffic management device, wherein the forwarding entry automatically causes packets sent to the second network traffic management device to be sent to the first network traffic management device.
In general, the present disclosure is directed to a system and method for dynamically cloning and reserving detached idle connections among network traffic management devices in a network traffic management cluster. In particular, the system and method utilizes a cloning module in the network traffic management devices to generate a flow cookie which is inserted into a client request that is forwarded to the server. The flow cookie is configured to cause the server to properly route the response back to the correct network traffic management device and client device via a server side load balancer. The present system and method allows subsequent client requests to be handled by one or more other network traffic management devices in the cluster, whereby the other network traffic management device reserves and reuses already established flow connections from an idle pool. To ensure that server responses to these subsequent requests are properly routed back to the forwarding network traffic management device, the network traffic management device retrieves the flow cookie of the previous flow connection and modifies it to identify it as the sending device.
The network traffic management devices 112A-112C of the cluster 110 is coupled to the servers 102 via local area network (LAN) 104 and client devices 106 via network 108. Generally, requests sent over the network 108 from client devices 106 towards servers 102 are received, handled and transmitted by network traffic management devices 112A-112C of the cluster 110.
Client devices 106 comprise network computing devices capable of connecting to other computing devices, such as network traffic management devices 112A-112C of the cluster 110 and servers 102. Such connections are performed over wired and/or wireless networks, such as network 108, to send and receive data, such as for Web-based and non Web-based requests, receiving responses to requests and/or performing other tasks. Non-limiting and non-exhausting examples of such client devices include personal computers (e.g., desktops, laptops), tablets, mobile and/or smart phones and the like. In an example, client devices 106 run Web browsers that may provide an interface for operators, such as human users, to interact with for making requests for resources to different web server-based applications or Web pages via the network 108, although other server resources may be requested by clients. One or more Web-based applications may run on the server 102 that provide the requested data back to one or more exterior network devices, such as client devices 106.
The server 102 comprises one or more network computing machines capable of operating one or more Web-based and/or non Web-based applications that may be accessed by other network devices in the network 108, such as client devices 106 and network traffic management devices 112A-112C of the cluster 110. The server 102 may provide other data, such as particular Web page(s), image(s) of physical objects, and any other objects, responsive to the requests. It should be noted that the server 102 may perform other tasks and provide other types of resources. It should be noted that while only two servers 102 are shown in the environment 100 depicted in
Network 108 comprises a publicly accessible network, such as the Internet. However, it is contemplated that the network 108 may comprise other types of private and public networks that include other devices. Communications, such as requests from clients 106 and responses from servers 102, take place over the network 108 according to standard network protocols, such as the HTTP and TCP/IP protocols in this example. However, the principles discussed herein are not limited to this example and can include other protocols. Further, it should be appreciated that network 108 may include local area networks (LANs), wide area networks (WANs), direct connections and any combination thereof, as well as other types and numbers of network types. On an interconnected set of LANs or other networks, including those based on differing architectures and protocols, routers, switches, hubs, gateways, bridges, and other intermediate network devices may act as links within and between LANs and other networks to enable messages and other data to be sent from and to network devices. Also, communication links within and between LANs and other networks typically include twisted wire pair (e.g., Ethernet), coaxial cable, analog telephone lines, full or fractional dedicated digital lines including T1, T2, T3, and T4, Integrated Services Digital Networks (ISDNs), Digital Subscriber Lines (DSLs), wireless links including satellite links and other communications links known to those skilled in the relevant arts. In essence, the network 108 includes any communication method by which data may travel between client devices 106, servers 102 and network traffic management devices 112A-112C of the cluster 110, and the like.
LAN 104 comprises a private local area network via which one or more of the network traffic management devices 112A-112C of the cluster 110 communicate with the one or more servers 102. Networks, including local area networks, besides being understood by those skilled in the relevant arts, have already been generally described above in connection with network 108 and thus will not be described further.
As per the TCP/IP protocols, requests from the requesting client devices 106 may be sent as one or more streams of data packets over network 108 to the network traffic management devices 112A-112C of the cluster 110 and/or the servers 102. Such protocols can be used by the network devices to establish connections, send and receive data for existing connections, and the like. It is to be understood that the one or more servers 102 may be hardware and/or software, and/or may represent a system with multiple servers that may include internal or external networks.
As shown in the example environment 100 depicted in
Device processor 200 comprises one or more microprocessors configured to execute computer/machine readable and executable instructions, such as the cloning module 210, stored in device memory 212. It is understood that the processor 200 may comprise other types and/or combinations of processors, such as digital signal processors, micro-controllers, application specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”), field programmable logic devices (“FPLDs”), field programmable gate arrays (“FPGAs”), and the like. The processor is programmed or configured according to the teachings as described and illustrated in the present disclosure.
Device I/O interfaces 202 comprise one or more user input and output device interface mechanisms. The interface may include a computer keyboard, touchscreen, mouse, display device, and the corresponding physical ports and underlying supporting hardware and software to enable the network traffic management device 112 with another network traffic management device 112 in the cluster as well as communicate with other network devices in the environment 100. Such communications may include accepting user data input and to provide user output, although other types and numbers of user input and output devices may be used. Additionally or alternatively, as will be described in connection with network interface 204 below, the network traffic management device 112 may communicate with the outside environment for certain types of operations (e.g., configuration) via one or more network management ports.
Network interface 204 comprises one or more mechanisms that enable the network device 106, 110 to engage in TCP/IP communications via the LAN 104 and the network 108. However, it is contemplated that the network interface 204 may be constructed for use with other communication protocols and types of networks. Network interface 204 is sometimes referred to as a transceiver, transceiving device, or network interface card (NIC), which transmits and receives network data packets to one or more networks, such as LAN 104 and network 108.
In the present example, one or more network traffic management device 112 includes more than one device processor 200 (or a processor 200 has more than one core), each processor 200 (and/or core) may use the same single network interface 204 or a plurality of network interfaces 204 to communicate with other network traffic management devices 112 in the cluster 110. Further, the network interface 204 may include one or more physical ports, such as Ethernet ports, to couple the network traffic management device 112 with other network devices, such as servers 102. Moreover, the network interface 204 may include certain physical ports dedicated to receiving and/or transmitting certain types of network data, such as device management related data for configuring the network traffic management device 112.
Bus 208 may comprise one or more internal device component communication buses, links, bridges and supporting components, such as bus controllers and/or arbiters. The bus enable the various components of the network traffic management device 112, such as the processor 200, device I/O interfaces 202, network interface 204, load balancers 214 and device memory 212, to communicate with one another. However, it is contemplated that the bus may enable one or more components of the network traffic management device 112 to communicate with components in other network devices as well. Example buses include HyperTransport, PCI, PCI Express, InfiniBand, USB, Firewire, Serial ATA (SATA), SCSI, IDE and AGP buses. However, it is contemplated that other types and numbers of buses may be used, whereby the particular types and arrangement of buses will depend on the particular configuration of the network traffic management device 112.
Device memory 218 comprises non-transitory computer or machine readable media, namely computer readable or processor readable storage media, which are examples of machine-readable storage media. Computer readable storage/machine-readable storage media may include volatile, nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information. Such storage media contains computer readable/machine-executable instructions, data structures, program modules, or other data, which may be obtained and/or executed by one or more processors, such as device processor 200. Such instructions allow the processor to perform actions, including implementing an operating system for controlling the general operation of the network traffic management device 112 to perform one or more portions of the process described herein.
Examples of computer readable storage media include RAM, BIOS, ROM, EEPROM, flash/firmware memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information. Such desired information includes data and/or computer/machine-executable instructions and which can be accessed by a computing or specially programmed device, such as network traffic management device 112.
As mentioned above, establishing and shutting down TCP/IP connections between two network devices generally causes a lot of overhead. Instead of opening a new connection between each client 106 and server 102, one or more of the network traffic management devices 112(A)-112(C) of the cluster may maintain a pool of connections with the servers. When a client requests content, one or more of the network traffic management devices 112(A)-112(C) of the cluster may use one of its previously opened connections to relay the request to an appropriate server.
When a connection between a traffic manager and a server in a server array becomes idle, one or more of the network traffic management devices 112(A)-112(C) of the cluster may copy a subset of state information in the connection object to another object. The one or more of the network traffic management devices 112(A)-112(C) of the cluster may then free the memory associated with the connection object and allows it to be used to store other data. When the one or more of the network traffic management devices 112(A)-112(C) of the cluster needs to use an idle connection with the server again, it may then copy the state information from the other object to a connection object and resume communicating with the server without reestablishing a TCP/IP connection with the server.
A connection between a traffic manager and a server in a server array may become idle when it is no longer actively being used to transmit data. For example, in the example above where a client requests a WWW page, an mp3 file, and then a graphics image, when the client requests the mp3 file, the one or more of the network traffic management devices 112(A)-112(C) of the cluster may determine that the connection that was used to transmit the WWW page is no longer active.
The cloning module 210 contains computer readable instructions which, when executed by one or more processors 200, causes the processor 200 on the network device to perform the processes described in
As stated above, the present disclosure is directed to a system and method for effectively reusing existing idle flow connections among network traffic management devices in a network traffic management cluster. In particular, the system and method utilizes the cloning modules 210 of the network traffic management devices 112 to generate a flow cookie which is inserted into a client request that is forwarded to the server. The server responses include the flow cookie information to allow proper routing, by a server side load balancer, of the response back to the correct network traffic management device, and effectively the requesting client. The present system and method allows subsequent client requests to be are handled by the cloning module 210 of the one or more other network traffic management devices in the cluster which reserve and reuse already established flow connections from a idle connection pool. To ensure that server responses to these subsequent requests are properly routed back to the other network traffic management device, the cloning module 210 retrieves the flow cookie of the previous flow connection and modifies to identify that network traffic management device as the sending device.
In particular to the example shown in
In preparing the client request, the first network traffic management device 112A generates a flow cookie and inserts it into a portion of a HTTP, IPv6 or other header and/or the body of the client request to modify the client request (Block 306). As stated above, the flow cookie contains routing information which is used to accurately route any responses back to the source network traffic management device 112. In particular, to the present example in
After the server has received and processed the modified client request, the server generates a server response which includes the routing information of the flow cookie “1” and sends it back to the network traffic management cluster 110 (Step 4). The network traffic management cluster 110 receives the server response having the flow cookie “1”. A server side load balancer 214 handles the server response and routes the response to the first network traffic management device 112A based on the routing information in flow cookie “1” (Block 308, Step 5). The server response is then forwarded from the first network traffic management device 112A to the requesting client 106 (Block 308, Step 6).
The one or more network traffic management devices 112(A)-112(C) stores the connection “1” to idle connection pool, whereby the flow connection “1” will be available for the same or another network traffic management device 112 to use after it becomes idle and thus available (Block 310). The information stored in association with the flow connection in the idle pool includes, but is not limited to, client IP address, client port number, client packet sequence number, server IP address, server port number, and server packet sequence number. Adding the current connection to the idle connection pool makes it immediately available to another client request and thereby minimizes client waits that may arise due to insufficient available connections. Data representing an idle state is saved for the current flow connection when it is added to the idle connection pool.
As shown in
After receiving the client request, the second network traffic management device 112B determines if an existing connection exists and is available between the requesting client 106 and the destination server 102 (Block 314). If not, in one aspect, the second network traffic management device 112B can generate a new TCP flow connection “2” between the client 106 and the server 102 along with a flow cookie “2” representing the routing information between the second network traffic management device 112B and the server 102 for the flow connection “2” (Block 328). Alternatively, the second network device can delay the processing of the request until the busy connection frees up and goes idle.
In contrast, if the second network traffic management device 112B determines that an idle connection for flow connection “1” is available, it retrieves the flow cookie “1” from the first network traffic management device 112A and reserves the connection “1” which corresponds to the flow cookie “1” by marking it (Block 316, Step 9).
Thereafter, the second network traffic management device 112B modifies the flow cookie “1” by changing one or more values in the flow cookie to indicate that the source address is of the second network traffic management device 112B, instead of the first network traffic management device 112A (Block 318). The second network traffic management device 112B then inserts the modified flow cookie “1” into a portion of a header of the client request to modify the client request, whereby the modified flow cookie contains routing information which is used to accurately route any server responses back to the second network traffic management device 112B (Block 320). The modified client request is then forwarded to the destination server 102 (Block 320, Step 10).
After the server has received and processed the modified client request, the server generates a server response which includes the routing information of the flow cookie “1” and sends it back to the network traffic management cluster 110 (Step 11). The network traffic management cluster 110 receives the server response having the flow cookie “1” (Block 322), whereby the server side load balancer 214 handles the server response and routes the response to the second network traffic management device 112B based on the routing information in flow cookie “1” (Block 324, Step 12). The server response is then forwarded from the second network traffic management device 112B to the requesting client 106 (Block 326, Step 13). The process thereafter ends (Block 330).
After a network traffic management device has sent a client request to a server and received a complete response from the server, the TCP flow connection between the client device 106 and the server 102 are put in a Connection Reuse Pool or Idle Pool. When new clients create new TCP connections to the network traffic management device, instead of creating new TCP connections to the servers, the network traffic management device may pick am existing connection from the idle pool.
Having thus described the basic concepts, it will be rather apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only, and is not limiting. Various alterations, improvements, and modifications will occur and are intended to those skilled in the art, though not expressly stated herein. For example, different non-TCP networks using different types of traffic management devices may be selected by a system administrator. The order that the measures are implemented may also be altered. These alterations, improvements, and modifications are intended to be suggested hereby, and are within the spirit and scope of the examples. Additionally, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the processes to any order. It should be noted that although the above description refers to a first and second network traffic management device, additional network traffic management devices are contemplated (e.g. third network traffic management device, fourth network traffic management device, etc.). It should also be noted that the above example refers to the network traffic management devices as first and second for explanation purposes and can be swapped (i.e. second network traffic management device previously handled the established flow connection, whereby the first network traffic management device reserves the flow connection and retrieves the flow cookie from the second network traffic management device).
The present application claims the benefit of priority based on U.S. Provisional Patent Application Ser. No. 61/371,880, filed on Aug. 9, 2010, in the names of John R. Hughes and Eric J. Hammerle, entitled “Dynamic Cloning and Reservation of Detached Idle Connections”, which is hereby incorporated by reference and commonly owned herewith.
Number | Name | Date | Kind |
---|---|---|---|
3950735 | Patel | Apr 1976 | A |
4644532 | George et al. | Feb 1987 | A |
4897781 | Chang et al. | Jan 1990 | A |
4965772 | Daniel et al. | Oct 1990 | A |
5023826 | Patel | Jun 1991 | A |
5053953 | Patel | Oct 1991 | A |
5299312 | Rocco, Jr. | Mar 1994 | A |
5327529 | Fults et al. | Jul 1994 | A |
5367635 | Bauer et al. | Nov 1994 | A |
5371852 | Attanasio et al. | Dec 1994 | A |
5406502 | Haramaty et al. | Apr 1995 | A |
5475857 | Dally | Dec 1995 | A |
5517617 | Sathaye et al. | May 1996 | A |
5519694 | Brewer et al. | May 1996 | A |
5519778 | Leighton et al. | May 1996 | A |
5521591 | Arora et al. | May 1996 | A |
5528701 | Aref | Jun 1996 | A |
5581764 | Fitzgerald et al. | Dec 1996 | A |
5596742 | Agarwal et al. | Jan 1997 | A |
5606665 | Yang et al. | Feb 1997 | A |
5611049 | Pitts | Mar 1997 | A |
5663018 | Cummings et al. | Sep 1997 | A |
5752023 | Choucri et al. | May 1998 | A |
5761484 | Agarwal et al. | Jun 1998 | A |
5768423 | Aref et al. | Jun 1998 | A |
5774660 | Brendel et al. | Jun 1998 | A |
5790554 | Pitcher et al. | Aug 1998 | A |
5802052 | Venkataraman | Sep 1998 | A |
5812550 | Sohn et al. | Sep 1998 | A |
5825772 | Dobbins et al. | Oct 1998 | A |
5875296 | Shi et al. | Feb 1999 | A |
5892914 | Pitts | Apr 1999 | A |
5892932 | Kim | Apr 1999 | A |
5919247 | Van Hoff et al. | Jul 1999 | A |
5936939 | Des Jardins et al. | Aug 1999 | A |
5941988 | Bhagwat et al. | Aug 1999 | A |
5946690 | Pitts | Aug 1999 | A |
5949885 | Leighton | Sep 1999 | A |
5951694 | Choquier et al. | Sep 1999 | A |
5959990 | Frantz et al. | Sep 1999 | A |
5974460 | Maddalozzo, Jr. et al. | Oct 1999 | A |
5983281 | Ogle et al. | Nov 1999 | A |
5988847 | McLaughlin et al. | Nov 1999 | A |
6006260 | Barrick, Jr. et al. | Dec 1999 | A |
6006264 | Colby et al. | Dec 1999 | A |
6026452 | Pitts | Feb 2000 | A |
6028857 | Poor | Feb 2000 | A |
6051169 | Brown et al. | Apr 2000 | A |
6078956 | Bryant et al. | Jun 2000 | A |
6085234 | Pitts et al. | Jul 2000 | A |
6092196 | Reiche | Jul 2000 | A |
6108703 | Leighton et al. | Aug 2000 | A |
6111876 | Frantz et al. | Aug 2000 | A |
6128279 | O'Neil et al. | Oct 2000 | A |
6128657 | Okanoya et al. | Oct 2000 | A |
6170022 | Linville et al. | Jan 2001 | B1 |
6178423 | Douceur et al. | Jan 2001 | B1 |
6182139 | Brendel | Jan 2001 | B1 |
6192051 | Lipman et al. | Feb 2001 | B1 |
6233612 | Fruchtman et al. | May 2001 | B1 |
6246684 | Chapman et al. | Jun 2001 | B1 |
6253226 | Chidambaran et al. | Jun 2001 | B1 |
6253230 | Couland et al. | Jun 2001 | B1 |
6263368 | Martin | Jul 2001 | B1 |
6289012 | Harrington et al. | Sep 2001 | B1 |
6298380 | Coile et al. | Oct 2001 | B1 |
6327622 | Jindal et al. | Dec 2001 | B1 |
6343324 | Hubis et al. | Jan 2002 | B1 |
6347339 | Morris et al. | Feb 2002 | B1 |
6360270 | Cherkasova et al. | Mar 2002 | B1 |
6374300 | Masters | Apr 2002 | B2 |
6396833 | Zhang et al. | May 2002 | B1 |
6430562 | Kardos et al. | Aug 2002 | B1 |
6434081 | Johnson et al. | Aug 2002 | B1 |
6484261 | Wiegel | Nov 2002 | B1 |
6490624 | Sampson et al. | Dec 2002 | B1 |
6510135 | Almulhem et al. | Jan 2003 | B1 |
6510458 | Berstis et al. | Jan 2003 | B1 |
6519643 | Foulkes et al. | Feb 2003 | B1 |
6601084 | Bhaskaran et al. | Jul 2003 | B1 |
6636503 | Shiran et al. | Oct 2003 | B1 |
6636894 | Short et al. | Oct 2003 | B1 |
6650640 | Muller et al. | Nov 2003 | B1 |
6650641 | Albert et al. | Nov 2003 | B1 |
6654701 | Hatley | Nov 2003 | B2 |
6683873 | Kwok et al. | Jan 2004 | B1 |
6691165 | Bruck et al. | Feb 2004 | B1 |
6708187 | Shanumgam et al. | Mar 2004 | B1 |
6742045 | Jordan et al. | May 2004 | B1 |
6751663 | Farrell et al. | Jun 2004 | B1 |
6754228 | Ludwig | Jun 2004 | B1 |
6760775 | Anerousis et al. | Jul 2004 | B1 |
6772219 | Shobatake | Aug 2004 | B1 |
6779039 | Bommareddy et al. | Aug 2004 | B1 |
6781986 | Sabaa et al. | Aug 2004 | B1 |
6798777 | Ferguson et al. | Sep 2004 | B1 |
6816901 | Sitaraman et al. | Nov 2004 | B1 |
6829238 | Tokuyo et al. | Dec 2004 | B2 |
6868082 | Allen, Jr. et al. | Mar 2005 | B1 |
6876629 | Beshai et al. | Apr 2005 | B2 |
6876654 | Hegde | Apr 2005 | B1 |
6888836 | Cherkasova | May 2005 | B1 |
6928082 | Liu et al. | Aug 2005 | B2 |
6950434 | Viswanath et al. | Sep 2005 | B1 |
6954780 | Susai et al. | Oct 2005 | B2 |
6957272 | Tallegas et al. | Oct 2005 | B2 |
6975592 | Seddigh et al. | Dec 2005 | B1 |
6987763 | Rochberger et al. | Jan 2006 | B2 |
7007092 | Peiffer | Feb 2006 | B2 |
7113993 | Cappiello et al. | Sep 2006 | B1 |
7139792 | Mishra et al. | Nov 2006 | B1 |
7228422 | Morioka et al. | Jun 2007 | B2 |
7287082 | O'Toole, Jr. | Oct 2007 | B1 |
7308703 | Wright et al. | Dec 2007 | B2 |
7321926 | Zhang et al. | Jan 2008 | B1 |
7333999 | Njemanze | Feb 2008 | B1 |
7343413 | Gilde et al. | Mar 2008 | B2 |
7349391 | Ben-Dor et al. | Mar 2008 | B2 |
7398552 | Pardee et al. | Jul 2008 | B2 |
7454480 | Labio et al. | Nov 2008 | B2 |
7490162 | Masters | Feb 2009 | B1 |
7500269 | Huotari et al. | Mar 2009 | B2 |
7526541 | Roese et al. | Apr 2009 | B2 |
7558197 | Sindhu et al. | Jul 2009 | B1 |
7580971 | Gollapudi et al. | Aug 2009 | B1 |
7624424 | Morita et al. | Nov 2009 | B2 |
7668166 | Rekhter et al. | Feb 2010 | B1 |
7724657 | Rao et al. | May 2010 | B2 |
7801978 | Susai et al. | Sep 2010 | B1 |
7908314 | Yamaguchi et al. | Mar 2011 | B2 |
8130650 | Allen, Jr. et al. | Mar 2012 | B2 |
8199757 | Pani et al. | Jun 2012 | B2 |
8351333 | Rao et al. | Jan 2013 | B2 |
8380854 | Szabo | Feb 2013 | B2 |
8447871 | Szabo | May 2013 | B1 |
20010023442 | Masters | Sep 2001 | A1 |
20020059428 | Susai et al. | May 2002 | A1 |
20020138615 | Schmeling | Sep 2002 | A1 |
20020161913 | Gonzalez et al. | Oct 2002 | A1 |
20020198993 | Cudd et al. | Dec 2002 | A1 |
20030046291 | Fascenda | Mar 2003 | A1 |
20030070069 | Belapurkar et al. | Apr 2003 | A1 |
20030086415 | Bernhard et al. | May 2003 | A1 |
20030108052 | Inoue et al. | Jun 2003 | A1 |
20030145062 | Sharma et al. | Jul 2003 | A1 |
20030145233 | Poletto et al. | Jul 2003 | A1 |
20030225485 | Fritz et al. | Dec 2003 | A1 |
20040003287 | Zissimopoulos et al. | Jan 2004 | A1 |
20040103283 | Hornak | May 2004 | A1 |
20040117493 | Bazot et al. | Jun 2004 | A1 |
20040267920 | Hydrie et al. | Dec 2004 | A1 |
20040268358 | Darling et al. | Dec 2004 | A1 |
20050004887 | Igakura et al. | Jan 2005 | A1 |
20050021736 | Carusi et al. | Jan 2005 | A1 |
20050044213 | Kobayashi et al. | Feb 2005 | A1 |
20050052440 | Kim et al. | Mar 2005 | A1 |
20050055435 | Gbadegesin et al. | Mar 2005 | A1 |
20050122977 | Lieberman | Jun 2005 | A1 |
20050154837 | Keohane et al. | Jul 2005 | A1 |
20050187866 | Lee | Aug 2005 | A1 |
20050188220 | Nilsson et al. | Aug 2005 | A1 |
20050262238 | Reeves et al. | Nov 2005 | A1 |
20060031520 | Bedekar et al. | Feb 2006 | A1 |
20060059267 | Cugi et al. | Mar 2006 | A1 |
20060156416 | Huotari et al. | Jul 2006 | A1 |
20060161577 | Kulkarni et al. | Jul 2006 | A1 |
20060171365 | Borella | Aug 2006 | A1 |
20060233106 | Achlioptas et al. | Oct 2006 | A1 |
20060242300 | Yumoto et al. | Oct 2006 | A1 |
20070016662 | Desai et al. | Jan 2007 | A1 |
20070064661 | Sood et al. | Mar 2007 | A1 |
20070083646 | Miller et al. | Apr 2007 | A1 |
20070107048 | Halls et al. | May 2007 | A1 |
20070118879 | Yeun | May 2007 | A1 |
20070174491 | Still et al. | Jul 2007 | A1 |
20070220598 | Salowey et al. | Sep 2007 | A1 |
20070297551 | Choi | Dec 2007 | A1 |
20080034136 | Ulenas | Feb 2008 | A1 |
20080072303 | Syed | Mar 2008 | A1 |
20080133518 | Kapoor et al. | Jun 2008 | A1 |
20080134311 | Medvinsky et al. | Jun 2008 | A1 |
20080148340 | Powell et al. | Jun 2008 | A1 |
20080201599 | Ferraiolo et al. | Aug 2008 | A1 |
20080256224 | Kaji et al. | Oct 2008 | A1 |
20080301760 | Lim | Dec 2008 | A1 |
20090028337 | Balabine et al. | Jan 2009 | A1 |
20090049230 | Pandya | Feb 2009 | A1 |
20090119504 | van Os et al. | May 2009 | A1 |
20090125625 | Shim et al. | May 2009 | A1 |
20090138749 | Moll et al. | May 2009 | A1 |
20090141891 | Boyen et al. | Jun 2009 | A1 |
20090228956 | He et al. | Sep 2009 | A1 |
20090287935 | Aull et al. | Nov 2009 | A1 |
20100023582 | Pedersen et al. | Jan 2010 | A1 |
20100071048 | Novak et al. | Mar 2010 | A1 |
20100122091 | Huang et al. | May 2010 | A1 |
20100150154 | Viger et al. | Jun 2010 | A1 |
20100242092 | Harris et al. | Sep 2010 | A1 |
20100251330 | Kroeselberg et al. | Sep 2010 | A1 |
20100325277 | Muthiah et al. | Dec 2010 | A1 |
20110040889 | Garrett et al. | Feb 2011 | A1 |
20110047620 | Mahaffey et al. | Feb 2011 | A1 |
20110066718 | Susai et al. | Mar 2011 | A1 |
20110173295 | Bakke et al. | Jul 2011 | A1 |
20110273984 | Hsu et al. | Nov 2011 | A1 |
20110282997 | Prince et al. | Nov 2011 | A1 |
20110321122 | Mwangi et al. | Dec 2011 | A1 |
20120066489 | Ozaki et al. | Mar 2012 | A1 |
Number | Date | Country |
---|---|---|
0744850 | Nov 1996 | EP |
WO 9114326 | Sep 1991 | WO |
WO 9505712 | Feb 1995 | WO |
WO 9709805 | Mar 1997 | WO |
WO 9745800 | Dec 1997 | WO |
WO 9905829 | Feb 1999 | WO |
WO 9906913 | Feb 1999 | WO |
WO 9910858 | Mar 1999 | WO |
WO 9939373 | Aug 1999 | WO |
WO 9964967 | Dec 1999 | WO |
WO 0004422 | Jan 2000 | WO |
WO 0004458 | Jan 2000 | WO |
Entry |
---|
MacVittie, Lori, “Message-Based Load Balancing,” Technical Brief, Jan. 2010, pp. 1-9, F5 Networks, Inc. |
Crescendo Networks, “Application Layer Processing (ALP),” Chapter 9, CN-5000E/5500E, pp. 168-186, Foxit Software Company. |
“A Process for Selective Routing of Servlet Content to Transcoding Modules,” Research Disclosure 422124, Jun. 1999, pp. 889-890, IBM Corporation. |
“Big-IP Controller With Exclusive OneConnect Content Switching Feature Provides a Breakthrough System for Maximizing Server and Network Performance,” F5 networks, Inc,, Press Release, May 8, 2001, 2 pages. |
Fielding et al., “Hypertext Transfer Protocol—HTTP/1.1,” Network Working Group, RFC: 2068, Jan. 1997, pp. 1-162. |
Fielding et al., “Hypertext Transfer Protocol—HTTP/1.1,” Network Working Group, RFC: 2616, Jun. 1999, pp. 1-176 The Internet Society. |
Floyd et al., “Random Early Detection Gateways for Congestion Avoidance,” Aug. 1993, pp. 1-22, IEEE/ACM Transactions on Networking, California. |
Hochmuth, Phil, “F5, CacheFlow pump up content-delivery lines,” Network World Fusion, May 4, 2001, 1 page. |
“Servlet/Applet/HTML Authentication Process With Single Sign-On,” Research Disclosure 429128, Jan. 2000, pp. 163-164, IBM Corporation. |
“Traffic Surges; Surge Queue; Netscaler Defense,” 2005 PowerPoint Presentation, slides 1-12, Citrix Systems, Inc. |
Schaefer, Ken, “IIS and Kerberos Part 5—Protocol Transition, Constrained Delegation, S4U2S and S4U2P,” Jul. 18, 2007, 21 pages, http://www.adopenstatic.com/cs/blogs/ken/archive/2007/07/19/8460.aspx. |
Williams et al., “The Ultimate Windows Server 2003 System Administrator's Guide: Forwarding Authentication,” 2003, 2 pages, Figure 10.7, Addison-Wesley Professional, Boston, Massachusetts. |
“Windows Server 2003 Kerberos Extensions,” Microsoft TechNet, 2003, 8 pages, (Updated Jul. 31, 2004), http://technet.microsoft.com/en-us/library/cc738207, Microsoft Corporation. |
F5 Networks Inc., “Configuration Guide for Local Traffic Management,” F5 Networks Inc., Jan. 2006, version 9.2.2, 406 pgs. |
Abad, C., et al., “An Analysis on the Schemes for Detecting and Preventing ARP Cache Poisoning Attacks”, IEEE, Computer Society, 27th International Conference on Distributed Computing Systems Workshops (ICDCSW'07), 2007, pp. 1-8. |
OWASP, “Testing for Cross site scripting”, OWASP Testing Guide v2, Table of Contents, Feb. 24, 2011, pp. 1-5, (www.owasp.org/index.php/Testing—for—Cross—site—scripting). |
International Search Report for International Patent Application No. PCT/US2013/026615 (Jul. 4, 2013). |
Number | Date | Country | |
---|---|---|---|
61371880 | Aug 2010 | US |