Accélération des transferts

Contexte

Aujourd'hui, deux protocoles principaux sont utilisés sur l'internet : TCP et UDP.

TCP est le cheval de bataille de l'Internet. Ce protocole intègre des mécanismes de fiabilité, ce qui signifie que l'expéditeur retransmet automatiquement un paquet TCP au destinataire s'il s'est perdu en cours de route. Lorsqu'un destinataire reçoit un paquet TCP, un message ACK (Acknowledge) est envoyé à l'expéditeur, afin que ce dernier sache que le paquet a été livré correctement. Ce mécanisme relativement simple rend le protocole TCP très fiable et facile à utiliser pour les développeurs. L'envoi de ces messages ACK à l'expéditeur peut sérieusement limiter les performances (puisque l'expéditeur doit attendre l'ACK du paquet1 avant d'envoyer le paquet2) - c'est pourquoi de nombreuses améliorations ont été apportées à ce protocole au fil des ans. Voici quelques-unes des caractéristiques les plus importantes d'une implémentation TCP moderne :

  • La taille de fenêtre modulable permet à l'expéditeur d'envoyer plusieurs paquets à la fois et d'attendre plusieurs ACK en même temps. Les données qui sont envoyées mais pas encore ACKées sont souvent appelées "données en vol" - l'expéditeur a une limite sur la quantité de données qu'il peut avoir en vol, ce qui signifie que l'expéditeur n'envoie pas de données au destinataire plus vite que celui-ci ne peut les recevoir.

  • L'étranglement de la bande passante permet essentiellement à un client de 10 mbit de communiquer avec un serveur de 1000 mbit sans être totalement submergé par le trafic du serveur. En TCP, il est basé sur l'idée qu'il ne devrait y avoir qu'un certain nombre de données en vol à un moment donné.

  • Les ACK sélectifs permettent au destinataire de recevoir et d'ACKer des paquets dans n'importe quel ordre. Si le paquet1 s'est perdu, cela ne fait pas obstacle à ce que le paquet2 soit envoyé et ACKé avant de renvoyer le paquet1.

Les pare-feu, les routeurs et les commutateurs sont fortement optimisés pour le trafic TCP, ce qui en fait le choix naturel pour la plupart des tâches effectuées sur l'internet aujourd'hui. Les navigateurs web, les clients de messagerie électronique, Facebook, Instagram, Snapchat, Stock tickers, Spotify, Slack et les clients FTP sont quelques-unes des applications qui utilisent généralement le TCP.

Il y a cependant un inconvénient. Lorsque le trafic TCP est envoyé sur une grande distance géographique, les performances diminuent considérablement. La raison en est que le trafic (et les ACK) doit passer par beaucoup plus de routeurs et d'infrastructures de réseau pour arriver au destinataire - et cela prend du temps.

Ce temps est souvent appelé latence. Si vous naviguez sur un site web hébergé dans le même pays, le temps de latence est parfois aussi bas que 10 millisecondes. Si vous naviguez sur un site web hébergé sur un autre continent, vous constaterez immédiatement que les pages sont longues à charger en raison de l'augmentation du temps de latence.

Le problème de latence du TCP devient extrêmement apparent lors du transfert de fichiers entre continents. L'expéditeur et le destinataire peuvent tous deux être sur des connexions étonnantes de 1000/1000 mégabits - mais ils ne bénéficient que d'une bande passante réseau effective de 10 mégabits lors du transfert de fichiers en raison de la latence qui les empêche de communiquer efficacement lorsqu'ils utilisent le TCP.

UDP est le frère du TCP. La principale différence est qu'un paquet UDP n'est jamais ACK'ed. L'expéditeur n'a aucune idée si le paquet UDP est parvenu au destinataire - ce n'est pas du tout un protocole fiable. Mais il est très rapide, puisqu'il n'y a pas d'ACK'ing. L'UDP est un excellent outil pour les appels vidéo et les jeux en ligne. Dans ces cas-là, il importe peu que quelques paquets UDP soient abandonnés. Les paquets UDP sont envoyés en continu - vous ne le remarquerez donc même pas dans le flux vidéo. Il en va de même pour les jeux en ligne - vous recevrez un nouveau paquet UDP avec les dernières mises à jour en quelques millisecondes. Perdre quelques paquets UDP de temps en temps n'est pas un problème. Il est plus important de transférer les données rapidement avec la plus faible latence possible.

Au départ, UDP peut sembler être un choix horrible pour le transfert de fichiers. Le manque total de fiabilité signifierait que les fichiers seraient corrompus partout à cause des paquets UDP perdus. L'absence d'étranglement de la bande passante conduirait à ce que les clients soient inondés de trafic et essentiellement hors ligne. Pour qu'UDP soit utile pour le transfert de fichiers, il doit être aussi fiable que TCP. Pour commencer, les paquets abandonnés doivent être renvoyés et la limitation de la bande passante doit être possible. La sécurité doit également être prise en compte.

Filemail UDP Acceleration Protocol (UAP)

Le Filemail UDP Acceleration Protocol (UAP) est un protocole de transfert de fichiers sur mesure, construit sur le protocole UDP, qui offre des vitesses de transfert extrêmement rapides, même dans des environnements à forte latence. Il surpasse facilement tous les protocoles basés sur TCP tels que HTTP et FTP, en particulier lors de l'envoi de fichiers sur de grandes distances géographiques où la latence dépasse 50 ms.

**Repères

Des études comparatives montrent que l'UDP de Filemail est parfois jusqu'à 200 fois plus rapide que le FTP, le HTTP et d'autres méthodes de transfert basées sur le TCP.

Largeur de bande de transfert efficace lors du transfert de fichiers d'Europe vers l'Australie via 21 sauts de réseau. Les deux extrémités sont connectées sur une connexion de 1000/1000 mbit.

Filemail UAP est construit de bas en haut avec un objectif en tête : transférer des fichiers extrêmement rapidement de A à B de la manière la plus sûre et la plus fiable possible. Voici quelques-unes des caractéristiques de ce protocole révolutionnaire.

Des comparaisons non officielles avec les solutions de transfert basées sur l'UDP d'IBM Aspera et Signiant montrent que Filemail est plus rapide dans presque tous les cas. Certaines des différences de performances pourraient être dues au fait que Filemail utilise également l'accélération matérielle - en utilisant spécifiquement le jeu d'instructions AES-NI. Les protocoles d'IBM Aspera et Signiant utilisent également un canal TCP séparé (SSH) pour la limitation de la bande passante, la prise de compte, etc. Filemail UAP ne repose pas sur le protocole TCP plus lent - il utilise UDP pour le transfert de données, la reconnaissance, la limitation de la bande passante et le cryptage.

Sécurité

Tout le trafic de données UDP est protégé par le cryptage AES Galois/Counter Mode (AES-GCM). Il s'agit de la norme de référence en matière de cryptage à l'heure actuelle et elle garantit que les données transférées ne peuvent être interceptées par un tiers. Chaque session de transfert a une clé distincte, la clé est échangée entre le client et le serveur en utilisant le cryptage Rivest-Shamir-Adleman (RSA).

Cryptage accéléré par le matériel

Filemail UAP utilise le jeu d'instructions AES-NI introduit par AMD et Intel il y a quelques années. Ce jeu d'instructions permet à Filemail UAP d'utiliser des composants matériels dédiés pour le cryptage et le décryptage des données. Cela fait une énorme différence en matière de vitesse de transfert. L'AES-NI est pris en charge par des systèmes d'exploitation tels que Microsoft Windows, macOS, Linux, iOS et Android. Les fabricants de matériel tels qu'Intel, AMD, ARM, VIA, Atmel, Samsung, Qualcomm, NXP et Broadcom le prennent également en charge.

Exigences en matière de logiciels et de matériel

Filemail UAP est écrit en C++ de bas niveau et peut fonctionner sur pratiquement tous les appareils et systèmes d'exploitation. Des versions binaires sont actuellement disponibles pour Windows, macOS et Linux. Filemail Desktop est notre outil de transfert phare qui utilise UAP. Des applications de console sont également disponibles. Le Filemail UAP a été fortement optimisé et a une empreinte mémoire extrêmement faible de seulement quelques mégaoctets, tout en maximisant le débit de la bande passante. Il utilise aussi généralement moins de 5 % de CPU lors de l'envoi de fichiers à vitesse maximale.

Accélération du transfert bidirectionnel

Filemail UAP est utilisé à la fois pour le téléchargement de fichiers avec Filemail Desktop et pour le téléchargement de fichiers avec Filemail Desktop. Cela signifie que vous ET vos clients et partenaires commerciaux peuvent profiter de cette technologie.

Démarrer avec Filemail UAP

Filemail UAP est intégré dans notre application Filemail Desktop et est activé automatiquement lors de l'envoi et du téléchargement de fichiers. L'utilisation de Filemail Desktop est gratuite et ne nécessite pas de connexion. Accélération du transfert vers les personnes.