×

Automated sensing of network conditions for dynamically provisioning efficient VPN tunnels

  • US 10,084,642 B2
  • Filed: 08/11/2017
  • Issued: 09/25/2018
  • Est. Priority Date: 06/02/2015
  • Status: Active Grant
First Claim
Patent Images

1. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:

  • executing, with one or more processors, a virtual private network client application on a client computing device;

    connecting, with one or more processors, the client computing device to a virtual private network server via one or more virtual private network connections, wherein;

    the one or more virtual private network connection each form an encrypted tunnel between the client computing device and the virtual private network server;

    the one or more virtual private network connections apply different respective sets of configuration settings to configure the respective virtual private network connection;

    the different respective sets of configuration settings are applied concurrently on different virtual private network connections, on the same virtual private network connection at different times, or both;

    the different respective sets of configuration settings each include a plurality of different adjustable parameters by which virtual private network connections between the client computing device and the virtual private network server are configured; and

    each of the parameters takes a different value between at least one pair of the different respective sets of configuration settings;

    communicating or attempting to communicate, with one or more processors, between the client computing device and the virtual private network server via each of the one or more virtual private network connections while the different sets of configuration settings are applied;

    sensing, with one or more processors, a plurality of sets of one or more metrics of network conditions of the one or more virtual private network connections during communicating or attempting to communicate while the different sets of configuration settings are applied;

    selecting, with one or more processors, a set of configuration settings from among the different respective sets of configuration settings based on the plurality of sets of one or more metrics;

    communicating, with one or more processors, between the virtual private network server and the client computing device with a virtual private network connection configured with the selected set of configuration settings; and

    logging data descriptive of at least some communication between the virtual private network server and the client computing device in tamper-evident, immutable data repository having a directed acyclic graph with edges defined at least in part by cryptographic hash pointers, wherein;

    virtual private network connection settings are automatically configured based on sensed network conditions;

    a plurality of different virtual private network connections are formed concurrently between the client computing device and the virtual private server and a plurality of different sets of configuration settings are tested concurrently;

    the virtual private network client, the virtual private network server, or both, are configured to;

    iterate through different ones of the configuration settings;

    calculate respective network condition scores based on the sensed metrics of network conditions; and

    select the set of configuration settings based on a set of configuration settings producing a highest or lowest score;

    the sensed network conditions include metrics indicative of each of the following;

    ability to communicate any data, packet loss, latency, and bandwidth;

    the plurality of different adjustable parameters of each set of configuration settings comprise each of the following;

    port number, transport layer protocol, destination address, and virtual private network protocol; and

    the adjustable parameters are optimized;

    with a brute force search of every permutation in a parameter space of the adjustable parameters;

    orone at a time with greedy optimization algorithm.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×