Hola,
El FTP es un protocolo, que esta especificado en un RFC. En concreto en
http://www.wu-ftpd.org/rfc/ tienes una serie de RFCs. Creo que el principal es el 959.
El FTP se basa en un servidor y en un cliente. El servidor escucha en un puerto, y el cliente se conecta a ese puerto. El cliente manda comandos al servidor, que responde. Esa comunicacion la haces mediante sockets.
Tienes programas opensource como filezilla que puedes mirar el codigo fuente.
Suerte.