|  | 

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 J-Trace

    Panoramica Lo J-Trace di SEGGER è una sonda di tracciamento (trace probe) professionale di tipo streaming che offre la migliore esperienza di analisi possibile, vantando un elenco esteso di funzionalità in grado di soddisfare ogni esigenza di debug degli sviluppatori embedded. Grazie allo streaming trace illimitato, al Live Code Profiling e alla Live Code Coverage,…

  •  |  |  | 

    SEGGER embOS Safe

    embOS Safe è un sistema operativo in tempo reale (RTOS) certificato dall’organismo 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 altri standard di sicurezza funzionale derivati dalla norma IEC 61508.L’adesione…

  •  | 

    Segger emCompress

    La riduzione delle dimensioni dei dati per l’archiviazione e il trasferimento è estremamente preziosa nei sistemi embedded. Una dimensione di archiviazione ridotta minimizza la complessità e i costi dei sistemi mantenendo bassi i requisiti di memoria. Una dimensione di trasferimento ridotta permette di superare i limiti della larghezza di banda disponibile per l’invio e la…

  •  |  | 

    Segger emPower OS

    emPower OS di SEGGER è un sistema operativo completo che fornisce l’ambiente ideale per qualsiasi sviluppatore impegnato nella creazione di sistemi embedded o dispositivi IoT. Può essere adattato per girare in sistemi a microcontrollore singolo con risorse limitate (senza memoria esterna) o scalato per ottenere le massime prestazioni su processori applicativi (MPU) senza sovraccarichi inutili….

  •  |  |  | 

    Segger emVNC

    emVNC-Server (Virtual Network Computing) consente di visualizzare il display e gestire un sistema embedded tramite USB (utilizzando emUSB-Device di SEGGER), TCP/IP o qualsiasi altro livello di trasporto di tipo socket. emVNC è stato progettato specificamente per i sistemi embedded. Fornisce sia il modulo server per il sistema target, sia l’applicazione client per i computer. L’applicazione…

  •  |  | 

    Segger emFloat

    Sviluppato e perfezionato per oltre due decenni, emFloat è un componente altamente ottimizzato di emRun (la libreria runtime C di SEGGER) ed è parte integrante di SEGGER Embedded Studio. Progettato per essere “plug-and-play”, emFloat può sostituire la libreria a virgola mobile predefinita, offrendo prestazioni superiori con meno codice. Estremamente veloce e compatto, garantisce prestazioni simili…