ahem... vedo qualche indecisione
FTP usa due porte di comunicazione: 21 per i comandi e 20 per i dati.
Il meccanismo è un po' arzigogolato, è nato un'era per la quale si gestiva "a mano" l'ack
In modalità attiva il client crea una porta locale (sopra le well-known),chiamiamola P, e chiama la porta dei comandi del server (21) [1] e [2]
Il client apre anche una seconda porta (P+1) e la invia attraverso il comando FTP PORT al server, mettendosi in ascolto sulla P+1.
Il server "parte" dalla SUA porta 20 e va sulla P+1 del client per trasferire i dati. [3]
Come regole quindi per il server devi avere
[1] tutti => 21 del server
[2] 21 del server => tutti >wkn
[3] 20 del server => tutti >wkn
[4] tutti >wkn => 20 del server
come puoi capire 2 e 3 possono essere male
---
In modalità passiva PASV il client apre ENTRAMBE le connessioni, aprendo due porte locali P >wkn (e P+1)
Con la prima contatta la 21 del server, ma non spedisce la PORT, bensì manda un PASV.
Il server "capisce" ed apre a sua volta una porta Q >wnk e manda la PORT Q al client.
Il client quindi spedisce i dati dalla P+1 a Q
Le regole saranno
[1] tutti =>21 del server
[2] 21 del server => tutti >wkn
[3] tutti => server >wkn
[4] server >wkn => tutti >wkn
sono andato a memoria, è dati tempi della tesi che non scrivo client ftp![]()

Rispondi quotando