Systems and methods for providing a VPN solution

Information

  • Patent Grant
  • 8559449
  • Patent Number
    8,559,449
  • Date Filed
    Tuesday, May 31, 2011
    13 years ago
  • Date Issued
    Tuesday, October 15, 2013
    10 years ago
Abstract
A system, apparatus and a method for implementing a secured communications link at a layer other than that at which packets are filtered are disclosed. In one embodiment, a computer system is configured to form a virtual private network (“VPN”) and comprises an address inspection driver to identify initial target packet traffic addressed to a target server. Also, the computer system includes a pseudo server module to receive rerouted initial target packet traffic from the address inspection driver. The pseudo server module is configured to convey packet regeneration instructions to a VPN gateway. The address inspection driver functions to identify additional target packet traffic addressed to the target server and routes the additional target packet traffic to the pseudo server. In one embodiment, the pseudo server is configured to strip header information from the additional target packet traffic to form a payload, and thereafter, to route the payload to the target.
Description
FIELD OF THE DISCLOSURE

The present disclosure relates generally to secured communication networks. More particularly, the present invention relates to a system, apparatus and a method for establishing a secured communications link between a remote device and a gateway device, whereby at least the remote device (e.g., such as a remote computing device) is configured to capture and redirect packet traffic at that remote device, and to modify the packets for minimizing latency of encrypted packet traffic for real-time applications.


BACKGROUND OF THE DISCLOSURE

Internet Protocol Security (“IPsec”) and Secure Sockets Layer. (“SSL”) are examples of conventional encryption protocols that are used to establish virtual private networks (“VPNs”) over a public communications network, such as the Internet, to ensure that only authorized users can access data in the VPNs. While functional, traditional VPNs implementing these and other conventional encryption protocols have several drawbacks.


A drawback to implementing IPsec, for example, is that most firewalls cannot effectively route IPsec-encrypted packet traffic with minimal effort, especially those performing network address translation (‘NAT”). Although NAT traversal techniques exist to pass IPsec-encrypted packets through NAT firewalls, these techniques limit IPsec-encrypted packets to a couple of ports (e.g., port 80 and 443), thereby forming bottlenecks. Another drawback is that VPNs implementing IPsec require that an address assigned to a remote computing device be visible by a private network to which that remote device is connected, giving rise to a vulnerability to certain breaches in security. For example, a worm infecting a client in the private network can use the visible address of the remote device to propagate itself into a private network including that remote device. At least some of the drawbacks of IPsec-based VPNs are due to performing both packet inspection and encryption at the network layer, such as at the Ethernet frame-level.


One drawback to implementing SSL, for example, is that this protocol is typically limited to web applications, thereby precluding the use of numerous other applications that are not browser-based. Another drawback is that SSL-based VPNs do support a wide range of routing protocols. Consequently, SSL-based VPNs cannot generally support real-time applications, such as voice over IP, or “VoIP,” and peer-to-peer applications. At least some of the drawbacks of SSL-based VPNs are due to performing both packet inspection and encryption at the transport layer (or the applications layer), which limits routing protocols to, for example, User Data Protocol (“UDP”) and Transmission Control Protocol (“TCP”).


Thus, there is a need for a system, an apparatus and a method to overcome the drawbacks of the above-mentioned implementations of encryption protocols in VPNs, and in particular, to establish a secured communications link from a remote computing device to a private network by capturing and redirecting packet traffic at the remote device and by modifying the packets to at least minimize the latency of encrypted packet traffic for real-time applications.


A system, apparatus and a method for implementing a secured communications link at a layer other than that at which packets are filtered are disclosed. In one embodiment, a computer system is configured to form a virtual private network (“VPN”) and comprises an address inspection driver to identify initial target packet traffic addressed to a target server. Also, the computer system includes a pseudo server module to receive rerouted initial target packet traffic from the address inspection driver. The pseudo server module is configured to convey packet regeneration instructions to a VPN gateway. The address inspection driver functions to identify additional target packet traffic addressed to the target server and routes the additional target packet traffic to the pseudo server. In one embodiment, the pseudo server is configured to strip header information from the additional target packet traffic to form a payload, and thereafter, to route the payload to the target server.


A method is disclosed, according to another embodiment of the present invention, whereby the method secures communications with a remote client computing device by establishing a virtual private network. The method comprises generating packet traffic with a communication application running on a client computing device, identifying at the client computing device target packet traffic of the packet traffic that is addressed to a target server, forming a secure communications link between a pseudo server module on the computing device and the target server, directing additional packet traffic addressed to the target server to the pseudo server module, sending an acknowledgment to the communication application upon receipt of the additional packet traffic rerouted to the pseudo server module, and routing a payload to the target server.


In yet another embodiment, a virtual private network comprises a client machine configured as a pseudo server machine with respect to a communication application running on the client machine. The communication application is configured to receive packet traffic acknowledgements from the pseudo server machine. A virtual private network gateway is included and is operative with a server machine to function as a client machine with respect to the pseudo server machine, thereby facilitating secure communications between the client machine and the server machine.





BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present invention is apparent and more readily appreciated by reference to the following Detailed Description and to the appended claims when taken in conjunction with the accompanying Drawings wherein:



FIG. 1 is a diagram illustrating a virtual private network (“VPN) system for establishing a secured communications link between a remote computing device and a VPN gateway computing device, according to one embodiment of the present invention;



FIG. 2 is a flow diagram depicting an exemplary method of communicating packets over a secured communications link, according to one embodiment of the present invention;



FIG. 3 is a block diagram for describing a remote client computing device in accordance with one embodiment of the present invention;



FIG. 4 is a functional block diagram illustrating the interaction between a pseudo server and an address inspection driver when transmitting target packet traffic from a remote client to a private network, according to a specific embodiment of the present invention;



FIG. 5 is a functional block diagram illustrating the interaction between a pseudo server and an address inspection driver after receipt of encrypted packet traffic into a remote client from a private network, according to a specific embodiment of the present invention; and



FIG. 6 is a block diagram illustrating various modules of a pseudo server for communicating encrypted packets for real-time and other applications, according to various embodiments of the present invention.





DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS


FIG. 1 is a diagram illustrating a virtual private network (“VPN”) system for establishing a secured communications link between a remote computing device and a VPN gateway computing device, according to one embodiment of the present invention. A virtual private network 100 includes a remote client computing device (“client”) 110 coupled via a secured communications link (“secured comm. link”) 190 to private network 150 for exchanging encrypted data. Remote client computing device 110 is configured to capture and reroute packet traffic associated with one or more virtual private networks private networks (“VPNs”) at or near the network layer (i.e., Layer 2 of the Open System Interconnection model, or “OSI” model). By capturing and inspecting packets at the network layer, remote client computing device 110 is able to inspect a wide range of network traffic including, for example, Internet Protocol (“IP”), TCP, UDP, Internet Control Message Protocol (“ICMP”), Generic Routing Encapsulation (“GRE) techniques, Apple talk, Netbios, etc. Further, remote client computing device 110 can generate secured communications link 190 (or “tunnel”) at or near the transport layer (i.e., Layer 4), thereby permitting encrypted packets to pass through network address translation (“NAT”)-based firewalls and network devices. In at least one embodiment, private network 150 assigns an address to remote client computing device 110 that can be concealed from computing devices (e.g., target server 154) in that private network, thereby reducing exposure of remote client computing device 110 to security threats, such as worms. In a specific embodiment, remote client computing device 110 is configured to modify packets by, for example, stripping header information prior to transport via secured communications link 190, thereby minimizing latency of encrypted packet traffic in real-time applications.


Although not shown, remote client computing device 110 includes a processor and a memory for executing and storing programs instructions, respectively, for running various user-level computer software applications (e.g., Microsoft Outlook@). Remote client computing device 110 includes a communication application 112 as an intermediary to exchange data between the computer software applications to private network 150. Examples of communication application 112 are telnet, File Transfer Protocol (“FTP”), Simple Mail Transfer Protocol (“SMTP”), Hypertext Transfer Protocol (“HTTP”) and the like.


Also, remote client computing device 110 includes a tunnel generator 116 configured to generate at least one end of secured communications link 190. Tunnel generator 116 includes an address inspection driver (“AID”) 122, a pseudo server (“PS”) 120 and an encryptor 124, each of which is composed of either hardware or software, or both. Address inspection driver (“AID”) 122 is disposed at or near the network layer to capture and inspect packet traffic, such as network (e.g., Ethernet) frames, traversing the one or more network adapters of remote client computing device 110. During inspection of, for example, the IP headers of captured packets, address inspection driver 122 determines whether the captured packets are destined for private network 150. If a packet is not bound for private network 150, then address inspection driver 122 forwards the packet as an unencrypted packet via path 114 out into Internet 102.


But when packet traffic is identified as being destined to private network 150 (i.e., “target packet traffic”), address inspection driver 122 filters that packet traffic from passing out onto path 114. Address inspection driver 122 reconfigures the filtered packets (i.e., the target packet traffic) as “incoming packets” to reroute them to a traffic port on pseudo server 120. In some embodiments, that traffic port can be a “well known port” on remote client computing device 110, where a well known port can be any of port numbers 0 to 1024, or the like. In addition, address inspection driver 122 is configured to also send control information encapsulated as control packets along with the rerouted filtered packets to pseudo server 120. Note that it is not necessary to generate a control packet for every rerouted filtered packet as pseudo server 120 can detect other packets to which the same control information will be applicable. While address inspection driver 122 can be implemented in accordance with the Network Driver Interface Specification (‘WDIS”), it can also be implemented in program instructions operable with any known operating system, such as UNIX, Linux, Microsoft Windows™ and the like.


Pseudo server (“PS”) 120 is disposed at or near the transport layer to receive encrypted packet traffic from secured communications link 190 and to transmit (i.e., redirect) encrypted packet traffic that is rerouted from address inspection driver 122. In some embodiments, pseudo server 120 is configured to modify packets by, for example, stripping header information prior to transport via secured communications link 190. In operation, pseudo server 120 monitors (or “listens” to) its traffic ports waiting to accept incoming rerouted packets and any control packets that get passed from address inspection driver 122. Pseudo server 120 associates the control packets with respective rerouted packets, and then creates a message frame 132 for transmission to private network 150. Message frame 132 includes, among other things, regeneration instructions for reconstructing the packets at private network 150. Note that message frame 132 is generally then encrypted and sent over secured communications link 190 to private network 150.


Note that when pseudo server 120 receives encrypted packet traffic from secured communications link 190 rather than transmitting it, pseudo server 120 provides for the decryption of those packets by passing them to encryptor 124. Then, pseudo server 120 passes the decrypted packets to address inspection driver 122, along with control information, if any. In response, address inspection driver 122 reconfigures those decrypted packets signals as “incoming packets” to reroute them to communication application 112.


In at least one embodiment, pseudo server 120 is configured to modify outgoing packets to form modified packets. In this example, pseudo server 120 can strip header information from the outgoing packets bound for private network 150. Examples of header information that can be stripped include TCP headers, IP headers, link layer headers, and the like. The residual data of the packets from which the header information is stripped is referred to as “modified packets,” each including a payload. A modified packet is depicted in FIG. 1 as “payload” 138. Further, message frame 132 includes regeneration instructions to reconstruct the stripped header information for regenerating the pre-modified packets in private network 150. In some cases, message frame 132 can include authentication information. Once message frame 132 is understood by at least one entity of private network 150, a link acknowledgment (“ACK) 134 is returned to tunnel generator 116. In a specific embodiment of the present invention, pseudo server 120 forms modified packets as pseudo-UDP packets, which constitute additional traffic 136 composed of modified packets 138 to be conveyed to private network 150. As such, tunnel generator 116 generates an acknowledgement 130 when sending modified packet 138 to prevent delays associated with acknowledgements required by TCP standards. Acknowledgement 130 can be implemented as a “false acknowledgement” so that remote client computing device need not wait for an acknowledgment (e.g., a TCP acknowledgement) when sending a modified packet 138. Accordingly, modified packets 138 are TCP packets that can behave as UDP packets. As such, secured communications link 190 can be referred to as a “virtual TCP connection” rather than a standard TCP connection as the packets traversing link 190 are UDP packets masquerading as TCP packets. In one embodiment, tunnel generator 116 determines that traffic target packets includes a certain type of data, such as video or audio data, that is time sensitive (i.e., part of a exiting and real-time application) and selectively modifies those traffic target packets to form modified packets 138.


