@bitspeedhttp://twitter.com/bitspeed

BitSpeed™ Velocity is a multi-threaded, multi-streaming utility for transferring data files over distance, without suffering the delays of latency introduced by the distance itself, as well as the very nature of the TCP/IP protocol. Velocity dynamically manages multiple data streams, throttling and accelerating each stream independently, while simultaneously managing a buffering system to keep data moving at full bandwidth speed regardless of the distance between the source and destination servers. The buffering system also allows Velocity to re-order packets at the Destination server which may have arrived out of sequence due to the use of multi-streaming technology.

To further reduce the bandwidth necessary to transport large amounts of files across continents or across oceans, Velocity incorporates two compression algorithms to reduce the volume of data on-the-fly during transmission, and optionally allows Single Instance File Deduplication (if the source and destination folders have exactly the same file, it will not be written). Using these techniques and tools, it is not uncommon for users to experience throughput that regularly exceeds the bandwidth capacity.

To guarantee that the data sent is the data received, Velocity, while including the standard TCP/IP CRC (cyclic redundancy check) bytes, also enables extensive error checking by calculating an MD5 checksum for each block of data transmitted. The destination server validates the checksum to ensure that the data was not altered while in transit.

Velocity also provides users with continuously visible file transfer status and performance data.

All Velocity processes are controlled for security using OpenSSH standards which can include passwords and a combination of public and private key exchanges. Users may also limit the bandwidth available to Velocity to ensure that other processes needing simultaneous access to the available bandwidth are not “locked-out,” as well as allowing the specification of a time limit within which transfers are to be completed.

It is important to keep in mind that Velocity is a peer-to-peer application. Therefore, it can have up to three different execution locations at the same time: the system from which the Velocity command is initiated (the Agent), the server that holds the source data (the Source), and the server that is to receive the source data (the Destination). In order to simplify the management of this environment, a configuration file is only read on the agent’s system (i.e., the system that initiated the data transfer) and the configuration file values are transmitted to the source and destination servers.

Velocity allows users to choose between our GUI-based agent program (supplied along with the Velocity program product) and any SSH client (such as PuTTY). Using our GUI allows Velocity to calculate and populate certain options with suggested parameters to optimize the data transfer. All of these functions are also available through the CLI (Command Line Interface) for users who prefer a scripted approach. The GUI agent is available for Windows, Linux, AIX, Solaris, HP-UX, and AIX operating systems.

When communications facilities fail, data transfers in progress fail along with them. Velocity allows users to restart failed transfers from the point of failure, without the need to retransmit all that preceded the failure.

Within private networks it is not uncommon for certain servers to be without DNS services. Velocity allows the use of absolute addressing when DNS services are not available.

Importantly, Velocity provides facilities to name specific files for transfer, and to specify directories as well. If so instructed, Velocity recursively traverses the directory and transfers all files and/or non-empty sub-directories. In addition, Velocity allows the user to specify the file permissions of transferred data on the destination server. This provides significant benefit for users who incorporate Velocity in their disaster recovery plans because files and directories will have the exact same ownership and permissions as files and directories on the source server. Users may also specify unique ownership and permissions for data transferred to a destination server. This approach allows easy identification of file or directory origins.