|  | 

Segger emFTP

FTP significa File Transfer Protocol (Protocollo di Trasferimento File). È il meccanismo di base per spostare file tra macchine su reti basate su TCP/IP, come Internet. L’FTP è un protocollo client/server, il che significa che una macchina (il client) avvia il trasferimento contattando un’altra macchina (il server) ed effettuando delle richieste. Il server deve essere operativo prima che il client invii le sue richieste. In genere, un client comunica con un server alla volta, mentre la maggior parte dei server è progettata per gestire più client simultanei.

Caratteristiche principali

  • Occupazione di memoria (footprint) ridotta.
  • Supporto per connessioni multiple.
  • Indipendente dal file system: è possibile utilizzare qualsiasi file system.
  • Indipendente dallo stack TCP/IP: è possibile utilizzare qualsiasi stack dotato di socket.
  • Include un progetto per Microsoft Visual Studio per l’esecuzione su PC.
  • Supporto per FTPS e FTPES.

Utilizzo delle Risorse

Utilizzo della ROM

L’utilizzo della ROM dipende dalle opzioni e dalla versione del compilatore, nonché dalla CPU utilizzata.

  • Sistema ARM7: Circa 6,6 KByte.
  • Sistema Cortex-M3: Circa 5,6 KByte.

Utilizzo della RAM

Quasi tutta la RAM è utilizzata dagli stack dei task. Il consumo totale può essere stimato come segue: Utilizzo RAM = 0,2 KB + Task Genitore (0,5 KB) + (Numero di Task Figli * 1,8 KB). Esempio: Un server che accetta 1 sola connessione richiede circa 2,5 KByte di RAM.


Requisiti

  • Stack TCP/IP: Ottimizzato per emNet, ma compatibile con qualsiasi stack conforme agli standard RFC.
  • Multitasking: Il server FTP deve essere eseguito come thread separato; è quindi necessario un sistema operativo RTOS (come embOS).

Fondamenti del protocollo FTP

L’FTP è un protocollo insolito poiché utilizza due porte: una porta “Data” (dati) e una porta “CMD” (comandi). Tradizionalmente, la porta 21 è per i comandi e la porta 20 per i dati.

Modalità Attiva (Active Mode)

In modalità attiva, il client si connette dalla porta P alla porta 21 del server e invia il comando PORT P+1. Il server apre quindi una connessione dalla sua porta locale 20 verso la porta P+1 del client per il trasferimento dei dati.

Modalità Passiva (Passive Mode)

In modalità passiva, il client invia il comando PASV. Il server risponde con l’indirizzo di una porta su cui è in ascolto. Il client stabilisce quindi la connessione dati verso tale porta. Questa modalità è preferibile per superare le restrizioni dei firewall lato client.


Protocolli FTP Sicuri

Mentre l’FTP standard trasmette dati e comandi in testo semplice, esistono vari modi per proteggere la connessione tramite SSL/TLS:

  1. FTPS (Modalità Implicita): L’intera sessione è avvolta in una connessione sicura fin dall’inizio, solitamente sulla porta 990.
  2. FTPES (Modalità Esplicita): Il client inizia su una porta standard (21) e richiede esplicitamente il passaggio a una connessione sicura tramite comandi specifici.
  3. SFTP (SSH FTP): Non è correlato all’FTP originale; è un’estensione del protocollo SSH (Secure Shell) e opera su un unico canale sicuro.

Codici di Risposta FTP

Ogni comando riceve un codice a 3 cifre:

  • 1yz: Risposta preliminare positiva.
  • 2yz: Risposta di completamento positiva.
  • 3yz: Risposta intermedia positiva.
  • 4yz: Risposta di completamento negativa transitoria (riprovare).
  • 5yz: Risposta di completamento negativa permanente.

Comandi FTP Supportati

Il server emFTP implementa i comandi fondamentali definiti dalla RFC 959, tra cui:

  • LIST / NLST: Elenco file.
  • RETR / STOR: Scarica/Carica file.
  • CWD / CDUP: Navigazione cartelle.
  • MKD / RMD: Creazione/Rimozione cartelle.
  • DELE: Eliminazione file.
  • USER / PASS: Autenticazione.

Server FTP Gratuito per Windows, Mac, Linux

SEGGER fornisce un’applicazione server FTP gratuita per host, che utilizza lo stesso codice (“engine”) disponibile per le applicazioni embedded. Questo permette di valutare il comportamento del software su PC con la garanzia che sarà identico una volta implementato sul target finale. È compatibile con qualsiasi client standard come FileZilla, Firefox, Chrome o riga di comando.

Articoli simili

  •  |  | 

    Segger emCrypt

    Panoramica Progettato pensando sia all’efficienza che alla sicurezza, emCrypt funge da toolkit di crittografia affidabile, offrendo tutti i componenti chiave necessari per i protocolli sicuri odierni. In un mondo pieno di dispositivi connessi, mantenere i dati al sicuro è fondamentale. Con emCrypt, gli utenti possono confidare nella protezione dei propri dispositivi embedded contro le potenziali…

  •  |  | 

    emFile RAID 5

    Sebbene l’acronimo R-A-I-D derivi da Redundant Array of Independent (originariamente Inexpensive) Disks, i termini “recuperabile” e “replicabile” sono più accurati di “ridondante”. Storicamente, i dispositivi di archiviazione sono stati i dischi rigidi. Nelle applicazioni embedded, questi possono essere qualsiasi tipo di dispositivo di memoria (NAND, NOR, SD) e, date le dimensioni del sistema, l’archiviazione è…

  •  |  | 

    Segger embOS

    Panoramica embOS è una famiglia di sistemi operativi in tempo reale (RTOS) progettata come base per lo sviluppo di applicazioni embedded. Giunto al suo quarto decennio di utilizzo e perfezionamento continuo, embOS offre l’affidabilità e le prestazioni che sostengono il firmware di ogni SEGGER Flasher, J-Link e J-Trace. Distribuito in miliardi di dispositivi in un’ampia…

  •  | 

    Flasher Hub-12

    Fratello maggiore del Flasher Hub-4, il Flasher Hub-12 controlla fino a 24 unità Flasher Compact, che operano come canali individuali per la programmazione multipla (“gang”) parallela ad alta velocità. Ogni canale può essere configurato per programmare un dispositivo diverso o un’immagine firmware differente. Il sistema combinato Flasher Hub-12 e Flasher Compact viene configurato una sola…

  •  |  |  | 

    Segger embOS-Safe

    embOS-Safe è un sistema operativo in tempo reale (RTOS) certificato dall’ente di ispezione tecnica tedesco TÜV SÜD. La certificazione è conforme agli standard IEC 61508 SIL 3, IEC 62304 Classe C e ISO 26262 ASIL D. Su richiesta, è disponibile anche la certificazione per standard di sicurezza funzionale derivati dall’IEC 61508. L’adesione a elevati standard…