Encryptor 124 is configured to establish a connection with private network 150 and to encrypt and decrypt packets entering, respectively, remote client computing device 110. For example, encryptor 124 can establish a connection using Hyper Text Transfer Protocol over Secure Socket Layer (“HTTPS”), Proxy HTTPS and like connection protocols. With these connection protocols being operative generally at a transportation layer (or a higher layer), encryptor 124 establishes a connection that is suitable for traversing NAT-based firewalls and bridges. Once a connection (e.g., HTTPS) is established, the payload of the packets bound for private network 150 is encrypted using, for example, Secure Socket Layer (“SSL”), Transport Layer Security (“TLS”) Protocol, or the like. Encryptor 124 can encrypt an entire packet including header information, such as an IP header, if not stripped.


Private network 150 includes a VPN Gateway 152 and a target server 154, which represents any computing device (as either a server or a client) with which remote client computing device 110 establishes communications. VPN Gateway 152 is an intermediary computing device that coordinates establishment of secured communications link 190 with remote client computing device 110. VPN Gateway 152 exchanges communications between remote client computing device 110 and target server 154. Further, VPN Gateway 152 is similar, at least in some respects, to remote client computing device 110. Namely, VPN Gateway 152 includes a processor, a memory and an encryptor, all of which are not shown, as well as address inspection driver (“AID”) 122 and a pseudo server (“PS”)' 120. AID 122 and PS 120 have similar functionality and/or structure as those described in relation to remote client computing device 110.


VPN Gateway 152 also includes a tunnel manager (“Tunnel Mgr”) 160 kd an address translator (“Addr Trans”) 162. Tunnel manager 160 is configured to download as a software program at least pseudo server 120 and address inspection driver 122. Also, tunnel manager 160 is configured to provide configuration information. The configuration information can include a range of addresses that are associated with private network 150 so that remote client computing device 110 can select which packets to filter out as target packet traffic. Further, tunnel manager 160 is also configured to receive message fkame 132 and to regenerate packets to, for example, include IP header information and/or the assigned address of remote client computing device 110.


Address translator 162 is configured to provide a NAT process, and specifically, a reverse NAT process to hide the assigned address of remote client computing device 110 from target server 154. To illustrate, consider the following example in which a TCP connection is created from remote client computing device 110 to target server 154, which has a destination address of 192.168.1.100. First, a TCP SYN packet is generated for address 192.168.1.100. Tunnel generator 116 passes this SYN packet over secured communications link 190. VPN Gateway 152 examines the packet as it arrives and determines that it is a SYN packet for 192.168.1.100. In turn, VPN Gateway 152 generates a new SYN (i.e., replays or regenerates that packet) destined for 192.168.1.100, with a source address appearing to indicated that the new SYN packet originated from 192.168.1.2, which is the private address for VPN Gateway 152. After target server 154 at address 192.168.1.100 generates a SYN-ACK packet, VPN Gateway 152 then receives this packet. Then, a new SYN-ACK packet is in turn conveyed over secured communications link 190 back to tunnel generator 116, which then generates a SYN-ACK packet. This packet appears to originate from target server 154 at address 192.168.1.100, as viewed by remote client computing device 110. In short, VPN Gateway 152 is able to reverse map reply packets and acknowledgments or any other packet as part of that protocol by using unique source port numbers of VPN Gateway 152. In this manner, remote client computing device 110 is able to connect to any foreign private network and still maintain IP invisibility. Such invisibility can be on an application-by-application basis. In some cases, VPN Gateway 152 can optionally enable address visibility by sending an assigned private address for a successfully established secured communications link to a tunnel generator, which in turn, assigns that private address to the remote client computing device in which it resides. But note that the visibility of the address of remote client computing device is not mandatory, but can be optionally enabled, for example, to facilitate certain applications, such as voice applications or any other peer-to-peer applications.


In a specific embodiment, remote client computing device 110 can establish another secured communications link 192 (which is similar to that of link 190) to another private network (“n”) 198 simultaneous to the pendency of secured communications link 190. As such, remote client computing device 110 can simultaneously establish multiple VPN tunnels or secured communications links to different private subnets or networks, especially in cases where destination network addresses overlap partially or completely. Note that while Internet 102 is exemplified as a communications network through which secured communications link 190 can be established in accordance with an embodiment of the present invention, remote client computing device 110 can employ tunnel generator 116 to form tunnels to any type of communications networks, such as a wireless network. It will also be understood that the embodiments of the present invention may be implemented using any routing protocol (e.g., Internet Protocol version 6, “IPv6”), in any packet switching technology (e.g., an Ethernet network), over any communications media (e.g., Ethernet cabling, wireless, optical fibers, etc.) and for use with any computing device (e.g., a wireless station) as an end station, without deviating from the scope and the spirit of the present invention.



FIG. 2 is a flow diagram 200 depicting an exemplary method of communicating packets over a secured communications link, according to one embodiment of the present invention. At 202, a communications application running on a remote client computing device, such a telnet application, generates packet traffic in response to a request by a user-level application to access a private network. The client computing device at 204 identifies target packet traffic bound for a target server. At 206, the target packet traffic is rerouted to a pseudo server module to at least convey packet regeneration instructions to, for example, a VPN Gateway. The client computing device, receives a link acknowledgement sent from the VPN Gateway at 208, thereby signaling, for example, that a secured communications link between the client and the private network is operational. In turn, the link acknowledgment is conveyed at 210 to the communications application to initiate packet transfer. At 212, additional packet traffic addressed to the target server can be directed to the pseudo server module from, for example, an address inspection driver. Thereafter, at 214, an acknowledgement can be sent to the communications application upon receipt of the additional packet traffic at the pseudo server module prior to transmission to the target server, according to at least one embodiment of the present invention. In some embodiments, header information is stripped form the additional packet traffic to form a payload at 216. Then, the payload at 218 is routed to the VPN Gateway.



FIG. 3 is a block diagram for describing a remote client computing device in accordance with one embodiment of the present invention. Computing device 302 in this example is capable of exchanging encrypted packet traffic 390 with another computing device located, for example, on a private network via a secured communications link 380. In the example shown in FIG. 3, computing device 302 includes an operating system 304 coupled to a network interface card (“NIC”) 324, which can be, for example, an Ethernet network adapter. Operating system 304 also includes a protocol stack 310, which can be any set of network protocols for binding high-level protocol layers, such as an application layer, to lower-level protocol layers, such as a physical layer including NIC 324. As shown, protocol stack includes a pseudo server 317, an address inspection driver 323 and an encryption protocol 310 in accordance with a specific embodiment of the present invention.


