Skip to content

It Is Extremely Slow to Run Elliott over VPN Connection

Q - Any ideas why Elliott runs extremely slowly or not at all when our users are remotely connected through our VPN? We have a 30MBx5MB connection (that is lightly loaded) to the WAN and in many cases our users are connected to fast connections as well. Our observations are that Elliott is totally unusable over a VPN connection…is this to be expected? If not, any ideas?

A - Running Elliott over VPN or over a WAN (e.g., Internet) has never worked well. It has to do with the latency and the chatty aspect of its network communication.  To run Elliott from outside the office, you need to use terminal service.  

Understanding Internet Latency
When looking at Internet speed, most people focus on the Upload or Download speed.  But latency is also an important factor that will determine whether certain applications will work well or not over the Internet. To determine the latency between your remote users' location and your office, ask your users to use the "ping" command, such as the following, after the VPN connection is established:
      ping 999.999.999.999
where 999.999.999.999 is the IP address of your PSQL server.  

To see a typical Internet latency speed, you can perform, for example,

      ping www.google.com

and the response will be something like:

Pinging www.google.com [216.58.218.228] with 32 bytes of data:
Reply from 216.58.218.228: bytes=32 time=106ms TTL=58
Reply from 216.58.218.228: bytes=32 time=117ms TTL=58
Reply from 216.58.218.228: bytes=32 time=114ms TTL=58
Reply from 216.58.218.228: bytes=32 time=131ms TTL=58

Ping statistics for 216.58.218.228:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 106ms, Maximum = 131ms, Average = 117ms

This means if you try to send a TCP/IP packet to www.google.com and wait for the response to come back, the round trip is 117ms.  Most of the browser applications are optimized to get the result within a few round trips.  So you can get your browsing result in less than one second if the back-end server has no other process to delay the response.

Elliott is not designed to minimize the number of round trips. To read each record, Elliott needs a round trip between your user's workstation and the PSQL server.  To just start up Elliott, it will require reading through hundreds of records and many folders and configuration files.  With 117ms latency, it makes Elliott run at a very slow speed.

On the other hand, if you perform a ping test on a local area network between a workstation and the PSQL server, you will find the latency is less than 1ms. This is the reason why Elliott works well under a local area network environment, but works very slowly when running directly over the Internet through a VPN connection.

Using a Terminal Server
To run Elliott from outside the office, you need to use terminal service. That is to say, you will have one or more terminal servers in your office that communicate to your PSQL server through the LAN (local area network).  Your remote user will use RDP client (Remote Desktop) to connect to the office terminal server.  Elliott actually runs on the terminal server in the office.  However, the screen update and keystrokes are transferred between the terminal server and the remote workstation over the Internet.

Because terminal service is optimized to reduce round trip traffic, when users run Elliott through a terminal server remotely, it feels as if the user is running Elliott locally.  As a matter of fact, Elliott is optimized to run over the terminal server.  At Netcellent, everyone's primary desktop is on the terminal server.  We log on to the terminal server for everything and rarely do anything on the local desktop other than bringing up the remote desktop client.  Each workstation has minimum setup and can be easily replaced.  When we go home or on the road, we can access the office's terminal server desktop as if we are in the office.

Generally speaking, you will find Elliott works very well over the remote desktop if the latency is around 100ms or less. In some situations, the latency can be very high, then Elliott may not work well over the remote desktop.  The common scenarios are:
  • Internet Connection Over the Satellite - This may happen if your user is in a very remote area - on a ship, oil platform, remote area or in the wilderness. This satellite Internet latency is typically over 300ms and can be as high as 1,000ms. This will not work for remote desktop applications.
  • Overseas - Sometimes the latency between overseas locations and the US office can be high. When it is as high as 200ms, remote desktop applications still work, but you may feel that response is sluggish.  Several of our users try to use Remote Desktop in China to connect to their US offices with no success.  But when other users try the same thing in areas immediately outside of China, like Hong Kong or Taiwan, it works well.
Generally speaking, you will find that Elliott runs faster on a terminal server.  If the terminal server is also the PSQL server, then you will find that Elliott runs very fast indeed.

In conclusion, we recommend that our users run Elliott on the terminal server.  This is especially true if you need to run Elliott remotely over the Internet.


EMK

Feedback and Knowledge Base