System and method for establishing a virtual private network

Information

  • Patent Grant
  • 8726006
  • Patent Number
    8,726,006
  • Date Filed
    Tuesday, August 21, 2012
    12 years ago
  • Date Issued
    Tuesday, May 13, 2014
    10 years ago
Abstract
A system and method for establishing a virtual private network (VPN) between a client and a private data communication network. An encrypted data communication session, such as a Secure Sockets Layer (SSL) data communication session, is established between a gateway and the client over a public data communication network. The gateway then sends a programming component to the client for automatic installation and execution thereon. The programming component operates to intercept communications from client applications destined for resources on the private data communication network and to send the intercepted communications to the gateway via the encrypted data communication session instead of to the resources on the private data communication network.
Description
FIELD OF THE DISCLOSURE

The present invention relates generally to data communication networks. In particular, the present invention relates to establishing a virtual private network (VPN) between entities over a public data communication network, such as the Internet.


BACKGROUND

Enterprises are increasingly being asked to provide access to proprietary applications and data to employees and partners located outside the perimeter of the enterprise network. To do so in a cost-effective manner, enterprises are looking to leverage public networks such as the Internet for providing remote access. However, because the Internet is a publicly accessible network, issues of network security arise.


Multiple technologies are available for accomplishing secure Internet communications, including but not limited to those that rely on Secure Sockets Layer (SSL) encryption or Internet Protocol Security (IPSec) encryption. SSL encryption is incorporated into most Web browsers utilized by today's Internet users while IPSec presently is not.


SSL technology is limited, however, in its ability to provide remote access to a private network in that an SSL-encrypted client cannot directly access Domain Name Servers, Windows Internet Naming Service (WINS) Servers, or other resources on a private network that are not visible from outside the enterprise network but are essential to reaching resources on that network. In addition, firewalls typically block certain traffic through various ports and limit access to various Internet Protocol (IP) addresses automatically, thereby preventing SSL-encrypted clients from accessing certain destinations on the enterprise network. Finally, important applications such as various client-server e-mail programs and other enterprise application programs do not support SSL encryption natively and so limit the effectiveness of SSL in providing secure remote access to these resources.


Virtual private network (VPN) connections allow remote users and client programs (in other words, those that are not directly connected) to achieve encrypted remote access to a private data network via public internetworks (such as the Internet). Conventional approaches to setting up a VPN have included setting up remote access using pre-installed “thick clients” that are based on the IPSec standard or SSL and earlier versions of Web browser-based dynamic SSL VPN technology. Each is explained in more detail below.


VPN thick clients based on IPSec technology involve the transmission of whole packets over the Internet in encrypted form. Though robust and secure, IPSec technology has significant limitations. These limitations include, among other things, the administrative challenges in rolling out, managing, and maintaining the VPN client software for remote access users because every user must download and install the IPSec software on his or her computer. In addition, utilizing IPSec VPN technology, users cannot access key resources from alternate endpoints (in other words, any device on which the user has not installed the relevant software). Furthermore, user access to sites protected by firewalls is limited or, in some cases, nonexistent.


A conventional SSL version of the thick client avoids the firewall limitations of the IPSec thick client by using a standard SSL port that firewalls generally keep open. However, such an implementation still incurs the disadvantages of having to have the client software pre-installed from wherever the access takes place. These disadvantages include management complexity and the inability to provide access from any client computer equipped with a standard Web browser without the need for installing special software.


A conventional dynamic port proxy approach preserves the firewall traversing capabilities of an SSL thick client, and addresses the limitations of both IPSec and SSL thick clients by utilizing the built-in encryption capabilities of a Web browser, thereby obviating the need for installing special client software. In accordance with such an approach, a gateway device or program on an access server downloads a Java applet to monitor ports for encrypted traffic. If encrypted traffic is detected, the client sending the encrypted data is configured to re-direct its traffic through an applicable secure port. The problem with this technique, however, is that it works only for addresses that have names. In other words, it will not work with a static IP address or where the IP address and/or port of a server dynamically changes. Therefore, these implementations cannot handle applications that use dynamically assigned IP addresses, dynamically change ports, or use hardcoded IP addresses to reach unnamed resources.


What is desired, then, is a system and method for providing secure remote access to applications and data in an enterprise network over a public data communication network, such as the Internet, that improves upon and addresses the aforementioned shortcomings of conventional solutions.


BRIEF SUMMARY

In its broadest application, the present invention is directed to a system and method for establishing a virtual private network (VPN) between a client and a private data communication network, wherein the client is securely connected to the private data communication network via a public data communication network. In accordance with an embodiment of the present invention, the private data communication network comprises an enterprise network upon which reside applications and data that are proprietary to an enterprise, and the public data communication network comprises the Internet.


In a method in accordance with an embodiment of the present invention, an encrypted data communication session is established between a gateway or program on an access server and a client over a public data communication network. The communication session may be encrypted through various methods including, but not limited to Secure Sockets Layer (SSL) protocols, Internet Protocol Security (IPSec) or other encryption methods.


In response to the establishment of the encrypted data communication session, the gateway or program on the access server sends a program back to the client. In an embodiment, the program comprises a control or programming component (i.e., a self-sufficient program that can be run throughout the network environment) that is automatically installed and executed by a client Web browser. In an embodiment, once it been installed on the client, the program engages the ability to dynamically intercept communications from client applications destined for resources on the specified private data communication network by acting as an interceptor that is installed as a “hook” at a transport layer of the operating system on the client.


In an embodiment, the program can also act as a connection proxy for intercepted communications by providing an endpoint for such intercepted communications. The program can further introduce the ability to serve as an encryption endpoint in the encrypted data communication session and can direct such communications to the gateway or access server via the encrypted data communication session. In an alternative embodiment, the program can be separated into two or more separate programs—one performing the dynamic intercept functions on the client and a second performing, among other things, the network proxy and encryption functions.


An embodiment of the present invention includes the interception of name translation and connection requests by the program. A client and server communicating over a VPN in accordance with such an embodiment are free to use whatever IP addresses they choose as well as dynamically change those addresses at run time, since such an embodiment does not rely upon a static name to address translation.


When the gateway or access server receives encrypted communications from the client via the encrypted data communication session, it decrypts the encrypted communication and provides it to the appropriate destination resource on the private data communication network. In an embodiment, the gateway terminates the traffic (as a proxy) and is then able to further process the request as described below rather than simply sending it straight along to the destination on the private network. The gateway, in this embodiment, can carry out additional processing on the connection including but not limited to back-end encryption, serving responses out of a cache, local network load balancing, global service load balancing or compression.


If there are any responsive communications from the destination resource, these are directed to the gateway (and potentially encrypted where back-end encryption is utilized as described below) for transport to the installed client program via the encrypted data communication session. The installed client program decrypts the responsive communications and passes them to the appropriate client application.


In a specific method in accordance with an embodiment of the present invention, an encrypted data communication session, such as a Secure Sockets Layer (SSL) session is established between a gateway and a client over a public data communication network. The gateway then sends a first program to the client in response to establishment of the encrypted data communication session. In an embodiment, the first program comprises dynamically delivered program components, such as an Active X control that is automatically installed and executed by a client Web browser. Other such components may be a Java applet, Java Script, dynamic shared library or other such program components.


When the first program is executed by the client, among other things, it installs a second program on the client. The second program operates to intercept communications from client applications destined for resources on the private data communication network. The second program also operates to provide the intercepted communications to the first program for sending to the gateway via the encrypted data communication session instead of directly to the resources on the private data communication network. In an embodiment, the second program comprises a dynamic interceptor, for example a filter device driver, that is installed as a “hook” at a transport layer of an operating system of the client.


In an embodiment, the first program acts as a connection proxy, providing an endpoint for the intercepted communications. Other non-preinstalled SSL VPNs, including the Port Proxy, are not able to act as proxy for every connection but instead serve as endpoint only for those named resources and ports that the Port Proxy is pre-configured to support.


When the gateway receives encrypted communications from the client via the encrypted data communication session established by the program components, it decrypts the encrypted communication and provides it to the appropriate destination resource on the private data communication network.


In another embodiment, the gateway can serve as an intermediate proxy for the application traffic sent via the VPN and is then able to further process the application requests rather than simply sending them straight along to the destination on the private network. This embodiment permits the gateway to carry out further processing on the connection such as back-end encryption, in which the traffic is re-encrypted by the gateway before delivery to the appropriate destination on the private data communication network thereby enabling users to achieve additional network security. Furthermore, such processing can permit the gateway to serve responses out of a cache rather than requiring additional work by the destination resource. Alternatively or additionally, the gateway can perform local network load balancing, global service load balancing or compression on the connection data.


If there are any responsive communications from the destination resource, these are provided to the gateway (and potentially encrypted by the destination resource prior to transmission to the gateway in an embodiment where back-end encryption is utilized to provide end-to-end network security) for transport to the first program via the encrypted data communication session. The first program decrypts the responsive communications and passes them to the appropriate client application via the second program.


In accordance with an embodiment of the present invention, a user is not required to pre-install any software on a client system or device. Instead, the necessary components are dynamically installed on the client as a result of logging in to a gateway and subsequently removed at log out. This presents a distinct advantage over conventional solutions for secure remote access, such as solutions based on IPSec technology, wherein software must be preinstalled onto a client by a user.


Furthermore, in accordance with an embodiment of the present invention, communications from a client application to resources residing on a private data communication network are re-directed to a gateway based on interception of those communications. This is in direct contrast to conventional VPN solutions that utilize a dynamic port proxy, and therefore require a name to address translation on the client in order to operate. Because an embodiment of the present invention is based on interception of name translation and connection requests, rather than port proxy, a client and server communicating over a VPN in accordance with an embodiment of the present invention are free to use whatever IP addresses they choose as well as dynamically change those addresses at run time, since such an embodiment does not rely upon a static name to address translation. Thus, an embodiment of the present invention permits the use of hard-coded IP addresses, dynamic IP addresses and dynamic ports.


Additionally, an embodiment of the present invention provides a VPN solution that is based on proxying connections. For example, an embodiment of the present invention provides a connection proxying based encrypted tunnel for secure remote access that terminates the connection and is therefore able to extract out the TCP payload of the original connection and encapsulate such application payload into a new TCP payload, transmitted via a separate TCP connection. Conventional IPSec solutions encrypt all packets and use a tunnel established at the network packet layer for communication between devices. In other conventional SSL solutions, traffic from multiple applications might be transmitted by tunneling complete TCP packets, inclusive of all TCP headers, inside a new TCP connection established by the port proxy or other solution. The encapsulating connection is a second TCP connection that delivers the original connection intact, including all headers and without modification, to a gateway that unwraps the payload of the original connection from the capsule TCP connection and completes the delivery, again without modification, to the final private network destination.


This approach of threading of complete TCP connections inside other connections creates the potential for problems. Because TCP protocol generates slowdowns, retransmissions and acknowledgements following packet loss or packet delays, or perceived packet losses or delays, the doubled layers of TCP under the tunneling solution amplify any such packet losses or packet delays as the TCP protocol generates additional slowdowns, retransmissions and acknowledgments. Thus, new levels of delays and retransmissions significantly intensify the original slowdown and are a significant limitation to delivering multiple TCP payloads through a TCP-over-TCP connection tunnel.


In contrast, in an embodiment of the present invention, a separate encryption session tunnel is created for each application connection. Because each connection in such an embodiment is terminated or proxied and the TCP payload separated out and delivered over its own newly generated TCP connection, the embodiment may more easily avoid cascaded connection delays by avoiding TCP-over-TCP problems. Since the application payload is sent via a set of separate TCP connections, the loss of delay of a packet in the network affects only one connection and does not induce cascaded retransmissions unlike the tunneled case. Such an embodiment may also be easily integrated with additional connection-specific processing of application content traffic in the tunnel.


Because an embodiment of the present invention provides a VPN solution that acts as a proxy terminating connections at the client before encrypting such data and sending it over an SSL or other session tunnel, additional processing of such intercepted packets can be performed more effectively. Such processing can include DNS name resolution of such traffic in order to enable client applications to use whatever IP addresses they choose as well as dynamically change those addresses at run time as described above. Such additional processing also permits the invention to be effectively integrated with other technologies such as global service load balancing to achieve greater availability and greater efficiency among distributed gateways or servers. The above embodiment and the connection processing made possible thereby additionally also enables the present invention to keep detailed logs and statistics regarding the packets.


