Prerequisites: Basic Networking, IP Addressing and TCP Fundamentals
Imagine you manage a website hosted on a remote server.
You create a new HTML file on your computer and want to upload it to the website.
How can you transfer the file from your computer to the remote server?
You need a method that allows the two systems to communicate and exchange files.
One of the oldest standardized protocols designed for this purpose is File Transfer Protocol (FTP).
FTP allows a client to connect to a server, browse directories and transfer files.
It supports both downloading files from a server and uploading files to a server.
However, traditional FTP does not encrypt usernames, passwords or transferred data. For sensitive information, secure alternatives such as FTPS and SFTP should be considered.
In this article, you will learn:
- What FTP is and how it works
- The difference between an FTP client and server
- Why FTP uses separate control and data connections
- How active and passive FTP modes work
- Important FTP commands and response codes
- ASCII and binary file representation types
- FTP, FTPS and SFTP differences
- Common FTP problems and troubleshooting
- When FTP is used and how to transfer files securely

What Is FTP and How Does It Work?
FTP stands for File Transfer Protocol.
It is an application-layer network protocol used to transfer files between systems.
The standard FTP specification is defined in IETF RFC 959, published in 1985.
FTP uses TCP, which provides reliable, ordered delivery of data between connected endpoints.
What Is an FTP Client?
An FTP client is software used to connect to an FTP server.
It allows users to perform tasks such as:
- Logging in
- Viewing directories
- Uploading files
- Downloading files
- Renaming files
- Deleting files when permitted
FTP clients can provide command-line or graphical interfaces.
What Is an FTP Server?
An FTP server is software that accepts FTP connections and provides access to authorized files and directories.
The server controls what each user is permitted to do.
For example, one user may have permission to download files but not upload or delete them.
FTP Uses Two Connections
An important characteristic of FTP is that it separates commands from transferred data.
| Connection | Purpose | Common Port |
|---|---|---|
| Control Connection | Commands and server responses | TCP 21 |
| Data Connection | Files and directory-listing data | Depends on active/passive mode |
1. Control Connection
The control connection allows the client and server to exchange commands and responses.
Examples include:
- USER
- PASS
- LIST
- RETR
- STOR
The control connection usually remains available while the FTP session is active.
2. Data Connection
The data connection carries file contents and directory-listing data.
For example, when a client requests a file, FTP establishes or uses an appropriate data connection to transfer that file.
The direction and establishment of this connection depend on the selected FTP mode.
Simplified FTP File Transfer Process
- The client connects to the FTP server.
- The server responds to the connection.
- The client authenticates if required.
- The client requests a directory listing or file transfer.
- A data connection is established.
- The requested information is transferred.
- The server reports the transfer result.
Active vs Passive FTP — How Data Connections Are Established
FTP supports two important ways of establishing the data connection:
- Active Mode
- Passive Mode
The main difference is which system initiates the TCP data connection.
1. Active FTP Mode
In active mode, the FTP client tells the server where it should connect for the data transfer.
The client listens for an incoming data connection.
The server initiates that data connection toward the client.
How Active FTP Works
- The client connects to the FTP server’s TCP port 21.
- The client authenticates if required.
- The client tells the server which client address and port should be used for the data connection.
- The client requests a file or directory listing.
- The server initiates the data connection to the client.
- The file or directory data is transferred.
The traditional FTP PORT command is used to provide IPv4 connection information.
The EPRT command provides an extended mechanism for supported address families.
Why Can Active FTP Be Difficult with Firewalls?
In active mode, the client must accept an incoming TCP data connection from the server.
If the client is behind a firewall or NAT device that does not permit this connection, the transfer may fail.
The control connection might work correctly even though the data connection fails.
2. Passive FTP Mode
In passive mode, the FTP server listens on a data port and provides connection information to the client.
The client then initiates the data connection.
How Passive FTP Works
- The client connects to the FTP server’s TCP port 21.
- The client authenticates if required.
- The client requests passive mode.
- The server provides the data connection information.
- The client connects to the server’s selected data port.
- The file or directory data is transferred.
Traditional FTP uses the PASV command for passive operation.
The EPSV command provides an extended passive-mode mechanism.
Why Is Passive FTP Commonly Preferred?
Passive FTP is often easier for clients behind NAT or firewalls because the client initiates both TCP connections.
However, the server still needs to allow the configured passive data-port range.
The server must also advertise suitable connection information.
Active vs Passive FTP Comparison
| Feature | Active FTP | Passive FTP |
|---|---|---|
| Control Connection | Client initiates | Client initiates |
| Data Connection | Server initiates | Client initiates |
| Client Must Accept Incoming Data Connection | Yes | Usually no |
| Server Data Port | Traditionally TCP 20 | Configured or selected port |
| Client Behind NAT | Can be difficult | Generally easier |
| Main Commands | PORT / EPRT | PASV / EPSV |