Protocol stack 310 is shown to include at least a transport layer, a network layer and a link layer. The transport layer includes at least one transport protocol, such as a UDP process 312, a TCP process 314 (i.e., a TCP service) or an optional another type of transport protocol, “other transport” protocol 316, such as “ICMP.” FIG. 3 shows that the network layer, which includes an IP process 318 (i.e., an IPv4 or IPv6 service), can be at a next higher layer over the link layer. In this example, pseudo server 317 is disposed at the transport layer and address inspection driver 323 is disposed near the network layer. In particular, address inspection driver 323 is disposed at the data link layer. An encryption protocol 310, such as SSL, can be disposed along side or above pseudo server 317, and is suitable to implement encryptor 124 of FIG. 1. In FIG. 3, encryption protocol 310 is in a layer above TCP process 314.


According to one embodiment of the present invention, protocol stack 310 is a collection of processes embodied in software. In another embodiment, protocol stack 310 and/or its constituents can be embodied in software or hardware, or both. Each process (e.g., TCP 314, IP 318, etc.) of protocol stack 310 is configured to communicate with each other process, such as across layers of protocol stack 310. A higher-level layer, such as the transport layer, can be configured to communicate, for example, via a Winsock API 308 (or any other socket layer program to establish, for example, raw sockets) with an application 306. Winsock API 308 provides an interface with application 306, which can be a telnet application. A lower-level layer, such as either a network layer or a link layer, can be configured to communicate, for example, via a MAC driver 322 with NIC 324. Exemplary interactions between pseudo server 317 and address inspection driver 323 to establish a secured communications link are described next in FIGS. 4 and 5.



FIG. 4 is a functional block diagram 400 illustrating the interaction between a pseudo server and an address inspection driver when transmitting target packet traffic from a remote client to a private network, according to a specific embodiment of the present invention. In this example, encryptor 124 and pseudo server 120 are disposed at transport layer 404 and address inspection driver (“A1 Dm”) 122 is disposed at network layer 408. Again, note that in some embodiments address inspection driver resides at the data link layer. Pseudo server 120 is coupled to a port forwarding mapping data structure 440 that maintains packet information, such as a “key,” a source address (“SA”), a source port (“SP”), a destination address (“DA”), and a destination port (“DP”). Similarly, address inspection driver 122 maintains a similar data structure depicted as a driver mapping table data structure 422. Further, address inspection driver 122 is also coupled to a filter table 420 that includes configuration information provided by a VPN Gateway. Filter table 420 includes network addresses, such as a source address and a destination address (e.g., 198.0.0.80), an optional subnet mask (not shown), a protocol, such as TCP, UDP, ICMP, etc. (not shown), port information, such as a source port and a destination port, and a unique mapping key to uniquely identify destination information associated with target packet traffic. Pseudo server 120 and address inspection driver 122 synchronize these data structures by exchanging control information, such as in a control packet 434, when a change is made to one of those data structures. An exemplary control packet 434 can be a UDP packet or a packet of any other protocol, and is typically sent with rerouted data packets to pseudo server 120. If some of the control information includes updates to entry 442, such as a change in destination port, than that change is entered. In some cases, the control information includes how the packet should be handled or regenerated at the VPN Gateway.


Consider that application 112 resides on a remote client computing device and is identifiable by a source address of 10.0.02 and a source port of 8678, and a target server (not shown) resides at destination address 198.0.0.80 and destination port 445. If address inspection driver 122 has yet to detect the destination address or port in packet traffic 462, then a destination address and a destination port for that target server is stored in driver mapping table data structure 422. In this case, an entry 424 is made in data structure 422 to include a source address (“SA”) as 10.0.0.2, a source port (“SP”) as 8678, a destination address (“DA”) as 198.0.0.80, and a destination port (“DP”) as 445, as well as a “key” that is generated and assigned to the packet traffic by address inspection driver 122. Note that entry 426 signifies that application 112 has formed another secured communications link to another VPN Gateway and that address inspection driver 112 is configured to inspect packet traffic relating to both entries 424 and 426. As such, multiple VPNs can be established concurrently with application 112.


Next, consider that application 112 is generating target packet traffic 464 that is destined for destination address 198.0.0.80 and destination port 445. This target packet traffic 464 passes through a socket layer 402 to pseudo server 120. Socket layer 402 can include a Winsock API, a Winsock provider or any other socket connection provider process (e.g., a programming interface that provides for raw sockets), regardless of operating system. Pseudo server 120 matches entries of data structure 440 to information in target packet traffic 464 to determine whether that packet traffic is part of a VPN. Since an entry in data structure 440 includes a DA and a DP that respectively correspond to 198.0.0.80 and 445, a match is made and pseudo server 120 concludes that packet traffic 464 is to be routed via a secured communications link. Pseudo server 120 then passes target packet traffic 466 to address inspection driver 122, whereby target packet traffic 466 is characterized by source address (“SA”) 450, source port (“SP”) 452, destination address (“DA”) 454 and destination port (“DP”) 456. Note that FIG. 4 shows packet 466 and other packets with select address and port information; other packet data, including payload, is omitted for discussion purposes.


Address inspection driver 122 then reconfigures target packet traffic 466 and reroutes it back to pseudo server 120 as rerouted packet 432. In at least one embodiment, address inspection driver 122 reconfigures SP 452 to include a “key,” which in this example, is “54321.” Also, DA and DP are respectively reconfigured to include a local host or a local machine (“LM) address 454 and a traffic port (“TP”) 456. In a specific embodiment, local machine address 454 is 127.0.0.1, which is a loop back address causing rerouted packet 432 to be sent up the OSI protocol stack. Address inspection driver 122 sends rerouted packet 432 up to traffic port (“TP”) 430 of pseudo server 120, where TP 430 is a listening port for detecting, for example, TCP packets. In some embodiments, rerouted packet 432 is sent to a TCP traffic port of pseudo server 120 regardless of whether rerouted packet 432 is a UDP packet, such as in the case where pseudo server 120 generates a pseudo-UDP packet as a modified packet. Concurrently (or nearly so), control packet 434 includes a local machine address (not shown) so that it can be sent up the OSI protocol stack to a control port (not shown) of pseudo server 120. In such a case, control packet 434 includes information describing the modifications to a packet to form rerouted packet 432. Thereafter, pseudo server 120 then redirects rerouted packet 432 to encryptor 124 to form an encrypted packet 468 that is passed through a secured communications link.



