Sonntag, 10. Oktober 2010

What's wrong with FTP?

FTP is a very old and deeply aprobed protocol. It was developed in the early 70th as part of much larger TCP/IP group of protocols for american millitary.
The idea was simple: in order to reduce risks and maintainence costs and increase compatibility, all complex of network operations have been divided on several layers each of which abstracts some particular aspect of data transmission.. At the top of these layers the TCP protocol was defined. This protocol allows to send any amount of data from one network location to another.
The FTP uses TCP (or TCP-layer) in order to transmit files over the provided channel.
Nice, great idea. But.. as FTP uses TCP as the background layer it also inherits the properties of the TCP. And if we will consider them very close, we can see that TCP is not the best method for bulk data transmission.
TCP is reliable stream protocol. It means that data is transmitted sequentially: one byte after another. It is very important for real time data transmission: for video- or audiostreams, as the data must be presented on the screen in its natural order (or in the order of stream generation).. In general it is not bad, but for file transfer you need to transfer whole file and not some parts of it: there is no order in normal files - you whether get all the file or nothing. In that sense using TCP as a background service protocol is not really necessary...
The main problem with TCP is that it tries to simulate the transmission sequence, what is not needed for file transfer application layer such as FTP.
If you throw out the transmission sequence and defines some kind of protocol that will transmit file as a whole, of cause you will get speed benefit as you will not bound yourself to additional condition of sequence transmission.
In that sense FTP is a very cheap file transfer protocol, that uses ready-to-use relible data transfer service, but is not very efficient.
Thus, for use cases where the speed & performance of data transmission is very important (for large scale data transfer especially) the TCP-based algorithms such as FTP must be replaced with more efficient UDP-based algorithms.. That's why companies are buying commerial products that replaces old FTP-based infrastructure.
Refer MFT page on wikipedia to get more information on possible solutions.

1 Kommentar:

  1. Thanks for clarifying this!

    We at use UDP for our file transmission service allowing for our users to send files at the maximum speed! This is crucial for us as most of our users send very large files!