File Transfer Protocol (FTP) is a
standard network protocol used to exchange and manipulate files over the
Internet.
FTP is built on a client-server architecture and utilizes separate
control and data connections between the client and server applications. FTP is
also often used as an application component to automatically transfer files for
program internal functions. While data is being transferred via the data stream,
the control stream sits idle. This can cause problems with large data transfers
through firewalls which time out sessions after lengthy periods of idleness.
While the file may well be successfully transferred, the control session can be
disconnected by the firewall, causing an error to be generated. Resuming uploads
is not as easy. Although the FTP protocol supports the APPE command to append
data to a file on the server, the client does not know the exact position at
which a transfer got interrupted. It has to obtain the size of the file some
other way, for example over a directory listing or using the SIZE command.
Source: Wikipedia, the free encyclopedia