FIG. 5 is a functional block diagram 500 illustrating the interaction between a pseudo server and an address inspection driver after the receipt of encrypted packet traffic into a remote client from a private network, according to a specific embodiment of the present invention. To illustrate the interaction, consider that an encrypted packet 502 is passed through to encryptor 124 for decryption. Then, the decrypted packet is passed to pseudo server 120, which matches at least some of the contents of the decrypted packet against data in data structure (“port fwd table”) 440. Consider that a match is made, thereby signifying that the decrypted packet is part of an established VPN. As such, pseudo server 120 provides decrypted packet 504 and an attendant control packet 505, which in this case includes the key associated with packet 504, to a well known port (“WKP”) 506 of address inspection driver 122. Thereafter, address inspection driver 122 reconfigures decrypted packet 504 in accordance with information indexed by the key into driver table 422, which is similar to the data structure of FIG. 4. As such, the reconfigured packet will include destination information that identifies application 112. As such, rerouted packet 432 is signaled as an “incoming” (or received) packet 520 and is passed up the protocol stack to application 112.



FIG. 6 is a block diagram 600 illustrating various modules of a pseudo server to modify packets for real-time applications, according to at least one embodiment of the present invention. As shown, pseudo server 604 includes a flag-UDP-as-TCP module 605, a packet modifier module 607, and an acknowledgement generator (“ack gen”) 609, one or more of which can be simultaneously operative when sending packets through a secure communications link of the present invention. Although real-time packet traffic, such as voice and video, benefits from the performance advantages of a session-less protocol, such as UDP, standard UDP packets are generally difficult to traverse through many firewalls, whereas TCP traffic is not so disadvantaged. In at least one specific embodiment of the present invention, pseudo server 604 is configured to form “pseudo-UDP” packets using modified TCP packets.


Flag-UDP-as-TCP module 605 is configured to flag a UDP packet as a TCP packet in the IP header, which fools the communications network into thinking that the packets are part of a TCP session. Packet modifier 607 is configured to operate with raw socket connection process 603 of socket layer 602. In particular, packet modifier 607 strips header information, such as IP header information, and sends the remaining payload via raw socket connections formed by raw socket connection process 603. As such, regeneration instructions are also sent to describe how to reconstruct packets after those packets pass through a secured communications link with header information stripped out. In one embodiment, the regeneration instructions include information for regenerating header information at the target server so that the target packet traffic can be converted from a first format to a second format. In cases where the first format is associated with Transmission Control Protocol (“TCP”) and the a second format is associated with User Data Protocol (“UDP”), then the first packet is formatted as a pseudo-UDP (e.g., a UDP packet flagged as a TCP packet), and the second packet is formatted as UDP packet for transmission of, for example, real-time applications.


Acknowledgement generator (“ack gen”) 609 is configured to issue “false acknowledgments” in response to TCP representations of UDP packets (i.e., pseudo-UDP packets) being transmitted over the secure communications link. This allows for UDP-like behavior to TCP traffic, in that if the TCP packet (i.e., the pseudo-UDP packet) was lost, no attempt is made by either the transmitting end or the receiving end of the VPN tunnel to synchronize sequence numbers and retransmit that packet. Consequently, the VPN interprets the forwarding of pseudo-UDP packets as the forwarding TCP packets, but with raw sockets on either end of the secured communications link interpreting whether these packets are UDP packets carrying voice (such as RTP) or video.


Various structures and methods for establishing a secured communications link, such as with a pseudo server and an address inspection driver, are described herein. The methods can be governed by or include software processes, for example, as part of a software program. In one embodiment, a pseudo server module and an address inspection driver module are disposed in a software program embedded in a computer readable medium that contains instructions for execution on a computer to implement a secured communications link, according to the present invention.


An embodiment of the present invention relates to a computer storage product with a computer-readable medium having computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and holographic devices; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using Java, C++, or other programming language and development tools. Another embodiment of the invention may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions.


The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that nomenclature selected herein is presented to teach certain aspects of the present invention and is not intended to restrict the implementations of the various embodiments. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention.

