Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorica

Il Protocollo FTP & Trasferimento File

Architettura a doppio canale (Controllo e Dati), modalità Attiva e Passiva, codici di risposta e simulatore di sessione FTP.

1. Cos'è il Protocollo FTP

L'FTP (File Transfer Protocol) è un protocollo standard di livello applicativo progettato per il trasferimento bidirezionale di file tra un client e un server su una rete basata su IP. Funziona storicamente sfruttando due porte distinte sul server: la porta 21 per il canale di controllo e la porta 20 per il canale dati.

Architettura a Doppio Canale:

1. Canale di Controllo: Utilizzato per inviare comandi (es. USER, PASS, CWD) e ricevere codici di risposta numerici.
2. Canale Dati: Aperto dinamicamente per il trasbordo effettivo dei flussi binari o testuali dei file e delle liste di directory.

2. Modalità Attiva (Active) vs Passiva (Passive)

La gestione dell'apertura del canale dati rappresenta la principale particolarità e complessità del protocollo FTP, soprattutto in presenza di firewall e NAT:

Modalità Come viene aperto il Canale Dati Criticità con Firewall / NAT
Modalità Attiva (PORT) Il client comunica al server su quale porta in ascolto connettersi. È il server a inizializzare la connessione dati verso il client (porta 20 verso porta client). Il firewall del client blocca spesso le connessioni in entrata non richieste, impedendo il trasferimento.
Modalità Passiva (PASV) Il client invia il comando PASV; il server apre una porta casuale e risponde indicando dove collegarsi. È il client a inizializzare entrambe le connessioni. Molto più compatibile con i firewall moderni e NAT domestici/aziendali (standard odierno).

3. Comandi Principali e Codici di Risposta

Le interazioni lato terminale si basano su comandi testuali standard seguiti da codici numerici a tre cifre:

4. Simulatore Interattivo: Sessione FTP e Log di Controllo

Simula una sequenza di comandi inviati da un client FTP verso un server remoto e osserva la risposta del canale di controllo.

ftp-client@nexus-sys:~# FTP Control Channel Simulator
> Seleziona un comando FTP e avvia la simulazione per analizzare lo scambio di messaggi sul terminale.