Important FTP Commands, Responses and File Types
FTP uses text-based commands and numeric server responses.
These messages travel through the control connection.
Common FTP Commands
| Command | Purpose |
|---|---|
| USER | Provides the username |
| PASS | Provides the password |
| PWD | Displays the current directory |
| CWD | Changes the working directory |
| LIST | Requests a directory listing |
| RETR | Downloads a file |
| STOR | Uploads a file |
| DELE | Deletes a file |
| MKD | Creates a directory |
| RMD | Removes a directory |
| TYPE | Selects a file representation type |
| PASV | Requests passive mode |
| EPSV | Requests extended passive mode |
| PORT | Specifies client data connection information |
| EPRT | Specifies extended active-mode connection information |
| QUIT | Ends the FTP session |
Commands may fail if the user does not have permission or the server does not support the requested operation.
Important FTP Response Codes
FTP servers return three-digit response codes.
| Response | Meaning |
|---|---|
| 220 | Service ready |
| 230 | User logged in |
| 331 | Username accepted; password needed |
| 150 | File status okay; opening data connection |
| 226 | Closing data connection; requested transfer action successful |
| 227 | Entering passive mode |
| 229 | Entering extended passive mode |
| 425 | Cannot open data connection |
| 530 | Not logged in |
| 550 | Requested action not taken, such as file unavailable or access denied |
These are common responses. Exact text varies by server.
What Is ASCII File Representation?
FTP supports an ASCII representation type.
ASCII representation can involve translating text into the protocol’s standard text representation and performing relevant character or line-ending conversion.
It was designed to support text exchange between different systems.
What Is Binary File Representation?
The FTP Image representation type, commonly called binary mode, transfers file bytes without the text conversions associated with ASCII mode.
It is appropriate for:
- Images
- ZIP files
- PDFs
- Executable files
- Audio and video
- Most general-purpose file transfers
For modern file transfers, binary mode is usually the safer default when byte-for-byte preservation is required.
ASCII vs Binary Comparison
| Feature | ASCII Type | Binary / Image Type |
|---|---|---|
| Main Purpose | Text representation | Byte-preserving transfer |
| Text Conversion | May occur | No ASCII conversion |
| Suitable for ZIP/PDF/Images | No | Yes |
| FTP TYPE Command | TYPE A |
TYPE I |
FTP Security — FTP vs FTPS vs SFTP
Traditional FTP was designed before modern internet security expectations.
Its major limitation is that plain FTP does not encrypt the control connection or transferred file data.
This creates risks when FTP is used across an untrusted network.
What Are the Security Risks of Plain FTP?
Exposed Credentials
Usernames and passwords can be visible to someone able to observe unencrypted traffic.
Unencrypted Files
Transferred file contents can be intercepted.
Traffic Manipulation
Plain FTP does not provide cryptographic protection against deliberate modification.
Unauthorized Access
Weak credentials or incorrect file permissions can expose server content.
What Is FTPS?
FTPS is FTP protected using TLS.
TLS can encrypt supported communication between the FTP client and server.
FTPS retains the basic FTP architecture, including separate control and data connections.
There are two commonly discussed deployment styles:
Explicit FTPS
The client usually connects to TCP port 21 and negotiates TLS using the FTP AUTH TLS command.
Implicit FTPS
TLS is established from the beginning of the connection. TCP port 990 is commonly associated with implicit FTPS control connections.
Important: FTPS Control and Data Encryption
FTPS security depends on the configuration.
For example, RFC 4217 describes PROT P for protecting the data connection with TLS.
Encrypting the control connection alone does not automatically mean every transferred file is encrypted.
Configure FTPS to require appropriate TLS protection for both credentials and file contents.
What Is SFTP?
SFTP stands for SSH File Transfer Protocol.
It is a separate protocol commonly used through SSH.
SFTP is not FTP with TLS and is not simply ordinary FTP running inside SSH.
SFTP commonly uses TCP port 22 through an SSH service.
It supports file operations over an SSH-secured connection.
FTP vs FTPS vs SFTP
| Feature | FTP | FTPS | SFTP |
|---|---|---|---|
| Protocol | FTP | FTP with TLS | SSH File Transfer Protocol |
| Encryption | No, by default | Yes, when properly configured | Through SSH |
| Common Control Port | 21 | 21 explicit; 990 implicit | 22 |
| Separate FTP Data Connection | Yes | Yes | No |
| Active/Passive FTP Modes | Yes | Yes | Not applicable |
| Recommended for Sensitive Transfers | No | Yes, with secure configuration | Yes, with secure configuration |
Which Should You Use?
For transferring website files, backups or private documents across untrusted networks, prefer a properly configured secure file-transfer solution.
SFTP is often straightforward to manage where an SSH service is already available.
FTPS is useful when an organization needs compatibility with FTP-based systems while adding TLS protection.
Plain FTP should generally be avoided for sensitive information.

