The FTP Protocol, Understood Properly
FTP is one of the oldest protocols still in daily production use, and it behaves unlike almost everything designed since — most famously by splitting every session into a control connection and a separate data connection. That design explains both FTP's flexibility and nearly every headache it causes behind modern firewalls.
These articles take the protocol apart properly: what travels over each connection, how to read the command conversation, how FTP accounts and anonymous access work, and how to build a safe lab where you can watch it all happen. If you administer anything that still speaks FTP — and almost every organization has something — this is the foundation series.
Articles in This Series
- The Two-Channel Architecture: FTP's Control and Data Connections
Why FTP uses separate connections, walked through with an annotated capture. - FTP Commands and Reply Codes: Reading the Conversation Like a Pro
The command set and the three-digit reply system, decoded for troubleshooting. - A Short History of FTP and Why It Refuses to Die
Where FTP came from, where it survives, and an honest risk framing. - FTP's Failure Modes: The Complete Field Guide
Mode mismatches, NAT breakage, timeouts, encoding corruption — symptom to fix. - FTP Account Models: Anonymous, Real Users, Virtual Users, and Isolation
How each model works and why virtual users became the standard. - Building an FTP Lab for Learning and Troubleshooting
A disposable server, client, and capture setup for safe experiments. - Reading the FTP Automation You Inherited
Decoding scripts from admins past — and finding the embedded credentials.
Explore More Topics
This series is part of the Sysax file transfer topic library, which covers the protocols, security practices, automation techniques, and operational skills behind reliable file transfer. The library pairs well with the practical tools we build: Sysax Multi Server, a secure FTP, FTPS, SFTP, and HTTPS server for Windows, and Sysax FTP Automation, which schedules and scripts secure transfers so the routine ones run themselves.