By making possible further connection-specific content processing of application data, an embodiment of the present invention also permits integration of VPN capabilities, such as SSL VPN capabilities, with other beneficial functions that may be provided by a gateway to an enterprise network. For example, an embodiment of the present invention permits integration of application layer optimization, switching and security features at the gateway. In particular, per-connection tunneling in accordance with an embodiment of the present invention permits easy integration of VPN features with request switching technology (as described in U.S. Pat. No. 6,411,986 issued Jun. 25, 2002 and entitled “Internet Client-Server Multiplexer” and in co-pending U.S. patent application Ser. No. 09/690,437, filed Oct. 18, 2000 and entitled “Apparatus, Method and Computer Program Product for Efficiently Pooling Connections Between Clients and Servers,” each of which is incorporated by reference as if set forth fully herein) that is able to apply such application data processing capabilities at very high throughputs on multiple interleaved data streams simultaneously. The VPN features of an embodiment of the present invention may also be readily integrated with request level load balancing, Hypertext Transfer Protocol (HTTP) dynamic application caching, HTTP compression, Transmission Control Protocol (TCP) compression, defense against TCP and HTTP distributed denial of service attacks, HTTP virus defense scanning, and the like.


Finally, in an embodiment of the present invention, the integration of VPN features is extended by synchronizing the processing of the SSL decryption and end point processing described above with other processing of the connections to be carried out at the gateway including those described above such as load balancing, HTTP dynamic application caching, HTTP compression, TCP compression, defense against TCP and HTTP distributed denial of service attacks, HTTP virus defense scanning, and the like. In this way, an embodiment of the invention is able to deliver the benefits of such integrated processing which include: simplification of the network by avoiding having to interconnect several different systems to provide the combination of processing functions in specific order (e.g., compression before caching before encryption); an acceleration of processing by inspecting the application layer data once and taking multiple actions on it; simplification of administration by using a unified policy system to express actions to be taken, etc.


Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings. It is noted that the invention is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.





BRIEF DESCRIPTION OF THE FIGURES

The accompanying drawings, which are incorporated herein and form part of the specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the relevant art(s) to make and use the invention.



FIG. 1 depicts a system for establishing a virtual private network (VPN) in accordance with an embodiment of the present invention;



FIG. 2 illustrates a flowchart of a method for establishing a VPN in accordance with an embodiment of the present invention;



FIG. 3 illustrates a flowchart of a method by which a client communicates with and accesses resources on a private data communication network in accordance with an embodiment of the present invention and



FIG. 4 illustrates an example computer system-based implementation of a client, server and/or gateway in accordance with embodiments of the present invention.





The features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.


DETAILED DESCRIPTION
A. System for Establishing a Virtual Private Network


FIG. 1 depicts the basic elements of an exemplary system 100 for establishing a virtual private network (VPN) in accordance with an embodiment of the present invention. As shown in FIG. 1, system 100 includes a private data communication network 106 and a plurality of clients 102a through 102n that are remotely and communicatively connected to private data communication network 106 via a public data communication network 104. In an embodiment, private data communication network 106 comprises an enterprise network upon which reside applications and data that are proprietary to an enterprise, such as a private business organization, and public data communication network 104 comprises the Internet, although the invention is not so limited.


As further shown in FIG. 1, private data communication network 106 comprises a gateway 108 and a plurality of servers 110a through 110n. Gateway 108 is a system or device that acts as interface between entities on public data communication network 104 and resources on private data communication network 106. In particular, and as will be described in detail below, gateway 108 is configured to facilitate remote secure access by any one of clients 102a-102n to resources, such as applications and data, running or stored on servers 110a-110n.


In an embodiment, gateway 108 comprises a network server configured to perform the features of the present invention in addition to various network tasks relating to optimization of Web-based and/or client-server applications, traffic management, and security. However, the invention is not so limited, and gateway 108 may comprise any network system or device that is configured to perform the features of the present invention.


Each client 102a-102n comprises a system or device adapted to communicate with other entities over public data communication network 104, including but not limited to gateway 108. As will be appreciated by persons skilled in the relevant art(s), a variety of conventional communication protocols may be used to implement communication between each client 102a-102n and other entities on public data communication network 104. For example, in an embodiment, a Transmission Control Protocol/Internet Protocol (TCP/IP) suite is used to establish links and transport data, while a Hypertext Transfer Protocol (HTTP) or File Transfer Protocol (FTP) application layer is used for client-server communication. However, these examples are illustrative. The present invention is not intended to be limited to a specific communication protocol or application, and other proprietary or non-proprietary network communication protocols and applications can be used.


In an embodiment, each client 102a-102n comprises a personal computer (PC) running under the control of an operating system and implementing a commercially-available Web browser for network communication. For example, each client 102a-102n may comprise a PC running a Microsoft Windows® operating system—and implementing a Microsoft Internet Explorer® Web browser. Alternately, each client 102a-102n may comprise a PC running a Macintosh® operating system and implementing a Netscape Navigator® Web browser. However, the invention is not limited to these examples, and other operating systems and browsers may be used. Additionally, the invention is not limited to personal computers, and each client 102a-102n may comprise any device or system capable of communicating over public data communication network 104, including but not limited to laptop computers, tablet computers, set-top boxes, and network-enabled televisions, handheld computers and mobile telephones.


B. Method for Establishing a Virtual Private Network


FIG. 2 illustrates a flowchart 200 of a method for establishing a VPN in accordance with an embodiment of the present invention. The invention, however, is not limited to the description provided by the flowchart 200. Rather, it will be apparent to persons skilled in the relevant art(s) from the teachings provided herein that other functional flows are within the scope and spirit of the present invention. Flowchart 200 will be described with continued reference to example system 100 described above in reference to FIG. 1. The invention, however, is not limited to that embodiment.


The method of flowchart 200 begins at step 202, in which one of clients 102a-102n (hereinafter generically referred to as client 102) performs a log in procedure and establishes an encrypted data communication session with gateway 108 via public data communication network 104. As will be described in more detail herein, the encrypted data communication session is used as a tunnel to bridge traffic from client 102 to any of servers 110a through 110n which reside behind gateway 108 in private data communication network 106. In an embodiment, client 102 uses a commercially-available Web browser, such as Microsoft Internet Explorer® or Netscape Navigator®, to log in and establish a data communication session with gateway 108 using Secure Sockets Layer (SSL) or other encryption methods including IPSec or others. A protocol such as Hypertext Transfer Protocol over Secure Sockets Layer (HTTPS) may be used to initiate the encrypted data communication session.


In response to log in and establishment of the encrypted data communication session, gateway 108 sends a first program to client 102 over public data communication network 104 as shown at step 204. The first program is configured to act as a tunnel endpoint for communication over the encrypted data communication session. In an embodiment, the first program comprises a plug-in application that is automatically installed and executed by the client Web browser. For example, the first program may comprise an ActiveX control that is provided as a plug-in to be executed by a Microsoft Internet Explorer® Web browser. Alternatively, the first program may comprise a Java applet that is provided as a plug-in to be executed by a Netscape Navigator® Web browser or another control or programming component that works across network environments.


At step 206, client 102 installs and executes the first program, wherein executing the first program comprises installing a second program on client 102. The second program is configured, in part, to intercept communications from applications running on client 102 that are destined for resources on private data communication network 106 and to provide the intercepted communications to the first program for sending to gateway 108 via the encrypted data communication session. The second program is also configured to provide intranet network name resolution service and optionally split network traffic. By splitting the traffic, an embodiment of the present invention is able to determine what traffic is channeled to an SSL tunnel and what is permitted to continue along for regular processing by the transport layer stack.


In an embodiment, the second program comprises a dynamic interceptor (for instance, a filter device driver) that is inserted as a “hook” into an operating system of client 102. For example, the second program may comprise a filter device driver that is attached to the transport layer stack of the client operating system, such as the transport layer stack of a Microsoft Windows® operating system.


As shown at step 208, once the first and second programs have been installed, applications running on client 102 may communicate with and access resources, such as applications and data, on private data communication network 106 via the established encrypted data communication session. The manner in which this communication occurs will be discussed in more detail below with respect to FIG. 3. Note that, in an alternative embodiment, the functions of the first program and second program as described above are performed by a single control or programming component (i.e., a self sufficient program that can be run throughout the network environment) that is automatically installed and executed by client 102.


At step 210, client 102 performs a log out procedure to disconnect from private data communication network 106, which terminates the encrypted data communication session with gateway 108. In an embodiment, at log out time, the first program automatically cleans up the modifications made to the client operating system to return the operating system to its original status.



FIG. 3 illustrates a flowchart 300 of a method by which a client communicates with and accesses resources on a private data communication network in accordance with an embodiment of the present invention. In particular, the method of flowchart 300 represents one method by which step 208 of flowchart 200 may be carried out.


The method of flowchart 300 begins at step 302, in which a client application makes a new connection or resolves a domain name to the transport layer stack of the client operating system. When this occurs, the functions of the second program are automatically called before any transport layer functions are initiated, as shown at step 304. As described above, in an embodiment, the second program comprises a dynamic interceptor such as a filter device driver attached to the transport layer stack of the client operating system.


At step 306, the second program intercepts communications from the client application that are destined for resources on private data communication network 106 and re-routes them to the first program, which in an embodiment comprises an ActiveX control plug-in, a Java applet or other control or programming component that works across network environments.


At step 308, each intercepted connection is terminated or proxied and the first program separates out the payload and encapsulates the payload into a new connection for delivery via the established encrypted data communication session. In an embodiment, the payload is a TCP payload and is encapsulated into a new TCP connection.


At step 310, the first program sends the intercepted communications over public data communication network 104 to gateway 108 in private data communication network 106 via the pre-established encrypted data communication session, which includes encrypting the intercepted communications and sending the encrypted intercepted communications to gateway 108. In an embodiment, encryption is carried out in accordance with SSL protocols.


At step 312, gateway 108 acts as a proxy terminating the connection sent by the first program and decrypts the communications received from the first program on client 102 and passes the decrypted communications on to the appropriate destination resource on private network 106 via a different connection that the gateway 108 has established with the destination resource on private network 106. In an embodiment, decryption is carried out in accordance with SSL protocols or other applicable encryption and decryption protocols. At step 314, the destination resource processes the decrypted communications.


If the decrypted communications include a request for which there is a response, then the destination resource sends out responsive communications to gateway 108, as shown at step 316. At step 318, gateway 108 sends the responsive communications over public data communication network 104 to the first program on client 102 via the pre-established encrypted data communication session, which includes encrypting the responsive communications and sending the encrypted responsive communications to the first program. In an embodiment, encryption is carried out in accordance with SSL protocols or other applicable encryption and decryption protocols.


At step 320, the first program decrypts the responsive communications and passes them on to the appropriate client application via the second program, which is attached to the transport layer stack of the client operating system.


In accordance with an alternate embodiment of the present invention, client 102 performs additional processing of the intercepted communications before sending them over public data communication network 104 at step 308. Because an embodiment of the present invention provides a VPN solution that acts as a proxy terminating connections at the client before encrypting such data and sending it over the pre-established encrypted data communication session, such additional processing can be performed more effectively. Such processing can include DNS name resolution of the intercepted communications in order to enable client applications to use whatever IP addresses they choose as well as dynamically change those addresses at run time. Such additional processing permits embodiments of the invention to be effectively integrated with other technologies such as global service load balancing to achieve greater availability and greater efficiency among distributed gateways or servers. The additional connection processing can also enable the keeping of detailed logs and statistics regarding the intercepted communications.


In a further alternate embodiment of the present invention, gateway 108 terminates communications received from the first program on client 102 (as a proxy) and further processes one or more requests included therein rather than simply sending the communications straight along to a destination on private data communication network 106 as shown at step 312. This further processing can include back-end encryption wherein communications are re-encrypted by gateway 108 before delivery to the appropriate destination on private data communication network 106, thereby providing end-to-end network security. The destination will thereafter decrypt the traffic and respond appropriately. Further, such processing can permit gateway 108 to serve responses out of a cache rather than requiring additional work by a destination server, perform local network load balancing, global service load balancing and/or compression on the communications to enhance the efficiency and responsiveness of private data communication network 106.


In accordance with the above-described methods, a VPN based on an encrypted data communication session is established between client 102 and private data communication network 106. For example, in an embodiment, a secure VPN is established via HTTPS. Thereafter, all communications from client 102 to private data communication network 106 are routed via the first program to gateway 108, and vice-versa, through this encrypted data communication session.


It should be noted that although the encrypted data communication session may be established using HTTPS, the communications that are passed through the encrypted data communication session need not be HTTPS packet data or even HTTP packet data. For example, the communications may also comprise Transmission Control Protocol/User Datagram Protocol (TCP/UDP) or Internet Control Message Protocol (ICMP) packet data, although these examples are not intended to be limiting.


It should also be noted that although various client-side functions of an embodiment of the present invention are described above as being performed by a first program and a second program, persons skilled in the relevant art(s) will readily appreciate that those functions can be performed by a single program or multiple programs.


