Patent ID: 8095786

Claim:
A method comprising: establishing a network-layer (Layer 3) virtual private network (VPN) tunnel from a client device to a gateway device, wherein the network-layer VPN tunnel is defined by a network address of an adapter of the client device and a network address of the gateway device; receiving, with a module on a client device, application-layer data to be sent to a server device from an application executing on the client device; before forming one or more network-layer packets including the received application-layer data, determining, with the module, on an application-by-application basis based on the application from which the application-layer data was received, whether to send the application-layer data through the network-layer VPN tunnel; and sending, with the client device, the one or more network-layer packets including the application-layer data through the network-layer VPN tunnel based on the determination.