Below are some articles in Q & A format which describe the FTP protocol in general.
We welcome any suggestions for additions or revisions via our Contact form.
- What Is FTP?
- What is a network protocol?
- How does FTP work?
- What is the difference between passive and active FTP?
- Is FTP better than HTTP for downloading files?
- What is anonymous FTP?
1. What Is FTP?
FTP stands for File Transfer Protocol. It is the standard Internet protocol for transferring files from one computer to another. FTP is part of the TCP/IP protocol suite. TCP/IP is the basic protocol that runs the whole Internet. Whether you are checking your email, visiting a web site or downloading files, you are using TCP/IP. There are a number of smaller protocols that run on top of TCP/IP, such as email, HTTP, and Telnet. FTP is one of these. Its sole function is to move a file from a server to a client (download) or from a client to a server (upload).
2. What is a network protocol?
In order for two networked computers to communicate, they need a protocol, or "handshake". A protocol is a mutually agreed set of rules that enable both parties to know:
- what to do to initiate an exchange
- what to expect next
If you pick up the telephone and say "hello". You expect the person at the other end of the line to say "hello" as well. This is standard protocol for telephone conversations.
The Internet runs on TCP/IP (Transport Control Protocol/Internet Protocol). As the name suggests it is actually two protocols. Internet Protocol (IP) is the low level protocol that routes packets from one node to the other, and concerns itself with such things as IP addresses (eg. 192.168.1.254). TCP takes addressing for granted and concerns itself with higher level functions such as session management and data transfer. HTTP and FTP are both part of TCP.
3. How does FTP work?
FTP requires two computers, one running an FTP server, the other running an FTP client. The exchange is initiated by the client which logs in under an accepted user name and password. Once this occurs, a session is opened and stays open until closed by either the client or the server, or until it times out. While the session is open, the client may execute numerous FTP commands on the server. These include commands to change directories, list files, get files and put files.
4. What is the difference between passive and active FTP?
FTP is an unusual protocol in that it uses two ports, one for commands and the other for data. (This is one of the reasons it is superior to HTTP for transferring large files.) Active FTP was invented first. The client initiates a connection on the servers command port. The server then initiates a connection with the client from its data port. In Passive FTP, the client initiates both connections with the server, which remains "passive".
Active FTP may cause problems if your client is behind a firewall. From the firewalls point of view, the FTP server that is trying to initiate a connection with your client looks like an intruder and is usually blocked. This is why many users have difficulty using FTP to download files from behind a firewall.
Passive FTP solves this problem, but creates other problems, notably where FTP server security is concerned. The server must listen on a large number of ports. This requires the firewall to let a lot of unqualified traffic through. Most firewall administrators do not like this.
As a rule, you do not need to be concerned about passive and active FTP unless you administer an FTP server or a firewall. If you experience difficulty using your FTP client from behind a firewall, this is likely the reason. Perhaps you should discuss the matter with your firewall administrator.
5. Is FTP better than HTTP for downloading files?
Yes, as a matter of fact it is. HTTP is designed to fetch web pages. It is optimized for numerous repeated fetches of small items. FTP is designed for transferring files, and offers faster overall throughput and better error checking. It is not uncommon for a user to fail repeatedly to download a large file via HTTP using their browser, only to succeed on their first try using a dedicated FTP client. If you download large files frequently, and experience difficulties, get a dedicated FTP client software program.
6. What is anonymous FTP?
FTP requires the client program to log into the server program identifying themselves with a user name and authenticating themselves with a password. Many FTP sites exist however, that freely offer data to the public. In order to comply with FTPs requirement that a session be opened with a user name and a password, these sites operate what is known as "anonymous FTP". This involves using a generic user whose name is "anonymous" and who will accept any syntactically valid email address as a password. It enables the server to distinguish between users, since email addresses are always unique, yet allows all users to log in under the common user name "anonymous".