Accelerazione del trasferimento

Sfondo

Su internet, ad oggi, vengono utilizzati due protocolli principali: TCP e UDP.

TCP è il cavallo di battaglia di internet. Questo protocollo ritrasmetterà automaticamente un pacchetto TCP al ricevente. Quando un destinatario riceve un pacchetto TCP nel messaggio ACK (Acknowledge, cioè Riconosci), questo viene inviato al mittente, in modo che il mittente sappia che questo pacchetto è stato consegnato correttamente. Questo meccanismo relativamente semplice rende il protocollo TCP molto affidabile e facile da usare per gli sviluppatori. L'invio dei messaggi ACK al mittente può limitare seriamente le prestazioni (poiché il mittente deve attendere l'ACK del pacchetto1 prima di inviare il pacchetto2); nel corso degli anni sono stati apportati molti miglioramenti a questo protocollo. Alcune delle caratteristiche più importanti di una moderna implementazione TCP sono:

  * Dimensione della finestra scalabile consente di inviare più pacchetti contemporaneamente e di attendere più ACK allo stesso tempo. I dati inviati ma non ancora ricevuti vengono spesso indicati come dati in volo. Il mittente ha un limite di quanti dati può avere in volo, il che significa che il mittente non invia i dati al destinatario più velocemente di quanto il destinatario possa riceverli.

  * Limitazione della larghezza di banda consente essenzialmente a un client da 10 Mbps di comunicare con un server da 1000 Mbps senza essere sopraffatto dal traffico proveniente dal server. In TCP si basa sull'idea che dovrebbe esserci solo un certo numero di dati in volo in un dato momento.

  * ACK selettivi consentono al destinatario di ricevere pacchetti ACK in qualsiasi ordine. Se il pacchetto1 si è perso, non impedisce al pacchetto2 di essere inviato e ricevuto prima di inviare nuovamente il pacchetto1.

Firewall, router e switch sono fortemente ottimizzati per il traffico TCP, rendendolo la scelta naturale per la maggior parte delle attività svolte su internet oggi. I browser web, i client e-mail, Facebook, Instagram, Snapchat, Stock tickers, Spotify, i clienti Slack e FTP sono alcune delle applicazioni che utilizzano in genere TCP.

C'è uno svantaggio però. Quando si invia traffico TCP su una grande distanza geografica, le prestazioni diminuiscono in modo significativo. La ragione è che il traffico (e gli ACK) devono viaggiare attraverso molti più router e infrastrutture di rete per raggiungere il destinatario, e ciò richiede tempo.

Il tempo impiegato viene spesso definito latenza. Se stai visitando un sito web, la latenza a volte è di soli 10 millisecondi. Quando navighi in un sito web ospitato in un altro continente, vedrai immediatamente che il caricamento delle pagine richiede molto tempo a causa della maggiore latenza.

Il problema di latenza di TCP diventa estremamente evidente quando si trasferiscono file attraverso i continenti. Sia il mittente che il destinatario potrebbero trovarsi su incredibili connessioni da 1000/1000 megabit, ma ottengono solo 10 megabit di larghezza di banda di rete effettiva durante il trasferimento di file a causa della latenza che impedisce loro di comunicare efficacemente quando utilizzano TCP.

UDP è il fratello di TCP. La differenza principale è che un pacchetto UDP non viene mai ACK. Ma è velocissimo, dal momento che non c'è ACK. UDP è eccezionale nelle videochiamate e nei giochi online. In questi casi, i pacchetti UDP vengono eliminati. I pacchetti UDP vengono inviati continuamente, quindi non lo noterai nemmeno nel flusso video. Lo stesso con i giochi online: riceverai un nuovo pacchetto UDP con gli ultimi aggiornamenti in pochi millisecondi. Perdere alcuni pacchetti UDP ogni tanto non è un problema. È più importante trasferire rapidamente i dati con la latenza più bassa possibile.

UDP inizialmente potrebbe sembrare una scelta pessima per il trasferimento di file. La perdita totale di affidabilità significherebbe che i file corrotti sono ovunque a causa dei pacchetti UDP rilasciati. La mancanza di limitazione della larghezza di banda porterebbe i clienti a essere invasi dal traffico e sostanzialmente a non essere in linea. Affinché UDP sia utile per il trasferimento di file, deve essere affidabile come TCP. Per cominciare, i pacchetti rilasciati devono essere rinviati e deve essere possibile limitare la larghezza di banda. Anche la sicurezza deve essere considerata.

