FTP uses two TCP ports, one for control commands and one for data transfers. It uses a command-response protocol over the control port with US-ASCII formatting. There are two main connection modes for FTP - active and passive. Active mode has the client connect to the server's command port to initiate the session, while passive mode has the client open random ports that the server connects to. FTP supports different file structures, data types, and transmission modes to handle file transfers across heterogeneous systems.