Practical Example — How an FTP File Transfer Works
Consider a student who needs to download a text file from a training FTP server.
The example below illustrates standard FTP commands.
For simplicity, it uses an ordinary FTP control connection on a private, isolated learning network.
Do not send real credentials or confidential files using plain FTP over an untrusted network.
Example Setup
| Component | Example Value |
|---|---|
| FTP Client | Student’s computer |
| FTP Server | 192.0.2.10 |
| Control Port | TCP 21 |
| Transfer Mode | Passive |
| File | example.txt |
| Transfer Type | Binary |
192.0.2.10 is a documentation example address, not a live FTP server.
Step 1 — Establish the Control Connection
The client connects to the server’s TCP port 21.
The server indicates that its FTP service is ready.
220 FTP service ready
Step 2 — Authenticate
The client sends a username.
If the server requires a password, it requests one.
USER student
PASS example-password
331 Password required
230 User logged in
This is a simplified illustrative exchange. The password is a placeholder and should not be used as a real credential.
Step 3 — Select Binary Representation
The client requests binary transfer.
TYPE I
200 Type set to I
Step 4 — Enter Passive Mode
The client requests an extended passive data connection.
EPSV
A compliant example response could be:
229 Entering Extended Passive Mode (|||50000|)
This response indicates that the server is listening on TCP port 50000 for the data connection, using the server address from the control connection in this example.
The client opens the data connection to that server port.
Step 5 — Download the File
The client requests the file.
RETR example.txt
The server may respond:
150 Opening data connection
226 Transfer complete
The actual file contents travel over the data connection, not inside these command responses.
Step 6 — End the Session
The client closes the FTP session using:
QUIT
A successful server response may be:
221 Service closing control connection
What Did This Example Teach?
- The client connects through TCP port 21.
- Commands and responses use the control connection.
- EPSV allows the client to connect to a server-selected data port.
- RETR requests a file download.
- File content uses the separate data connection.
- QUIT ends the FTP session.

FTP Use Cases, Common Problems and Troubleshooting
FTP has historically been used in many file-transfer environments.
Today, secure transfer protocols are generally preferable for new deployments involving sensitive data.
Common FTP Use Cases
1. Legacy Website Management
Some older hosting platforms use FTP for uploading and downloading website files.
Modern hosting environments often support SFTP or FTPS instead.
2. Automated File Exchange
Organizations may have existing systems that exchange files automatically.
Where such systems still use plain FTP, migration to secure alternatives should be considered.
3. Internal File Distribution
FTP can be used inside controlled environments, subject to security requirements.
4. Software and Data Distribution
Some older services and workflows use FTP to distribute files.
For public distribution, HTTPS is also widely used.
5. Legacy Equipment
Some network devices and embedded systems may support FTP for file transfer.
Supported secure alternatives should be preferred when available.
Common FTP Problems
| Problem | Possible Cause |
|---|---|
| Cannot connect to server | Server unavailable, wrong address, firewall |
| Login failed | Incorrect credentials or account restrictions |
| Login works but LIST fails | Data connection blocked |
| Transfer times out | Passive port, firewall, NAT or network issue |
| Upload denied | Missing directory permissions |
| File becomes corrupted | Wrong representation type or interrupted transfer |
| FTPS certificate warning | Certificate trust or identity problem |
| SFTP connection fails on FTP port | Wrong protocol or service |
Why Can FTP Login Work but File Transfer Fail?
This is one of the most common FTP troubleshooting scenarios.
Basic FTP Troubleshooting Steps
1. Confirm the Protocol
Check whether the server requires FTP, FTPS or SFTP.
2. Verify the Server Address and Port
Confirm the correct hostname, port and DNS resolution.
3. Check Authentication
Verify authorized credentials and account permissions.
4. Check the Data Connection Mode
Determine whether active or passive mode is in use.
5. Review Firewall and NAT Rules
For passive FTP, confirm that the configured server data ports are permitted and advertised correctly.
6. Examine Client and Server Logs
Look for response codes such as 425, 530 or 550.
7. Verify File Permissions and Transfer Type
Confirm that the account has permission to perform the operation and that the appropriate file representation is used.
Key Takeaways
Core FTP Concepts
- FTP stands for File Transfer Protocol.
- It follows the client-server model.
- Standard FTP uses TCP.
- The control connection normally uses TCP port 21.
- A separate data connection carries files and directory listings.
How FTP Works
- Active mode uses a server-initiated data connection.
- Passive mode uses a client-initiated data connection.
- Passive mode is often easier for clients behind NAT or firewalls.
- FTP uses commands such as USER, PASS, LIST, RETR and STOR.
- The server returns numeric response codes.
File Transfer and Security
- ASCII and binary are file representation types.
- Binary mode preserves file bytes without ASCII text conversion.
- Plain FTP does not encrypt credentials or data.
- FTPS adds TLS protection to FTP.
- SFTP is a separate protocol operating through SSH.
- Sensitive file transfers should use properly configured secure protocols.
Troubleshooting
- FTP requires suitable control and data connectivity.
- Successful login does not prove that data transfer will work.
- Passive data-port configuration matters.
- Firewall and NAT rules can affect FTP.
- File permissions and server policy can prevent uploads or downloads.
File Transfer Protocol is an important part of networking history and remains relevant in some existing systems.
It enables clients to connect to servers, navigate directories, upload files and download files.
Its distinctive feature is the separation between the control connection and the data connection.
Understanding active and passive FTP is especially useful for network administrators because firewalls and NAT can affect these connections differently.
However, plain FTP does not protect credentials or file contents with encryption.
For modern deployments, appropriately secured FTPS, SFTP or HTTPS-based transfer solutions are generally preferable.
Next in This Series: Active vs Passive FTP Explained — PORT, PASV, EPSV, Firewall Rules and Wireshark Call Flow.
Useful Links and References
SanchitGurukul Static Resources
Official External References
Your feedback matters
Was this post helpful?
Discussion
0 approved comments
No approved comments yet. You can start the discussion below.
Leave a Comment
No login is required. Name and email are used for moderation/security. Your email is never displayed publicly. All comments require administrator approval.
Discover more from SanchitGurukul
Subscribe to get the latest posts sent to your email.
