GoFast is a file transfer acceleration protocol in GoAnywhere that can transmit data considerably faster than traditional FTP. The high transfer rate in GoFast is achieved by using lightweight UDP (User Datagram Protocol) channels to broadcast data packets between the client and server. UDP is much faster than TCP based protocols like FTP and SFTP since it does not have the inherent time delays for acknowledging and synchronizing data packets.
UDP has traditionally been used for streaming content that requires high throughput, such as live video and audio. GoFast has also harnessed the efficiency of UDP while providing innovative methods to guarantee the delivery and quality of data transmissions.
How GoFast Works
Before files are transferred, a secure SSL/TLS control channel is first established over TCP between the GoFast server and client. This control channel can be authenticated with user credentials, as well as X.509 client and server certificates. After authentication, commands are sent over the control channel to indicate details about the transmission such as the file names and sizes, encryption ciphers and compression settings.
Files are then broken into multiple parts and transferred over UDP data channels between the GoFast client and server. The part sizes can be adjusted to optimize speeds based on the reliability of the network. The file parts are automatically reassembled on the destination and saved to the designated folder locations.
Guaranteed Delivery
If any parts of a file do not reach the destination successfully, the sender will be instructed to retransmit those missing parts until the entire file is received. To further guarantee the integrity of the transmission, checksums (hashes) can be calculated on both the GoFast client and server for the files transferred. The files can be automatically resent if the client and server file checksums do not match.
Encryption
A GoFast session can be configured to use AES encryption for protecting data packets, which is important when sending confidential files over the internet or other unsecured networks. AES is a popular encryption standard and is approved by the National Institute of Standards and Technology (NIST) for protecting top secret information. If you are transmitting data over protected networks, you can disable encryption to further optimize transfer speeds.
Compression
File parts can optionally be compressed with the ZLIB standard to minimize the amount of bandwidth utilized by GoFast transmissions. Nine different compression levels are supported, which can be selected by the administrator at the time of transmission.
Additional Features of Accelerated File Transfer
- Schedule GoFast file transfers to run automatically
- Send and retrieve multiple files per GoFast session
- Auto-retry failed connections with user-specified thresholds
- Auto-resume failed transmissions when the server becomes available
- Encrypt data packets with AES-128, AES-192 and AES-256 bit ciphers
- Verify integrity with MD5, SHA1, SHA256, SHA384 and SHA512 hash algorithms
- Suffix and prefix file names with constants, timestamps or variables
- Override file names and other properties at execution time using variables
- Auto rename files if they already exist at the destination location
- Configure port ranges used by the GoFast server
- Send alerts for transfer failures via email, text messages and system messages
- Log all GoFast file transfers in a central database for auditing and reporting
GoFast Workflows
GoFast server connections can be pre-defined in GoAnywhere MFT's Administrator as reusable Resources which can be selected from simple drop-down menus. GoFast Tasks can be placed within GoAnywhere MFT workflows and executed as part of a cohesive process. For instance, a workflow could be defined to retrieve a video file, encrypt the video, and then quickly send the video to a trading partner using the GoFast accelerated file transfer protocol.
In the example below, an Administrator is using a GoFast task to upload a video file to a trading partner: