5.2 Connessioni (CONNECTIONS)
L'interprete di protocollo del server deve "ascoltare" (listen) sulla porta L per le connessioni di controllo. L'utente o l'interprete di protocollo utente deve avviare la connessione di controllo full-duplex. Gli interpreti di protocollo server e utente devono seguire le convenzioni del protocollo Telnet come specificato nel Manuale del Protocollo Internet ARPA [1]. I server non sono tenuti a fornire l'editing delle righe di comando e possono richiedere che questo venga eseguito nell'host utente. La connessione di controllo deve essere chiusa dal server su richiesta dell'utente dopo che tutti i trasferimenti e le risposte sono completati.
L'user-DTP deve "ascoltare" (listen) sulla porta dati specificata; questo dovrebbe essere fatto PRIMA di inviare il comando di richiesta di trasferimento. Il server deve avviare la connessione dati dalla propria porta dati predefinita utilizzando la porta dati utente specificata. La connessione dati deve essere duplex in modo che il server possa inviare informazioni di controllo mentre i dati vengono inviati dall'user-DTP.
Va notato che tutte le implementazioni FTP devono supportare il trasferimento dati utilizzando la porta predefinita e che solo l'USER-PI può avviare l'uso di porte non predefinite.
Quando i dati devono essere trasferiti tra due server, l'user-PI deve stabilire connessioni di controllo con i due server. L'utente deve quindi inviare un comando di richiesta di trasferimento (RET, STOR o LIST) con una porta dati del server FTP come argomento a un server-PI. Quindi, un'altra richiesta di trasferimento con la porta dati del server FTP come argomento deve essere inviata all'altro server-PI. I codici di risposta devono determinare quando l'user-PI dovrebbe dire a uno dei server-PI di avviare la connessione. L'user-PI invia un comando PASV a un server-PI dicendogli di "ascoltare" (listen) sulla connessione dati piuttosto che avviarla al ricevimento di un comando di trasferimento. L'utente invia quindi il comando di trasferimento all'altro server-PI. I server dovrebbero quindi connettersi e scambiare dati.