|  | 

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 emSecure

    emSecure è una suite di firme digitali per sistemi embedded progettata per proteggere prodotti e asset vitali, offrendo una protezione totale contro l’hacking. Basata su algoritmi di crittografia asimmetrica a doppia chiave, la suite garantisce che le firme non possano essere forgiate tramite il reverse engineering del firmware. Inoltre, emSecure può rendere impossibile la creazione…

  •  |  | 

    Segger emRun

    Panoramica La maggior parte delle toolchain che utilizzano GCC o LLVM si appoggia a newlib, newlib-nano o glibc. Sfortunatamente, queste librerie presentano svantaggi significativi rispetto alle librerie di runtime professionali per sistemi embedded. È qui che entra in gioco emRun. Può essere utilizzato con GCC, LLVM e altre toolchain per fornire una libreria di runtime…

  •  | 

    Segger Ozone

    Ozone è un ambiente di debugg grafico stand-alone completo per applicazioni embedded. Con Ozone è possibile eseguire il debug di qualsiasi applicazione basata su Arm o RISC-V a livello di sorgente (C, C++ e Rust) e assembly. Ozone può caricare applicazioni create con quasi tutti i tipi di toolchain o ambienti di sviluppo integrati (IDE),…

  •  | 

    Segger Flasher ATE (gang)

    A differenza della programmazione di singoli dispositivi, la programmazione gang è un metodo altamente efficiente utilizzato nella produzione elettronica per programmare più dispositivi simultaneamente. Questo approccio è particolarmente vantaggioso in contesti in cui grandi quantità di microcontrollori o altri dispositivi programmabili devono essere configurati in modo rapido e accurato. Riducendo significativamente il tempo totale di…

  •  |  | 

    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 emWin

    emWin è la libreria grafica per sistemi embedded di SEGGER. Fornisce strumenti e API per la creazione di interfacce grafiche (GUI) su piattaforme microcontrollore, consentendo anche a sistemi con risorse limitate di eseguire interfacce utente interattive di alta qualità. Supporta display sia semplici che complessi ad alta risoluzione, è progettata specificamente per il mondo embedded…