Is the Reflection FTP Client multi-threaded?

  • 7024318
  • 05-Dec-2019
  • 19-Mar-2020

Environment

Reflection Desktop (including Pro, for X, for IBM, or for UNIX and OpenVMS) 16.0 or higher
Reflection for Secure IT Windows Client version 7.2 and higher

Situation

This technical article describes information related to questions on how to make the Reflection FTP Client upload or download files faster, and also whether the Reflection FTP Client is multi-threaded.

Resolution

Customers desire faster file transfer performance in the Reflection FTP Client and thus ask the question "Is the Reflection FTP Client muti-threaded?"  In computer architecture, multithreading is the ability of a central processing unit (CPU) (or a single core in a multi-core processor) to provide multiple threads of execution concurrently, supported by the operating system. In a multithreaded application, the threads share the resources of a single or multiple cores.

All Reflection software, including the Reflection FTP client, are written as multithreaded applications with each thread dedicated to different tasks, typically matching the OSI model. The model partitions a communication system into abstraction layers, typically up to seven layers.  A layer serves the layer above it and is served by the layer below it. For example, a layer that provides error-free communications across a network provides the path needed by applications above it, while it calls the next lower layer to send and receive packets that constitute the contents of that path.

When the question is asked if Reflection file transfer supports multithreading, the real question is typically about whether a faster file transfer is available.

The assumption is made that a faster file transfer will result by using a multithreaded application to do the file transfer.  The terminology of multitheading is incorrect, the correct concept is really multiprocessing.  At the operating system level, multiprocessing is sometimes used to refer to the execution of multiple concurrent processes in a system, with each process running on a separate CPU or core, as opposed to a single process at any one instant.  Each Reflection file transfer runs on an individual process, and so to speed up file transfers, launching multiple Reflection processes will allow multiple files to be uploaded or downloaded at the same time.

Computer users have been exposed to BitTorrent-type software, which is one of the most common protocols for transferring large files, such as digital video files containing TV shows, video clips, or digital audio files containing songs.  This software is able to take large files, split the files into chunks, download the chunks simultaneously, and then re-assemble the file at the destination.  The speed of this type of software is fantastic and users many times wonder if the Reflection software can do this.  BitTorrent-type software requires a matching client at both ends, which is why it is called peer-to-peer software.  One client will break the file into chunks, the two clients will cooperate in transferring the file, and the client at the other end will re-assemble the file.  These clients are only available on a limited number of platforms, typically just PC-based.

There are also “managed file transfer” applications which will perform multiple file transfers at the same time, but these require components at both ends, like the BitTorrent clients use.  This is one of the potential downsides of a managed file transfer solution, having to install software at both ends of the link, where the file initially resides and where it will end up.  Many customers are unable to install software at the “host” side, plus there is typically a large associated cost of implementing this software.

The FTP and SFTP protocols (and the clients like Reflection FTP which support them) have been around for many years and were designed when communication links were very slow and files were much smaller.  The protocols are designed around sending one file at a time, with the contents uploaded or downloaded in sequential order.  The widespread implementation and deployment of these protocols on a variety of platforms makes them readily available for use in many companies.  The protocols are thus slower but very reliable and available on numerous types of systems.

Additional Information

Here are a few ideas which a customer can use to speed up a FTP or SFTP file transfer with Reflection:

1. Download multiple files at the same time by launching multiple copies of the Reflection FTP Client, either UI or command line driven.

2. Manually break down one large file at the host side into smaller components which can be downloaded simultaneously.

3. “Re-use” host connections to speed up the file transfer.

References: