FTP (File Transfer Protocol) is a standard network protocol used for
transferring files between a client and a server over a TCP/IP network. It
operates on a client-server model, where the FTP client communicates with
the FTP server to upload or download files.
The purpose of FTP in bullet points:
Transferring Files: Allows users to upload and download files
between a client and a server.
File Management: Enables users to manage files on the server
(create, delete, rename, change permissions).
Cross-Platform Compatibility: Works across different operating
systems (Windows, Linux, macOS).
Large-Scale File Transfers: Efficiently transfers large files or multiple
files, commonly used in enterprise environments.
Backup and Archival: Used for backing up and archiving important
data on remote servers.
Distributing Software/Updates: Facilitates the distribution of
software packages, updates, and patches.
Website Management: Web developers use FTP to upload and
update website files on servers.
Simplifying Remote Access: Provides an easy way for users to
access and manage files remotely.
FTP Client Side:
Software: FTP clients (e.g., FileZilla, WinSCP) communicate with the
FTP server.
Connection Setup: Client connects to the server via IP address and
port (typically port 21).
Authentication: Username and password are used, unless it's
anonymous FTP.
Sending Commands: Client sends commands (GET, PUT, LIST, etc.)
to perform tasks.
File Transfer: Uploads or downloads files in binary or text format.
Data Channel: A separate data connection is used to transfer files.
FTP Server Side:
Software: FTP servers (e.g., vsftpd, ProFTPD) listen on port 21 for
client connections.
Connection Handling: Server processes client requests,
authentication, and file transfers.
Authentication: Verifies client credentials and grants/denies access.
Handling Commands: Processes commands for file transfers (upload,
download, list).
Data Transfer: Opens a separate data channel (passive or active
mode).
FTP Modes:
Active Mode: Server opens a connection to the client (client listens on
random port).
Passive Mode: Client opens a connection to the server (server listens
on random port), used behind firewalls.
Pros of FTP:
Reliable & Established: Widely compatible with many systems.
Efficient Transfer: Great for transferring large or multiple files.
Binary/Text File Support: Handles both file types.
Authentication: Secures access control.
Resume Transfers: Can resume interrupted transfers.
Cons of FTP:
Security Issues: Unencrypted data (username, password) makes it
vulnerable to interception.
Firewall Issues: Active mode struggles with firewalls, though passive
mode works better.
Limited Functionality: Lacks features like file sync or version control.
No File Integrity Check: No built-in check for file corruption.
No Compression: Doesn't support compression for large file transfers.