Claims
  • 1. A method for securing a private network communications to a server, the method comprising: (a) filtering, by an address inspection driver of a device, packets from outgoing network traffic generated by an application of the device, the filtered packets identified as destined for a server on a private network;(b) reconfiguring, by the address inspection driver, the filtered packets as incoming packets that are rerouted to a port;(c) receiving, by a pseudo server of the device, the filtered packets via the port; and(d) transmitting, by the pseudo server, a payload of the filtered packets via a secure communications link to a gateway in communication with the server on a private network.
  • 2. The method of claim 1, wherein step (a) further comprises intercepting, by the address inspection driver, network traffic of the application.
  • 3. The method of claim 1, wherein step (a) further comprises filtering, by the address inspection driver, network traffic at a network layer of a network stack of the device.
  • 4. The method of claim 1, wherein step (a) further comprises filtering, by the address inspection driver, network traffic at a data link layer of a network stack of the device.
  • 5. The method of claim 1, wherein step (b) further comprises reconfiguring, by the address inspection driver, the filtered packets to identify a destination address of a local host.
  • 6. The method of claim 1, wherein step (b) further comprises reconfiguring, by the address inspection driver, the filtered packets to identify a loop back address of a network stack of the device.
  • 7. The method of claim 1, wherein step (c) further comprises listening, by the pseudo server, on the port for filtered packets.
  • 8. The method of claim 1, wherein step (d) further comprises stripping, by the pseudo server, header information from the filtered packets.
  • 9. The method of claim 1, wherein step (e) further comprises transmitting, by the pseudo server to the gateway, instructions on regenerating the stripped header information on the private network.
  • 10. The method of claim 1, wherein step (e) further comprises encrypting, by the pseudo server, the payload of the filtered packets.
  • 11. A method for communicating packets from real time applications via a secure communications link, the method comprising: (a) intercepting, by an address inspection driver of a device, packets from outgoing real-time packet traffic generated by a real-time application of the device, the packets comprising user datagram protocol (UDP) packets identified as destined for a server on a private network;(b) communicating, by the address inspection driver, the packets to a pseudo server executing on the device and having a secure communications link to a gateway in communication with the server on the private network(c) modifying, by a pseudo server, the packets to comprise UDP packets flagged as transport control protocol (TCP) packets; and(d) transmitting, by the pseudo server, the modified packets via the secure communications link to the gateway.
  • 12. The method of claim 11, wherein step (a) further comprises intercepting, by the address inspection driver, packets from outgoing real-time packet traffic comprising one of video or audio data.
  • 13. The method of claim 11, wherein step (a) further comprises filtering, by the address inspection driver, network traffic at a network layer of a network stack of the device.
  • 14. The method of claim 11, wherein step (a) further comprises filtering, by the address inspection driver, network traffic at a data link layer of a network stack of the device.
  • 15. The method of claim 11, wherein step (b) further comprises reconfiguring, by the address inspection driver, the packets to identify a destination address of a local host.
  • 16. The method of claim 11, wherein step (b) further comprises reconfiguring, by the address inspection driver, the packets to identify a loop back address of a network stack of the device.
  • 17. The method of claim 11, wherein step (b) further comprises listening, by the pseudo server, on a port for packets communicated by the address inspection driver.
  • 18. The method of claim 11, wherein step (c) further comprises flagging, by the pseudo server, UDP packets as TCP packets by setting a flag in an Internet Protocol header of the UDP packets.
  • 19. The method of claim 11, wherein step (c) further comprises modifying, by the pseudo server, an Internet Protocol header of the UDP packets to masquerade the UDP packets as TCP packets.
  • 20. The method of claim 11, wherein step (d) further comprises transmitting, by the pseudo server, the modified packets via a raw socket connection.
RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patent application Ser. No. 12/336,795, filed on Dec. 17, 2008, entitled “SYSTEMS AND METHODS FOR PROVIDING A VPN SOLUTION”, and issued as U.S. Pat. No. 7,978,716, which is a continuation of and claims priority to U.S. patent application Ser. No. 10/988,004, filed on Nov. 12, 2004, entitled “SYSTEM, APPARATUS AND METHOD FOR ESTABLISHING A SECURED COMMUNICATIONS LINK TO FORM A VIRTUAL PRIVATE NETWORK AT A NETWORK PROTOCOL LAYER OTHER THAN AT WHICH PACKETS ARE FILTERED”, and issued as U.S. Pat. No. 7,496,097, which claims priority to U.S. Provisional Patent Application No. 60/518,305 filed on Nov. 11, 2003, entitled “REMOTE NETWORK ACCESS SOLUTION USING AN ENCRYPTED FRAME RELAY,” and U.S. Provisional Patent Application No. 60/524,999 filed on Nov. 24, 2003, entitled “THIRD GENERATION VPN SOLUTION,” all of which are incorporated herein by reference in their entirety for all purposes.