Furthermore, although the method described in reference to FIG. 3 describes a request-response type communication between an application on client 102 and a resource on private data communication network 106, encrypted communications in accordance with the present invention need not be request-response based. Rather, the communications can be of any type. Thus, any client application that can establish a connection or communication session, such as a UDP session, can send and receive encrypted communications in accordance with an embodiment of the present invention.


The above-described method for establishing a VPN is connection proxying in that an encrypted data communication session is created by terminating the connection and encapsulating the TCP. payload of the original connection into a new TCP connection for each application connection. This is in contrast to a conventional IPSec approach, in which an encryption tunnel is developed on the network packet level and is therefore not tied to any particular application or communication session.


The above-described method is also distinguished from other conventional SSL solutions such as the Port Proxy approach where each connection is encapsulated as a complete entity inclusive of all TCP headers, inside a new encrypted TCP connection established by the port proxy. The encapsulating connection is a second, session-wide TCP connection that delivers the original connection intact including all headers and without modification to a gateway which unwraps the payload of the original connection from the capsule TCP connection and completes the delivery without modification to the final private network destination. The above described Port Proxy approach of threading of TCP connections inside other connections tunneled over an SSL connection can experience problems because TCP protocol generates slowdowns and retransmissions and acknowledgements in the event of packet loss and those delays and transmissions get significantly amplified where multiple complete TCP payloads are delivered through the single SSL TCP connection tunnel. The present embodiment avoids these delays by transmitting only the TCP payload of the terminated or proxied connection separated out and delivered via a separately established, new connection to the gateway.


Because an embodiment of the present invention provides a VPN solution that acts as a proxy terminating connections at the client before encrypting such data and sending it over an SSL session tunnel, the program is better able to manage connection based packet flows in a way that enables additional processing of such intercepted packets. Such additional processing permits the invention to be effectively integrated with other technologies such as global service load balancing to achieve greater availability and greater efficiency among distributed gateways or servers. The above embodiment and the additional connection processing also enables the present invention to keep detailed logs and statistics regarding the packets.


In addition, by implementing a connection-proxying based VPN where only the TCP payload of the original connection is transmitted through the secure VPN to the gateway, the above described method also permits integration at the gateway of the VPN with caching technologies that monitor Web object requests and store certain of those objects it retrieves from a server in order to improve network performance. Further, the above described method enables successful integration of the SSL VPN into other networking technologies including Load Balancing and TCP Buffering by proxying the connections at the gateway and thus creating the opportunity for further processing of the connection at the gateway.


Because the above-described method for establishing a VPN is connection-proxying based, it allows application data to be transferred in a manner that is also more compatible with Authentication, Authorization, and Accounting (AAA) policies, caching, compression, switching, multiplexing of connections, protection from SYN floods and other forms of attacks, and split tunneling than conventional VPN approaches. To illustrate the benefit of carrying out connection-proxying based VPN as described in the prior paragraph, the above-described method in which any additional processing of such connection that may be carried out at the gateway, including each of the methods described in the preceding paragraph, can be simply and efficiently carried out because the gateway serves as a proxy endpoint for the encrypted session. More specifically, in an embodiment, the gateway is able to carry out one or more forms of such processing as the gateway in the above-described method has terminated the connection and therefore such gateway can simply access and manipulate the TCP payload to perform such processing. By contrast, other approaches, including the connection tunneling approach, do not as a matter of course terminate the connection at the gateway (rather they proxy only the encrypted tunnel session) and therefore the approach requires a second level of processing to terminate the TCP connection that is tunneled inside the encrypted session. As a result of the requirement that the gateway carry out further processing on the connection, these approaches are inherently more complex and tend to be less efficient in carrying out additional functional processing on any such connection at the gateway.


Finally, in an embodiment, the integration of the VPN features of the present invention can be extended by synchronizing the processing of the SSL decryption and end point processing described above with other processing of the connections to be carried out at the gateway including those described above such as load balancing, HTTP dynamic application caching, HTTP compression, TCP compression, defense against TCP and HTTP distributed denial of service attacks, HTTP virus defense scanning, and the like.


In addition to the processing efficiencies described above, an embodiment of the present invention creates a separate TCP connection for each connection with the client or client control and terminates each such connection separately at the gateway and therefore provides the ability to simply and efficiently sequence the additional processing on each such connection.


In other approaches, including the connection tunneling approach, the gateway faces additional processing issues as previously described in the preceding paragraphs relating to the additional connection processing that must be carried out in contrast to the more efficient approaches of the present invention. Because multiple applications may be tunneled through a single encrypted session tunnel under this less efficient approach, the processing of the internal TCP connections at the gateway becomes more complex and less economical in its use of gateway processor resources. In this way, an embodiment of the invention improves the efficiency of integrating the processing at the gateway of the encryption session with other forms of processing.


Although the above-described methods are described in reference to embodiments in which communication is initiated by a client, the present invention also encompasses an embodiment in which communication is initiated by an entity on private data communication network 106. In accordance with such an embodiment, gateway 108 acts as a virtual client and entities on private communication network 106, such as servers 110a-110n, initiate communication with applications resident on any of clients 102a-102n. In such an embodiment, the VPN session is established in the same manner described above in reference to FIG. 3, but after the session is set up, either the client or the server can initiate a connection or communication session, such as a UDP session, to send communications to each other.


C. Exemplary Client/Server/Gateway

The functions of the present invention as respectively performed by each of clients 102a-102n, servers 110a-110n, and gateway 108n may be implemented using hardware, software, or a combination thereof and may be implemented in one or more computer systems or other processing systems. For example, FIG. 4 depicts an example computer system 400 that may be utilized to implement any of clients 102a-102n, servers 110a-110n, and/or gateway 108n in accordance with embodiments of the present invention.


As shown in FIG. 4, the example computer system 400 includes a processor 404 for executing software routines in accordance with embodiments of the present invention. Although a single processor is shown for the sake of clarity, the computer system 400 may also comprise a multiprocessor system. The processor 404 is connected to a communication infrastructure 406 for communication with other components of the computer system 400. The communication infrastructure 406 may comprise, for example, a communications bus, cross-bar, or network.


Computer system 400 further includes a main memory 408, such as a random access memory (RAM), and a secondary memory 410. The secondary memory 410 may include, for example, a hard disk drive 412 and/or a removable storage drive 414, which may comprise a floppy disk drive, a magnetic tape drive, an optical disk drive, or the like. The removable storage drive 414 reads from and/or writes to a removable storage unit 418 in a well known manner. Removable storage unit 418 may comprise a floppy disk, magnetic tape, optical disk, or the like, which is read by and written to by removable storage drive 414. As will be appreciated by persons skilled in the relevant art(s), the removable storage unit 418 includes a computer usable storage medium having stored therein computer software and/or data.


