Accelerated File Transfer
What is AFTP?
AFTP (Accelerated File Transfer Protocol) is a file transfer protocol developed by JSCAPE. AFTP is designed to accelerate file transfers over high speed networks that are unable to fully utilize network throughput due to high latency and packet loss. Under these conditions AFTP can accelerate file transfers up to 100 times faster than FTP and other file transfer protocols.
How does it work?
Popular file transfer protocols such as FTP/S, SFTP and HTTP/S depend on an underlying protocol named TCP. The problem with TCP is that as network conditions such as latency and packet loss increase, network throughput is significantly reduced. This is largely to due to the algorithm used to ensure TCP's reliability. TCP uses a sliding window algorithm that reduces throughput as latency and packet loss increase. The result is that file transfer protocols based on TCP are often unable to fully utilize bandwidth available, in effect greatly increasing the amount of time needed to transfer a file. The effects of this are often seen in satellite, transcontinental and transoceanic file transfers.
AFTP solves this problem by changing the way file transfers are performed. Rather than relying exclusively on TCP, AFTP has two communications channels using a combination of TCP and UDP protocols. The first channel, called the control channel, uses TCP and is responsible for tasks such as user authentication, file management and coordinating file transfers. The second channel, called the data channel, uses UDP and is responsible for transferring file data. Unlike TCP, UDP does not suffer the same level of throughput reduction when compared to TCP under similar network conditions. AFTP is able to capitalize on this by transmitting a majority of data over UDP, thus providing optimal throughput. AFTP implementations can achieve reliable file transfers while reducing file transfer times by several orders of magnitude (up to 100x) when compared to TCP based file transfer protocols.
Will AFTP work for me?
AFTP provides the greatest performance gains when used in high bandwidth networks ( > 5Mbps) that suffer from high latency ( > 50ms). For example, a file transfer between Tokyo and Los Angeles over a 45Mbps connection is likely to have high latency given the geographical distance between these two locations and will benefit from the use of AFTP. Conversely, a file transfer between two hosts on a LAN (Local Area Network) over a 100Mbps connection is unlikely to have high latency or benefit from the use of AFTP.
What is latency?
In a network, latency is a measure of the amount of time it takes for a packet of data to get from one network point to another. Latency can be affected by many variables including distance between points, the number of gateways between points, and the medium used (e.g. wireless, fiber optics). Latency is typically measured in milliseconds (ms). Example: The latency between Host A in Los Angeles and Host B in Tokyo is 200 ms.
What is packet loss?
Packet loss is a network condition when one or more packets of data fail to reach their intended destination. Packet loss is measured as a percentage of packets that do not reach their destination, also known as lost or dropped packets. Example: The packet loss between Host A in Los Angeles and Host B in Tokyo is 1.0%.
What is throughput?
Throughput is the actual rate of data delivery over a network. Throughput is typically measured in bps (bits per second). Throughput is often a fraction of bandwidth due to network conditions such as latency and packet loss. Example: The throughput between Host A in Los Angeles and Host B in Tokyo is 5Mbps.
What is bandwidth?
Bandwidth is the theoretical maximum rate of data delivery over a network. Bandwidth is typically measured in bps (bits per second). Example: The bandwidth between Host A in Los Angeles and Host B in Tokyo is 45Mbps.
What is TCP?
TCP (Transmission Control Protocol) is a reliable IP based network protocol in that all packets are sent in order and if a packet is lost it will automatically attempt to resend that packet. See also TCP on Wikipedia.
What is UDP?
UDP is a sibling to the TCP protocol, both of which are dependent on the underlying IP stack. Unlike TCP, UDP does not require that packets be sent in order and does not automatically attempt to retransmit lost packets. Retransmission and reordering of packets are the responsibility of the higher level protocol, in this instance AFTP. See also UDP on Wikipedia.