Il protocollo di accelerazione Filemail UDP (UAP)

Il protocollo di accelerazione Filemail UDP (UAP) è un protocollo di trasferimento file su misura costruito su UDP che offre velocità di trasferimento incredibilmente elevate anche in ambienti ad alta latenza. Supera facilmente tutti i protocolli basati su TCP come HTTP e FTP, in particolare quando si inviano files a grandi distanze geografiche in cui la latenza supera i 50 ms.

Benchmark

I benchmark mostrano che Filemail UDP è talvolta fino a 200 volte più veloce di FTP, HTTP e altri metodi di trasferimento basati su TCP.

Larghezza di banda di trasferimento efficace durante il trasferimento di file dall'Europa all'Australia attraverso 21 balzi di rete. Entrambe le estremità sono collegate su una connessione 1000/1000 mbit.

Filemail UAP è costruito dal basso verso l'alto con un obiettivo in mente: trasferire i file in modo estremamente rapido da A a B nel modo più sicuro e affidabile possibile. Di seguito sono riportate alcune delle caratteristiche di questo protocollo rivoluzionario.

Confronti non ufficiali con le soluzioni di trasferimento basate su UDP di IBM Aspera e Signiant mostrano che Filemail è più veloce in quasi tutti i casi. Alcune delle differenze di prestazioni potrebbero essere dovute al fatto che Filemail utilizza anche l'accelerazione hardware, utilizzando specificamente il set di istruzioni AES-NI. Anche i protocolli di IBM Aspera e Signiant utilizzano un canale TCP separato (SSH) per limitare la larghezza di banda, ACK, ecc. Filemail UAP non si basa sul protocollo TCP più lento - utilizza UDP per trasferire dati, ACK, limitazione della larghezza di banda e crittografia.

Sicurezza

Tutto il traffico di dati UDP è protetto dalla crittografia AES Galois/Counter Mode (AES-GCM). Questo è il massimo dello standard nella crittografia ad oggi e garantisce che i dati trasferiti non possano essere intercettati da terzi. Ogni sessione di trasferimento ha una chiave separata; la chiave viene scambiata tra client e server utilizzando la crittografia Rivest-Shamir-Adleman (RSA).

Crittografia con accelerazione hardware

Filemail UAP utilizza il set di istruzioni AES-NI introdotto da AMD e Intel alcuni anni fa. Questo set di istruzioni consente a Filemail UAP di utilizzare componenti hardware dedicati per la crittografia e la decrittografia dei dati. Questo fa una grande differenza quando si tratta di velocità di trasferimento. AES-NI è supportato su sistemi operativi come Microsoft Windows, macOS, Linux, iOS e Android. Anche produttori di hardware come Intel, AMD, ARM, VIA, Atmel, Samsung, Qualcomm, NXP e Broadcom lo supportano.

Requisiti software e hardware

Filemail UAP è scritto in un basso livello C++ e può essere eseguito praticamente su tutti i dispositivi e sistemi operativi. Le versioni binarie sono attualmente disponibili per Windows, macOS e Linux. Filemail Desktop è il nostro strumento di trasferimento di punta che utilizza UAP. Sono inoltre disponibili applicazioni console. Filemail UAP è stato fortemente ottimizzato e ha un ingombro di memoria estremamente basso di soli pochi megabyte, pur massimizzando la trasmissione della larghezza di banda. Inoltre, in genere utilizza meno del 5% di CPU durante l'invio di file alla massima velocità.

Accelerazione del trasferimento bidirezionale

Filemail UAP viene utilizzato sia durante il caricamento di file che per il download con Filemail Desktop. Ciò significa che tu e i tuoi clienti e partner commerciali potete sfruttare questa tecnologia.

Iniziare con Filemail UAP

Filemail UAP è integrato nella nostra applicazione Filemail Desktop ed è abilitato automaticamente durante l'invio e il download di file. Filemail Desktop è gratuito e non richiede un login. Trasferire l'accelerazione alle persone.