|  | 

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 emUSB Device

    Panoramica emUSB-Device è un software per dispositivi USB ad alte prestazioni, progettato specificamente per i sistemi embedded. Scritto in codice ANSI C, consente una facile integrazione della funzionalità USB in qualsiasi sistema embedded. Vengono fornite molteplici classi di dispositivi standard, che permettono al sistema di comportarsi come un dispositivo USB standard e garantiscono la comunicazione…

  •  | 

    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 Flasher

    La programmazione a singola unità consiste nel caricamento del software su un unico microcontrollore o processore dedicato all’interno di un sistema più ampio. La famiglia di programmatori Flasher di SEGGER per unità singole include i modelli Flasher Pro, Pro XL, Compact e Portable PLUS. Questi strumenti universali per la programmazione in-system (ISP) offrono una programmazione…

  •  | 

    SEGGER embOS Ultra

    Panoramica embOS-Ultra è un sistema operativo in tempo reale (RTOS) ad alte prestazioni che sfrutta l’innovativo scheduling RTOS basato sui cicli (cycle-based). Offre massime prestazioni e una precisione al singolo ciclo di CPU con latenza minima in applicazioni mission-critical e ad alto rendimento, dove il tempismo deterministico e la scalabilità sono essenziali. La tecnologia SEGGER…

  •  |  | 

    SEGGER emWeb

    Panoramica emWeb consente l’integrazione fluida di interfacce grafiche (GUI) in sistemi e applicazioni embedded. Grazie al supporto per l’HTML e le moderne tecnologie web, emWeb è lo strumento ideale per gli sviluppatori che desiderano creare interfacce intuitive, indipendenti dalla piattaforma e accessibili tramite qualsiasi dispositivo dotato di browser. Caratteristiche principali Casi d’uso Come funziona emWeb…

  •  |  | 

    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….