SCP vs. FTP Speed
Secure Copy Protocol and File Transfer Protocol both offer simple command line methods for transferring files between computers, but that's pretty much where the similarities end. SCP is better designed for a one-time transfer between two computers on the same network, though it can be used remotely over the Internet as well. Conversely, FTP is used to not only transfer data to a remote server, but also to manage that data.
Comparing SCP and FTP is a bit uneven, because SCP has been designed to work within the same network, and FTP is an Internet protocol designed for use on remote servers. FTP also tends to be used for moving multiple files; while you can use wildcards to transfer multiple files or copy entire directories in SCP, that's not the most common use for it. All in all, SCP and FTP are about evenly matched in speed when compared on the same network and with the same file; but your mileage may vary depending on the size of the files you're transferring and the way your network is configured. Your use of command flags may change files as well; Chris Dillon, software developer and writer of the tech blog Squarism uses "-c arcfour" to speed up the SCP transfer in his testing.
An SCP transfer is an individual transfer -- you use "scp" in a terminal to copy your files or directory to the other computer, without any frills or other options. It's a one-time movement, as opposed to FTP. With FTP you log in to an FTP session and can not only copy files from your computer, but can also manage files on the remote computer. This includes the ability to rename, delete, move, and modify files from the remote computer. SCP is a secure transfer; it uses secure shell to encrypt both your data and credentials. FTP does not offer protection against anyone who may be trying to view your network credentials.
SCP is a Unix command designed to be used from the terminal. FTP is more flexible in that you can use it either in a terminal or using a graphic program such as WinSCP for Filezilla. You can also use FTP in a terminal, though this isn't common among casual Internet users. Should you choose to use the terminal, you'll need to look up FTP commands. For the most part they're very similar to basic commands – for instance, to transfer a file from your computer to the remote location you would use "put test.file."
The major benefit to SCP is the security; the benefit to FTP is the control over your destination. If neither quite meets your needs, a potential solution is SFTP, which was built using both FTP and SSH — secure shell — to create a protocol that's secure and allows you to control your destination area. In terms of speed, you're not going to see any major difference between FTP and SFTP; if anything, SFTP is going to be slower due to the need to secure your transfer. SFTP is also going to be slower than SCP. SFTP can be used in the terminal or in software designed for the task, the same as FTP.
References & Resources
- Webopedia: FTP
- Liquidweb Knowledge Base: Using SFTP and SCP Instead of FTP
- Indiana University UITS Knowledge Base: In Unix, How Do I use the scp Command to Securely Transfer Files Between Two Computers?
- DifferenceBetween.com: Difference Between SFTP and SCP
- Vamsi Krishna: Overview of SFTP, FTPS, SCP and FTP
- Cornell University Center for Advanced Computing: Ranger Virtual Workshop: Uploading Files
- Squarism: SCP vs Rsync vs SMB vs FTP