In alternative embodiments, secondary memory 410 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 400. Such means can include, for example, a removable storage unit 422 and an interface 420. Examples of a removable storage unit 422 and interface 420 include a program cartridge and cartridge interface (such as that found in video game console devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 422 and interfaces 420 which allow software and data to be transferred from the removable storage unit 422 to computer system 400.


Computer system 400 further includes a display interface 402 that forwards graphics, text, and other data from the communication infrastructure 406 or from a frame buffer (riot shown) for display to a user on a display unit 430.


Computer system 400 also includes at least one communication interface 424. Communication interface 424 allows software and data to be transferred between computer system 400 and external devices via a communication path 426. In embodiments of the present invention, the communication interface 424 permits data to be transferred between the computer system 400 and a data communication network, such as public data communication network 104 or private data communication network 106. Examples of communications interface 424 can include a modem, a network interface (such as Ethernet card), a communications port, and the like. Software and data transferred via communications interface 424 are in the form of signals which can be electronic, electromagnetic, optical or other signals capable of being received by communications interface 424. These signals are provided to the communications interface via the communication path 426.


As used herein, the term “computer program product” may refer, in part, to removable storage unit 418, removable storage unit 422, a hard disk installed in hard disk drive 412, or a carrier wave carrying software over a communication path 426 (wireless link or cable) to communication interface 424. A computer useable medium can include magnetic media, optical media, or other recordable media, or media that transmits a carrier wave or other signal. These computer program products are means for providing software to computer system 400.


Computer programs (also called computer control logic) are stored in main memory 408 and/or secondary memory 410. Computer programs can also be received via communications interface 424. Such computer programs, when executed, enable the computer system 400 to perform one or more features of the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor 404 to perform features of the present invention. Accordingly, such computer programs represent controllers of the computer system 400.


The present invention can be implemented as control logic in software, firmware, hardware or any combination thereof. In an embodiment where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system 400 using removable storage drive 414, hard disk drive 412, or interface 420. Alternatively, the computer program product may be downloaded to computer system 400 over communications path 426. The software, when executed by the processor 404, causes the processor 404 to perform functions of the invention as described herein.


D. Conclusion

While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, it will be understood by those skilled in the relevant art(s) that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims
  • 1. A system comprising: a program executing on a client establishing a connection with a device intermediary to the client and a server;a driver of the client intercepting a packet transmitted by an application of the client to the server and providing the intercepted packet to the program; andwherein the program performs additional processing of the intercepted packet, comprising encapsulating payload from the intercepted packet, before transmitting the encapsulated payload of the intercepted packet via the connection.
  • 2. The system of claim 1, wherein the additional processing comprises encrypting at least the payload of the intercepted packet.
  • 3. The system of claim 1, wherein the additional processing comprises Domain Name Service (DNS) name resolution.
  • 4. The system of claim 1, wherein the additional processing comprises dynamically changing internet protocol addresses.
  • 5. The system of claim 1, wherein the additional processing comprises keeping a log regarding the intercepted packet.
  • 6. The system of claim 1, wherein the additional processing comprises keeping statistics regarding the intercepted packet.
  • 7. The system of claim 1, wherein the additional processing comprises integrating with a global server load balancing system.
  • 8. The system of claim 1, wherein the program transmits the payload from the intercepted packet to the device via the connection.
  • 9. The system of claim 1, wherein the program executes at an application layer of a network stack of the client and the driver operates at one or more layers below the application layer.
  • 10. The system of claim 1, wherein the program terminates an end point of the connection with the device and the driver terminates a second connection of the application to the server.
  • 11. A system comprising: a device intermediary to a client and a server, the device establishing a first connection with a program executing on the client, the program encapsulating payload from a packet intercepted by a driver from a transmission by an application of the client of the packet to the server, encrypting the encapsulated payload and transmitting communications comprising the encrypted encapsulated payload;wherein the device decrypts the communications received from the program and destined for the server; andwherein the device performs additional processing of the decrypted communications before transmitting to the server via a second connection between the device and the server.
  • 12. The system of claim 11, wherein the device responsive to a request from the client to access the server, transmits the program to the client for installation and execution on the client, the program upon execution, installing a driver in a network stack of the client.
  • 13. The system of claim 12, wherein the driver intercepts communications from the application and redirects the communications to the program.
  • 14. The system of claim 11, wherein the additional processing comprises re-encrypting the decrypted communications before transmission to the server.
  • 15. The system of claim 11, wherein the additional processing comprises load balancing the decrypted communications before transmission to the server.
  • 16. The system of claim 11, wherein the additional processing comprises compressing the decrypted communications before transmission to the server.
  • 17. The system of claim 11, wherein the additional processing comprises serving a response out of a cache of the device rather than transmitting the decrypted communications to the server.
  • 18. The system of claim 11, wherein the additional processing comprises performing defense against denial of service attacks.
  • 19. The system of claim 11, wherein the additional processing comprises performing virus scanning of the decrypted communications.
  • 20. The system of claim 11, wherein responsive to transmitting the communications to the server, the device receives via the second connection a response from the server and encrypts and transmits the encrypted response via the first connection to the program.
RELATED APPLICATIONS

The present application claims priority to and is a continuation of U.S. patent application Ser. No. 12/794,446 entitled “SYSTEM AND METHOD FOR ESTABLISHING A VIRTUAL PRIVATE NETWORK”, filed Jun. 4, 2010, which claims priority to and is a continuation of U.S. patent application Ser. No. 11/039,946, entitled “SYSTEM AND METHOD FOR ESTABLISHING A VIRTUAL PRIVATE NETWORK”, filed Jan. 24, 2005, which claims priority to and is a non-provisional of U.S. Provisional Application No. 60/583,785, entitled “SYSTEM AND METHOD FOR ESTABLISHING A VIRTUAL PRIVATE NETWORK”, filed Jun. 30, 2004, all of which are incorporated herein by reference in their entirety.

US Referenced Citations (781)
Number Name Date Kind
4479195 Herr et al. Oct 1984 A
4701844 Thompson et al. Oct 1987 A
4885680 Anthony et al. Dec 1989 A
4935870 Burk et al. Jun 1990 A
5301270 Steinberg et al. Apr 1994 A
5307413 Denzer Apr 1994 A
5329619 Page et al. Jul 1994 A
5359712 Cohen et al. Oct 1994 A
5511208 Boyles et al. Apr 1996 A
5519699 Ohsawa May 1996 A
5521940 Lane et al. May 1996 A
5561769 Kumar et al. Oct 1996 A
5623492 Teraslinna Apr 1997 A
5625793 Mirza Apr 1997 A
5657390 Elgamal et al. Aug 1997 A
5671226 Murakami et al. Sep 1997 A
5708656 Noneman et al. Jan 1998 A
5742829 Davis et al. Apr 1998 A
5758085 Kouoheris et al. May 1998 A
5758110 Boss et al. May 1998 A
5761431 Gross et al. Jun 1998 A
5787470 DeSimone et al. Jul 1998 A
5812668 Weber Sep 1998 A
5815462 Konishi et al. Sep 1998 A
5819020 Beeler, Jr. Oct 1998 A
5822524 Chen et al. Oct 1998 A
5828840 Cowan et al. Oct 1998 A
5835726 Shwed et al. Nov 1998 A
5838920 Rosborough Nov 1998 A
5850446 Berger et al. Dec 1998 A
5852717 Bhide et al. Dec 1998 A
5864837 Maimone Jan 1999 A
5881229 Singh et al. Mar 1999 A
5889863 Weber Mar 1999 A
5893150 Hagersten et al. Apr 1999 A
5911051 Carson et al. Jun 1999 A
5918244 Percival Jun 1999 A
5925100 Drewry et al. Jul 1999 A
5931917 Nguyen et al. Aug 1999 A
5931961 Ranganathan et al. Aug 1999 A
5933605 Kawano et al. Aug 1999 A
5940074 Britt et al. Aug 1999 A
5943424 Berger et al. Aug 1999 A
5956483 Grate et al. Sep 1999 A
5958016 Chang et al. Sep 1999 A
5978840 Nguyen et al. Nov 1999 A
5983208 Haller et al. Nov 1999 A
5987132 Rowney Nov 1999 A
5987482 Bates et al. Nov 1999 A
5987611 Freund Nov 1999 A
5995999 Bharadhwaj Nov 1999 A
5996076 Rowney et al. Nov 1999 A
5999179 Kekic et al. Dec 1999 A
5999525 Krishnaswamy et al. Dec 1999 A
6002767 Kramer Dec 1999 A
6021470 Frank et al. Feb 2000 A
6023724 Bhatia et al. Feb 2000 A
6026379 Haller et al. Feb 2000 A
6026413 Challenger et al. Feb 2000 A
6026440 Shrader et al. Feb 2000 A
6029175 Chow et al. Feb 2000 A
6058250 Harwood et al. May 2000 A
6061715 Hawes May 2000 A
6061769 Kapulka et al. May 2000 A
6061796 Chen et al. May 2000 A
6067569 Khaki et al. May 2000 A
6072870 Nguyen et al. Jun 2000 A
6092155 Olnowich Jul 2000 A
6101543 Alden et al. Aug 2000 A
6112085 Garner et al. Aug 2000 A
6119105 Williams Sep 2000 A
6119151 Cantrell et al. Sep 2000 A
6122403 Rhoads Sep 2000 A
6128627 Mattis et al. Oct 2000 A
6131120 Reid Oct 2000 A
6141686 Jackowski et al. Oct 2000 A
6144775 Williams et al. Nov 2000 A
6157955 Narad et al. Dec 2000 A
6161123 Renouard et al. Dec 2000 A
6163772 Kramer et al. Dec 2000 A
6170017 Dias et al. Jan 2001 B1
6173325 Kukreja Jan 2001 B1
6175869 Ahuja et al. Jan 2001 B1
6178409 Weber et al. Jan 2001 B1
6182139 Brendel Jan 2001 B1
6192408 Vahalia et al. Feb 2001 B1
6219669 Haff et al. Apr 2001 B1
6233249 Katseff et al. May 2001 B1
6233606 Dujari May 2001 B1
6233619 Narisi et al. May 2001 B1
6236652 Preston et al. May 2001 B1
6252851 Siu et al. Jun 2001 B1
6253027 Weber et al. Jun 2001 B1
6253188 Witek et al. Jun 2001 B1
6253327 Zhang et al. Jun 2001 B1
6256773 Bowman-Amuah Jul 2001 B1
6272146 Bowater et al. Aug 2001 B1
6272148 Takagi et al. Aug 2001 B1
6272556 Gish Aug 2001 B1
6282172 Robles et al. Aug 2001 B1
6289382 Bowman-Amuah Sep 2001 B1
6289450 Pensak et al. Sep 2001 B1
6301249 Mansfield et al. Oct 2001 B1
6304915 Nguyen et al. Oct 2001 B1
6308273 Goertzel et al. Oct 2001 B1
6321235 Bird Nov 2001 B1
6321337 Reshef et al. Nov 2001 B1
6324525 Kramer et al. Nov 2001 B1
6324582 Sridhar et al. Nov 2001 B1
6324647 Bowman-Amuah Nov 2001 B1
6324648 Grantges, Jr. Nov 2001 B1
6327242 Amicangioli et al. Dec 2001 B1
6332163 Bowman-Amuah Dec 2001 B1
6333931 LaPier et al. Dec 2001 B1
6334664 Silverbrook Jan 2002 B1
6339832 Bowman-Amuah Jan 2002 B1
6345239 Bowman-Amuah Feb 2002 B1
6363363 Haller et al. Mar 2002 B1
6363478 Lambert et al. Mar 2002 B1
6370573 Bowman-Amuah Apr 2002 B1
6370599 Anand et al. Apr 2002 B1
6373950 Rowney Apr 2002 B1
6383478 Prokop et al. May 2002 B1
6389462 Cohen et al. May 2002 B1
6389505 Emma et al. May 2002 B1
6398359 Silverbrook et al. Jun 2002 B1
6405364 Bowman-Amuah Jun 2002 B1
6412000 Riddle et al. Jun 2002 B1
6415329 Gelman et al. Jul 2002 B1
6425057 Cherkasova et al. Jul 2002 B1
6427132 Bowman-Amuah Jul 2002 B1
6427187 Malcolm Jul 2002 B2
6431777 Silverbrook Aug 2002 B1
6434568 Bowman-Amuah Aug 2002 B1
6434618 Cohen et al. Aug 2002 B1
6434628 Bowman-Amuah Aug 2002 B1
6438127 Le Goff et al. Aug 2002 B1
6438594 Bowman-Amuah Aug 2002 B1
6442571 Haff et al. Aug 2002 B1
6442682 Pothapragada et al. Aug 2002 B1
6442748 Bowman-Amuah Aug 2002 B1
6447113 Silverbrook et al. Sep 2002 B1
6449658 Lafe et al. Sep 2002 B1
6449695 Bereznyi et al. Sep 2002 B1
6452915 Jorgensen Sep 2002 B1
6452923 Gerszberg et al. Sep 2002 B1
6473794 Guheen et al. Oct 2002 B1
6473802 Masters Oct 2002 B2
6477580 Bowman-Amuah Nov 2002 B1
6477665 Bowman-Amuah Nov 2002 B1
6484143 Swildens et al. Nov 2002 B1
6484206 Crump et al. Nov 2002 B2
6487641 Cusson et al. Nov 2002 B1
6496481 Wu et al. Dec 2002 B1
6496776 Blumberg et al. Dec 2002 B1
6496850 Bowman-Amuah Dec 2002 B1
6496935 Fink et al. Dec 2002 B1
6502102 Haswell et al. Dec 2002 B1
6502192 Nguyen Dec 2002 B1
6502213 Bowman-Amuah Dec 2002 B1
6507891 Challenger et al. Jan 2003 B1
6519571 Guheen et al. Feb 2003 B1
6523027 Underwood Feb 2003 B1
6529909 Bowman-Amuah Mar 2003 B1
6529948 Bowman-Amuah Mar 2003 B1
6536037 Guheen et al. Mar 2003 B1
6539396 Bowman-Amuah Mar 2003 B1
6549949 Bowman-Amuah Apr 2003 B1
6550012 Villa et al. Apr 2003 B1
6550057 Bowman-Amuah Apr 2003 B1
6553129 Rhoads Apr 2003 B1
6553377 Eschelbeck et al. Apr 2003 B1
6553409 Zhang et al. Apr 2003 B1
6571282 Bowman-Amuah May 2003 B1
6574668 Gubbi et al. Jun 2003 B1
6574688 Dale et al. Jun 2003 B1
6578068 Bowman-Amuah Jun 2003 B1
6578073 Starnes et al. Jun 2003 B1
6584569 Reshef et al. Jun 2003 B2
6590588 Lincke et al. Jul 2003 B2
6591266 Li et al. Jul 2003 B1
6594690 Cantwell Jul 2003 B2
6598075 Ogdon et al. Jul 2003 B1
6601057 Underwood et al. Jul 2003 B1
6601192 Bowman-Amuah Jul 2003 B1
6601233 Underwood Jul 2003 B1
6601234 Bowman-Amuah Jul 2003 B1
6606660 Bowman-Amuah Aug 2003 B1
6606663 Liao et al. Aug 2003 B1
6606744 Mikurak Aug 2003 B1
6609128 Underwood Aug 2003 B1
6611262 Suzuki Aug 2003 B1
6611522 Zheng et al. Aug 2003 B1
6611822 Beams et al. Aug 2003 B1
6611867 Bowman-Amuah Aug 2003 B1
6614800 Genty et al. Sep 2003 B1
6615166 Guheen et al. Sep 2003 B1
6615199 Bowman-Amuah Sep 2003 B1
6615253 Bowman-Amuah Sep 2003 B1
6618359 Chen et al. Sep 2003 B1
6629081 Cornelius et al. Sep 2003 B1
6631986 Silverbrook Oct 2003 B2
6633574 Koch et al. Oct 2003 B1
6633878 Underwood Oct 2003 B1
6636242 Bowman-Amuah Oct 2003 B2
6640238 Bowman-Amuah Oct 2003 B1
6640240 Hoffman et al. Oct 2003 B1
6640244 Bowman-Amuah Oct 2003 B1
6640248 Jorgensen Oct 2003 B1
6640249 Bowman-Amuah Oct 2003 B1
6647130 Rhoads Nov 2003 B2
6650640 Muller et al. Nov 2003 B1
6652089 Silverbrook Nov 2003 B2
6652090 Silverbrook Nov 2003 B2
6662221 Gonda et al. Dec 2003 B1
6662357 Bowman-Amuah Dec 2003 B1
6664978 Kekic et al. Dec 2003 B1
6671818 Mikurak Dec 2003 B1
6678734 Haatainen et al. Jan 2004 B1
6681029 Rhoads Jan 2004 B1
6687732 Bector et al. Feb 2004 B1
6691227 Neves et al. Feb 2004 B1
6697824 Bowman-Amuah Feb 2004 B1
6697844 Chan et al. Feb 2004 B1
6697849 Carlson Feb 2004 B1
6700902 Meyer Mar 2004 B1
6701345 Carley et al. Mar 2004 B1
6701514 Haswell et al. Mar 2004 B1
6704873 Underwood Mar 2004 B1
6715037 Malcolm Mar 2004 B2
6715145 Bowman-Amuah Mar 2004 B1
6718535 Underwood Apr 2004 B1
6721713 Guheen et al. Apr 2004 B1
6728787 Leigh Apr 2004 B1
6732237 Jacobs et al. May 2004 B1
6732269 Baskey et al. May 2004 B1
6732314 Borella et al. May 2004 B1
6735601 Subrahmanyam May 2004 B1
6735691 Capps et al. May 2004 B1
6742015 Bowman-Amuah May 2004 B1
6744774 Sharma Jun 2004 B2
6754699 Swildens et al. Jun 2004 B2
6760748 Hakim Jul 2004 B1
6766373 Beadle et al. Jul 2004 B1
6772203 Feiertag et al. Aug 2004 B1
6775392 Rhoads Aug 2004 B1
6785719 Jacobson et al. Aug 2004 B1
6788315 Kekic et al. Sep 2004 B1
6789170 Jacobs et al. Sep 2004 B1
6792615 Rowe et al. Sep 2004 B1
6801927 Smith et al. Oct 2004 B1
6802020 Smith Oct 2004 B1
6807607 Lamparter Oct 2004 B1
6820125 Dias et al. Nov 2004 B1
6820133 Grove et al. Nov 2004 B1
6820974 Silverbrook Nov 2004 B2
6823374 Kausik et al. Nov 2004 B2
6826626 McManus Nov 2004 B1
6826627 Sjollema et al. Nov 2004 B2
6831898 Edsall et al. Dec 2004 B1
6842906 Bowman-Amuah Jan 2005 B1
6847892 Zhou et al. Jan 2005 B2
6850252 Hoffberg Feb 2005 B1
6870921 Elsey et al. Mar 2005 B1
6873988 Herrmann et al. Mar 2005 B2
6880086 Kidder et al. Apr 2005 B2
6883068 Tsirigotis et al. Apr 2005 B2
6888927 Cruickshank et al. May 2005 B1
6894981 Coile et al. May 2005 B1
6899420 Silverbrook May 2005 B2
6901072 Wong May 2005 B1
6904449 Quinones Jun 2005 B1
6904519 Anand et al. Jun 2005 B2
6907546 Haswell et al. Jun 2005 B1
6910074 Amin et al. Jun 2005 B1
6912522 Edgar Jun 2005 B2
6918113 Patel et al. Jul 2005 B2
6918665 Silverbrook Jul 2005 B2
6920502 Araujo et al. Jul 2005 B2
6925495 Hegde et al. Aug 2005 B2
6934288 Dempo Aug 2005 B2
6935736 Silverbrook Aug 2005 B2
6944279 Elsey et al. Sep 2005 B2
6954736 Menninger et al. Oct 2005 B2
6954877 Earl et al. Oct 2005 B2
6957186 Guheen et al. Oct 2005 B1
6957249 Salo et al. Oct 2005 B2
6959320 Shah et al. Oct 2005 B2
6974928 Bloom Dec 2005 B2
6976090 Ben-Shaul et al. Dec 2005 B2
6980962 Arganbright et al. Dec 2005 B1
6990070 Aweya et al. Jan 2006 B1
6990480 Burt Jan 2006 B1
6993016 Liva et al. Jan 2006 B1
6996628 Keane et al. Feb 2006 B2
6996631 Aiken et al. Feb 2006 B1
7000012 Moore et al. Feb 2006 B2
7007092 Peiffer Feb 2006 B2
7007103 Pinkerton et al. Feb 2006 B2
7010300 Jones et al. Mar 2006 B1
7013290 Ananian Mar 2006 B2
7016055 Dodge et al. Mar 2006 B2
7020719 Grove et al. Mar 2006 B1
7023979 Wu et al. Apr 2006 B1
7024452 O'Connell et al. Apr 2006 B1
7026954 Slemmer et al. Apr 2006 B2
7027055 Anderson et al. Apr 2006 B2
7028083 Levine et al. Apr 2006 B2
7028333 Tuomenoksa et al. Apr 2006 B2
7028334 Tuomenoksa Apr 2006 B2
7031314 Craig et al. Apr 2006 B2
7034691 Rapaport et al. Apr 2006 B1
7035427 Rhoads Apr 2006 B2
7036142 Zhang et al. Apr 2006 B1
7039606 Hoffman et al. May 2006 B2
7039708 Knobl et al. May 2006 B1
7042879 Eschbach et al. May 2006 B2
7043529 Simonoff May 2006 B1
7047279 Beams et al. May 2006 B1
7047424 Bendinelli et al. May 2006 B2
7051161 Dixit et al. May 2006 B2
7051316 Charisius et al. May 2006 B2
7054837 Hoffman et al. May 2006 B2
7054944 Tang et al. May 2006 B2
7055028 Peiffer et al. May 2006 B2
7055169 Delpuch et al. May 2006 B2
7055947 Silverbrook Jun 2006 B2
7057759 Lapstun et al. Jun 2006 B2
7069234 Cornelius et al. Jun 2006 B1
7070110 Lapstun et al. Jul 2006 B2
7072665 Blumberg et al. Jul 2006 B1
7072843 Menninger et al. Jul 2006 B2
7072965 Ryuutou et al. Jul 2006 B2
7080041 Nagel Jul 2006 B2
7082409 Cherry Jul 2006 B1
7085683 Anderson et al. Aug 2006 B2
7085834 Delany et al. Aug 2006 B2
7085854 Keane et al. Aug 2006 B2
7086728 Silverbrook Aug 2006 B2
7092370 Jiang et al. Aug 2006 B2
7096009 Mousseau et al. Aug 2006 B2
7096418 Singhal et al. Aug 2006 B1
7096495 Warrier et al. Aug 2006 B1
7097106 Silverbrook et al. Aug 2006 B2
7100195 Underwood Aug 2006 B1
7103068 Gardner et al. Sep 2006 B1
7107285 Von Kaenel et al. Sep 2006 B2
7113779 Fujisaki Sep 2006 B1
7113962 Kee et al. Sep 2006 B1
7114180 DeCaprio Sep 2006 B1
7117504 Smith et al. Oct 2006 B2
7117530 Lin Oct 2006 B1
7120596 Hoffman et al. Oct 2006 B2
7120666 McCanne et al. Oct 2006 B2
7120690 Krishnan et al. Oct 2006 B1
7120852 Terry et al. Oct 2006 B2
7124101 Mikurak Oct 2006 B1
7124442 Nash-Putnam Oct 2006 B2
7126955 Nabhan et al. Oct 2006 B2
7128265 Silverbrook et al. Oct 2006 B2
7128270 Silverbrook et al. Oct 2006 B2
7130792 Tokieda et al. Oct 2006 B2
7130807 Mikurak Oct 2006 B1
7131596 Lapstun et al. Nov 2006 B2
7134131 Hendricks et al. Nov 2006 B1
7135991 Slemmer et al. Nov 2006 B2
7136645 Hanson et al. Nov 2006 B2
7137566 Silverbrook et al. Nov 2006 B2
7139999 Bowman-Amuah Nov 2006 B2
7140044 Redlich et al. Nov 2006 B2
7143153 Black et al. Nov 2006 B1
7144095 Silverbrook Dec 2006 B2
7146384 Sawafta Dec 2006 B2
7146644 Redlich et al. Dec 2006 B2
7149698 Guheen et al. Dec 2006 B2
7149897 Chincheck et al. Dec 2006 B2
7149959 Jones et al. Dec 2006 B1
7150398 Silverbrook et al. Dec 2006 B2
7152047 Nagel Dec 2006 B1
7152092 Beams et al. Dec 2006 B2
7152207 Underwood et al. Dec 2006 B1
7155518 Forslow Dec 2006 B2
7155676 Land et al. Dec 2006 B2
7159014 Kausik et al. Jan 2007 B2
7159777 Silverbrook et al. Jan 2007 B2
7162540 Jasen et al. Jan 2007 B2
7164680 Loguinov Jan 2007 B2
7165041 Guheen et al. Jan 2007 B1
7167844 Leong et al. Jan 2007 B1
7171379 Menninger et al. Jan 2007 B2
7175089 Silverbrook et al. Feb 2007 B2
7178106 Lamkin et al. Feb 2007 B2
7178719 Silverbrook et al. Feb 2007 B2
7181766 Bendinelli et al. Feb 2007 B2
7184445 Gupta et al. Feb 2007 B2
7187470 Lapstun et al. Mar 2007 B2
7188273 Allen et al. Mar 2007 B2
7188769 Silverbrook et al. Mar 2007 B2
7191252 Redlich et al. Mar 2007 B2
7194761 Champagne Mar 2007 B1
7197374 Silverbrook et al. Mar 2007 B2
7197502 Feinsmith Mar 2007 B2
7197570 Eylon et al. Mar 2007 B2
7197602 Malcolm Mar 2007 B2
7197751 Fedotov et al. Mar 2007 B2
7199885 Dodge Apr 2007 B2
7200804 Khavari et al. Apr 2007 B1
7206811 Skurikhin et al. Apr 2007 B2
7207483 Silverbrook et al. Apr 2007 B2
7207485 Silverbrook et al. Apr 2007 B2
7212296 Dodge et al. May 2007 B2
7216173 Clayton et al. May 2007 B2
7219127 Huck et al. May 2007 B2
7221660 Simonson et al. May 2007 B1
7222152 Thompson et al. May 2007 B1
7222305 Teplov et al. May 2007 B2
7225040 Eller et al. May 2007 B2
7225244 Reynolds et al. May 2007 B2
7225382 Ramech et al. May 2007 B2
7228459 Jiang et al. Jun 2007 B2
7246233 Brabson et al. Jul 2007 B2
7260617 Bazinet et al. Aug 2007 B2
7260840 Swander et al. Aug 2007 B2
7263071 Yim Aug 2007 B2
7272853 Goodman et al. Sep 2007 B2
7284044 Teraoaka et al. Oct 2007 B2
7318100 Demmer et al. Jan 2008 B2
7321906 Green Jan 2008 B2
7328267 Bashyam et al. Feb 2008 B1
7340772 Panasyuk et al. Mar 2008 B2
7353533 Wright et al. Apr 2008 B2
7363347 Thomas Apr 2008 B2
7363378 Holmes et al. Apr 2008 B2
7370353 Yang May 2008 B2
7386631 Sibal et al. Jun 2008 B1
7389462 Wang et al. Jun 2008 B1
7392348 Dumont Jun 2008 B2
7398320 Minakuchi et al. Jul 2008 B1
7398552 Pardee et al. Jul 2008 B2
7401116 Chalfin et al. Jul 2008 B1
7404003 Noble Jul 2008 B1
7406533 Li et al. Jul 2008 B2
7409708 Goodman et al. Aug 2008 B2
7415723 Pandya Aug 2008 B2
7420992 Fang et al. Sep 2008 B1
7433314 Sharma et al. Oct 2008 B2
7441119 Brabson et al. Oct 2008 B2
7458095 Forsberg Nov 2008 B2
7464264 Goodman et al. Dec 2008 B2
7480312 Ossman Jan 2009 B2
7496659 Coverdill et al. Feb 2009 B1
7505455 Goodwin et al. Mar 2009 B1
7512702 Srivastava et al. Mar 2009 B1
7522581 Acharya et al. Apr 2009 B2
7533409 Keane et al. May 2009 B2
7536715 Markham May 2009 B2
7577144 Chang et al. Aug 2009 B2
7606902 Rao et al. Oct 2009 B2
7609721 Rao et al. Oct 2009 B2
7644188 Vlodavsky et al. Jan 2010 B2
7673048 O'Toole et al. Mar 2010 B1
7757074 Sundarrajan et al. Jul 2010 B2
7775074 Tobias et al. Aug 2010 B1
7882247 Sturniolo et al. Feb 2011 B2
7921184 Sundarrajan et al. Apr 2011 B2
7945678 Skene May 2011 B1
7979528 Eisenberg et al. Jul 2011 B2
7979694 Touitou et al. Jul 2011 B2
8005981 Tuck et al. Aug 2011 B2
8205000 Chang et al. Jun 2012 B2
8223647 Kakani et al. Jul 2012 B2
8261057 Sundarrajan et al. Sep 2012 B2
8351327 Binns Jan 2013 B1
8495305 Sundarrajan et al. Jul 2013 B2
20010030970 Wiryaman et al. Oct 2001 A1
20010037387 Gilde et al. Nov 2001 A1
20010043600 Chatterjee et al. Nov 2001 A1
20010046212 Nakajima Nov 2001 A1
20010047406 Araujo et al. Nov 2001 A1
20010049717 Freeman et al. Dec 2001 A1
20010049741 Skene et al. Dec 2001 A1
20010052016 Skene et al. Dec 2001 A1
20010052065 Alexander, III et al. Dec 2001 A1
20020004834 Guenther et al. Jan 2002 A1
20020004902 Toh et al. Jan 2002 A1
20020007402 Thomas Huston et al. Jan 2002 A1
20020007404 Vange et al. Jan 2002 A1
20020016827 McCabe et al. Feb 2002 A1
20020023210 Tuomenoksa et al. Feb 2002 A1
20020026478 Rodgers et al. Feb 2002 A1
20020026531 Keane et al. Feb 2002 A1
20020029285 Collins Mar 2002 A1
20020032725 Araujo et al. Mar 2002 A1
20020032798 Xu Mar 2002 A1
20020035451 Rothermel Mar 2002 A1
20020035596 Yang et al. Mar 2002 A1
20020038339 Xu Mar 2002 A1
20020042875 Shukla Apr 2002 A1
20020049608 Hartsell et al. Apr 2002 A1
20020049841 Johnson et al. Apr 2002 A1
20020055966 Border et al. May 2002 A1
20020057717 Mallory May 2002 A1
20020059274 Hartsell et al. May 2002 A1
20020059429 Carpenter et al. May 2002 A1
20020059435 Border et al. May 2002 A1
20020065864 Hartsell et al. May 2002 A1
20020065919 Taylor et al. May 2002 A1
20020069278 Forslow Jun 2002 A1
20020071438 Singh Jun 2002 A1
20020073061 Collins Jun 2002 A1
20020073298 Geiger et al. Jun 2002 A1
20020081971 Travostino Jun 2002 A1
20020083175 Afek et al. Jun 2002 A1
20020083183 Pujare et al. Jun 2002 A1
20020087729 Edgar Jul 2002 A1
20020091788 Chlan et al. Jul 2002 A1
20020095400 Johnson et al. Jul 2002 A1
20020095498 Chanda et al. Jul 2002 A1
20020098840 Hanson et al. Jul 2002 A1
20020099940 Wang Jul 2002 A1
20020101848 Lee et al. Aug 2002 A1
20020101860 Thornton et al. Aug 2002 A1
20020105972 Richter et al. Aug 2002 A1
20020107903 Richter et al. Aug 2002 A1
20020107962 Richter et al. Aug 2002 A1
20020107971 Bailey et al. Aug 2002 A1
20020107989 Johnson et al. Aug 2002 A1
20020107990 Johnson et al. Aug 2002 A1
20020108059 Canion et al. Aug 2002 A1
20020116452 Johnson et al. Aug 2002 A1
20020116582 Copeland et al. Aug 2002 A1
20020120743 Shabtay et al. Aug 2002 A1
20020126675 Yoshimura et al. Sep 2002 A1
20020133593 Johnson et al. Sep 2002 A1
20020138511 Psounis et al. Sep 2002 A1
20020138572 Delany et al. Sep 2002 A1
20020138618 Szabo Sep 2002 A1
20020138640 Raz et al. Sep 2002 A1
20020147795 Cantwell Oct 2002 A1
20020147822 Susai et al. Oct 2002 A1
20020150064 Lucidarme Oct 2002 A1
20020152373 Sun et al. Oct 2002 A1
20020152423 McCabe Oct 2002 A1
20020156927 Boucher et al. Oct 2002 A1
20020161908 Benitez et al. Oct 2002 A1
20020163882 Bornstein et al. Nov 2002 A1
20020174227 Hartsell et al. Nov 2002 A1
20020174255 Hayter et al. Nov 2002 A1
20020176532 McClelland et al. Nov 2002 A1
20020184224 Haff et al. Dec 2002 A1
20020194382 Kausik et al. Dec 2002 A1
20020196279 Bloomfield et al. Dec 2002 A1
20020199007 Clayton et al. Dec 2002 A1
20030009538 Shah et al. Jan 2003 A1
20030014623 Freed et al. Jan 2003 A1
20030014624 Maturana et al. Jan 2003 A1
20030014625 Freed et al. Jan 2003 A1
20030014628 Freed et al. Jan 2003 A1
20030014650 Freed et al. Jan 2003 A1
20030018891 Hall et al. Jan 2003 A1
20030023767 Brabson et al. Jan 2003 A1
20030026241 Ono et al. Feb 2003 A1
20030033520 Peiffer et al. Feb 2003 A1
20030037108 Peiffer et al. Feb 2003 A1
20030039354 Kimble et al. Feb 2003 A1
20030046586 Bheemarasetti et al. Mar 2003 A1
20030046587 Bheemarasetti et al. Mar 2003 A1
20030051100 Patel Mar 2003 A1
20030051102 Jacobs et al. Mar 2003 A1
20030055883 Wiles, Jr. Mar 2003 A1
20030055962 Freund et al. Mar 2003 A1
20030061505 Sperry et al. Mar 2003 A1
20030065763 Swildens et al. Apr 2003 A1
20030067874 See et al. Apr 2003 A1
20030069941 Peiffer Apr 2003 A1
20030079031 Nagano Apr 2003 A1
20030084162 Johnson et al. May 2003 A1
20030084165 Kjellberg et al. May 2003 A1
20030088698 Singh et al. May 2003 A1
20030088788 Yang May 2003 A1
20030093566 Jardin May 2003 A1
20030105604 Ash et al. Jun 2003 A1
20030105977 Brabson et al. Jun 2003 A1
20030110296 Kirsch et al. Jun 2003 A1
20030110379 Ylonen et al. Jun 2003 A1
20030112809 Bharali et al. Jun 2003 A1
20030112823 Collins et al. Jun 2003 A1
20030115421 McHenry et al. Jun 2003 A1
20030123394 Neale et al. Jul 2003 A1
20030123481 Neale et al. Jul 2003 A1
20030131079 Neale et al. Jul 2003 A1
20030131263 Keane et al. Jul 2003 A1
20030140121 Adams Jul 2003 A1
20030149899 Boden et al. Aug 2003 A1
20030152028 Raisanen et al. Aug 2003 A1
20030154110 Walter et al. Aug 2003 A1
20030154239 Davis et al. Aug 2003 A1
20030165138 Swonk et al. Sep 2003 A1
20030167403 McCurley et al. Sep 2003 A1
20030174718 Sampath et al. Sep 2003 A1
20030177389 Albert et al. Sep 2003 A1
20030177395 Pardee et al. Sep 2003 A1
20030182423 Shafir et al. Sep 2003 A1
20030182431 Sturniolo et al. Sep 2003 A1
20030182437 Kobayashi et al. Sep 2003 A1
20030188001 Eisenberg et al. Oct 2003 A1
20030191799 Araujo et al. Oct 2003 A1
20030191812 Agarwalla et al. Oct 2003 A1
20030198189 Roberts et al. Oct 2003 A1
20030200295 Roberts et al. Oct 2003 A1
20030200353 Dogra et al. Oct 2003 A1
20030208602 Bhalla et al. Nov 2003 A1
20030212760 Chen et al. Nov 2003 A1
20030212776 Roberts et al. Nov 2003 A1
20030217105 Zircher et al. Nov 2003 A1
20030217126 Polcha et al. Nov 2003 A1
20030217149 Crichton et al. Nov 2003 A1
20030223361 Hussain et al. Dec 2003 A1
20030223418 Desai et al. Dec 2003 A1
20030223433 Lee et al. Dec 2003 A1
20030226018 Tardo et al. Dec 2003 A1
20030229718 Tock et al. Dec 2003 A1
20030229761 Basu et al. Dec 2003 A1
20030233423 Dilley et al. Dec 2003 A1
20030236831 Ortiz et al. Dec 2003 A1
20030236837 Johnson et al. Dec 2003 A1
20030236861 Johnson et al. Dec 2003 A1
20030236919 Johnson et al. Dec 2003 A1
20040003101 Roth et al. Jan 2004 A1
20040003137 Callender et al. Jan 2004 A1
20040006708 Mukherjee et al. Jan 2004 A1
20040008693 Grove et al. Jan 2004 A1
20040010601 Afergan et al. Jan 2004 A1
20040010604 Tanaka et al. Jan 2004 A1
20040010621 Afergan et al. Jan 2004 A1
20040031058 Reisman Feb 2004 A1
20040034744 Karlsson et al. Feb 2004 A1
20040034794 Mayer et al. Feb 2004 A1
20040039827 Thomas et al. Feb 2004 A1
20040042487 Ossman Mar 2004 A1
20040044521 Chen et al. Mar 2004 A1
20040044731 Chen et al. Mar 2004 A1
20040049515 Haff et al. Mar 2004 A1
20040073716 Boom et al. Apr 2004 A1
20040078621 Talaugon et al. Apr 2004 A1
20040078772 Balay et al. Apr 2004 A1
20040087304 Buddhikot et al. May 2004 A1
20040098486 Gu et al. May 2004 A1
20040100976 Chang et al. May 2004 A1
20040103150 Ogdon et al. May 2004 A1
20040103225 McAlpine et al. May 2004 A1
20040103438 Yan et al. May 2004 A1
20040107360 Herrmann et al. Jun 2004 A1
20040111519 Fu et al. Jun 2004 A1
20040128252 Shirai et al. Jul 2004 A1
20040128346 Melamed et al. Jul 2004 A1
20040141525 Bhushan et al. Jul 2004 A1
20040143655 Narad et al. Jul 2004 A1
20040143734 Buer et al. Jul 2004 A1
20040146053 Nabhan et al. Jul 2004 A1
20040162876 Kohavi Aug 2004 A1
20040177158 Bauch et al. Sep 2004 A1
20040177359 Bauch et al. Sep 2004 A1
20040190092 Silverbrook et al. Sep 2004 A1
20040202171 Hama Oct 2004 A1
20040203296 Moreton et al. Oct 2004 A1
20040205439 Carmeli et al. Oct 2004 A1
20040210320 Pandya Oct 2004 A1
20040213248 Okuda et al. Oct 2004 A1
20040215665 Edgar et al. Oct 2004 A1
20040215746 McCanne et al. Oct 2004 A1
20040221031 Desai Nov 2004 A1
20040225898 Frost et al. Nov 2004 A1
20040225911 Smith Nov 2004 A1
20040246971 Banerjee et al. Dec 2004 A1
20040249911 Alkhatib et al. Dec 2004 A1
20040249975 Tuck et al. Dec 2004 A1
20040258003 Kokot et al. Dec 2004 A1
20040260922 Goodman et al. Dec 2004 A1
20040268175 Koch et al. Dec 2004 A1
20040268357 Joy et al. Dec 2004 A1
20040268358 Darling et al. Dec 2004 A1
20050005014 Holmes et al. Jan 2005 A1
20050005107 Touboul Jan 2005 A1
20050013280 Buddhikot et al. Jan 2005 A1
20050021762 Gbadegesin Jan 2005 A1
20050022011 Swander et al. Jan 2005 A1
20050022012 Bluestone et al. Jan 2005 A1
20050022031 Goodman et al. Jan 2005 A1
20050025150 Helmy et al. Feb 2005 A1
20050027788 Koopmans et al. Feb 2005 A1
20050031058 Soong et al. Feb 2005 A1
20050033858 Swildens et al. Feb 2005 A1
20050033926 Dumont Feb 2005 A1
20050044350 White et al. Feb 2005 A1
20050050317 Kramer et al. Mar 2005 A1
20050055690 Cornillon et al. Mar 2005 A1
20050058112 Lahey et al. Mar 2005 A1
20050080850 Salesky et al. Apr 2005 A1
20050080907 Panasyuk et al. Apr 2005 A1
20050102529 Buddhikot et al. May 2005 A1
20050108412 Sjollema et al. May 2005 A1
20050108517 Dillon et al. May 2005 A1
20050122980 Anand et al. Jun 2005 A1
20050125663 Funk Jun 2005 A1
20050132030 Hopen et al. Jun 2005 A1
20050132060 Mo et al. Jun 2005 A1
20050135250 Singh et al. Jun 2005 A1
20050144186 Hesselink et al. Jun 2005 A1
20050144481 Hopen et al. Jun 2005 A1
20050147126 Qiu et al. Jul 2005 A1
20050149481 Hesselink et al. Jul 2005 A1
20050149726 Joshi et al. Jul 2005 A1
20050165928 Shu et al. Jul 2005 A1
20050177866 Kirsch Aug 2005 A1
20050185647 Rao et al. Aug 2005 A1
20050193075 Haff et al. Sep 2005 A1
20050195780 Haverinen et al. Sep 2005 A1
20050198380 Panasyuk et al. Sep 2005 A1
20050198532 Comlekoglu et al. Sep 2005 A1
20050210150 Bahl Sep 2005 A1
20050223084 Cheng Oct 2005 A1
20050223412 Nadalin et al. Oct 2005 A1
20050232161 Maufer et al. Oct 2005 A1
20050232298 Beverly et al. Oct 2005 A1
20050246346 Gerdes et al. Nov 2005 A1
20050246445 Panasyuk et al. Nov 2005 A1
20050256923 Adachi Nov 2005 A1
20050259634 Ross Nov 2005 A1
20050262357 Araujo et al. Nov 2005 A1
20050265315 Edgar Dec 2005 A1
20050265353 Sengupta et al. Dec 2005 A1
20050267974 Panasyuk et al. Dec 2005 A1
20050286466 Tagg et al. Dec 2005 A1
20060005240 Sundarrajan et al. Jan 2006 A1
20060015570 Khemani et al. Jan 2006 A1
20060018332 Kakani et al. Jan 2006 A1
20060031547 Tsui et al. Feb 2006 A1
20060034283 Ko et al. Feb 2006 A1
20060041635 Alexander et al. Feb 2006 A1
20060053164 Ewing et al. Mar 2006 A1
20060053253 Roth et al. Mar 2006 A1
20060059370 Asnis et al. Mar 2006 A1
20060064500 Roth et al. Mar 2006 A1
20060069719 McCanne et al. Mar 2006 A1
20060080441 Chen et al. Apr 2006 A1
20060089996 Peiffer Apr 2006 A1
20060112185 Van Bemmel May 2006 A1
20060123477 Raghavan et al. Jun 2006 A1
20060129689 Ho et al. Jun 2006 A1
20060133405 Fee Jun 2006 A1
20060142878 Banik et al. Jun 2006 A1
20060185010 Sultan Aug 2006 A1
20060225130 Chen et al. Oct 2006 A1
20060245414 Susai et al. Nov 2006 A1
20060271652 Stavrakos et al. Nov 2006 A1
20060274828 Siemens et al. Dec 2006 A1
20070008883 Kobayashi Jan 2007 A1
20070061067 Zeinstra et al. Mar 2007 A1
20070067366 Landis Mar 2007 A1
20070110046 Farrell et al. May 2007 A1
20070130324 Wang Jun 2007 A1
20070130334 Carley Jun 2007 A1
20070156852 Sundarrajan et al. Jul 2007 A1
20070169179 Narad Jul 2007 A1
20070179955 Croft et al. Aug 2007 A1
20070192827 Maxted et al. Aug 2007 A1
20070206621 Plamondon et al. Sep 2007 A1
20070233910 Paley et al. Oct 2007 A1
20070245409 Harris et al. Oct 2007 A1
20080034416 Kumar et al. Feb 2008 A1
20080046616 Verzunov et al. Feb 2008 A1
20080049786 Ram et al. Feb 2008 A1
20080071915 Gbadegesin Mar 2008 A1
20080225720 Khemani et al. Sep 2008 A1
20080225748 Khemani et al. Sep 2008 A1
20080225753 Khemani et al. Sep 2008 A1
20080229381 Sikka et al. Sep 2008 A1
20080320151 McCanne et al. Dec 2008 A1
20090133015 Nagashima May 2009 A1
20100241846 Sundarrajan et al. Sep 2010 A1
Foreign Referenced Citations (40)
Number Date Country
1394042 Jan 2003 CN
1410905 Apr 2003 CN
0 436 365 Jul 1991 EP
0 618 708 Oct 1994 EP
0 838 930 Apr 1998 EP
1 045 553 Oct 2000 EP
1 134 942 Sep 2001 EP
1 427 133 Jun 2004 EP
1 432 209 Jun 2004 EP
07-302237 Nov 1995 JP
08-006910 Jan 1996 JP
10-178450 Jun 1998 JP
2002-532784 Feb 2002 JP
2002-084289 Mar 2002 JP
2004-078783 Mar 2004 JP
WO-9904343 Jan 1999 WO
WO-0034885 Jun 2000 WO
WO-0147185 Jun 2001 WO
WO-0213037 Feb 2002 WO
WO-0223362 Mar 2002 WO
WO-0239301 May 2002 WO
WO-02069604 Sep 2002 WO
WO-03019876 Mar 2003 WO
WO-03026244 Mar 2003 WO
WO-03048936 Jun 2003 WO
WO-03083692 Oct 2003 WO
WO-03083692 Oct 2003 WO
WO-2004088933 Oct 2004 WO
WO-2004114529 Dec 2004 WO
WO-2005013534 Feb 2005 WO
WO-2005024567 Mar 2005 WO
WO-2005048106 May 2005 WO
WO-2005088476 Sep 2005 WO
WO-2006005078 Jan 2006 WO
WO-2006012612 Feb 2006 WO
WO-2006020823 Feb 2006 WO
WO-2006074072 Jul 2006 WO
WO-2006075219 Jul 2006 WO
WO-2008112691 Sep 2008 WO
WO-2008112698 Sep 2008 WO
Non-Patent Literature Citations (223)
Entry
Advisory Action for U.S. Appl. No. 11/161,656 dated Jul. 29, 2009.
Advisory Action for U.S. Appl. No. 11/187,508 dated Nov. 23, 2010.
Advisory Action for U.S. Appl. No. 11/187,512 dated Mar. 16, 2011.
Advisory Action for U.S. Appl. No. 11/161,093 dated Nov. 16, 2009.
Advisory Action for U.S. Appl. No. 11/161,093 dated Dec. 14, 2009.
Advisory Action for U.S. Appl. No. 11/039,946 dated Mar. 24, 2009.
Advisory Action for U.S. Appl. No. 11/161,091 dated May 6, 2009.
Advisory Action for U.S. Appl. No. 11/161,092 dated Apr. 24, 2009.
Biagioni et al., Signature for a network Protocol Stack: A System Application of Standard ML, Jul. 1994.
Canadian Office Action for CA appl. 2545496 dated Feb. 15, 2011.
Chinese Office Action on 200580028535.9 dated Dec. 13, 2011.
Chinese Office Action on 201110076025.6 dated Oct. 26, 2011.
Dictionary service [online], [retrieved on Jul. 23, 2009]. Retrieved from the Internet <URL: http://dictionary.reference.com/browse/discard&gt.
Doug Allen, Layer-7 Load Balancers Pack New Punch, CMP Media LLC Network Magazine, Sep. 2003.
EP Communication for EP Patent Application No. 07007414.1 dated Jun. 5, 2008. (6 pages).
EP Communication for European Patent Application No. 05776653.7 dated Oct. 5, 2007. (7 pages).
EP Communication from EP Patent Application No. 05 785 297.2, dated May 18, 2007, 2 pages.
EP Search Report for EP appl. 10184310.0 dated Dec. 9, 2010.
EP Search Report for EP appl. 10184317.5 dated Dec. 7, 2010.
EP Summons to Oral Proceedings for EP appl. 05776653.7 dated Jan. 14, 2011.
European Communication on 05776653.7 dated Jun. 24, 2011.
European Communication on 05855922.0 dated Nov. 24, 2011.
European Exam Report on 07007414.1 dated Aug. 11, 2011.
European Exam Report on 10184310.0 dated Aug. 11, 2011.
European Examination Report on 05774886.5 dated Nov. 24, 2011.
European Examination Report on 05855924.6 dated Nov. 24, 2011.
European Search Report for European Patent Application No. EP 07007414 dated Jul. 16, 2007. (2 pages).
European Supplemental Search Report on 05763688.8 dated Dec. 1, 2011.
Exam report for EP appl. 05785297.2 dated Jun. 19, 2009.
Exam Report for EP appl. 070074141 dated Nov. 17, 2009.
Exam Report for EP appln 05776653.7 dated Apr. 20, 2009.
Hasegawa et al., “A Mechanism for TCP Performance Enhancement over Assymetrical Environment,” Proceedings 8th IEEE ISCC'03, 1530-1346/03, 2003.
International Search Report for PCT/US2005/023914, mailing date May 7, 2007. 2 pages.
International Search Report for PCT/US2005/026300, Mailing date: Dec. 16, 2005. 3 pages.
International Search Report for PCT/US2005/028663, Mailing date: Nov. 16, 2005. 3 pages.
International Search Report for PCT/US2005/047433 dated Jul. 12, 2007.
International Search Report for PCT/US2007/066433. Mailing date Oct. 31, 2007, p. 1-4.
International Search Report to PCT/US04/37918, mailed on Apr. 27, 2008, 1 page.
International Search Report to PCT/US2005/026296, mailed on Jan. 31, 2006, 5 pgs.
Ipswitch Inc., WSFTP User's Guide, Chapter 8: Security, Jun. 25, 2003, 8 pages.
J. C. Mogul, “The Case for Persistent-Connection HTTP,” 8282 Computer Communication Review 25, Oct. 1995.
Japanese Office Action for JP appl. 2007-519353 dated Jul. 16, 2010.
Japanese Office Action for JP appl. 2007-522843 dated Dec. 1, 2010.
Japanese Office Action on 2007-48001 dated Oct. 29, 2010.
Japanese Office Action on 2007-48003 dated Nov. 8, 2010.
Japanese Office Action on 2007-552147 dated Jun. 30, 2011.
Kong, et al; “Pseudo-serving: a user-responsible paradigm for internet access”; Apr. 7-11, 1997; SO Computer Networks and ISDN Systems; vol. 29; pp. 1053-1064.
Korean Office Action for KR appl. 2006-7009144 dated Jan. 14, 2011.
Krishnamurthy B.C. et al., “Key differences between HTTP/1.0 and HTTP/1.1,” Computer Networks, Elsevier Science Publishers B.V., vol. 31, No. 11-16, pp. 1737-1751, May 1999.
Lazenka, M. “The Evolution of Software Distribution: Where Did We Come From and Where Are We Heading?”, 2005, ACM, p. 179-183.
Non Final Office Action dated Jan. 24, 2008 pertaining to U.S. Appl. No. 10/988,004. 6 pages.
Non Final Office Action dated Jun. 10, 2008 pertaining to U.S. Appl. No. 11/187,562. 15 pages.
Non Final Office Action dated Oct. 28, 2008 pertaining to U.S. Appl. No. 11/161,656. 21 pages.
Non Final Office Action dated Jun. 26, 2008 pertaining to U.S. Appl. No. 11/188,279. 12 pages.
Non Final Office Action dated Aug. 15, 2008 pertaining to U.S. Appl. No. 11/161,090 25 pages.
Non Final Office Action dated Dec. 11, 2007 pertaining to U.S Appl. No. 10/683,881. 10 pages.
Noriaki Kobayashi, “Internet VPN”, N+1 Network Guide, vol. 3, No. 9, Oct. 1, 2003, pp. 44-49. (9 pages) (English Abstract).
Notice of Acceptance for AU 2010214746 dated Nov. 2, 2010.
Notice of Acceptance for AU Appl. 2005266943 dated May 28, 2010. (3 pages).
Notice of Acceptance for AU Appl. 2005272779 dated May 26, 2010. (3 pages).
Notice of allowance dated Jun. 17, 2009 pertaining to U.S. Appl. No. 11/188,279.
Notice of Allowance dated Sep. 18, 2008. U.S. Appl. No. 10/988,004 5 pgs.
Notice of Allowance for U.S. Appl. No. 11/161,090 dated Mar. 4, 2011.
Notice of Allowance for U.S. Appl. No. 12/336,795 dated Mar. 2, 2011.
Notice of Allowance for U.S. Appl. No. 11/161,092 dated Jun. 11, 2009.
Notice of Allowance for U.S. Appl. No. 11/187,512 dated Jun. 23, 2011.
Notice of Allowance for U.S. Appl. No. 11/039,946 dated Mar. 5, 2010.
Notice of Allowance for U.S. Appl. No. 11/161,656 dated Sep. 18, 2009.
Notice of Allowance on U.S. Appl. No. 12/557,497 dated May 6, 2011.
Notice of Allowance on U.S. Appl. No. 12/560,154 dated May 2, 2011.
Notice of Reasons for Rejection, Japanese Application No. 2007-549641 dated May 17, 2011.
Office Action dated Oct. 15, 2010 pertaining to U.S. Appl. No. 11/161,090 (29 pages).
Office Action dated Aug. 3, 2008. U.S. Appl. No. 11/161,091.
Office Action dated Aug. 20, 2008, U.S. Appl. No. 11/161,092.
Office Action for AU appl. 2005266943 dated May 14, 2009.
Office Action for AU appl. 2005272779 dated Apr. 23, 2009.
Office Action for CN App. No. 200580048867.3 dated Sep. 26, 2010.
Office Action for CN App. No. 200580048867.3 dated Jan. 26, 2011.
Office Action for CN Appl. 20050034849X dated Aug. 3, 2010.
Office Action for CN Appl. 200580030928.3 dated Apr. 23, 2010.(5 pages).
Office Action for CN appl. 200580034849.X dated Sep. 25, 2009.
Office Action for CN appln 00480040249.X dated Jun. 19, 2009.
Office Action for CN appln 200580028535 dated Jan. 15, 2010.
Office Action for CN appln 200580034849X dated Apr. 7, 2010.
Office Action for CN Appln 200580048867.3 dated Mar. 11, 2011.
Office Action for IL Application No. 180402 dated Dec. 15, 2010.
Office Action for IL Application No. 180405 dated Jan. 2, 2011.
Office Action for IL Application No. 180891 dated Jan. 4, 2011.
Office Action for IL application No. 18169 dated Jan. 2, 2011.
Office Action for IN Appl. 1514KOLNP2006 dated Sep. 7, 2010 (3 pages).
Office Action for JP App. No. 2007-48001 dated Apr. 29, 2010.
Office Action for JP appl. 2006-539930 dated Feb. 18, 2010.
Office Action for JP Appl. 2007-519353 dated Jul. 12, 2010. (6 pages) (English Abstract).
Office Action for JP Appl. 2007-522841 dated Sep. 10, 2010. (9 pages) (English Abstract).
Office Action for JP Appl. 2007-525810 dated Aug. 4, 2010. (9 pages) (English Abstract).
Office Action for U.S. Appl. No. 11/161,093 dated Oct. 1, 2010. (10 pages).
Office Action for U.S. Appl. No. 11/187,512 dated Jun. 22, 2010. (20 pages).
Office Action for U.S. Appl. No. 11/188,274 dated Mar. 29, 2010. (15 pages).
Office Action for U.S. Appl. No. 11/039,946 mailed on Jun. 23, 2008, 11 pages.
Office Action for U.S. Appl. No. 11/161,092 dated Feb. 12, 2009.
Office Action for U.S. Appl. No. 11/188,274 dated Sep. 8, 2010. (19 pages).
Office Action for U.S. Appl. No. 11/161,093 dated Jun. 19, 2009.
Office Action for U.S. Appl. No. 11/161,091 dated Apr. 5, 2011.
Office Action for U.S. Appl. No. 11/187,508 dated Sep. 15, 2010.
Office Action for U.S. Appl. No. 11/324,131 dated Oct. 3, 2008.
Office Action for U.S. Appl. No. 11/161,091 dated Dec. 7, 2010.
Office Action for U.S. Appl. No. 11/187,512 dated Nov. 30, 2010.
Office Action for U.S. Appl. No. 11/187,508 dated Apr. 30, 2010.
Office Action for U.S. Appl. No. 11/187,508 dated Nov. 3, 2009.
Office Action for U.S. Appl. No. 11/324,131 dated Oct. 6, 2009.
Office Action for U.S. Appl. No. 11/324,131 dated Mar. 7, 2011.
Office Action for U.S. Appl. No. 11/324,131 dated Apr. 2, 2009.
Office Action for U.S. Appl. No. 11/324,131 dated May 27, 2010.
Office Action for U.S. Appl. No. 12/336,795 dated Dec. 16, 2010.
Office action for U.S. Appl. No. 11/161,090 dated Jun. 10, 2010.
Office Action for U.S. Appl. No. 11/161,093 dated Sep. 2, 2009.
Office Action for U.S. Appl. No. 11/039,946 dated Jan. 23, 2009.
Office Action for U.S. Appl. No. 11/039,946 dated Jun. 23, 2009.
Office action for U.S. Appl. No. 11/161,090 dated Jan. 6, 2010.
Office action for U.S. Appl. No. 11/161,090 dated May 28, 2009.
Office Action for U.S. Appl. No. 11/161,093 dated Jan. 2, 2009.
Office Action for U.S. Appl. No. 11/161,093 dated Feb. 22, 2010.
Office action for U.S. Appl. No. 11/161,091 dated Feb. 18, 2009.
Office action for U.S. Appl. No. 11/161,091 dated Feb. 24, 2010.
Office action for U.S. Appl. No. 11/161,091 dated Aug. 3, 2009.
Office Action for U.S. Appl. No. 11/187,512 dated Mar. 3, 2009.
Office Action for U.S. Appl. No. 11/187,512 dated Sep. 15, 2009.
Office Action for U.S. Appl. No. 11/187,562 dated Apr. 27, 2009.
Office Action for U.S. Appl. No. 11/161,656 dated May 13, 2009.
Office Action for U.S. Appl. No. 11/187,512 dated Dec. 23, 2009.
Office Action on U.S. Appl. No. 11/161,091 dated Oct. 5, 2011.
Office Action on U.S. Appl. No. 11/161,093 dated Nov. 3, 2011.
Office Action on U.S. Appl. No. 11/161,093 dated Jun. 28, 2011.
Office Action on U.S. Appl. No. 11/187,508 dated Dec. 20, 2011.
Office Action on U.S. Appl. No. 11/187,508 dated Jul. 6, 2011.
Office Action on U.S. Appl. No. 11/188,274 dated Oct. 18, 2011.
Office Action on U.S. Appl. No. 11/188,274 dated Jun. 27, 2011.
Office Action on U.S. Appl. No. 11/324,131 dated Jan. 4, 2012.
Office Action on U.S. Appl. No. 11/324,131 dated Aug. 11, 2011.
Office Action on U.S. Appl. No. 12/557,497 dated Nov. 18, 2010.
Office Action on U.S. Appl. No. 12/871,246 dated Sep. 27, 2011.
Official Notification from Israeli Patent Office, for Appl No. 184750 mailed Apr. 7, 2011.
Pedro Hernandez, “Tacit Adds to Softricity's Spark”, Nov. 18, 2005. Available online at: www.enterpriseitplant.com/networking/news/article.php/3565401.
R. Briscoe, “The Implications of Pervasive Computing on Network Design,” BT Technology Journal, pp. 170-190, Jul. 2004.
Ranzau et al., “Softricity/Tacit, An Innovative Approach to Virtual Computing,” http://www.daboc.com/downloadnow.aspx?file=211&is=617, Oct. 20, 2005.
Restriction Requirement for U.S. Appl. No. 11/161,093 dated Jul. 26, 2010.(9 pages).
Supplementary European Search Report for EP04810901 dated Jul. 20, 2011.
Teruhara Serada, “SSL VPN”, N+1 Network LAN, vol. 21, No. 3, Mar. 1, 2003, pp. 25-40. (19 pages) (English Abstract).
Wang et al., Shield: Vulnerability-Driven Network Filters for Preventing Known Vulnerability Exploits, Feb. 2004, Microsoft Research, MSR-TR-2003-81.
Written Opinion for PCT/US2005/023914 dated May 7, 2007.
Written Opinion for PCT/US2005/047433 dated Jun. 30, 2007.
Written Opinion of the International Searching Authority to PCT/US04/37918, mailed on Apr. 27, 2005, 7 pages.
Written Opinion of the International Searching Authority to PCT/US2005/026296, mailed on Jan. 31, 2006.
Written Opinion of the International Searching Authority to PCT/US2005/026300; Mailed on Dec. 16, 2005, 7 pages.
Written Opinion of the International Searching Authority to PCT/US2005/028663; Mailed on Nov. 16, 2005, 7 pages.
Written Opinion of the International Searching Authority, PCT/US2007/066433, mailed Oct. 31, 2007.
Written Opinion of the ISA for PCT/US2005/022884, mailed on Jul. 8, 2008 (6 pages).
Yoshikazu Kobayashi, VPN service introduction, Computer & Network LAN, vol. 21, No. 3, Mar. 1, 2003, pp. 25-40. (19 pages) (English Abstract).
Office Action for U.S. Appl. No. 12/560,154 dated Feb. 4, 2011.
Office Action for U.S. Appl. No. 12/560,154 dated Sep. 1, 2010.
U.S. Appl. No. 10/988,004, filed Nov. 12, 2004.
U.S. Appl. No. 11/161,091, filed Jul. 22, 2005.
U.S. Appl. No. 11/161,092, filed Jul. 22, 2005.
U.S. Appl. No. 11/161,093, filed Jul. 22, 2005.
U.S. Appl. No. 11/039,946, filed Jan. 24, 2005.
U.S. Appl. No. 11/161,090, filed Jul. 22, 2005.
U.S. Appl. No. 11/188,274, filed Jul. 22, 2005.
U.S. Appl. No. 11/161,656, filed Aug. 11, 2005.
U.S. Appl. No. 11/187,562, filed Jul. 22, 2005.
U.S. Appl. No. 11/188,279, filed Jul. 22, 2005.
U.S. Appl. No. 11/187,508, filed Jul. 22, 2005.
U.S. Appl. No. 11/187,512, filed Jul. 22, 2005.
U.S. Appl. No. 11/187,513, filed Jul. 22, 2005.
U.S. Appl. No. 12/336,795, filed Dec. 17, 2008.
U.S. Appl. No. 12/557,497, filed Sep. 10, 2009.
U.S. Appl. No. 12/560,154, filed Sep. 15, 2009.
U.S. Appl. No. 12/787,231, filed May 25, 2010.
U.S. Appl. No. 12/794,446, filed Jun. 4, 2010.
U.S. Appl. No. 13/149,383, filed May 31, 2011.
U.S. Appl. No. 13/739,895, filed Jan. 11, 2013.
U.S. Appl. No. 13/618,180, filed Sep. 14, 2012.
U.S. Appl. No. 12/871,246, filed Aug. 30, 2010.
“Cisco Distributed Director,” Posted Feb. 21, 1997, 16 pages, [Online] [Retrieved on Dec. 4, 1997] Retrieved from the Internet<URL:http://www.cisco.com/wart/public/751/distdir/dd—wp.htm>.
EP Search Report issued Jul. 28, 2011 in European Application No. 04810901.1.
European Communication on 05763688.8 dated Dec. 20, 2011.
Exam Report for AU App. No. 2005272779 dated May 14, 2009.
Examination Report issued May 17, 2013 in Indian Patent Application No. 648/KOLNP/2007.
Examination Report on 3929/KOLNP/2006 dated Nov. 30, 2012.
Final Office Action dated Dec. 23, 2008 pertaining to U.S. Appl. No. 11/188,279. 12 pages.
Hu, et al., Adaptive Fast Path Architecture, IBM J. Res & Dev, vol. 45, Mar. 1, 2001, pp. 191-206. Retrieved from: http://gec.di.uminho.pt/discip/minf/ac0203/ICCA03IBM—WebCachArch.pdf.
Indian Examination Report on 3959/KOLNP/2006 dated Feb. 5, 2013.
Indian Examination Report on 531/KOLNP/2007 dated Feb. 8, 2013.
International Search Report for PCT/US2005/022884 dated Jul. 8, 2008.
Non-Final Office Action for U.S. Appl. No. 12/871,246 mailed Feb. 24, 2011.
Notice of Allowance for U.S. Appl. No. 11/188,279 dated Jun. 29, 2009.
Notice of Allowance in EP App 05785297.2 dated Jul. 6, 2012.
Notice of Allowance on U.S. Appl. No. 11/161,091 dated Sep. 28, 2012.
Notice of Allowance on U.S. Appl. No. 11/161,093 dated Jun. 18, 2012.
Notice of Allowance on U.S. Appl. No. 12/794,446 dated May 7, 2012.
Notice of Allowance on U.S. Appl. No. 12/871,246 dated Sep. 17, 2012.
Office Action dated Sep. 8, 2010 pertaining to U.S. Appl. No. 11/188,274 (15 pages).
Office Action for CN App. No. 200480040249.X dated Sep. 26, 2008.
Office action for European Application No. 05776653.7 dated Oct. 5, 2007. 7 Pages.
Office Action for IL App. No. 180403 dated Dec. 15, 2010.
Office Action for JP Appl. 2007-048002 dated Nov. 8, 2010. (7 pages) (English Abstract).
Office Action for U.S. Appl. No. 11/161,093 dated Feb. 3, 2011.
Office Action for U.S. Appl. No. 11/161,090 dated Feb. 4, 2009.
Office Action for U.S. Appl. No. 11/161,091 dated Aug. 5, 2008.
Office Action for U.S. Appl. No. 11/161,093 dated Oct. 1, 2010.
Office Action for U.S. Appl. No. 11/187,562 dated Dec. 9, 2008.
Office Action issued Apr. 8, 2013 in European Patent Application No. 04810901.1.
Office Action issued Jan. 2, 2001 in Israeli Patent Application No. 181269.
Office Action on U.S. Appl. No. 12/557,497 dated Nov. 19, 2010.
Office Action on U.S. Appl. No. 12/787,231 dated Apr. 11, 2013.
Office Action on U.S. Appl. No. 12/794,446 dated Nov. 23, 2011.
Office Action on U.S. Appl. No. 12/871,246 dated May 15, 2012.
Office Action on U.S. Appl. No. 13/739,895 dated Mar. 13, 2013.
US Notice of Allowance in U.S. Appl. No. 13/149,383 DTD May 28, 2013.
US Office Action in U.S. Appl. No. 13/149,383 DTD Jan. 29, 2013.
US Office Action in U.S. Appl. No. 11/187,508 DTD May 30, 2013.
US Notice of Allowance for U.S. Appl. No. 13/739,895 dated Mar. 24, 2014.
US Office Action for U.S. Appl. No. 12/874,927 dated Jan. 27, 2014.
US Office Action for U.S. Appl. No. 13/558,001 dated Jan. 13, 2014.
Related Publications (1)
Number Date Country
20120317411 A1 Dec 2012 US
Provisional Applications (1)
Number Date Country
60583785 Jun 2004 US
Continuations (2)
Number Date Country
Parent 12794446 Jun 2010 US
Child 13590630 US
Parent 11039946 Jan 2005 US
Child 12794446 US