US Referenced Citations (763)
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
6427132 Bowman-Amuah Jul 2002 B1
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
6457103 Challenger 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
6715145 Bowman-Amuah Mar 2004 B1
6718535 Underwood Apr 2004 B1
6721713 Guheen et al. Apr 2004 B1
6728787 Leigh Apr 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
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
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
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
7882247 Sturniolo et al. Feb 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
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
20010049741 Skene et al. Dec 2001 A1
20010052016 Skene 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
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
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
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
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 (39)
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-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 (208)
Entry
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.
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/161,656 dated Jul. 29, 2009.
Communication for EP App. No. 05785297.2 dated May 18, 2007.
Communication for EP App. No. 07007414.1 dated Jun. 5, 2008.
Doug Allen, Layer-7 Load Balancers Pack New Punch, CMP Media LLC Network Magazine, Sep. 2003.
Exam Report for AU App. No. 2005266945 dated Jul. 21, 2009.
Exam Report for AU App. No. 2005272779 dated Apr. 23, 2009.
Exam Report for AU App. No. 2005272779 dated May 14, 2009.
Exam Report for EP App. No. 05776653.7 dated Apr. 20, 2009.
Exam Report for EP App. No. 05785297.2 dated Jun. 19, 2009.
Exam Report for EP App. No. 070074141 dated Nov. 17, 2009.
International Search Report for PCT/US2004/037918 dated Apr. 27, 2008.
International Search Report for PCT/US2005/022884 dated Jul. 8, 2008.
International Search Report for PCT/US2005/026296 dated Jan. 31, 2006.
International Search Report for PCT/US2005/026300 dated Dec. 16, 2005.
International Search Report for PCT/US2005/028663 dated Nov. 16, 2005.
Ipswitch Inc., WSFTP User's Guide, Chapter 8: Security, Jun. 25, 2003.
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 App. No. 2005266943 dated May 28, 2010.
Notice of Acceptance for AU App. No. 2005272779 dated May 26, 2010.
Notice of Allowance for U.S. Appl. No. 11/039,946 dated Mar. 7, 2010.
Notice of Allowance for U.S. Appl. No. 11/161,092 dated Jun. 11, 2009.
Notice of Allowance for U.S. Appl. No. 11/161,656 dated Sep. 18, 2009.
Notice of Allowance for U.S. Appl. No. 11/188,279 dated Jun. 29, 2009.
Notice of Allowance for U.S. Appl. No. 11/187,512 dated Jun. 23, 2011.
Office Action for AU App. No. 2005266943 dated May 14, 2009.
Office Action for CN App. No. 200480040249.X dated Jun. 19, 2009.
Office Action for CN App. No. 200480040249.X dated Sep. 26, 2008.
Office Action for CN App. No. 20050034849X dated Aug. 3, 2010.
Office Action for CN App. No. 200580028535 dated Jan. 15, 2010.
Office Action for CN App. No. 200580034849.X dated Sep. 25, 2009.
Office Action for CN App. No. 200580034849X dated Apr. 7, 2010.
Office Action for CN App. No. 200580030928.3 dated Apr. 23, 2010.
Office Action for IN App. No. 1514KOLNP2006 dated Sep. 7, 2010.
Office Action for JP App. No. 2006-539930 dated Feb. 18, 2010.
Office Action for JP App. No. 2007-048002 dated Nov. 1, 2010.
Office Action for JP App. No. 2007-048003dated Nov. 1, 2010.
Office Action for JP App. No. 2007-519353 dated Jul. 12, 2010.
Office Action for JP App. No. 2007-522841 dated Sep. 10, 2010.
Office Action for JP App. No. 2007-525810 dated Aug. 4, 2010.
Office Action for U.S. Appl. No. 11/039,946 dated Jun. 23, 2009.
Office Action for U.S. Appl. No. 11/187,512 dated Jun. 22, 2010.
Office Action for U.S. Appl. No. 12/557,497 dated Nov. 19, 2010.
Office Action for U.S. Appl. No. 10/683,881 dated Dec. 11, 2007.
Office Action for U.S. Appl. No. 11/039,946 dated Jan. 23, 2009.
Office Action for U.S. Appl. No. 11/161,090 dated May 28, 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 Feb. 4, 2009.
Office Action for U.S. Appl. No. 11/161,090 dated Jun. 10, 2010.
Office Action for U.S. Appl. No. 11/161,090 dated Aug. 15, 2008.
Office Action for U.S. Appl. No. 11/161,090 dated Oct. 15, 2009.
Office Action for U.S. Appl. No. 11/161,091 dated Aug. 5, 2008.
Office Action for U.S. Appl. No. 11/161,092 dated Aug. 20, 2008.
Office Action for U.S. Appl. No. 11/161,093 dated Jun. 19, 2009.
Office Action for U.S. Appl. No. 11/161,093 dated Sep. 2, 2009.
Office Action for U.S. Appl. No. 11/161,093 dated Oct. 1, 2010.
Office Action for U.S. Appl. No. 11/161,093 dated Feb. 22, 2010.
Office Action for U.S. Appl. No. 11/161,656 dated May 13, 2009.
Office Action for U.S. Appl. No. 11/161,656 dated Oct. 28, 2008.
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/161,092 dated Feb. 12, 2009.
Office Action for U.S. Appl. No. 11/161,093 dated Jan. 2, 2009.
Office Action for U.S. Appl. No. 11/187,562 dated Apr. 27, 2009.
Office Action for U.S. Appl. No. 11/187,562 dated Dec. 9, 2008.
Office Action for U.S. Appl. No. 11/187,562 dated Jun. 10, 2008.
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/188,274 dated Sep. 8, 2010.
Office Action for U.S. Appl. No. 11/188,279 dated Jun. 26, 2008.
Office Action for U.S. Appl. No. 11/188,279 dated Dec. 23, 2008.
Office Action for U.S. Appl. No. 11/188,274 dated Mar. 29, 2010.
Pedro Hernandez, Tacit Adds to Softricity's Spark, Nov. 18, 2005. Available online at: www.enterpriseitplanet.com/networking/news/article.php/3565401, p. 1-2.
Restriction Requirement for U.S. Appl. No. 11/161,093 dated Jul. 26, 2010.
Search Report for EP App. No. 07007414 dated Jul. 16, 2007.
Written Opinion of the International Searching Authority for PCT/US2004/037918 mailed on Apr. 27, 2005.
Written Opinion of the International Searching Authority for PCT/US2005/022884 mailed on Jul. 8, 2008.
Written Opinion of the International Searching Authority for PCT/US2005/026296 mailed on Jan. 31, 2006.
Written Opinion of the International Searching Authority for PCT/US2005/026300 mailed on Dec. 16, 2005.
Written Opinion of the International Searching Authority for PCT/US2005/028663 mailed on Nov. 16, 2005.
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.
International Search Report for PCT/US2005/023914 dated May 7, 2007.
International Search Report for PCT/US2005/047433 dated May 3, 2007.
International Search Report for PCT/US2005/047435 dated Sep. 8, 2006.
International Search Report for PCT/US2005/26296 dated Jan. 31, 2006.
International Search Report for PCT/US2007/066433 dated Oct. 31, 2007.
J. C. Mogul, “The Case for Persistent-Connection HTTP,” 8282 Computer Communication Review 25, Oct. 1995.
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.
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.
Ipswitch Inc., WSFTP User's Guide, Chapter 8: Security, Jun. 25, 2003, 8 pages.
Notice of Allowance for U.S. Appl. No. 10/988,004 dated Sep. 18, 2008.
Notice of Allowance for U.S. Appl. No. 11/161,090 dated Mar. 4, 2011.
Notice of Allowance for U.S. Appl. No. 11/188,279 dated Jun. 17, 2009.
Notice of Allowance for U.S. Appl. No. 11/323,196 dated Apr. 19, 2010.
Notice of Allowance for U.S. Appl. No. 12/336,795 dated Mar. 2, 2011.
Notice of Allowance for U.S. Appl. No. 12/557,497 dated May 6, 2011.
Notice of Allowance for U.S. Appl. No. 12/560,154 dated May 2, 2011.
Notice of Reasons for Rejection for JP App. No. 2007-549641 dated May 17, 2011.
Office Action for CA App. No. 2545496 dated Dec. 15, 2010.
Office Action for CN App. No. 200580048867.3 dated Mar. 11, 2011.
Office Action for CN App. No. 200580048867.3 dated Jan. 26, 2011.
Office Action for CN App. No. 200580048867.3 dated Sep. 26, 2010.
Office Action for CN appl. 200580028535 dated Jan. 15, 2010.
Office Action for IL App. No. 180402 dated Dec. 15, 2010.
Office Action for IL App. No. 180405 dated Jan. 2, 2011.
Office Action for IL App. No. 180891 dated Jan. 4, 2011.
Office Action for IL App. No. 180169 dated Jan. 2, 2011.
Office Action for JP App. No. 2007-48001 dated Apr. 29, 2010.
Office Action for JP App. No. 2007-522843 dated Dec. 1, 2010.
Office Action for KR App. No. 2006-7009144 dated Jan. 14, 2011.
Office Action for U.S. Appl. No. 11/161,093 dated Jun. 28, 2011.
Office Action for U.S. Appl. No. 10/988,004 dated Jan. 24, 2008.
Office Action for U.S. Appl. No. 11/161,091 dated Apr. 5, 2011.
Office Action for U.S. Appl. No. 11/161,091 dated Dec. 7, 2010.
Office Action for U.S. Appl. No. 11/161,093 dated Feb. 3, 2011.
Office action for U.S. Appl. No. 11/161,091 dated Feb. 18, 2009.
Office Action for U.S. Appl. No. 11/169,002 dated Jun. 22, 2007.
Office Action for U.S. Appl. No. 11/169,002 dated Mar. 17, 2008.
Office Action for U.S. Appl. No. 11/187,508 dated Sep. 15, 2010.
Office Action for U.S. Appl. No. 11/187,508 dated Jul. 6, 2011.
Office Action for U.S. Appl. No. 11/187,512 dated Nov. 30, 2010.
Office Action for U.S. Appl. No. 11/187,512 dated Dec. 23, 2009.
Office Action for U.S. Appl. No. 11/187,508 dated Nov. 3, 2009.
Office Action for U.S. Appl. No. 11/187,508 dated Apr. 30, 2010.
Office Action for U.S. Appl. No. 11/188,274 dated Jun. 27, 2011.
Office Action for U.S. Appl. No. 11/323,196 dated Feb. 13, 2009.
Office Action for U.S. Appl. No. 11/323,196 dated Aug. 3, 2009.
Office Action for U.S. Appl. No. 11/323,196 dated Nov. 19, 2009.
Office Action for U.S. Appl. No. 11/323,196 dated Sep. 25, 2008.
Office Action for U.S. Appl. No. 11/323,196 dated Nov. 21, 2007.
Office Action for U.S. Appl. No. 11/323,196 dated May 14, 2008.
Office Action for U.S. Appl. No. 11/323,352 dated Mar. 9, 2009.
Office Action for U.S. Appl. No. 11/323,353 dated Jun. 3, 2009.
Office Action for U.S. Appl. No. 11/323,353 dated Jun. 25, 2010.
Office Action for U.S. Appl. No. 11/323,353 dated Dec. 10, 2009.
Office Action for U.S. Appl. No. 11/323,353 dated Dec. 30, 2008.
Office Action for U.S. Appl. No. 11/323,354 dated Feb. 4, 2009.
Office Action for U.S. Appl. No. 11/323,354 dated Aug. 4, 2009.
Office Action for U.S. Appl. No. 11/323,829 dated Jun. 18, 2009.
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. 11/324,131 dated Oct. 6, 2009.
Office Action for U.S. Appl. No. 11/324,131 dated Oct. 3, 2008.
Office Action for U.S. Appl. No. 11/324,138 dated Feb. 11, 2009.
Office Action for U.S. Appl. No. 11/324,138 dated Aug. 18, 2009.
Office Action for U.S. Appl. No. 11/324,140 dated Aug. 4, 2009.
Office Action for U.S. Appl. No. 11/324,141 dated Aug. 21, 2009.
Office Action for U.S. Appl. No. 11/324,141 dated Feb. 27, 2009.
Office Action for U.S. Appl. No. 11/324,141 dated Mar. 3, 2010.
Office Action for U.S. Appl. No. 11/324,146 dated Mar. 25, 2009.
Office Action for U.S. Appl. No. 11/324,146 dated Jan. 8, 2008.
Office Action for U.S. Appl. No. 11/324,146 dated Nov. 12, 2008.
Office Action for U.S. Appl. No. 11/324,146 dated Nov. 13, 2009.
Office Action for U.S. Appl. No. 11/324,203 dated Sep. 1, 2009.
Office Action for U.S. Appl. No. 12/336,795 dated Dec. 16, 2010.
Office Action for U.S. Appl. No. 12/557,497 dated Nov. 18, 2010.
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.
Office Action for U.S. Appl. No. 12/871,246 dated Feb. 4, 2011.
Official Notification, Israeli App. No. 184308, mailed Feb. 7, 2011.
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.
Search Report for EP App. No. 10184310.0 dated Dec. 9, 2010.
Search Report for EP App. No. 10184317.5 dated Dec. 7, 2010.
Summons to Oral Proceedings for EP App. No. 05776653.7 dated Jan. 14, 2011.
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/23914 dated May 7, 2007.
Written Opinion of the International Searching Authority for PCT/US2007/066433 mailed on Oct. 31, 2007.
Advisory Action for U.S. Appl. 11/187,512 dated Mar. 16, 2011.
Biagioni et al., Signature for a network Protocol Stack: A System Application of Standard ML, Jul. 1994.
Chinese Office Action on 200580028535.9 dated Dec. 13, 2011.
Dictionary service [online], [retrieved on Jul. 23, 2009]. Retrieved from the Internet &It;URL: http://dictionary.reference.com/browse/discard&gt.
European Communication on 05763688.8 dated Dec. 20, 2011.
European Communication on 05776653.7 dated Jun. 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 Supplemental Search Report on 05763688.8 dated Dec. 1, 2011.
Examination Report on 3929/KOLNP/2006 dated Nov. 30, 2012.
Hasegawa et al., “A Mechanism for TCP Performance Enhancement over Assymetrical Environment,” Proceedings 8th IEEE ISCC'03, 1530-1346/03, 2003.
Indian Examination Report on 3959/KOLNP/2006 dated Feb. 5, 2013.
Indian Examination Report on 531/KOLNP/2007 dated Feb. 8, 2013.
Non-Final Office Action for U.S. Appl. No. 11/161,093 mailed Jun. 28, 2011.
Notice of Allowance on 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 for CA App. No. 2545496 dated Feb. 15, 2011.
Office action for European Application No. 05776653.7 dated Oct. 5, 2007. 7 Pages.
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/187,508 dated Dec. 20, 2011.
Office Action on U.S. Appl. No. 11/188,274 dated Oct. 18, 2011.
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. 12/871,246 dated Sep. 27, 2011.
Office Action on U.S. Appl. No. 13/739,895 dated Mar. 13, 2013.
Yoshikazu Kobayashi, VPN service introduction, Computer & Network LAN, vol. 21, No. 3, Mar. 1, 2003, pp. 25-40. (19 pages) (English Abstract).
Related Publications (1)
Number Date Country
20110231929 A1 Sep 2011 US
Provisional Applications (2)
Number Date Country
60518305 Nov 2003 US
60524999 Nov 2003 US
Continuations (2)
Number Date Country
Parent 12336795 Dec 2008 US
Child 13149383 US
Parent 10988004 Nov 2004 US
Child 12336795 US