FTP (File Transfer Protocol) / TFTP (Trivial File Transfer Protocol) / NFS (Network File System)
Three protocols, three different questions
★★★ What differs is not speed but the model:
· FTP: how to move a file from A to B -- using two connections, the source of all its trouble;
· TFTP: how to move a file when nothing is set up yet (switch imaging, PXE);
· NFS: how to make a remote directory look like a local one -- not a transfer at all.
★★ So the choice is not about performance but about which model you need.
★★★ FTP's two connections
★★★★ The key fact on this page: FTP uses one control connection plus one data connection.
· Active mode: the server connects back to the client, which fails whenever the client sits behind NAT or a firewall;
· Passive mode: the client connects to a random high port on the server, which passes NAT but requires a whole port range to be open server-side.
★★★ "FTP connects but transfers nothing" is this, nine times out of ten.
★ Common misconceptions
★★★ "SFTP is encrypted FTP" -- it is not. SFTP is a subsystem of SSH and unrelated to FTP (encrypted FTP is called FTPS).
★★★ "TFTP is a simplified FTP" -- also no. It runs over UDP, does its own retransmission and has no authentication, designed for the moment when a device has nothing.
★★ "NFS is FTP over the network" -- NFS moves no files; it mounts a remote directory as a local one.